aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/.gitignore85
-rw-r--r--lib/Makefile16
-rw-r--r--lib/appmon/vsn.mk12
-rw-r--r--lib/asn1/c_src/Makefile124
-rw-r--r--lib/asn1/c_src/Makefile.in139
-rw-r--r--lib/common_test/info2
-rw-r--r--lib/compiler/doc/src/compile.xml2
-rw-r--r--lib/compiler/src/Makefile69
-rw-r--r--lib/compiler/src/compile.erl50
-rw-r--r--lib/compiler/src/sys_pre_expand.erl60
-rw-r--r--lib/compiler/src/v3_core.erl14
-rw-r--r--lib/configure.in37
-rw-r--r--lib/configure.in.src61
-rw-r--r--lib/cosEvent/doc/src/CosEventChannelAdmin.xml26
-rw-r--r--lib/cosEvent/doc/src/notes.xml18
-rw-r--r--lib/cosEvent/vsn.mk3
-rw-r--r--lib/crypto/c_src/Makefile.in30
-rw-r--r--lib/docbuilder/info2
-rw-r--r--lib/edoc/info2
-rw-r--r--lib/edoc/vsn.mk2
-rw-r--r--lib/erl_docgen/priv/xsl/db_man.xsl28
-rw-r--r--lib/erl_interface/configure.in164
-rw-r--r--lib/erl_interface/src/Makefile.in12
-rw-r--r--lib/erl_interface/src/auxdir/config.h.in277
-rw-r--r--lib/erl_interface/src/legacy/erl_eterm.c16
-rw-r--r--lib/et/doc/src/book.gifbin1081 -> 0 bytes
-rw-r--r--lib/et/doc/src/coffee_order.pngbin0 -> 23692 bytes
-rw-r--r--lib/et/doc/src/et.xml67
-rw-r--r--lib/et/doc/src/et_architecture.xml554
-rw-r--r--lib/et/doc/src/et_collector.xml19
-rw-r--r--lib/et/doc/src/et_desc.xmlsrc683
-rw-r--r--lib/et/doc/src/et_examples.xml311
-rw-r--r--lib/et/doc/src/et_examples.xmlsrc383
-rw-r--r--lib/et/doc/src/et_intro.xml82
-rw-r--r--lib/et/doc/src/et_selector.xml112
-rw-r--r--lib/et/doc/src/et_tutorial.xmlsrc273
-rw-r--r--lib/et/doc/src/et_viewer.xml9
-rw-r--r--lib/et/doc/src/fascicules.xml18
-rw-r--r--lib/et/doc/src/files.mk45
-rw-r--r--lib/et/doc/src/live_trans.gifbin8691 -> 0 bytes
-rw-r--r--lib/et/doc/src/live_trans.pngbin0 -> 19999 bytes
-rw-r--r--lib/et/doc/src/live_trans.ps1559
-rw-r--r--lib/et/doc/src/megaco_collector.gifbin68430 -> 0 bytes
-rw-r--r--lib/et/doc/src/megaco_collector.pngbin0 -> 37915 bytes
-rw-r--r--lib/et/doc/src/megaco_collector.ps3247
-rw-r--r--lib/et/doc/src/megaco_filter.gifbin8827 -> 0 bytes
-rw-r--r--lib/et/doc/src/megaco_filter.pngbin0 -> 19067 bytes
-rw-r--r--lib/et/doc/src/megaco_filter.ps1733
-rw-r--r--lib/et/doc/src/megaco_tracer.gifbin12400 -> 0 bytes
-rw-r--r--lib/et/doc/src/megaco_tracer.pngbin0 -> 46696 bytes
-rw-r--r--lib/et/doc/src/megaco_tracer.ps2508
-rw-r--r--lib/et/doc/src/note.gifbin1539 -> 0 bytes
-rw-r--r--lib/et/doc/src/notes.gifbin2005 -> 0 bytes
-rw-r--r--lib/et/doc/src/notes.xml60
-rw-r--r--lib/et/doc/src/part.xml9
-rw-r--r--lib/et/doc/src/ref_man.gifbin1530 -> 0 bytes
-rw-r--r--lib/et/doc/src/sim_trans.gifbin20208 -> 0 bytes
-rw-r--r--lib/et/doc/src/sim_trans.pngbin0 -> 19026 bytes
-rw-r--r--lib/et/doc/src/sim_trans.ps6595
-rw-r--r--lib/et/doc/src/sim_trans_contents_viewer_collector.gifbin11607 -> 0 bytes
-rw-r--r--lib/et/doc/src/sim_trans_contents_viewer_collector.pngbin0 -> 13361 bytes
-rw-r--r--lib/et/doc/src/sim_trans_contents_viewer_collector.ps1407
-rw-r--r--lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.gifbin7531 -> 0 bytes
-rw-r--r--lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.pngbin0 -> 15235 bytes
-rw-r--r--lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.ps1371
-rw-r--r--lib/et/doc/src/sim_trans_mgr_actors.gifbin9118 -> 0 bytes
-rw-r--r--lib/et/doc/src/sim_trans_mgr_actors.pngbin0 -> 18936 bytes
-rw-r--r--lib/et/doc/src/sim_trans_mgr_actors.ps1705
-rw-r--r--lib/et/doc/src/sim_trans_move_actor.gifbin8965 -> 0 bytes
-rw-r--r--lib/et/doc/src/sim_trans_move_actor.pngbin0 -> 19026 bytes
-rw-r--r--lib/et/doc/src/sim_trans_move_actor.ps6403
-rw-r--r--lib/et/doc/src/sim_trans_write_lock.gifbin10871 -> 0 bytes
-rw-r--r--lib/et/doc/src/sim_trans_write_lock.pngbin0 -> 13425 bytes
-rw-r--r--lib/et/doc/src/sim_trans_write_lock.ps1287
-rw-r--r--lib/et/doc/src/user_guide.gifbin1581 -> 0 bytes
-rw-r--r--lib/et/doc/src/warning.gifbin1498 -> 0 bytes
-rw-r--r--lib/et/examples/Makefile14
-rw-r--r--lib/et/examples/et_demo.erl103
-rw-r--r--lib/et/examples/et_display_demo.erl32
-rw-r--r--lib/et/examples/et_trace_demo.erl38
-rw-r--r--lib/et/src/Makefile17
-rw-r--r--lib/et/src/et.app.src17
-rw-r--r--lib/et/src/et.erl38
-rw-r--r--lib/et/src/et_collector.erl352
-rw-r--r--lib/et/src/et_gs_contents_viewer.erl (renamed from lib/et/src/et_contents_viewer.erl)86
-rw-r--r--lib/et/src/et_gs_viewer.erl1481
-rw-r--r--lib/et/src/et_internal.hrl16
-rw-r--r--lib/et/src/et_selector.erl78
-rw-r--r--lib/et/src/et_viewer.erl1492
-rw-r--r--lib/et/src/et_wx_contents_viewer.erl700
-rw-r--r--lib/et/src/et_wx_viewer.erl2122
-rw-r--r--lib/et/src/modules.mk17
-rw-r--r--lib/et/test/Makefile (renamed from lib/et/doc/src/make.dep)76
-rw-r--r--lib/et/test/README30
-rw-r--r--lib/et/test/et.spec2
-rw-r--r--lib/et/test/et_test_lib.erl329
-rw-r--r--lib/et/test/et_test_lib.hrl90
-rw-r--r--lib/et/test/et_wx_SUITE.erl100
-rwxr-xr-xlib/et/test/ett55
-rw-r--r--lib/et/test/ett.erl154
-rw-r--r--lib/et/vsn.mk15
-rw-r--r--lib/eunit/info2
-rw-r--r--lib/eunit/test/Makefile12
-rw-r--r--lib/eunit/vsn.mk2
-rw-r--r--lib/hipe/Makefile2
-rw-r--r--lib/hipe/doc/Makefile17
-rw-r--r--lib/hipe/doc/src/Makefile21
-rw-r--r--lib/hipe/doc/src/book.xml9
-rw-r--r--lib/hipe/doc/src/hipe_app.xml58
-rw-r--r--lib/hipe/doc/src/ref_man.xml (renamed from lib/et/doc/src/part_notes.xml)21
-rw-r--r--lib/hipe/info2
-rw-r--r--lib/hipe/rtl/Makefile15
-rw-r--r--lib/inets/doc/src/httpc.xml4
-rw-r--r--lib/inets/doc/src/notes.xml4
-rw-r--r--lib/inets/src/http_client/httpc_handler.erl11
-rw-r--r--lib/inets/src/http_client/httpc_manager.erl112
-rw-r--r--lib/inets/test/httpc_SUITE.erl22
-rw-r--r--lib/inets/vsn.mk2
-rw-r--r--lib/jinterface/vsn.mk12
-rw-r--r--lib/kernel/doc/src/gen_sctp.xml119
-rw-r--r--lib/kernel/src/Makefile15
-rw-r--r--lib/kernel/src/code.erl3
-rw-r--r--lib/kernel/src/file.erl11
-rw-r--r--lib/kernel/src/gen_sctp.erl46
-rw-r--r--lib/kernel/src/hipe_unified_loader.erl42
-rw-r--r--lib/kernel/src/inet.erl147
-rw-r--r--lib/kernel/src/inet_config.erl32
-rw-r--r--lib/kernel/src/inet_db.erl107
-rw-r--r--lib/kernel/src/inet_gethost_native.erl72
-rw-r--r--lib/kernel/src/inet_parse.erl285
-rw-r--r--lib/kernel/src/inet_sctp.erl30
-rw-r--r--lib/kernel/src/user.erl16
-rw-r--r--lib/kernel/test/Makefile12
-rw-r--r--lib/kernel/test/bif_SUITE.erl44
-rw-r--r--lib/kernel/test/cleanup.erl12
-rw-r--r--lib/kernel/test/code_SUITE.erl50
-rw-r--r--lib/kernel/test/code_SUITE_data/clash/foobar-0.1.ezbin0 -> 505 bytes
-rw-r--r--lib/kernel/test/code_SUITE_data/clash/foobar-0.1/ebin/baz.beam1
-rw-r--r--lib/kernel/test/code_SUITE_data/clash/foobar-0.1/ebin/blarg.beam1
-rw-r--r--lib/kernel/test/code_SUITE_data/clash/zork-0.8.ezbin0 -> 492 bytes
-rw-r--r--lib/kernel/test/code_SUITE_data/clash/zork-0.8/ebin/bork.beam1
-rw-r--r--lib/kernel/test/code_SUITE_data/clash/zork-0.8/ebin/flarp.beam1
-rw-r--r--lib/kernel/test/erl_distribution_SUITE.erl46
-rw-r--r--lib/kernel/test/error_logger_SUITE.erl32
-rw-r--r--lib/kernel/test/file_SUITE.erl12
-rw-r--r--lib/kernel/test/gen_sctp_SUITE.erl62
-rw-r--r--lib/kernel/test/global_group_SUITE.erl30
-rw-r--r--lib/kernel/test/heart_SUITE.erl16
-rw-r--r--lib/kernel/test/inet_SUITE.erl198
-rw-r--r--lib/kernel/test/inet_res_SUITE.erl88
-rw-r--r--lib/kernel/test/init_SUITE.erl14
-rw-r--r--lib/kernel/test/kernel_SUITE.erl12
-rw-r--r--lib/kernel/test/kernel_config_SUITE.erl12
-rw-r--r--lib/kernel/test/loose_node.erl27
-rw-r--r--lib/kernel/test/os_SUITE.erl24
-rw-r--r--lib/kernel/test/pdict_SUITE.erl14
-rw-r--r--lib/kernel/test/rpc_SUITE.erl14
-rw-r--r--lib/kernel/test/seq_trace_SUITE.erl16
-rw-r--r--lib/kernel/test/wrap_log_reader_SUITE.erl30
-rw-r--r--lib/megaco/configure.in113
-rw-r--r--lib/megaco/doc/src/Makefile19
-rw-r--r--lib/megaco/doc/src/megaco_codec_transform.xml27
-rw-r--r--lib/megaco/doc/src/megaco_debug.xml28
-rw-r--r--lib/megaco/doc/src/megaco_performance.xml18
-rw-r--r--lib/megaco/doc/src/notes.xml62
-rw-r--r--lib/megaco/doc/standard/H.248.1-Corr1-200403.docbin296448 -> 0 bytes
-rw-r--r--lib/megaco/doc/standard/rfc2327.txt2355
-rw-r--r--lib/megaco/doc/standard/rfc3266.txt283
-rw-r--r--lib/megaco/examples/meas/meas.sh.skel12
-rw-r--r--lib/megaco/include/megaco.hrl19
-rw-r--r--lib/megaco/src/app/megaco.appup.src36
-rw-r--r--lib/megaco/src/engine/megaco_config.erl12
-rw-r--r--lib/megaco/src/engine/megaco_filter.erl286
-rw-r--r--lib/megaco/src/engine/megaco_messenger.erl303
-rw-r--r--lib/megaco/src/flex/Makefile.in80
-rw-r--r--lib/megaco/src/flex/megaco_flex_scanner_drv.flex.src13
-rw-r--r--lib/megaco/src/flex/megaco_flex_scanner_handler.erl45
-rw-r--r--lib/megaco/test/Makefile175
-rw-r--r--lib/megaco/test/modules.mk12
-rw-r--r--lib/megaco/vsn.mk19
-rw-r--r--lib/mnesia/doc/src/mnesia.xml23
-rw-r--r--lib/mnesia/src/mnesia.erl12
-rw-r--r--lib/mnesia/src/mnesia_loader.erl45
-rw-r--r--lib/mnesia/src/mnesia_monitor.erl22
-rw-r--r--lib/mnesia/src/mnesia_tm.erl11
l---------lib/odbc/aclocal.m41
-rw-r--r--lib/odbc/c_src/Makefile.in22
-rw-r--r--lib/odbc/c_src/odbcserver.c36
-rw-r--r--lib/odbc/configure.in160
-rw-r--r--lib/orber/doc/src/CosNaming.xml26
-rw-r--r--lib/orber/doc/src/Makefile11
-rw-r--r--lib/orber/doc/src/ch_example.xml170
-rw-r--r--lib/orber/doc/src/example_part.xml25
-rw-r--r--lib/orber/doc/src/make.dep9
-rw-r--r--lib/orber/doc/src/notes.xml6
-rw-r--r--lib/orber/doc/src/part.xml7
-rw-r--r--lib/orber/vsn.mk3
-rw-r--r--lib/parsetools/test/Makefile78
-rw-r--r--lib/parsetools/test/leex_SUITE.erl909
-rw-r--r--lib/parsetools/test/parsetools.spec1
-rw-r--r--lib/parsetools/test/yecc_SUITE.erl1795
-rw-r--r--lib/parsetools/vsn.mk2
-rw-r--r--lib/percept/src/egd_render.erl12
-rw-r--r--lib/percept/test/egd_SUITE.erl14
-rw-r--r--lib/percept/vsn.mk2
-rw-r--r--lib/reltool/doc/src/Makefile30
-rw-r--r--lib/reltool/doc/src/book.gifbin1081 -> 0 bytes
-rw-r--r--lib/reltool/doc/src/fascicules.xml17
-rw-r--r--lib/reltool/doc/src/files.mk21
-rw-r--r--lib/reltool/doc/src/note.gifbin1539 -> 0 bytes
-rw-r--r--lib/reltool/doc/src/notes.gifbin2005 -> 0 bytes
-rw-r--r--lib/reltool/doc/src/part_notes.xml41
-rw-r--r--lib/reltool/doc/src/ref_man.gifbin1530 -> 0 bytes
-rw-r--r--lib/reltool/doc/src/reltool_examples.xml32
-rw-r--r--lib/reltool/doc/src/user_guide.gifbin1581 -> 0 bytes
-rw-r--r--lib/reltool/doc/src/warning.gifbin1498 -> 0 bytes
-rw-r--r--lib/reltool/src/reltool_target.erl25
-rw-r--r--lib/runtime_tools/c_src/Makefile.in31
-rw-r--r--lib/runtime_tools/vsn.mk2
-rw-r--r--lib/snmp/doc/src/notes.xml72
-rw-r--r--lib/snmp/doc/src/snmp_app.xml22
-rw-r--r--lib/snmp/doc/src/snmp_config.xml21
-rw-r--r--lib/snmp/doc/src/snmpa_conf.xml6
-rw-r--r--lib/snmp/src/agent/snmpa.erl17
-rw-r--r--lib/snmp/src/agent/snmpa_agent.erl130
-rw-r--r--lib/snmp/src/agent/snmpa_net_if.erl117
-rw-r--r--lib/snmp/src/agent/snmpa_usm.erl18
-rw-r--r--lib/snmp/src/app/snmp.appup.src67
-rw-r--r--lib/snmp/src/manager/snmpm_config.erl65
-rw-r--r--lib/snmp/src/manager/snmpm_net_if.erl70
-rw-r--r--lib/snmp/src/misc/snmp_config.erl146
-rw-r--r--lib/snmp/src/misc/snmp_log.erl503
-rw-r--r--lib/snmp/src/misc/snmp_usm.erl26
-rw-r--r--lib/snmp/test/snmp_agent_test.erl475
-rw-r--r--lib/snmp/test/snmp_log_test.erl299
-rw-r--r--lib/snmp/test/snmp_manager_config_test.erl184
-rw-r--r--lib/snmp/test/snmp_manager_test.erl96
-rw-r--r--lib/snmp/test/snmp_test_mgr.erl10
-rw-r--r--lib/snmp/vsn.mk19
-rw-r--r--lib/ssh/doc/src/Makefile13
-rw-r--r--lib/ssh/doc/src/notes.xml17
-rw-r--r--lib/ssh/src/ssh.appup.src12
-rw-r--r--lib/ssh/src/ssh_connection_handler.erl14
-rw-r--r--lib/ssh/vsn.mk3
-rw-r--r--lib/ssl/c_src/Makefile.in22
-rw-r--r--lib/ssl/doc/src/new_ssl.xml5
-rw-r--r--lib/ssl/src/ssl.erl19
-rw-r--r--lib/ssl/src/ssl_broker.erl16
-rw-r--r--lib/ssl/src/ssl_certificate_db.erl51
-rw-r--r--lib/ssl/src/ssl_connection.erl74
-rw-r--r--lib/ssl/src/ssl_manager.erl37
-rw-r--r--lib/ssl/test/old_ssl_active_SUITE.erl16
-rw-r--r--lib/ssl/test/ssl_basic_SUITE.erl12
-rw-r--r--lib/ssl/test/ssl_packet_SUITE.erl481
-rw-r--r--lib/stdlib/doc/src/epp.xml26
-rw-r--r--lib/stdlib/doc/src/erl_lint.xml8
-rw-r--r--lib/stdlib/doc/src/erl_parse.xml26
-rw-r--r--lib/stdlib/doc/src/file_sorter.xml14
-rw-r--r--lib/stdlib/doc/src/gb_sets.xml8
-rw-r--r--lib/stdlib/doc/src/gb_trees.xml8
-rw-r--r--lib/stdlib/doc/src/io.xml2
-rw-r--r--lib/stdlib/doc/src/lists.xml17
-rw-r--r--lib/stdlib/doc/src/proplists.xml9
-rw-r--r--lib/stdlib/doc/src/re.xml2
-rw-r--r--lib/stdlib/doc/src/shell.xml41
-rw-r--r--lib/stdlib/doc/src/sofs.xml17
-rw-r--r--lib/stdlib/doc/src/stdlib_app.xml34
-rw-r--r--lib/stdlib/doc/src/supervisor.xml44
-rw-r--r--lib/stdlib/src/Makefile3
-rw-r--r--lib/stdlib/src/dets_v8.erl40
-rw-r--r--lib/stdlib/src/edlin.erl10
-rw-r--r--lib/stdlib/src/epp.erl265
-rw-r--r--lib/stdlib/src/erl_lint.erl114
-rw-r--r--lib/stdlib/src/escript.erl71
-rw-r--r--lib/stdlib/src/file_sorter.erl34
-rw-r--r--lib/stdlib/src/filelib.erl22
-rw-r--r--lib/stdlib/src/io_lib.erl14
-rw-r--r--lib/stdlib/src/qlc.erl159
-rw-r--r--lib/stdlib/src/qlc_pt.erl32
-rw-r--r--lib/stdlib/src/shell.erl104
-rw-r--r--lib/stdlib/src/shell_default.erl11
-rw-r--r--lib/stdlib/src/supervisor.erl59
-rw-r--r--lib/stdlib/test/Makefile2
-rw-r--r--lib/stdlib/test/calendar_SUITE.erl26
-rw-r--r--lib/stdlib/test/epp_SUITE.erl143
-rw-r--r--lib/stdlib/test/erl_lint_SUITE.erl12
-rw-r--r--lib/stdlib/test/ets_tough_SUITE.erl18
-rw-r--r--lib/stdlib/test/filelib_SUITE.erl30
-rw-r--r--lib/stdlib/test/fixtable_SUITE.erl26
-rw-r--r--lib/stdlib/test/format_SUITE.erl12
-rw-r--r--lib/stdlib/test/gen_event_SUITE.erl30
-rw-r--r--lib/stdlib/test/io_proto_SUITE.erl50
-rw-r--r--lib/stdlib/test/ms_transform_SUITE.erl36
-rw-r--r--lib/stdlib/test/queue_SUITE.erl22
-rw-r--r--lib/stdlib/test/re_SUITE.erl10
-rw-r--r--lib/stdlib/test/re_testoutput1_replacement_test.erl11
-rw-r--r--lib/stdlib/test/re_testoutput1_split_test.erl11
-rw-r--r--lib/stdlib/test/run_pcre_tests.erl2
-rw-r--r--lib/stdlib/test/select_SUITE.erl16
-rw-r--r--lib/stdlib/test/shell_SUITE.erl115
-rw-r--r--lib/stdlib/test/slave_SUITE.erl18
-rw-r--r--lib/stdlib/test/sofs_SUITE.erl132
-rw-r--r--lib/stdlib/test/supervisor_SUITE.erl243
-rw-r--r--lib/stdlib/test/tar_SUITE.erl18
-rw-r--r--lib/stdlib/test/timer_SUITE.erl12
-rw-r--r--lib/stdlib/test/unicode_SUITE.erl82
-rw-r--r--lib/stdlib/test/win32reg_SUITE.erl14
-rw-r--r--lib/stdlib/test/zip_SUITE.erl20
-rw-r--r--lib/syntax_tools/vsn.mk2
-rw-r--r--lib/test_server/info2
-rw-r--r--lib/tools/doc/src/Makefile12
-rw-r--r--lib/tools/doc/src/lcnt.xml465
-rw-r--r--lib/tools/doc/src/lcnt_chapter.xml301
-rw-r--r--lib/tools/doc/src/part.xml9
-rw-r--r--lib/tools/doc/src/ref_man.xml12
-rw-r--r--lib/tools/emacs/erlang.el10
-rw-r--r--lib/tools/src/Makefile14
-rw-r--r--lib/tools/src/lcnt.erl840
-rw-r--r--lib/tools/src/xref_utils.erl13
-rw-r--r--lib/tools/test/Makefile7
-rw-r--r--lib/tools/test/lcnt_SUITE.erl154
-rw-r--r--lib/tools/test/lcnt_SUITE_data/big_bang_40.lcntbin0 -> 226100 bytes
-rw-r--r--lib/tools/test/xref_SUITE.erl24
-rw-r--r--lib/wx/api_gen/gen_util.erl55
-rw-r--r--lib/wx/api_gen/gl_gen_c.erl34
-rw-r--r--lib/wx/api_gen/gl_gen_erl.erl34
-rw-r--r--lib/wx/api_gen/wx_gen_cpp.erl88
-rw-r--r--lib/wx/api_gen/wx_gen_erl.erl40
-rw-r--r--lib/wx/api_gen/wxapi.conf2
-rw-r--r--lib/wx/c_src/Makefile.in23
-rw-r--r--lib/wx/c_src/gen/gl_fdefs.h10
-rw-r--r--lib/wx/c_src/gen/gl_finit.h10
-rw-r--r--lib/wx/c_src/gen/gl_funcs.cpp10
-rw-r--r--lib/wx/c_src/gen/glu_finit.h10
-rw-r--r--lib/wx/c_src/gen/wxe_derived_dest.h702
-rw-r--r--lib/wx/c_src/gen/wxe_events.cpp50
-rw-r--r--lib/wx/c_src/gen/wxe_funcs.cpp14439
-rw-r--r--lib/wx/c_src/gen/wxe_init.cpp10
-rw-r--r--lib/wx/c_src/gen/wxe_macros.h3513
-rwxr-xr-xlib/wx/configure.in21
-rw-r--r--lib/wx/include/gl.hrl10
-rw-r--r--lib/wx/include/glu.hrl10
-rw-r--r--lib/wx/include/wx.hrl424
-rw-r--r--lib/wx/src/gen/gl.erl10
-rw-r--r--lib/wx/src/gen/gl_debug.hrl10
-rw-r--r--lib/wx/src/gen/glu.erl10
-rw-r--r--lib/wx/src/gen/wxAcceleratorEntry.erl14
-rw-r--r--lib/wx/src/gen/wxAcceleratorTable.erl12
-rw-r--r--lib/wx/src/gen/wxArtProvider.erl10
-rw-r--r--lib/wx/src/gen/wxAuiDockArt.erl10
-rw-r--r--lib/wx/src/gen/wxAuiManager.erl20
-rw-r--r--lib/wx/src/gen/wxAuiManagerEvent.erl14
-rw-r--r--lib/wx/src/gen/wxAuiNotebook.erl20
-rw-r--r--lib/wx/src/gen/wxAuiNotebookEvent.erl18
-rw-r--r--lib/wx/src/gen/wxAuiPaneInfo.erl12
-rw-r--r--lib/wx/src/gen/wxAuiTabArt.erl10
-rw-r--r--lib/wx/src/gen/wxBitmap.erl18
-rw-r--r--lib/wx/src/gen/wxBitmapButton.erl22
-rw-r--r--lib/wx/src/gen/wxBitmapDataObject.erl18
-rw-r--r--lib/wx/src/gen/wxBoxSizer.erl16
-rw-r--r--lib/wx/src/gen/wxBrush.erl14
-rw-r--r--lib/wx/src/gen/wxBufferedDC.erl22
-rw-r--r--lib/wx/src/gen/wxBufferedPaintDC.erl22
-rw-r--r--lib/wx/src/gen/wxButton.erl20
-rw-r--r--lib/wx/src/gen/wxCalendarCtrl.erl20
-rw-r--r--lib/wx/src/gen/wxCalendarDateAttr.erl16
-rw-r--r--lib/wx/src/gen/wxCalendarEvent.erl18
-rw-r--r--lib/wx/src/gen/wxCaret.erl12
-rw-r--r--lib/wx/src/gen/wxCheckBox.erl20
-rw-r--r--lib/wx/src/gen/wxCheckListBox.erl24
-rw-r--r--lib/wx/src/gen/wxChildFocusEvent.erl16
-rw-r--r--lib/wx/src/gen/wxChoice.erl22
-rw-r--r--lib/wx/src/gen/wxChoicebook.erl20
-rw-r--r--lib/wx/src/gen/wxClientDC.erl18
-rw-r--r--lib/wx/src/gen/wxClipboard.erl12
-rw-r--r--lib/wx/src/gen/wxCloseEvent.erl14
-rw-r--r--lib/wx/src/gen/wxColourData.erl12
-rw-r--r--lib/wx/src/gen/wxColourDialog.erl22
-rw-r--r--lib/wx/src/gen/wxColourPickerCtrl.erl24
-rw-r--r--lib/wx/src/gen/wxColourPickerEvent.erl16
-rw-r--r--lib/wx/src/gen/wxComboBox.erl22
-rw-r--r--lib/wx/src/gen/wxCommandEvent.erl14
-rw-r--r--lib/wx/src/gen/wxContextMenuEvent.erl16
-rw-r--r--lib/wx/src/gen/wxControl.erl16
-rw-r--r--lib/wx/src/gen/wxControlWithItems.erl18
-rw-r--r--lib/wx/src/gen/wxCursor.erl18
-rw-r--r--lib/wx/src/gen/wxDC.erl12
-rw-r--r--lib/wx/src/gen/wxDataObject.erl10
-rw-r--r--lib/wx/src/gen/wxDateEvent.erl16
-rw-r--r--lib/wx/src/gen/wxDatePickerCtrl.erl22
-rw-r--r--lib/wx/src/gen/wxDialog.erl20
-rw-r--r--lib/wx/src/gen/wxDirDialog.erl22
-rw-r--r--lib/wx/src/gen/wxDirPickerCtrl.erl22
-rw-r--r--lib/wx/src/gen/wxDisplayChangedEvent.erl14
-rw-r--r--lib/wx/src/gen/wxEraseEvent.erl14
-rw-r--r--lib/wx/src/gen/wxEvent.erl10
-rw-r--r--lib/wx/src/gen/wxEvtHandler.erl10
-rw-r--r--lib/wx/src/gen/wxFileDataObject.erl16
-rw-r--r--lib/wx/src/gen/wxFileDialog.erl22
-rw-r--r--lib/wx/src/gen/wxFileDirPickerEvent.erl16
-rw-r--r--lib/wx/src/gen/wxFilePickerCtrl.erl22
-rw-r--r--lib/wx/src/gen/wxFindReplaceData.erl12
-rw-r--r--lib/wx/src/gen/wxFindReplaceDialog.erl22
-rw-r--r--lib/wx/src/gen/wxFlexGridSizer.erl18
-rw-r--r--lib/wx/src/gen/wxFocusEvent.erl14
-rw-r--r--lib/wx/src/gen/wxFont.erl12
-rw-r--r--lib/wx/src/gen/wxFontData.erl12
-rw-r--r--lib/wx/src/gen/wxFontDialog.erl22
-rw-r--r--lib/wx/src/gen/wxFontPickerCtrl.erl22
-rw-r--r--lib/wx/src/gen/wxFontPickerEvent.erl16
-rw-r--r--lib/wx/src/gen/wxFrame.erl20
-rw-r--r--lib/wx/src/gen/wxGBSizerItem.erl14
-rw-r--r--lib/wx/src/gen/wxGLCanvas.erl20
-rw-r--r--lib/wx/src/gen/wxGauge.erl20
-rw-r--r--lib/wx/src/gen/wxGenericDirCtrl.erl10
-rw-r--r--lib/wx/src/gen/wxGraphicsBrush.erl14
-rw-r--r--lib/wx/src/gen/wxGraphicsContext.erl16
-rw-r--r--lib/wx/src/gen/wxGraphicsFont.erl14
-rw-r--r--lib/wx/src/gen/wxGraphicsMatrix.erl14
-rw-r--r--lib/wx/src/gen/wxGraphicsObject.erl10
-rw-r--r--lib/wx/src/gen/wxGraphicsPath.erl16
-rw-r--r--lib/wx/src/gen/wxGraphicsPen.erl14
-rw-r--r--lib/wx/src/gen/wxGraphicsRenderer.erl10
-rw-r--r--lib/wx/src/gen/wxGrid.erl32
-rw-r--r--lib/wx/src/gen/wxGridBagSizer.erl34
-rw-r--r--lib/wx/src/gen/wxGridCellAttr.erl10
-rw-r--r--lib/wx/src/gen/wxGridCellBoolEditor.erl16
-rw-r--r--lib/wx/src/gen/wxGridCellBoolRenderer.erl16
-rw-r--r--lib/wx/src/gen/wxGridCellChoiceEditor.erl16
-rw-r--r--lib/wx/src/gen/wxGridCellEditor.erl10
-rw-r--r--lib/wx/src/gen/wxGridCellFloatEditor.erl16
-rw-r--r--lib/wx/src/gen/wxGridCellFloatRenderer.erl18
-rw-r--r--lib/wx/src/gen/wxGridCellNumberEditor.erl18
-rw-r--r--lib/wx/src/gen/wxGridCellNumberRenderer.erl18
-rw-r--r--lib/wx/src/gen/wxGridCellRenderer.erl10
-rw-r--r--lib/wx/src/gen/wxGridCellStringRenderer.erl16
-rw-r--r--lib/wx/src/gen/wxGridCellTextEditor.erl16
-rw-r--r--lib/wx/src/gen/wxGridEvent.erl18
-rw-r--r--lib/wx/src/gen/wxGridSizer.erl16
-rw-r--r--lib/wx/src/gen/wxHelpEvent.erl14
-rw-r--r--lib/wx/src/gen/wxHtmlEasyPrinting.erl12
-rw-r--r--lib/wx/src/gen/wxHtmlLinkEvent.erl16
-rw-r--r--lib/wx/src/gen/wxHtmlWindow.erl22
-rw-r--r--lib/wx/src/gen/wxIcon.erl18
-rw-r--r--lib/wx/src/gen/wxIconBundle.erl14
-rw-r--r--lib/wx/src/gen/wxIconizeEvent.erl14
-rw-r--r--lib/wx/src/gen/wxIdleEvent.erl14
-rw-r--r--lib/wx/src/gen/wxImage.erl26
-rw-r--r--lib/wx/src/gen/wxImageList.erl14
-rw-r--r--lib/wx/src/gen/wxJoystickEvent.erl14
-rw-r--r--lib/wx/src/gen/wxKeyEvent.erl14
-rw-r--r--lib/wx/src/gen/wxLayoutAlgorithm.erl12
-rw-r--r--lib/wx/src/gen/wxListBox.erl24
-rw-r--r--lib/wx/src/gen/wxListCtrl.erl54
-rw-r--r--lib/wx/src/gen/wxListEvent.erl18
-rw-r--r--lib/wx/src/gen/wxListItem.erl12
-rw-r--r--lib/wx/src/gen/wxListView.erl18
-rw-r--r--lib/wx/src/gen/wxListbook.erl20
-rw-r--r--lib/wx/src/gen/wxLogNull.erl12
-rw-r--r--lib/wx/src/gen/wxMDIChildFrame.erl22
-rw-r--r--lib/wx/src/gen/wxMDIClientWindow.erl18
-rw-r--r--lib/wx/src/gen/wxMDIParentFrame.erl22
-rw-r--r--lib/wx/src/gen/wxMask.erl16
-rw-r--r--lib/wx/src/gen/wxMaximizeEvent.erl14
-rw-r--r--lib/wx/src/gen/wxMemoryDC.erl16
-rw-r--r--lib/wx/src/gen/wxMenu.erl36
-rw-r--r--lib/wx/src/gen/wxMenuBar.erl18
-rw-r--r--lib/wx/src/gen/wxMenuEvent.erl14
-rw-r--r--lib/wx/src/gen/wxMenuItem.erl12
-rw-r--r--lib/wx/src/gen/wxMessageDialog.erl22
-rw-r--r--lib/wx/src/gen/wxMiniFrame.erl22
-rw-r--r--lib/wx/src/gen/wxMirrorDC.erl16
-rw-r--r--lib/wx/src/gen/wxMouseCaptureChangedEvent.erl14
-rw-r--r--lib/wx/src/gen/wxMouseEvent.erl14
-rw-r--r--lib/wx/src/gen/wxMoveEvent.erl14
-rw-r--r--lib/wx/src/gen/wxMultiChoiceDialog.erl22
-rw-r--r--lib/wx/src/gen/wxNavigationKeyEvent.erl14
-rw-r--r--lib/wx/src/gen/wxNcPaintEvent.erl14
-rw-r--r--lib/wx/src/gen/wxNotebook.erl20
-rw-r--r--lib/wx/src/gen/wxNotebookEvent.erl18
-rw-r--r--lib/wx/src/gen/wxNotifyEvent.erl16
-rw-r--r--lib/wx/src/gen/wxPageSetupDialog.erl12
-rw-r--r--lib/wx/src/gen/wxPageSetupDialogData.erl14
-rw-r--r--lib/wx/src/gen/wxPaintDC.erl18
-rw-r--r--lib/wx/src/gen/wxPaintEvent.erl14
-rw-r--r--lib/wx/src/gen/wxPalette.erl12
-rw-r--r--lib/wx/src/gen/wxPaletteChangedEvent.erl14
-rw-r--r--lib/wx/src/gen/wxPanel.erl18
-rw-r--r--lib/wx/src/gen/wxPasswordEntryDialog.erl24
-rw-r--r--lib/wx/src/gen/wxPen.erl12
-rw-r--r--lib/wx/src/gen/wxPickerBase.erl18
-rw-r--r--lib/wx/src/gen/wxPostScriptDC.erl16
-rw-r--r--lib/wx/src/gen/wxPreviewCanvas.erl20
-rw-r--r--lib/wx/src/gen/wxPreviewControlBar.erl20
-rw-r--r--lib/wx/src/gen/wxPreviewFrame.erl22
-rw-r--r--lib/wx/src/gen/wxPrintData.erl12
-rw-r--r--lib/wx/src/gen/wxPrintDialog.erl24
-rw-r--r--lib/wx/src/gen/wxPrintDialogData.erl12
-rw-r--r--lib/wx/src/gen/wxPrintPreview.erl12
-rw-r--r--lib/wx/src/gen/wxPrinter.erl12
-rw-r--r--lib/wx/src/gen/wxPrintout.erl12
-rw-r--r--lib/wx/src/gen/wxProgressDialog.erl22
-rw-r--r--lib/wx/src/gen/wxQueryNewPaletteEvent.erl14
-rw-r--r--lib/wx/src/gen/wxRadioBox.erl24
-rw-r--r--lib/wx/src/gen/wxRadioButton.erl20
-rw-r--r--lib/wx/src/gen/wxRegion.erl24
-rw-r--r--lib/wx/src/gen/wxSashEvent.erl16
-rw-r--r--lib/wx/src/gen/wxSashLayoutWindow.erl20
-rw-r--r--lib/wx/src/gen/wxSashWindow.erl18
-rw-r--r--lib/wx/src/gen/wxScreenDC.erl16
-rw-r--r--lib/wx/src/gen/wxScrollBar.erl20
-rw-r--r--lib/wx/src/gen/wxScrollEvent.erl16
-rw-r--r--lib/wx/src/gen/wxScrollWinEvent.erl14
-rw-r--r--lib/wx/src/gen/wxScrolledWindow.erl20
-rw-r--r--lib/wx/src/gen/wxSetCursorEvent.erl14
-rw-r--r--lib/wx/src/gen/wxShowEvent.erl14
-rw-r--r--lib/wx/src/gen/wxSingleChoiceDialog.erl22
-rw-r--r--lib/wx/src/gen/wxSizeEvent.erl14
-rw-r--r--lib/wx/src/gen/wxSizer.erl40
-rw-r--r--lib/wx/src/gen/wxSizerFlags.erl12
-rw-r--r--lib/wx/src/gen/wxSizerItem.erl14
-rw-r--r--lib/wx/src/gen/wxSlider.erl20
-rw-r--r--lib/wx/src/gen/wxSpinButton.erl20
-rw-r--r--lib/wx/src/gen/wxSpinCtrl.erl22
-rw-r--r--lib/wx/src/gen/wxSpinEvent.erl18
-rw-r--r--lib/wx/src/gen/wxSplashScreen.erl22
-rw-r--r--lib/wx/src/gen/wxSplitterEvent.erl18
-rw-r--r--lib/wx/src/gen/wxSplitterWindow.erl18
-rw-r--r--lib/wx/src/gen/wxStaticBitmap.erl20
-rw-r--r--lib/wx/src/gen/wxStaticBox.erl20
-rw-r--r--lib/wx/src/gen/wxStaticBoxSizer.erl20
-rw-r--r--lib/wx/src/gen/wxStaticLine.erl20
-rw-r--r--lib/wx/src/gen/wxStaticText.erl20
-rw-r--r--lib/wx/src/gen/wxStatusBar.erl18
-rw-r--r--lib/wx/src/gen/wxStdDialogButtonSizer.erl18
-rw-r--r--lib/wx/src/gen/wxStyledTextCtrl.erl20
-rw-r--r--lib/wx/src/gen/wxStyledTextEvent.erl16
-rw-r--r--lib/wx/src/gen/wxSysColourChangedEvent.erl14
-rw-r--r--lib/wx/src/gen/wxTextAttr.erl12
-rw-r--r--lib/wx/src/gen/wxTextCtrl.erl20
-rw-r--r--lib/wx/src/gen/wxTextDataObject.erl16
-rw-r--r--lib/wx/src/gen/wxTextEntryDialog.erl22
-rw-r--r--lib/wx/src/gen/wxToggleButton.erl20
-rw-r--r--lib/wx/src/gen/wxToolBar.erl26
-rw-r--r--lib/wx/src/gen/wxToolTip.erl12
-rw-r--r--lib/wx/src/gen/wxToolbook.erl20
-rw-r--r--lib/wx/src/gen/wxTopLevelWindow.erl16
-rw-r--r--lib/wx/src/gen/wxTreeCtrl.erl10
-rw-r--r--lib/wx/src/gen/wxTreeEvent.erl8
-rw-r--r--lib/wx/src/gen/wxTreebook.erl20
-rw-r--r--lib/wx/src/gen/wxUpdateUIEvent.erl16
-rw-r--r--lib/wx/src/gen/wxWindow.erl34
-rw-r--r--lib/wx/src/gen/wxWindowCreateEvent.erl16
-rw-r--r--lib/wx/src/gen/wxWindowDC.erl16
-rw-r--r--lib/wx/src/gen/wxWindowDestroyEvent.erl16
-rw-r--r--lib/wx/src/gen/wxXmlResource.erl12
-rw-r--r--lib/wx/src/gen/wx_misc.erl10
-rw-r--r--lib/wx/src/gen/wxe_debug.hrl3515
-rw-r--r--lib/wx/src/gen/wxe_funcs.hrl3513
-rw-r--r--lib/wx/test/wx_class_SUITE.erl8
560 files changed, 33963 insertions, 52254 deletions
diff --git a/lib/.gitignore b/lib/.gitignore
index 0cb938ea7c..fc8a1c5568 100644
--- a/lib/.gitignore
+++ b/lib/.gitignore
@@ -1,3 +1,31 @@
+# common test
+
+/common_test/doc/src/ct.xml
+/common_test/doc/src/ct_cover.xml
+/common_test/doc/src/ct_ftp.xml
+/common_test/doc/src/ct_master.xml
+/common_test/doc/src/ct_rpc.xml
+/common_test/doc/src/ct_snmp.xml
+/common_test/doc/src/ct_ssh.xml
+/common_test/doc/src/ct_telnet.xml
+/common_test/doc/src/unix_telnet.xml
+
+# edoc
+
+/edoc/doc/src/chapter.xml
+/edoc/doc/src/edoc.xml
+/edoc/doc/src/edoc_doclet.xml
+/edoc/doc/src/edoc_extract.xml
+/edoc/doc/src/edoc_layout.xml
+/edoc/doc/src/edoc_lib.xml
+/edoc/doc/src/edoc_run.xml
+
+# eunit
+
+/eunit/doc/src/chapter.xml
+/eunit/doc/src/eunit.xml
+/eunit/doc/src/eunit_surefire.xml
+
# erl_interface
/erl_interface/bin
@@ -5,6 +33,15 @@
/erl_interface/obj.st
/erl_interface/obj
+# gs
+
+/gs/doc/src/gs_chapter2.xml
+/gs/doc/src/gs_chapter4.xml
+/gs/doc/src/gs_chapter5.xml
+/gs/doc/src/gs_chapter6.xml
+/gs/doc/src/gs_chapter7.xml
+/gs/doc/src/gs_chapter8.xml
+
# megaco
/megaco/src/binary/megaco_ber_bin_drv_media_gateway_control_prev3a.erl
@@ -92,6 +129,16 @@
/megaco/src/text/megaco_text_parser_v2.erl
/megaco/src/text/megaco_text_parser_v3.erl
+# mnesia
+
+/mnesia/doc/src/Mnesia_App_B.xml
+/mnesia/doc/src/Mnesia_App_C.xml
+/mnesia/doc/src/Mnesia_App_D.xml
+/mnesia/doc/src/Mnesia_chap2.xml
+/mnesia/doc/src/Mnesia_chap4.xml
+/mnesia/doc/src/Mnesia_chap5.xml
+/mnesia/doc/src/Mnesia_chap7.xml
+
# orber & cos* applications
/cosEvent/include/CosEventChannelAdmin.hrl
@@ -469,3 +516,41 @@
/orber/src/oe_OrberIFR.hrl
/orber/src/oe_erlang.erl
/orber/src/oe_erlang.hrl
+
+# percept
+
+/percept/doc/src/egd.xml
+/percept/doc/src/egd_ug.xml
+/percept/doc/src/percept.xml
+/percept/doc/src/percept_profile.xml
+/percept/doc/src/percept_ug.xml
+
+# syntax_tools
+
+/syntax_tools/doc/src/chapter.xml
+/syntax_tools/doc/src/epp_dodger.xml
+/syntax_tools/doc/src/erl_comment_scan.xml
+/syntax_tools/doc/src/erl_prettypr.xml
+/syntax_tools/doc/src/erl_recomment.xml
+/syntax_tools/doc/src/erl_syntax.xml
+/syntax_tools/doc/src/erl_syntax_lib.xml
+/syntax_tools/doc/src/erl_tidy.xml
+/syntax_tools/doc/src/igor.xml
+/syntax_tools/doc/src/prettypr.xml
+
+# wx
+
+/wx/doc/src/chapter.xml
+/wx/doc/src/gl.xml
+/wx/doc/src/glu.xml
+/wx/doc/src/ref_man.xml
+
+# xmerl
+
+/xmerl/doc/src/xmerl.xml
+/xmerl/doc/src/xmerl_eventp.xml
+/xmerl/doc/src/xmerl_scan.xml
+/xmerl/doc/src/xmerl_ug.xml
+/xmerl/doc/src/xmerl_xpath.xml
+/xmerl/doc/src/xmerl_xs.xml
+/xmerl/doc/src/xmerl_xsd.xml
diff --git a/lib/Makefile b/lib/Makefile
index 66062068b2..f5ffc6f166 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1996-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1996-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
include $(ERL_TOP)/make/target.mk
@@ -51,7 +51,7 @@ else
# --------------
#
ERTS_SUB_DIRECTORIES = stdlib sasl kernel compiler
- OTHER_SUB_DIRECTORIES = tools
+ OTHER_SUB_DIRECTORIES = tools test_server
ifdef BUILD_ALL
ifeq ($(findstring win32,$(TARGET)),win32) # BUILD_ALL on win32
OTHER_SUB_DIRECTORIES += \
@@ -60,7 +60,7 @@ else
public_key ssl toolbar tv observer debugger reltool odbc runtime_tools \
cosTransactions cosEvent cosTime cosNotification cosProperty \
cosFileTransfer cosEventDomain et megaco webtool \
- xmerl edoc eunit ssh inviso typer docbuilder erl_docgen test_server common_test percept
+ xmerl edoc eunit ssh inviso typer docbuilder erl_docgen common_test percept
# dialyzer
OTHER_SUB_DIRECTORIES += hipe
else # BUILD_ALL on unix
@@ -70,7 +70,7 @@ else
pman public_key ssl toolbar tv observer odbc \
runtime_tools cosTransactions cosEvent cosTime cosNotification \
cosProperty cosFileTransfer cosEventDomain et megaco webtool \
- xmerl edoc eunit ssh inviso typer docbuilder erl_docgen test_server common_test percept
+ xmerl edoc eunit ssh inviso typer docbuilder erl_docgen common_test percept
# dialyzer
OTHER_SUB_DIRECTORIES += hipe $(TSP_APP)
endif
diff --git a/lib/appmon/vsn.mk b/lib/appmon/vsn.mk
index cbf0a88737..78b95e5688 100644
--- a/lib/appmon/vsn.mk
+++ b/lib/appmon/vsn.mk
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1997-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1997-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
-APPMON_VSN = 2.1.10.2
+APPMON_VSN = 2.1.11
diff --git a/lib/asn1/c_src/Makefile b/lib/asn1/c_src/Makefile
index 53da8fd035..906c513fad 100644
--- a/lib/asn1/c_src/Makefile
+++ b/lib/asn1/c_src/Makefile
@@ -1,20 +1,132 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2002-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2002-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
#
-include $(ERL_TOP)/make/run_make.mk
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+include $(ERL_TOP)/make/$(TARGET)/otp_ded.mk
+
+CC = $(DED_CC)
+LD = $(DED_LD)
+LIBS = $(DED_LIBS)
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../vsn.mk
+VSN=$(ASN1_VSN)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/asn1-$(VSN)
+
+
+# ----------------------------------------------------
+# FLAGS misc
+# ----------------------------------------------------
+ifeq ($(TYPE),debug)
+TYPEMARKER = .debug
+else
+TYPEMARKER =
+endif
+
+EI_LIBDIR = $(ERL_TOP)/lib/erl_interface/obj$(TYPEMARKER)/$(TARGET)
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+EI_INCLUDES = -I$(ERL_TOP)/lib/erl_interface/include
+CFLAGS = $(DED_INCLUDES) $(EI_INCLUDES) $(DED_CFLAGS)
+LDFLAGS += $(DED_LDFLAGS)
+
+LD_INCL_EI = -L$(EI_LIBDIR)
+
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+
+C_FILES = asn1_erl_driver.c
+
+
+ifeq ($(TARGET),win32)
+LD_EI = -lei_md
+SHARED_OBJ_FILES = $(LIBDIR)/asn1_erl_drv.dll
+OBJ_FILES = $(OBJDIR)/asn1_erl_drv.o
+CLIB_FLAGS =
+LN=cp
+else
+LD_EI = -lei
+OBJ_FILES = $(OBJDIR)/asn1_erl_drv.o
+ifeq ($(findstring vxworks,$(TARGET)),vxworks)
+SHARED_OBJ_FILES = $(LIBDIR)/asn1_erl_drv.eld
+CLIB_FLAGS =
+else
+SHARED_OBJ_FILES = $(LIBDIR)/asn1_erl_drv.so
+CLIB_FLAGS = -lc
+endif
+LN= ln -s
+endif
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+
+opt: $(OBJDIR) $(LIBDIR) $(SHARED_OBJ_FILES)
+
+debug: opt
+
+clean:
+ rm -f core *~
+ rm -f $(LIBDIR)/*
+ rm -f $(OBJDIR)/*
+
+docs:
+
+# ----------------------------------------------------
+# Special Build Targets
+# ----------------------------------------------------
+
+
+$(OBJ_FILES): $(C_FILES)
+ $(CC) -c $(CFLAGS) -o $(OBJ_FILES) $(C_FILES)
+
+$(SHARED_OBJ_FILES): $(OBJ_FILES)
+ $(LD) $(LDFLAGS) $(LD_INCL_EI) -o $(SHARED_OBJ_FILES) $(OBJ_FILES) $(LD_EI) $(CLIB_FLAGS) $(LIBS)
+
+$(LIBDIR):
+ -mkdir -p $(LIBDIR)
+
+$(OBJDIR):
+ -mkdir -p $(OBJDIR)
+
+
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/priv/lib
+ $(INSTALL_DATA) $(SHARED_OBJ_FILES) $(RELSYSDIR)/priv/lib
+ $(INSTALL_DIR) $(RELSYSDIR)/c_src
+ $(INSTALL_DATA) $(C_FILES) $(RELSYSDIR)/c_src
+
+release_docs_spec:
+
diff --git a/lib/asn1/c_src/Makefile.in b/lib/asn1/c_src/Makefile.in
deleted file mode 100644
index b4a0cddba1..0000000000
--- a/lib/asn1/c_src/Makefile.in
+++ /dev/null
@@ -1,139 +0,0 @@
-#
-# %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%
-#
-#
-include $(ERL_TOP)/make/target.mk
-include $(ERL_TOP)/make/$(TARGET)/otp.mk
-
-ERLANG_OSTYPE = @ERLANG_OSTYPE@
-
-CC = @CC@
-
-LD = @DED_LD@
-LIBS = @LIBS@
-
-LIBDIR = $(ERL_TOP)/lib/asn1/priv/lib/$(TARGET)
-OBJDIR = $(ERL_TOP)/lib/asn1/priv/obj/$(TARGET)
-
-# ----------------------------------------------------
-# Application version
-# ----------------------------------------------------
-include ../vsn.mk
-VSN=$(ASN1_VSN)
-
-# ----------------------------------------------------
-# Release directory specification
-# ----------------------------------------------------
-RELSYSDIR = $(RELEASE_PATH)/lib/asn1-$(VSN)
-
-
-# ----------------------------------------------------
-# FLAGS misc
-# ----------------------------------------------------
-ifeq ($(TYPE),debug)
-TYPEMARKER = .debug
-else
-TYPEMARKER =
-endif
-
-EI_LIBDIR = $(ERL_TOP)/lib/erl_interface/obj$(TYPEMARKER)/$(TARGET)
-
-# ----------------------------------------------------
-# FLAGS
-# ----------------------------------------------------
-EI_INCLUDES = -I$(ERL_TOP)/lib/erl_interface/include
-DRIVER_INCLUDES = -I$(ERL_TOP)/erts/emulator/beam \
- -I$(ERL_TOP)/erts/emulator/sys/$(ERLANG_OSTYPE)
-CFLAGS = $(DRIVER_INCLUDES) $(EI_INCLUDES) @DED_CFLAGS@
-LDFLAGS += @DED_LDFLAGS@
-
-LD_INCL_EI = -L$(EI_LIBDIR)
-
-# ----------------------------------------------------
-# Target Specs
-# ----------------------------------------------------
-
-C_FILES = asn1_erl_driver.c
-
-
-ifeq ($(TARGET),win32)
-LD_EI = -lei_md
-SHARED_OBJ_FILES = $(LIBDIR)/asn1_erl_drv.dll
-OBJ_FILES = $(OBJDIR)/asn1_erl_drv.o
-CLIB_FLAGS =
-LN=cp
-else
-LD_EI = -lei
-OBJ_FILES = $(OBJDIR)/asn1_erl_drv.o
-ifeq ($(findstring vxworks,$(TARGET)),vxworks)
-SHARED_OBJ_FILES = $(LIBDIR)/asn1_erl_drv.eld
-CLIB_FLAGS =
-else
-SHARED_OBJ_FILES = $(LIBDIR)/asn1_erl_drv.so
-CLIB_FLAGS = -lc
-endif
-LN= ln -s
-endif
-
-# ----------------------------------------------------
-# Targets
-# ----------------------------------------------------
-
-opt: $(OBJDIR) $(LIBDIR) $(SHARED_OBJ_FILES)
-
-debug: opt
-
-clean:
- rm -f core *~
- rm -f $(LIBDIR)/*
- rm -f $(OBJDIR)/*
-
-docs:
-
-# ----------------------------------------------------
-# Special Build Targets
-# ----------------------------------------------------
-
-
-$(OBJ_FILES): $(C_FILES) $(OBJDIR)
- $(CC) -c $(CFLAGS) -o $(OBJ_FILES) $(C_FILES)
-
-$(SHARED_OBJ_FILES): $(OBJ_FILES) $(LIBDIR)
- $(LD) $(LDFLAGS) $(LD_INCL_EI) -o $(SHARED_OBJ_FILES) $(OBJ_FILES) $(LD_EI) $(CLIB_FLAGS) $(LIBS)
-
-$(LIBDIR):
- -mkdir -p $(LIBDIR)
-
-$(OBJDIR):
- -mkdir -p $(OBJDIR)
-
-
-
-# ----------------------------------------------------
-# Release Target
-# ----------------------------------------------------
-include $(ERL_TOP)/make/otp_release_targets.mk
-
-release_spec: opt
- $(INSTALL_DIR) $(RELSYSDIR)/priv/lib
- $(INSTALL_DATA) $(SHARED_OBJ_FILES) $(RELSYSDIR)/priv/lib
- $(INSTALL_DIR) $(RELSYSDIR)/c_src
- $(INSTALL_DATA) $(C_FILES) $(RELSYSDIR)/c_src
-
-release_docs_spec:
-
diff --git a/lib/common_test/info b/lib/common_test/info
index 1819ca2aad..6b2778f3e6 100644
--- a/lib/common_test/info
+++ b/lib/common_test/info
@@ -1,2 +1,2 @@
-group: tools
+group: test
short: A portable framework for automatic testing
diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml
index daa686bc56..bbd3f1043d 100644
--- a/lib/compiler/doc/src/compile.xml
+++ b/lib/compiler/doc/src/compile.xml
@@ -732,7 +732,7 @@ pi() -> 3.1416.
<p>A string describing the error is obtained with the following
call:</p>
<code>
-apply(Module, format_error, ErrorDescriptor)
+Module:format_error(ErrorDescriptor)
</code>
</section>
diff --git a/lib/compiler/src/Makefile b/lib/compiler/src/Makefile
index fde2b1a655..70ddd54145 100644
--- a/lib/compiler/src/Makefile
+++ b/lib/compiler/src/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1996-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1996-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -45,46 +45,46 @@ RELSYSDIR = $(RELEASE_PATH)/lib/compiler-$(VSN)
# Target Specs
# ----------------------------------------------------
MODULES = \
- compile \
- sys_pre_attributes \
- sys_pre_expand \
- sys_expand_pmod \
- v3_core \
- sys_core_fold \
- sys_core_inline \
- sys_core_dsetel \
- core_lib \
- core_scan \
- core_parse \
- core_lint \
- core_pp \
- v3_kernel \
- v3_kernel_pp \
- v3_life \
- v3_codegen \
+ beam_asm \
beam_block \
beam_bool \
- beam_dead \
- beam_jump \
- beam_type \
- beam_clean \
- beam_peep \
beam_bsm \
- beam_trim \
+ beam_clean \
+ beam_dead \
+ beam_dict \
+ beam_disasm \
beam_flatten \
+ beam_jump \
beam_listing \
- beam_asm \
- beam_dict \
beam_opcodes \
- beam_disasm \
+ beam_peep \
+ beam_trim \
+ beam_type \
beam_utils \
beam_validator \
- erl_bifs \
cerl \
cerl_clauses \
cerl_inline \
cerl_trees \
- rec_env
+ compile \
+ core_lib \
+ core_lint \
+ core_parse \
+ core_pp \
+ core_scan \
+ erl_bifs \
+ rec_env \
+ sys_core_dsetel \
+ sys_core_fold \
+ sys_core_inline \
+ sys_expand_pmod \
+ sys_pre_attributes \
+ sys_pre_expand \
+ v3_codegen \
+ v3_core \
+ v3_kernel \
+ v3_kernel_pp \
+ v3_life
BEAM_H = $(wildcard ../priv/beam_h/*.h)
@@ -114,6 +114,9 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# FLAGS
# ----------------------------------------------------
+ifeq ($(NATIVE_LIBS_ENABLED),yes)
+ERL_COMPILE_FLAGS += +native
+endif
ERL_COMPILE_FLAGS += +inline +warn_unused_import -I../../stdlib/include -I$(EGEN) -W
# ----------------------------------------------------
diff --git a/lib/compiler/src/compile.erl b/lib/compiler/src/compile.erl
index 58e147d508..b853800d73 100644
--- a/lib/compiler/src/compile.erl
+++ b/lib/compiler/src/compile.erl
@@ -187,9 +187,9 @@ format_error(no_crypto_key) ->
format_error({native, E}) ->
io_lib:fwrite("native-code compilation failed with reason: ~P.",
[E, 25]);
-format_error({native_crash, E}) ->
- io_lib:fwrite("native-code compilation crashed with reason: ~P.",
- [E, 25]);
+format_error({native_crash,E,Stk}) ->
+ io_lib:fwrite("native-code compilation crashed with reason: ~P.\n~P\n",
+ [E,25,Stk,25]);
format_error({open,E}) ->
io_lib:format("open error '~s'", [file:format_error(E)]);
format_error({epp,E}) ->
@@ -717,7 +717,7 @@ read_beam_file(St) ->
case file:read_file(St#compile.ifile) of
{ok,Beam} ->
Infile = St#compile.ifile,
- case is_too_old(Infile) of
+ case no_native_compilation(Infile, St) of
true ->
{ok,St#compile{module=none,code=none}};
false ->
@@ -730,12 +730,15 @@ read_beam_file(St) ->
{error,St#compile{errors=St#compile.errors ++ Es}}
end.
-is_too_old(BeamFile) ->
+no_native_compilation(BeamFile, #compile{options=Opts0}) ->
case beam_lib:chunks(BeamFile, ["CInf"]) of
{ok,{_,[{"CInf",Term0}]}} ->
Term = binary_to_term(Term0),
- Opts = proplists:get_value(options, Term, []),
- lists:member(no_new_funs, Opts);
+
+ %% Compiler options in the beam file will override
+ %% options passed to the compiler.
+ Opts = proplists:get_value(options, Term, []) ++ Opts0,
+ member(no_new_funs, Opts) orelse not is_native_enabled(Opts);
_ -> false
end.
@@ -1046,7 +1049,14 @@ beam_asm(#compile{ifile=File,code=Code0,abstract_code=Abst,options=Opts0}=St) ->
test_native(#compile{options=Opts}) ->
%% This test is done late, in case some other option has turned off native.
- member(native, Opts).
+ %% 'native' given on the command line can be overridden by
+ %% 'no_native' in the module itself.
+ is_native_enabled(Opts).
+
+is_native_enabled([native|_]) -> true;
+is_native_enabled([no_native|_]) -> false;
+is_native_enabled([_|Opts]) -> is_native_enabled(Opts);
+is_native_enabled([]) -> false.
native_compile(#compile{code=none}=St) -> {ok,St};
native_compile(St) ->
@@ -1070,25 +1080,27 @@ native_compile_1(St) ->
St#compile.core_code,
St#compile.code,
Opts) of
- {ok, {_Type,Bin} = T} when is_binary(Bin) ->
- {ok, embed_native_code(St, T)};
- {error, R} ->
+ {ok,{_Type,Bin}=T} when is_binary(Bin) ->
+ {ok,embed_native_code(St, T)};
+ {error,R} ->
case IgnoreErrors of
true ->
- Ws = [{St#compile.ifile,[{none,?MODULE,{native,R}}]}],
- {ok, St#compile{warnings=St#compile.warnings ++ Ws}};
+ Ws = [{St#compile.ifile,[{?MODULE,{native,R}}]}],
+ {ok,St#compile{warnings=St#compile.warnings ++ Ws}};
false ->
- Es = [{St#compile.ifile,[{none,?MODULE,{native,R}}]}],
- {error, St#compile{errors=St#compile.errors ++ Es}}
+ Es = [{St#compile.ifile,[{?MODULE,{native,R}}]}],
+ {error,St#compile{errors=St#compile.errors ++ Es}}
end
catch
- error:R ->
+ Class:R ->
+ Stk = erlang:get_stacktrace(),
case IgnoreErrors of
true ->
- Ws = [{St#compile.ifile,[{none,?MODULE,{native_crash,R}}]}],
- {ok, St#compile{warnings=St#compile.warnings ++ Ws}};
+ Ws = [{St#compile.ifile,
+ [{?MODULE,{native_crash,R,Stk}}]}],
+ {ok,St#compile{warnings=St#compile.warnings ++ Ws}};
false ->
- exit(R)
+ erlang:raise(Class, R, Stk)
end
end.
diff --git a/lib/compiler/src/sys_pre_expand.erl b/lib/compiler/src/sys_pre_expand.erl
index 78dd73e0a2..f80d03dfac 100644
--- a/lib/compiler/src/sys_pre_expand.erl
+++ b/lib/compiler/src/sys_pre_expand.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%% Purpose : Expand some source Erlang constructions. This is part of the
@@ -114,7 +114,7 @@ expand_pmod(Fs0, St0) ->
St1 = St0#expand{exports=Xs, defined=Ds},
{Fs2,St2} = add_instance(Ps, Fs1, St1),
{Fs3,St3} = ensure_new(Base, Ps0, Fs2, St2),
- {Fs3,St3#expand{attributes = [{abstract, [true]}
+ {Fs3,St3#expand{attributes = [{abstract, 0, [true]}
| St3#expand.attributes]}}
end.
@@ -173,7 +173,7 @@ define_functions(Forms, #expand{defined=Predef}=St) ->
St#expand{defined=ordsets:from_list(Fs)}.
module_attrs(St) ->
- {[{attribute,0,Name,Val} || {Name,Val} <- St#expand.attributes],St}.
+ {[{attribute,Line,Name,Val} || {Name,Line,Val} <- St#expand.attributes],St}.
module_predef_funcs(St) ->
PreDef = [{module_info,0},{module_info,1}],
@@ -197,8 +197,8 @@ module_predef_funcs(St) ->
forms([{attribute,_,file,_File}=F|Fs0], St0) ->
{Fs,St1} = forms(Fs0, St0),
{[F|Fs],St1};
-forms([{attribute,_,Name,Val}|Fs0], St0) ->
- St1 = attribute(Name, Val, St0),
+forms([{attribute,Line,Name,Val}|Fs0], St0) ->
+ St1 = attribute(Name, Val, Line, St0),
forms(Fs0, St1);
forms([{function,L,N,A,Cs}|Fs0], St0) ->
{Ff,St1} = function(L, N, A, Cs, St0),
@@ -207,30 +207,30 @@ forms([{function,L,N,A,Cs}|Fs0], St0) ->
forms([_|Fs], St) -> forms(Fs, St);
forms([], St) -> {[],St}.
-%% attribute(Attribute, Value, State) -> State'.
+%% attribute(Attribute, Value, Line, State) -> State'.
%% Process an attribute, this just affects the state.
-attribute(module, {Module, As}, St) ->
+attribute(module, {Module, As}, _L, St) ->
M = package_to_string(Module),
St#expand{module=list_to_atom(M),
- package = packages:strip_last(M),
+ package=packages:strip_last(M),
parameters=As};
-attribute(module, Module, St) ->
+attribute(module, Module, _L, St) ->
M = package_to_string(Module),
St#expand{module=list_to_atom(M),
- package = packages:strip_last(M)};
-attribute(export, Es, St) ->
+ package=packages:strip_last(M)};
+attribute(export, Es, _L, St) ->
St#expand{exports=union(from_list(Es), St#expand.exports)};
-attribute(import, Is, St) ->
+attribute(import, Is, _L, St) ->
import(Is, St);
-attribute(compile, C, St) when is_list(C) ->
+attribute(compile, C, _L, St) when is_list(C) ->
St#expand{compile=St#expand.compile ++ C};
-attribute(compile, C, St) ->
+attribute(compile, C, _L, St) ->
St#expand{compile=St#expand.compile ++ [C]};
-attribute(Name, Val, St) when is_list(Val) ->
- St#expand{attributes=St#expand.attributes ++ [{Name,Val}]};
-attribute(Name, Val, St) ->
- St#expand{attributes=St#expand.attributes ++ [{Name,[Val]}]}.
+attribute(Name, Val, Line, St) when is_list(Val) ->
+ St#expand{attributes=St#expand.attributes ++ [{Name,Line,Val}]};
+attribute(Name, Val, Line, St) ->
+ St#expand{attributes=St#expand.attributes ++ [{Name,Line,[Val]}]}.
function(L, N, A, Cs0, St0) ->
{Cs,St} = clauses(Cs0, St0#expand{func=N,arity=A,fcount=0}),
@@ -299,10 +299,10 @@ pattern({match,Line,Pat1, Pat2}, St0) ->
{TT,St2} = pattern(Pat1, St1),
{{match,Line,TT,TH},St2};
%% Compile-time pattern expressions, including unary operators.
-pattern({op,Line,Op,A}, St) ->
- {erl_eval:partial_eval({op,Line,Op,A}),St};
-pattern({op,Line,Op,L,R}, St) ->
- {erl_eval:partial_eval({op,Line,Op,L,R}),St}.
+pattern({op,_Line,_Op,_A}=Op, St) ->
+ {erl_eval:partial_eval(Op),St};
+pattern({op,_Line,_Op,_L,_R}=Op, St) ->
+ {erl_eval:partial_eval(Op),St}.
pattern_list([P0|Ps0], St0) ->
{P,St1} = pattern(P0, St0),
@@ -400,18 +400,18 @@ expr({'receive',Line,Cs0,To0,ToEs0}, St0) ->
{{'receive',Line,Cs,To,ToEs},St3};
expr({'fun',Line,Body}, St) ->
fun_tq(Line, Body, St);
-expr({call,Line,{atom,La,N},As0}, St0) ->
+expr({call,Line,{atom,La,N}=Atom,As0}, St0) ->
{As,St1} = expr_list(As0, St0),
Ar = length(As),
case erl_internal:bif(N, Ar) of
true ->
- {{call,Line,{remote,La,{atom,La,erlang},{atom,La,N}},As},St1};
+ {{call,Line,{remote,La,{atom,La,erlang},Atom},As},St1};
false ->
case imported(N, Ar, St1) of
{yes,Mod} ->
- {{call,Line,{remote,La,{atom,La,Mod},{atom,La,N}},As},St1};
+ {{call,Line,{remote,La,{atom,La,Mod},Atom},As},St1};
no ->
- {{call,Line,{atom,La,N},As},St1}
+ {{call,Line,Atom,As},St1}
end
end;
expr({call,Line,{record_field,_,_,_}=M,As0}, St0) ->
diff --git a/lib/compiler/src/v3_core.erl b/lib/compiler/src/v3_core.erl
index a39a3c538f..dfe15de4ff 100644
--- a/lib/compiler/src/v3_core.erl
+++ b/lib/compiler/src/v3_core.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%% Purpose : Transform normal Erlang to Core Erlang
@@ -164,8 +164,8 @@ form({attribute,_,file,{File,_Line}}, {Fs,As,Es,Ws,_}, _Opts) ->
form({attribute,_,_,_}=F, {Fs,As,Es,Ws,File}, _Opts) ->
{Fs,[attribute(F)|As],Es,Ws,File}.
-attribute({attribute,_,Name,Val}) ->
- {#c_literal{val=Name},#c_literal{val=Val}}.
+attribute({attribute,Line,Name,Val}) ->
+ {#c_literal{val=Name, anno=[Line]}, #c_literal{val=Val, anno=[Line]}}.
function({function,_,Name,Arity,Cs0}, Es0, Ws0, File, Opts) ->
%%ok = io:fwrite("~p - ", [{Name,Arity}]),
diff --git a/lib/configure.in b/lib/configure.in
deleted file mode 100644
index 7732556c46..0000000000
--- a/lib/configure.in
+++ /dev/null
@@ -1,37 +0,0 @@
-dnl Turn of caching
-define([AC_CACHE_LOAD], )dnl
-define([AC_CACHE_SAVE], )dnl
-
-dnl Process this file with autoconf to produce a configure script.
-AC_INIT
-
-dnl
-dnl This is just to run configure in all applications that need it.
-dnl
-
-if test -z "$ERL_TOP" || test ! -d $ERL_TOP ; then
- AC_MSG_ERROR(You need to set the environment variable ERL_TOP!)
-fi
-erl_top=${ERL_TOP}
-AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf)
-
-dnl Version 2.55 of autoconf generate code that assume a
-dnl sub directory isn't a link. Internally at Ericsson
-dnl some OTP application directories are soft links.
-dnl An added "/." solves this problem.
-dnl
-dnl The arguments to AC_CONFIG_SUBDIRS should be literals
-dnl but a bug in autoconf 2.13 breaks conditional use
-dnl of multiple AC_CONFIG_SUBDIRS so we do it the "wrong"
-dnl way to force correct code.
-
-appdirs=""
-for d in * ; do
- if test -f "$d/configure" ; then
- appdirs="$appdirs $d/."
- fi
-done
-
-AC_CONFIG_SUBDIRS($appdirs)
-
-AC_OUTPUT
diff --git a/lib/configure.in.src b/lib/configure.in.src
new file mode 100644
index 0000000000..792a7f932a
--- /dev/null
+++ b/lib/configure.in.src
@@ -0,0 +1,61 @@
+dnl
+dnl %CopyrightBegin%
+dnl
+dnl Copyright Ericsson AB 1999-2010. All Rights Reserved.
+dnl
+dnl The contents of this file are subject to the Erlang Public License,
+dnl Version 1.1, (the "License"); you may not use this file except in
+dnl compliance with the License. You should have received a copy of the
+dnl Erlang Public License along with this software. If not, it can be
+dnl retrieved online at http://www.erlang.org/.
+dnl
+dnl Software distributed under the License is distributed on an "AS IS"
+dnl basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+dnl the License for the specific language governing rights and limitations
+dnl under the License.
+dnl
+dnl %CopyrightEnd%
+dnl
+
+dnl Turn of caching
+define([AC_CACHE_LOAD], )dnl
+define([AC_CACHE_SAVE], )dnl
+
+dnl Process this file with autoconf to produce a configure script.
+AC_INIT
+
+dnl
+dnl This is just to run configure in all applications that need it.
+dnl
+
+if test -z "$ERL_TOP" || test ! -d $ERL_TOP ; then
+ AC_MSG_ERROR(You need to set the environment variable ERL_TOP!)
+fi
+erl_top=${ERL_TOP}
+AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf)
+
+AC_ARG_ENABLE(bootstrap-only,
+[ --enable-bootstrap-only enable bootstrap only configuration],
+[ if test "X$enableval" = "Xyes"; then
+ bootstrap_only=yes
+ else
+ bootstrap_only=no
+ fi
+],
+bootstrap_only=no)
+
+# Multiple versions of autoconf generates code that
+# don't work on all platforms (e.g. SunOS 5.8) if
+# sub directories are soft links. Internally at Ericsson
+# some OTP application directories are soft links.
+# An added "/." solves this problem.
+
+@BOOTSTRAP_CONFIGURE_APPS@
+
+if test $bootstrap_only = no; then
+
+@NON_BOOTSTRAP_CONFIGURE_APPS@
+
+fi
+
+AC_OUTPUT
diff --git a/lib/cosEvent/doc/src/CosEventChannelAdmin.xml b/lib/cosEvent/doc/src/CosEventChannelAdmin.xml
index 25f2dc805b..c599a92ff1 100644
--- a/lib/cosEvent/doc/src/CosEventChannelAdmin.xml
+++ b/lib/cosEvent/doc/src/CosEventChannelAdmin.xml
@@ -4,23 +4,21 @@
<erlref>
<header>
<copyright>
- <year>1997</year>
- <year>2007</year>
- <holder>Ericsson AB, All Rights Reserved</holder>
+ <year>1997</year><year>2010</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/.
+ 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.
+ 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>CosEventChannelAdmin</title>
@@ -73,8 +71,6 @@
<item>SupplierAdmin</item>
<item>EventChannel</item>
</list>
- <p>IDL specification for CosEventChannelAdmin:</p>
- <codeinclude file="../../src/CosEventChannelAdmin.idl" tag="" type="c"></codeinclude>
</description>
</erlref>
diff --git a/lib/cosEvent/doc/src/notes.xml b/lib/cosEvent/doc/src/notes.xml
index 8cd7b9dd48..78299a38dc 100644
--- a/lib/cosEvent/doc/src/notes.xml
+++ b/lib/cosEvent/doc/src/notes.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>1999</year><year>2009</year>
+ <year>1999</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>cosEvent Release Notes</title>
@@ -36,6 +36,18 @@
<title>cosEvent 2.1.8</title>
<section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>
+ Removed the usage of the codeinclude tag in the documentation.</p>
+ <p>
+ Own Id: OTP-8409 Aux Id:</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
<title>Fixed Bugs and Malfunctions</title>
<list type="bulleted">
<item>
diff --git a/lib/cosEvent/vsn.mk b/lib/cosEvent/vsn.mk
index 7c908d1c5d..8915903bbe 100644
--- a/lib/cosEvent/vsn.mk
+++ b/lib/cosEvent/vsn.mk
@@ -1,7 +1,8 @@
COSEVENT_VSN = 2.1.8
-TICKETS = OTP-8355
+TICKETS = OTP-8355 \
+ OTP-8409
TICKETS_2.1.7 = OTP-8201
diff --git a/lib/crypto/c_src/Makefile.in b/lib/crypto/c_src/Makefile.in
index 29263d7ac7..18040a3b26 100644
--- a/lib/crypto/c_src/Makefile.in
+++ b/lib/crypto/c_src/Makefile.in
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1999-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1999-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
include $(ERL_TOP)/make/target.mk
@@ -81,20 +81,12 @@ ifeq ($(HOST_OS),)
HOST_OS := $(shell $(ERL_TOP)/erts/autoconf/config.guess)
endif
DYNAMIC_CRYPTO_LIB=@SSL_DYNAMIC_ONLY@
-LD_R_FLAG=@DED_LD_FLAG_RUNTIME_LIBRARY_PATH@
-ifeq ($(strip $(LD_R_FLAG)),)
-LD_R_OPT =
-else
-ifeq ($(DYNAMIC_CRYPTO_LIB),yes)
-LD_R_OPT = $(LD_R_FLAG)$(SSL_LIBDIR)
-else
-LD_R_OPT =
-endif
-endif
ifeq ($(DYNAMIC_CRYPTO_LIB),yes)
-CRYPTO_LINK_LIB=-L$(SSL_LIBDIR) -lcrypto
+SSL_DED_LD_RUNTIME_LIBRARY_PATH = @SSL_DED_LD_RUNTIME_LIBRARY_PATH@
+CRYPTO_LINK_LIB=$(SSL_DED_LD_RUNTIME_LIBRARY_PATH) -L$(SSL_LIBDIR) -lcrypto
else
+SSL_DED_LD_RUNTIME_LIBRARY_PATH=
CRYPTO_LINK_LIB=$(SSL_LIBDIR)/libcrypto.a
endif
@@ -116,11 +108,11 @@ $(OBJDIR)/%.o: %.c
$(LIBDIR)/crypto_drv.so: $(OBJS)
$(INSTALL_DIR) $(LIBDIR)
- $(LD) $(LDFLAGS) $(LD_R_OPT) -o $@ $^ $(LDLIBS) $(CRYPTO_LINK_LIB)
+ $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(CRYPTO_LINK_LIB)
$(LIBDIR)/crypto_drv.dll: $(OBJS)
$(INSTALL_DIR) $(LIBDIR)
- $(LD) $(LDFLAGS) -o $@ -L$(SSL_LIBDIR) $(OBJS) -llibeay32
+ $(LD) $(LDFLAGS) -o $@ $(SSL_DED_LD_RUNTIME_LIBRARY_PATH) -L$(SSL_LIBDIR) $(OBJS) -llibeay32
clean:
rm -f $(DYN_DRIVER) $(OBJS)
@@ -136,7 +128,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk
release_spec: opt
$(INSTALL_DIR) $(RELSYSDIR)/priv/obj
$(INSTALL_DIR) $(RELSYSDIR)/priv/lib
- $(INSTALL_PROGRAM) $(DRV_MAKEFILE) $(RELSYSDIR)/priv/obj
+ $(INSTALL_DATA) $(DRV_MAKEFILE) $(RELSYSDIR)/priv/obj
$(INSTALL_PROGRAM) $(OBJS) $(RELSYSDIR)/priv/obj
$(INSTALL_PROGRAM) $(DYN_DRIVER) $(RELSYSDIR)/priv/lib
diff --git a/lib/docbuilder/info b/lib/docbuilder/info
index 33ce19fb4b..60daa212c8 100644
--- a/lib/docbuilder/info
+++ b/lib/docbuilder/info
@@ -1,2 +1,2 @@
-group: tools
+group: doc
short: Tool for generating HTML documentation for applications.
diff --git a/lib/edoc/info b/lib/edoc/info
index cb25c1e519..bc52caa78b 100644
--- a/lib/edoc/info
+++ b/lib/edoc/info
@@ -1,3 +1,3 @@
-group: tools
+group: doc Documentation Applications
short: A utility used to generate documentation out of tags in source files.
diff --git a/lib/edoc/vsn.mk b/lib/edoc/vsn.mk
index 7c7ba58cc9..2de2641b4a 100644
--- a/lib/edoc/vsn.mk
+++ b/lib/edoc/vsn.mk
@@ -1 +1 @@
-EDOC_VSN = 0.7.6.5
+EDOC_VSN = 0.7.6.6
diff --git a/lib/erl_docgen/priv/xsl/db_man.xsl b/lib/erl_docgen/priv/xsl/db_man.xsl
index a9a2781a8a..a2b1e755e2 100644
--- a/lib/erl_docgen/priv/xsl/db_man.xsl
+++ b/lib/erl_docgen/priv/xsl/db_man.xsl
@@ -176,10 +176,12 @@
<xsl:template match="/erlref">
<xsl:variable name="companyname">
<xsl:choose>
- <xsl:when test="$company = ''"><xsl:value-of select="header/holder"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="$company"/></xsl:otherwise>
+ <!-- Workaround until all of OTP's .../holder contents are correct. -->
+ <xsl:when test="starts-with(header/copyright/holder,'Ericsson AB')"><xsl:text>Ericsson AB</xsl:text></xsl:when>
+ <xsl:otherwise><xsl:value-of select="header/copyright/holder"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
+
<xsl:text>.TH </xsl:text><xsl:value-of select="module"/><xsl:text> 3 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "</xsl:text><xsl:value-of select="$companyname"/><xsl:text>" "Erlang Module Definition"&#10;</xsl:text>
<xsl:text>.SH NAME&#10;</xsl:text>
<xsl:value-of select="module"/><xsl:text> \- </xsl:text><xsl:value-of select="modulesummary"/><xsl:text>&#10;</xsl:text>
@@ -190,11 +192,12 @@
<xsl:template match="/comref">
<xsl:variable name="companyname">
<xsl:choose>
- <xsl:when test="$company = ''"><xsl:value-of select="header/holder"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="$company"/></xsl:otherwise>
+ <!-- Workaround until all of OTP's .../holder contents are correct. -->
+ <xsl:when test="starts-with(header/copyright/holder,'Ericsson AB')"><xsl:text>Ericsson AB</xsl:text></xsl:when>
+ <xsl:otherwise><xsl:value-of select="header/copyright/holder"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
- <xsl:text>.TH </xsl:text><xsl:value-of select="com"/><xsl:text> 1 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "</xsl:text><xsl:value-of select="$companyname"/><xsl:text>" "User Commands"&#10;</xsl:text>
+ <xsl:text>.TH </xsl:text><xsl:value-of select="com"/><xsl:text> 1 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "</xsl:text><xsl:value-of select="$companyname"/><xsl:text>" "User Commands"&#10;</xsl:text>
<xsl:text>.SH NAME&#10;</xsl:text>
<xsl:value-of select="com"/><xsl:text> \- </xsl:text><xsl:value-of select="comsummary"/><xsl:text>&#10;</xsl:text>
<xsl:apply-templates/>
@@ -204,8 +207,9 @@
<xsl:template match="/cref">
<xsl:variable name="companyname">
<xsl:choose>
- <xsl:when test="$company = ''"><xsl:value-of select="header/holder"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="$company"/></xsl:otherwise>
+ <!-- Workaround until all of OTP's .../holder contents are correct. -->
+ <xsl:when test="starts-with(header/copyright/holder,'Ericsson AB')"><xsl:text>Ericsson AB</xsl:text></xsl:when>
+ <xsl:otherwise><xsl:value-of select="header/copyright/holder"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:text>.TH </xsl:text><xsl:value-of select="lib"/><xsl:text> 3 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "</xsl:text><xsl:value-of select="$companyname"/><xsl:text>" "C Library Functions"&#10;</xsl:text>
@@ -218,8 +222,9 @@
<xsl:template match="/fileref">
<xsl:variable name="companyname">
<xsl:choose>
- <xsl:when test="$company = ''"><xsl:value-of select="header/holder"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="$company"/></xsl:otherwise>
+ <!-- Workaround until all of OTP's .../holder contents are correct. -->
+ <xsl:when test="starts-with(header/copyright/holder,'Ericsson AB')"><xsl:text>Ericsson AB</xsl:text></xsl:when>
+ <xsl:otherwise><xsl:value-of select="header/copyright/holder"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:text>.TH </xsl:text><xsl:value-of select="file"/><xsl:text> 5 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "</xsl:text><xsl:value-of select="$companyname"/><xsl:text>" "Files"&#10;</xsl:text>
@@ -232,8 +237,9 @@
<xsl:template match="/appref">
<xsl:variable name="companyname">
<xsl:choose>
- <xsl:when test="$company = ''"><xsl:value-of select="header/holder"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="$company"/></xsl:otherwise>
+ <!-- Workaround until all of OTP's .../holder contents are correct. -->
+ <xsl:when test="starts-with(header/copyright/holder,'Ericsson AB')"><xsl:text>Ericsson AB</xsl:text></xsl:when>
+ <xsl:otherwise><xsl:value-of select="header/copyright/holder"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:text>.TH </xsl:text><xsl:value-of select="app"/><xsl:text> 7 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "</xsl:text><xsl:value-of select="$companyname"/><xsl:text>" "Erlang Application Definition"&#10;</xsl:text>
diff --git a/lib/erl_interface/configure.in b/lib/erl_interface/configure.in
index 2f5b5673bb..7728cb97be 100644
--- a/lib/erl_interface/configure.in
+++ b/lib/erl_interface/configure.in
@@ -1,19 +1,19 @@
# -*- Autoconf -*-
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2000-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2000-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
# Process this file with autoconf to produce a configure script.
@@ -65,18 +65,12 @@ fi
TARGET=$host
AC_SUBST(TARGET)
-AC_CONFIG_HEADER([src/$host/config.h:src/auxdir/config.h.in])
+AC_CONFIG_HEADER([src/$host/config.h:config.h.in])
dnl ----------------------------------------------------------------------
dnl Optional features
dnl ----------------------------------------------------------------------
-AC_ARG_WITH(xcomp-conf,
-[ --with-xcompconf=PATH path to cross compilation configuration])
-if test "x$with_xcompconf" != "xno" -a "x$with_xcompconf" != "x" ; then
- . $with_xcompconf
-fi
-
# Use --disable-threads to force building single threaded libs even
# if pthreads exists (for test purposes).
AC_ARG_ENABLE(threads,
@@ -95,9 +89,8 @@ AC_PROG_CC
AC_PROG_CPP
dnl AC_PROG_LIBTOOL
AC_PROG_RANLIB
-if test "x$LD" = "x"; then
- AC_CHECK_TOOL([LD],[ld],[ld])
-fi
+AC_CHECK_PROG(LD, ld.sh)
+AC_CHECK_TOOL(LD, ld, '$(CC)')
AC_SUBST(LD)
AC_CHECK_SIZEOF(short)
@@ -110,8 +103,8 @@ if test $ac_cv_sizeof_void_p = 8; then
CFLAGS="$CFLAGS -DEI_64BIT"
fi
-AC_CHECK_PROG(AR, ar, ar, false)
-if test "$ac_cv_prog_AR" = false; then
+AC_CHECK_TOOL(AR, ar, false)
+if test "$AR" = false; then
AC_MSG_ERROR([No 'ar' command found in PATH])
fi
@@ -164,7 +157,7 @@ AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/socket.h>],
[socklen_t mylen;],
[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SOCKLEN_T)],
+ AC_DEFINE(HAVE_SOCKLEN_T, [], [Define if you have the `socklen_t' type])],
[AC_MSG_RESULT(no)])
# Checks for library functions.
@@ -209,7 +202,7 @@ if test "x$with_gmp" = "xyes" ;then
AC_CHECK_HEADER($dir/include/gmp.h, ac_cv_gmp=yes, ac_cv_gmp=no)
if test $ac_cv_gmp = yes ; then
CFLAGS="$CFLAGS -I$dir/include -L$dir/lib"
- AC_DEFINE(HAVE_GMP_H)
+ AC_DEFINE(HAVE_GMP_H, [], [Define if you have "gmp.h"])
break
fi
done
@@ -226,7 +219,7 @@ elif test "x$with_gmp" != "xno" -a -n "$with_gmp" ;then
fi
AC_MSG_RESULT(yes)
CFLAGS="$CFLAGS -I$with_gmp/include -L$with_gmp/lib"
- AC_DEFINE(HAVE_GMP_H)
+ AC_DEFINE(HAVE_GMP_H, [], [Define if you have "gmp.h"])
AC_CHECK_LIB(gmp, __gmpz_export)
# FIXME return ERROR if no lib
fi
@@ -279,110 +272,43 @@ AC_SUBST(MIXED_CYGWIN)
dnl
dnl Threads
dnl
-found_threads=no
THR_LIBS=
THR_DEFS=
-EI_THREADS="false"
AC_SUBST(THR_LIBS)
AC_SUBST(THR_DEFS)
AC_SUBST(EI_THREADS)
case "$threads_disabled" in
- no)
- AC_MSG_CHECKING([for native win32 threads])
- if test "X$host_os" = "Xwin32"; then
- THR_DEFS="-DWIN32_THREADS"
- found_threads=yes
- EI_THREADS="true"
- AC_MSG_RESULT([yes])
- AC_MSG_CHECKING([for __declspec(thread) usability])
- if test "X$GCC" = "Xyes"; then
- AC_MSG_RESULT([no])
- else
- THR_DEFS="$THR_DEFS -DUSE_DECLSPEC_THREAD"
- AC_MSG_RESULT([yes])
- fi
+ no)
+ LM_CHECK_THR_LIB
+
+ case "$THR_LIB_NAME" in
+ "")
+ EI_THREADS="false"
+ ;;
+ win32_threads)
+ EI_THREADS="true"
+ AC_MSG_CHECKING([for __declspec(thread) usability])
+ if test "X$GCC" = "Xyes"; then
+ AC_MSG_RESULT([no])
else
- AC_MSG_RESULT(no)
-
- dnl Check for POSIX threads
-
- pthread_lib=""
- AC_CHECK_LIB(pthread,
- pthread_create,
- [found_threads=yes
- EI_THREADS="true"
- THR_LIBS="-lpthread"
- THR_DEFS="-D_REENTRANT -D_THREAD_SAFE -DPOSIX_THREADS"
- pthread_lib=pthread])
-
- # FreeBSD has pthreads in special c library, c_r
- if test $found_threads = no; then
- AC_CHECK_LIB(c_r,
- pthread_create,
- [found_threads=yes
- EI_THREADS="true"
- THR_LIBS="-lc_r"
- THR_DEFS="-D_REENTRANT -D_THREAD_SAFE -DPOSIX_THREADS"
- pthread_lib=c_r])
- fi
-
- if test "x$pthread_lib" != "x"; then
- AC_CHECK_LIB($pthread_lib,pthread_atfork,AC_DEFINE(HAVE_PTHREAD_ATFORK))
- AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H))
- dnl Some Linuxes have <pthread/mit/pthread.h> instead of <pthread.h>
- AC_CHECK_HEADER(pthread/mit/pthread.h, AC_DEFINE(HAVE_MIT_PTHREAD_H))
- case $host_os in
- solaris*)
- THR_DEFS="$THR_DEFS -D_POSIX_PTHREAD_SEMANTICS";;
- linux*)
- dnl NPTL test stolen from $ERL_TOP/erts/aclocal.m4
- AC_MSG_CHECKING(for Native POSIX Thread Library)
- case `getconf GNU_LIBPTHREAD_VERSION 2>/dev/null` in
- nptl*) nptl=yes;;
- NPTL*) nptl=yes;;
- *) nptl=no;;
- esac
- AC_MSG_RESULT($nptl)
- if test $nptl = yes; then
- need_nptl_incldir=no
- AC_CHECK_HEADER(nptl/pthread.h, need_nptl_incldir=yes)
- if test $need_nptl_incldir = yes; then
- # Ahh...
- nptl_path="$C_INCLUDE_PATH:$CPATH:/usr/local/include:/usr/include"
- nptl_ws_path=
- save_ifs="$IFS"; IFS=":"
- for dir in $nptl_path; do
- if test "x$dir" != "x"; then
- nptl_ws_path="$nptl_ws_path $dir"
- fi
- done
- IFS=$save_ifs
- nptl_incldir=
- for dir in $nptl_ws_path; do
- AC_CHECK_HEADER($dir/nptl/pthread.h,
- nptl_incldir=$dir/nptl)
- if test "x$nptl_incldir" != "x"; then
- THR_DEFS="$THR_DEFS -isystem $nptl_incldir"
- break
- fi
- done
- if test "x$nptl_incldir" = "x"; then
- AC_MSG_ERROR(Failed to locate nptl system include directory)
- fi
- fi
- fi
-
- ;;
- *)
- ;;
- esac
- fi
+ THR_DEFS="$THR_DEFS -DUSE_DECLSPEC_THREAD"
+ AC_MSG_RESULT([yes])
fi
;;
- yes)
- # Threads disabled
- ;;
+ pthread)
+ EI_THREADS="true"
+ ;;
+ *)
+ EI_THREADS="true"
+ AC_MSG_WARN([Unexpected thread library: $THR_LIB_NAME])
+ ;;
+ esac
+ ;;
+ yes)
+ # Threads disabled
+ EI_THREADS="false"
+ ;;
esac
# ---------------------------------------------------------------------------
@@ -413,12 +339,10 @@ fi
# FIXME We want to use libtool but until then....
# ---------------------------------------------------------------------------
-AC_SUBST(DED_CFLAGS)
-dnl AC_SUBST(DED_LD)
-dnl AC_SUBST(DED_LDFLAGS)
+AC_SUBST(LIB_CFLAGS)
if test "X$host" = "Xwin32"; then
- DED_CFLAGS="$CFLAGS"
+ LIB_CFLAGS="$CFLAGS"
else
case $host_os in
darwin*)
@@ -427,9 +351,9 @@ else
esac
if test "x$GCC" = xyes; then
- DED_CFLAGS="$CFLAGS -fPIC"
+ LIB_CFLAGS="$CFLAGS -fPIC"
else
- DED_CFLAGS="$CFLAGS"
+ LIB_CFLAGS="$CFLAGS"
fi
fi
diff --git a/lib/erl_interface/src/Makefile.in b/lib/erl_interface/src/Makefile.in
index b8ee5c83c7..ec094789ce 100644
--- a/lib/erl_interface/src/Makefile.in
+++ b/lib/erl_interface/src/Makefile.in
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1997-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1997-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -106,7 +106,7 @@ WARNFLAGS = @WFLAGS@
endif
ifneq ($(findstring ose,$(TARGET)),ose)
-CFLAGS = @DED_CFLAGS@ $(WARNFLAGS) $(INCFLAGS) $(TYPE_FLAGS)
+CFLAGS = @LIB_CFLAGS@ $(WARNFLAGS) $(INCFLAGS) $(TYPE_FLAGS)
else
CFLAGS = @CFLAGS@ $(INCFLAGS)
endif
diff --git a/lib/erl_interface/src/auxdir/config.h.in b/lib/erl_interface/src/auxdir/config.h.in
deleted file mode 100644
index 523c766993..0000000000
--- a/lib/erl_interface/src/auxdir/config.h.in
+++ /dev/null
@@ -1,277 +0,0 @@
-/* config.h.in. Generated from configure.in by autoheader. */
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
- systems. This function is required for `alloca.c' support on those systems.
- */
-#undef CRAY_STACKSEG_END
-
-/* Define to 1 if using `alloca.c'. */
-#undef C_ALLOCA
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
- */
-#undef HAVE_ALLOCA_H
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#undef HAVE_CLOCK_GETTIME
-
-/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
- don't. */
-#undef HAVE_DECL_STRERROR_R
-
-/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
-#undef HAVE_DOPRNT
-
-/* Define to 1 if you have the `dup2' function. */
-#undef HAVE_DUP2
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the `fork' function. */
-#undef HAVE_FORK
-
-/* Define to 1 if you have the `gethostbyaddr' function. */
-#undef HAVE_GETHOSTBYADDR
-
-/* Define to 1 if you have the `gethostbyname' function. */
-#undef HAVE_GETHOSTBYNAME
-
-/* Define to 1 if you have the `gethostbyname_r' function. */
-#undef HAVE_GETHOSTBYNAME_R
-
-/* Define to 1 if you have the `gethostname' function. */
-#undef HAVE_GETHOSTNAME
-
-/* Define to 1 if you have the `gethrtime' function. */
-#undef HAVE_GETHRTIME
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Define to 1 if you have the <gmp.h> header file. */
-#undef HAVE_GMP_H
-
-/* Define to 1 if you have the `inet_ntoa' function. */
-#undef HAVE_INET_NTOA
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `gmp' library (-lgmp). */
-#undef HAVE_LIBGMP
-
-/* Define to 1 if you have the `m' library (-lm). */
-#undef HAVE_LIBM
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-#undef HAVE_LIBRESOLV
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
- to 0 otherwise. */
-#undef HAVE_MALLOC
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the `memchr' function. */
-#undef HAVE_MEMCHR
-
-/* Define to 1 if you have the `memmove' function. */
-#undef HAVE_MEMMOVE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `memset' function. */
-#undef HAVE_MEMSET
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#undef HAVE_NETDB_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the <pthread/mit/pthread.h> header file. */
-#undef HAVE_MIT_PTHREAD_H
-
-/* Define to 1 if you have the <pthread.h> header file. */
-#undef HAVE_PTHREAD_H
-
-/* Define to 1 if your system has a GNU libc compatible `realloc' function,
- and to 0 otherwise. */
-#undef HAVE_REALLOC
-
-/* Define if you have the res_gethostbyname function. */
-#undef HAVE_RES_GETHOSTBYNAME
-
-/* Define to 1 if you have the `select' function. */
-#undef HAVE_SELECT
-
-/* Define to 1 if you have the `socket' function. */
-#undef HAVE_SOCKET
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#undef HAVE_STDDEF_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the `strerror_r' function. */
-#undef HAVE_STRERROR_R
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strrchr' function. */
-#undef HAVE_STRRCHR
-
-/* Define to 1 if you have the `strstr' function. */
-#undef HAVE_STRSTR
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if you have the `uname' function. */
-#undef HAVE_UNAME
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `vfork' function. */
-#undef HAVE_VFORK
-
-/* Define to 1 if you have the <vfork.h> header file. */
-#undef HAVE_VFORK_H
-
-/* Define to 1 if you have the `vprintf' function. */
-#undef HAVE_VPRINTF
-
-/* Define to 1 if `fork' works. */
-#undef HAVE_WORKING_FORK
-
-/* Define to 1 if `vfork' works. */
-#undef HAVE_WORKING_VFORK
-
-/* Define if you have the writev function. */
-#undef HAVE_WRITEV
-
-/* Define if you have the socklen_t datatype */
-#undef HAVE_SOCKLEN_T
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#undef RETSIGTYPE
-
-/* Define to the type of arg 1 for `select'. */
-#undef SELECT_TYPE_ARG1
-
-/* Define to the type of args 2, 3 and 4 for `select'. */
-#undef SELECT_TYPE_ARG234
-
-/* Define to the type of arg 5 for `select'. */
-#undef SELECT_TYPE_ARG5
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define to 1 if strerror_r returns char *. */
-#undef STRERROR_R_CHAR_P
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef gid_t
-
-/* Define to rpl_malloc if the replacement function should be used. */
-#undef malloc
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef pid_t
-
-/* Define to rpl_realloc if the replacement function should be used. */
-#undef realloc
-
-/* Define to `unsigned' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef uid_t
-
-/* Define as `fork' if `vfork' does not work. */
-#undef vfork
-
-/* Define to empty if the keyword `volatile' does not work. Warning: valid
- code using `volatile' can become incorrect without. Disable with care. */
-#undef volatile
diff --git a/lib/erl_interface/src/legacy/erl_eterm.c b/lib/erl_interface/src/legacy/erl_eterm.c
index b685709c02..8d559f0f55 100644
--- a/lib/erl_interface/src/legacy/erl_eterm.c
+++ b/lib/erl_interface/src/legacy/erl_eterm.c
@@ -1,19 +1,19 @@
/*
* %CopyrightBegin%
- *
- * Copyright Ericsson AB 1996-2009. All Rights Reserved.
- *
+ *
+ * Copyright Ericsson AB 1996-2010. All Rights Reserved.
+ *
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
* compliance with the License. You should have received a copy of the
* Erlang Public License along with this software. If not, it can be
* retrieved online at http://www.erlang.org/.
- *
+ *
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
- *
+ *
* %CopyrightEnd%
*/
/*
@@ -786,6 +786,12 @@ ETERM *erl_copy_term(const ETERM *ep)
case ERL_U_SMALL_BIG:
ERL_INT_UVALUE(cp) = ERL_INT_UVALUE(ep);
break;
+ case ERL_LONGLONG:
+ ERL_LL_VALUE(cp) = ERL_LL_VALUE(ep);
+ break;
+ case ERL_U_LONGLONG:
+ ERL_LL_UVALUE(cp) = ERL_LL_UVALUE(ep);
+ break;
case ERL_FLOAT:
ERL_FLOAT_VALUE(cp) = ERL_FLOAT_VALUE(ep);
break;
diff --git a/lib/et/doc/src/book.gif b/lib/et/doc/src/book.gif
deleted file mode 100644
index 94b3868792..0000000000
--- a/lib/et/doc/src/book.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/coffee_order.png b/lib/et/doc/src/coffee_order.png
new file mode 100644
index 0000000000..b3f17e7ead
--- /dev/null
+++ b/lib/et/doc/src/coffee_order.png
Binary files differ
diff --git a/lib/et/doc/src/et.xml b/lib/et/doc/src/et.xml
index 27cc47a4b4..9b170dd7d9 100644
--- a/lib/et/doc/src/et.xml
+++ b/lib/et/doc/src/et.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>et</title>
@@ -37,30 +37,28 @@
</description>
<funcs>
<func>
- <name>report_event(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name>
- <name>report_event(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name>
- <name>phone_home(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name>
- <name>phone_home(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name>
- <fsummary>Reports an event, such as a message</fsummary>
+ <name>trace_me(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name>
+ <fsummary>A function that is intended to be traced.</fsummary>
<type>
<v>DetailLevel = integer(X) when X =&lt; 0, X >= 100</v>
<v>From = actor()</v>
<v>To = actor()</v>
- <v>FromTo = actor()</v>
<v>Label = atom() | string() | term()</v>
<v>Contents = [{Key, Value}] | term()</v>
- <v>actor() = term()</v>
+ <v>actor() = term()</v>
</type>
<desc>
- <p>Reports an event, such as a message.</p>
- <p>These functions are intended to be invoked at strategic places
- in user applications in order to enable simplified tracing.
- The functions are extremely light weight as they do nothing
- besides returning an atom. These functions are designed for
- being traced. The global tracing mechanism in et_collector
- defaults to set its trace pattern to these functions.</p>
- <p>The label is intended to provide a brief summary of the event.
- A simple tag would do.</p>
+ <p>A function that is intended to be traced.</p>
+ <p>This function is intended to be invoked at strategic places
+ in user applications in order to enable simplified
+ tracing. The functions are extremely light weight as they do
+ nothing besides returning an atom. The functions are designed
+ for being traced. The global tracing mechanism in
+ <c>et_collector</c> defaults to set its trace pattern to these
+ functions.</p>
+ <p>The label is intended to provide a brief summary of the
+ event. It is preferred to use an atom but a string would also
+ do.</p>
<p>The contents can be any term but in order to simplify
post processing of the traced events, a plain list
of {Key, Value} tuples is preferred.</p>
@@ -68,6 +66,37 @@
Other events (termed actions) may be undirected and only have one actor.</p>
</desc>
</func>
+
+ <func>
+ <name>trace_me(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name>
+ <fsummary>A function that is intended to be traced.</fsummary>
+ <desc>
+ <p>Invokes <c>et:trace_me/5</c> with both <c>From</c> and <c>To</c>
+ set to <c>FromTo</c>.</p>
+ </desc>
+ </func>
+
+ <func>
+ <name>phone_home(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name>
+ <name>phone_home(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name>
+ <fsummary>Send a signal to the outer space</fsummary>
+ <desc>
+ <p>These functions sends a signal to the outer space and the
+ caller hopes that someone is listening. In other words, they
+ invoke <c>et:trace_me/4</c> and <c>et:trace_me/5</c>
+ respectively.</p>
+ </desc>
+ </func>
+ <func>
+ <name>report_event(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name>
+ <name>report_event(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name>
+ <fsummary>Deprecated functions</fsummary>
+ <desc>
+ <p>Deprecated functions which for the time being are kept for
+ backwards compatibility. Invokes <c>et:trace_me/4</c> and
+ <c>et:trace_me/5</c> respectively.</p>
+ </desc>
+ </func>
</funcs>
</erlref>
diff --git a/lib/et/doc/src/et_architecture.xml b/lib/et/doc/src/et_architecture.xml
deleted file mode 100644
index 44e262db96..0000000000
--- a/lib/et/doc/src/et_architecture.xml
+++ /dev/null
@@ -1,554 +0,0 @@
-<?xml version="1.0" encoding="latin1" ?>
-<!DOCTYPE chapter SYSTEM "chapter.dtd">
-
-<chapter>
- <header>
- <copyright>
- <year>2002</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>Usage</title>
- <prepared>H&aring;kan Mattsson</prepared>
- <responsible>H&aring;kan Mattsson</responsible>
- <docno></docno>
- <approved>H&aring;kan Mattsson</approved>
- <checked></checked>
- <date></date>
- <rev>%VSN%</rev>
- <file>et_architecture.xml</file>
- </header>
-
- <section>
- <title>Overview</title>
- <p>The two major components of the Event Tracer (ET)
- tool is a graphical sequence chart viewer (<c>et_viewer</c>)
- and its backing storage (<c>et_collector</c>). One collector
- may be used as backing storage for several simultaneous
- viewers where each one may display a different view of
- the same trace data.</p>
- <p>The interface between the collector and its viewers
- is public in order to enable other types of viewers.
- However in the following text we will focus on usage
- of the <c>et_viewer</c>.</p>
- <p>The main start function is <c>et_viewer:start/1</c>.
- It will by default start both an <c>et_collector</c> and
- an <c>et_viewer</c>:</p>
- <p></p>
- <code type="none"><![CDATA[
- % erl -pa et/examples
- Erlang (BEAM) emulator version 2002.10.08 [source]
-
- Eshell V2002.10.08 (abort with ^G)
- 1> {ok, Viewer} = et_viewer:start([]).
- {ok,<0.31.0>}
- ]]></code>
- <p>A viewer gets trace events from its collector
- by polling it regularly for more events to display.
- Trace events are for example reported to the collector with
- <c>et_collector:report_event/6</c>:</p>
- <code type="none"><![CDATA[
- 2> Collector = et_viewer:get_collector_pid(Viewer).
- <0.30.0>
- 3> et_collector:report_event(Collector, 60, my_shell, mnesia_tm, start_outer,
- "Start outer transaction"),
- 3> et_collector:report_event(Collector, 40, mnesia_tm, my_shell, new_tid,
- "New transaction id is 4711"),
- 3> et_collector:report_event(Collector, 20, my_shell, mnesia_locker, try_write_lock,
- "Acquire write lock for {my_tab, key}"),
- 3> et_collector:report_event(Collector, 10, mnesia_locker, my_shell, granted,
- "You got the write lock for {my_tab, key}"),
- 3> et_collector:report_event(Collector, 60, my_shell, do_commit,
- "Perform transaction commit"),
- 3> et_collector:report_event(Collector, 40, my_shell, mnesia_locker, release_tid,
- "Release all locks for transaction 4711"),
- 3> et_collector:report_event(Collector, 60, my_shell, mnesia_tm, delete_transaction,
- "End of outer transaction"),
- 3> et_collector:report_event(Collector, 20, my_shell, end_outer,
- "Transaction returned {atomic, ok}").
- {ok,{table_handle,<0.30.0>,11,trace_ts,#Fun<et_collector.0.83904657>}}
- 4>
- ]]></code>
- <p>This is a simulation of the process events caused by a Mnesia
- transaction that writes a record in a local table:</p>
- <code type="none">
- mnesia:transaction(fun() -> mnesia:write({my_tab, key, val}) end).
- </code>
- <p>At this stage when we have a couple of events, it is time to
- show how it looks like in the graphical interface of
- <c>et_viewer</c>:</p>
- <p></p>
- <image file="sim_trans.gif">
- <icaption>A simulated Mnesia transaction which writes one record</icaption>
- </image>
- <p>In the sequence chart, the actors (which symbolically has performed the
- traced event) are shown as named vertical bars. The order of the
- actors may be altered by dragging (hold mouse button 1 pressed during
- the operation) the name tag of an actor and drop it elsewhere:</p>
- <image file="sim_trans_move_actor.gif">
- <icaption>Two actors has switched places</icaption>
- </image>
- <p>An event may be an action performed by one single actor (blue
- text label) or it may involve two actors and is then depicted as an
- arrow directed from one actor to another (red text label). Details of
- an event can be shown by clicking (press and release the mouse button 1)
- on the event label text or on the arrow:</p>
- <p></p>
- <image file="sim_trans_write_lock.gif">
- <icaption>Details of a write lock message</icaption>
- </image>
- </section>
-
- <section>
- <title>Filters and dictionary</title>
- <p>The Event Tracer (ET) uses named filters in various
- contexts. An Event Trace filter is an <c>Erlang fun</c>
- that takes some trace data as input and returns a possibly
- modified version of it:
- </p>
- <p></p>
- <code type="none">
- filter(TraceData) -> true | {true, NewEvent} | false
-
- TraceData = NewEvent | term()
- NewEvent = record(event)
- </code>
- <p>The interface of the filter function is the same as the the
- filter functions for the good old <c>lists:zf/2</c>. If the filter
- returns <c>false</c> it means that the <c>TraceData</c> should be
- dropped. <c>{true, NewEvent}</c> means that the <c>TraceData</c>
- should be replaced with <c>NewEvent</c>. And <c>true</c> means that the
- <c>TraceData</c> data already is an event record and that it
- should be kept as it is.
- </p>
- <p>The first filter that the trace data is exposed for is
- the collector filter. When a trace event is reported with
- <c>et_collector:report/2</c> (or <c>et_collector:report_event/5,6</c>)
- the first thing that
- happens, is that a message is sent to the collector process
- to fetch a handle that contains some useful stuff, such as
- the collector filter fun and an ets table identifier.
- Then the collector filter fun is applied and if it returns
- <c>true</c> (or <c>{true, NewEvent}</c>), the event will
- be stored in an ets table. As an optimization, subsequent
- calls to <c>et_collector:report</c>-functions can use the handle
- directly instead of the collector pid.
- </p>
- <p>The collector filter (that is the filter named
- <c>collector</c>) is a little bit special, as its input
- may be any Erlang term and is not limited to take an event
- record as the other filter functions.
- </p>
- <p>The collector manages a key/value based dictionary, where
- the filters are stored. Updates of the dictionary is
- propagated to all subscribing processes. When a viewer is
- started it is registered as a subscriber of dictionary updates.
- </p>
- <p>In a viewer there is only one filter that is active
- and all trace events that the viewer gets from the
- collector will pass thru that filter. By writing clever
- filters it is possible to customize how the events
- looks like in the viewer. The following filter replaces
- the actor names <c>mnesia_tm</c> and <c>mnesia_locker</c>
- and leaves everything else in the record as it was:
- </p>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%mgr_actors" type="erl"></codeinclude>
- <p>If we now add the filter to the running collector:
- </p>
- <p></p>
- <code type="none"><![CDATA[
- 4> Fun = fun(E) -> et_demo:mgr_actors(E) end.
- #Fun<erl_eval.5.123085357>
- 5> et_collector:dict_insert(Collector, {filter, mgr_actors}, Fun).
- ok
- 6>
- ]]></code>
- <p>you will see that the <c>Filter</c> menu in all viewers have
- got a new entry called <c>mgr_actors</c>. Select it, and a new
- viewer window will pop up:</p>
- <p></p>
- <image file="sim_trans_mgr_actors.gif">
- <icaption>The same trace data in a different view</icaption>
- </image>
- <p>In order to see the nitty gritty details of an event
- you may click on the event in order to start a contents
- viewer for that event. In the contents viewer there is
- also a filter menu in order to enable inspection of the
- event from other views than the one selected in the viewer.
- A click on the <c>new_tid</c> event will cause a contents
- viewer window to pop up, showing the event in the
- <c>mgr_actors</c> view:</p>
- <p></p>
- <image file="sim_trans_contents_viewer_mgr_actors.gif">
- <icaption>The trace event in the mgr_actors view</icaption>
- </image>
- <p>Select the <c>collector</c> entry in the <c>Filters</c>
- menu and a new contents viewer window will pop up
- showing the same trace event in the collectors view:</p>
- <p></p>
- <image file="sim_trans_contents_viewer_collector.gif">
- <icaption>The same trace event in the collectors view</icaption>
- </image>
- </section>
-
- <section>
- <title>Trace clients</title>
- <p>As you have seen it is possible to use the
- <c>et_collector:report</c>-functions explicitly. By using those functions
- you can write your own trace client that reads trace data from any
- source stored in any format and just feed the collector with it. You
- may replace the default collector filter with a filter that converts
- new exciting trace data formats to event-records or you may convert it
- to an event-record before you invoke <c>et_collector:report/2</c> and
- then rely on the default collector filter to handle the new
- format.</p>
- <p>There are also existing functions in the API that reads from
- various sources and calls <c>et_collector:report/2</c>:</p>
- <list type="bulleted">
- <item>
- <p>The trace events that are hosted by the collector may be
- stored to file and later be loaded by selecting <c>save</c>
- and <c>load</c> entries in the viewers <c>File</c>-menu or
- via the <c>et_collector</c> API.</p>
- </item>
- <item>
- <p>It is also possible to perform live tracing of a running
- system by making use of the built-in trace support in
- the Erlang emulator. These Erlang traces can be directed
- to files or to ports. See the reference manual for
- <c>erlang:trace/4</c>, <c>erlang:trace_pattern/3</c>,
- <c>dbg</c> and <c>ttb</c> for more info.</p>
- <p>There are also corresponding trace client types that can
- read the Erlang trace data format from such files or ports.
- The <c>et_collector:start_trace_client/3</c> function makes
- use of these Erlang trace clients and redirects the trace
- data to the collector.</p>
- <p>The default collector filter converts the Erlang trace data
- format into event-records.If you want to perform this
- differently you can of course write your own collector
- filter from scratch. But it may probably save you some
- efforts if you first apply the default filter in
- <c>et_selector:parse_event/2</c> before you apply your
- own conversions of its output.</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Global tracing and phone home</title>
- <p>Setting up an Erlang tracer on a set of nodes and connecting
- trace clients to the ports of these tracers is not intuitive. In order
- to make this it easier the Event Tracer as a notion of global
- tracing. When used, the <c>et_collector</c> process will monitor
- Erlang nodes and when one connects, an Erlang tracer will
- automatically be started on the other node. A corresponding trace
- client will also be started on the collector node in order to
- automatically forward the trace events to the collector. Set the
- boolean parameter <c>trace_global</c> to <c>true</c> for either the
- <c>et_collector</c> or <c>et_viewer</c> in order to activate the
- global tracing. There is no restriction on how many concurrent
- (anonymous) collectors you can have, but you can only have one global
- collector as its name is registered in <c>global</c>.</p>
- <p>In order to further simplify the tracing you can make use of the
- <c>et:report_event/4,5</c> (or its equivalents
- <c>et:phone_home/4,5</c> :-). These functions are intended to be
- invoked from other applications when there are interesting events,
- in your application that needs to be highlighted. The functions are
- extremely light weight as they do nothing besides returning an atom.
- These functions are
- specifically designed to be traced for. As the caller explicitly
- provides the values for the event-record fields, the default collector
- filter is able to automatically provide a customized event-record
- without any user defined filter functions.</p>
- <p>In normal operation the <c>et:report_event/4,5</c> calls are
- almost for free. When tracing is needed you can either activate
- tracing on these functions explicitly. Or you can combine the usage of
- <c>trace_global</c> with the usage of <c>trace_pattern</c>. When set,
- the <c>trace_pattern</c> will automatically be activated on all
- connected nodes. </p>
- <p>One nice thing with the <c>trace_pattern</c> is that it provides
- a very simple way of minimizing the amount of generated trace data by
- allowing you to explicitly control the detail level of the tracing. As
- you may have seen the <c>et_viewer</c> have a slider called
- <c>"Detail Level"</c> that allows you to control the detail level of the
- trace events displayed in the viewer. On the other hand if you set a
- low detail level in the <c>trace_pattern</c>, lots of the trace data
- will never be generated and thus not sent over the socket to the trace
- client and stored in the collector.</p>
- </section>
-
- <section>
- <title>Viewer window</title>
- <p>Almost all functionality available in the <c>et_viewer</c> is
- also available via shortcuts. Which key that has the same
- effect as selecting a menu entry is shown enclosed in
- parentheses. For example pressing the key <c>r</c> is
- equivalent to selecting the menu entry
- <c>Viewer->Refresh</c>.
- </p>
- <p>File menu:</p>
- <list type="bulleted">
- <item>
- <p>Close Collector and all Viewers - Close the collector
- and all viewers connected to that collector.</p>
- </item>
- <item>
- <p>Close other Viewers, but keep Collector - Keep this viewer
- and its collector, but close all other viewers connected
- to this collector.</p>
- </item>
- <item>
- <p>Close this Viewer, but keep Collector - Close this viewer,
- but all other viewers and the collector.</p>
- </item>
- <item>
- <p>Save Collector to file - Save all events stored in the
- collector to file.</p>
- </item>
- <item>
- <p>Load Collector from file - Load the collector with
- events from a file.</p>
- </item>
- </list>
- <p>Viewer menu:</p>
- <list type="bulleted">
- <item>
- <p>First - Scroll <c>this</c> viewer to the first collector
- event.</p>
- </item>
- <item>
- <p>Prev - Scroll <c>this</c> viewer one "page" backwards.
- Normally this means that the first event displayed in the
- viewer will be the last one and the previous <c>max_events</c>
- events will be read from the collector.</p>
- </item>
- <item>
- <p>Next - Scroll <c>this</c> viewer one "page" forward.
- Normally this means that the last event displayed in the
- viewer will be the first one and <c>max_events</c> more
- events will be read from the collector.</p>
- </item>
- <item>
- <p>Last - Scroll <c>this</c> viewer to the last collector event.</p>
- </item>
- <item>
- <p>Refresh - Clear <c>this</c> viewer and re-read its events
- from the collector.</p>
- </item>
- <item>
- <p>Up 5 - Scroll 5 events backwards.</p>
- </item>
- <item>
- <p>Down 5 - Scroll 5 events forward.</p>
- </item>
- <item>
- <p>Abort search. Display all. - Switch the display mode to
- show all events regardless of any ongoing searches.
- Abort the searches.</p>
- </item>
- </list>
- <p>Collector menu:</p>
- <list type="bulleted">
- <item>
- <p>First - Scroll <c>all</c> viewers to the first collector
- event.</p>
- </item>
- <item>
- <p>Prev - Scroll <c>all</c> viewers one "page" backwards.
- Normally this means that the first event displayed in the
- viewer will be the last one and the previous <c>max_events</c>
- events will be read from the collector.</p>
- </item>
- <item>
- <p>Next - Scroll <c>all</c> viewers one "page" forward.
- Normally this means that the last event displayed in the
- viewer will be the first one and <c>max_events</c> more
- events will be read from the collector.</p>
- </item>
- <item>
- <p>Last - Scroll <c>all</c> viewers to the last collector event.</p>
- </item>
- <item>
- <p>Refresh - Clear <c>all</c> viewers and re-read their
- events from the collector.</p>
- </item>
- </list>
- <p>Filters menu:</p>
- <list type="bulleted">
- <item>
- <p>ActiveFilter (=) - Start a new viewer window with the
- same active filter and scale as the current one.</p>
- </item>
- <item>
- <p>ActiveFilter (+) - Start a new viewer window with
- the same active filter but a larger scale than the
- current one.</p>
- </item>
- <item>
- <p>ActiveFilter (-) - Start a new viewer window with
- the same active filter but a smaller scale than the
- current one.</p>
- </item>
- <item>
- <p>collector (0) - Start a new viewer with the collector
- filter as active filter.</p>
- </item>
- <item>
- <p>AnotherFilter (2) - If more filters are inserted into
- the dictionary, these will turn up here as entries
- in the <c>Filters</c> menu. The second filter will be
- number 2, the next one number 3 etc. The names are sorted.</p>
- </item>
- </list>
- <p>Slider and radio buttons:</p>
- <list type="bulleted">
- <item>
- <p>Freeze - When true, this means that the viewer
- will not read more events from the collector
- until set to false.</p>
- </item>
- <item>
- <p>Hide From=To - When true, this means that the viewer
- will hide all events where the from-actor equals
- to its to-actor.</p>
- </item>
- <item>
- <p>Hide Unknown - When true, this means that the viewer
- will hide all events where either of the from-actor or
- to-actor is <c>UNKNOWN</c>.</p>
- </item>
- <item>
- <p>Detail level - This slider controls the resolution
- of the viewer. Only events with a detail level <c>smaller</c>
- than the selected one (default=100=max) are displayed.</p>
- </item>
- </list>
- <p>Other features:</p>
- <list type="bulleted">
- <item>
- <p>Display details of an event - Click on the event name
- and a new window will pop up, displaying the contents
- of an event.</p>
- </item>
- <item>
- <p>Toggle actor search - Normally the viewer will be in a
- display mode where all events are shown. By clicking
- on an actor name the tool will switch display mode
- to only show events with selected actors.
- </p>
- <p>Click on an actor and only events with that actor
- will be displayed. Click on another actor to include
- that actor to the selected ones. Clicking on an already
- selected actor will remove it from the collections of
- selected actors. When the collection of selected actors
- becomes empty the normal mode where all actors are shown
- will be entered again.</p>
- <p>Abort actor search with the <c>a</c> key or with the
- <c>Viewer->Abort search</c> menu choice.
- </p>
- </item>
- <item>
- <p>Move actor - Drag and drop an actor by first clicking on
- the actor name, keeping the button pressed while moving
- the cursor to a new location and release the button where
- the actor should be moved to.</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Configuration</title>
- <p>The event-records in the ets-table are ordered by their timestamp.
- Which timestamp that should be used is controlled via the
- <c>event_order</c> parameter. Default is <c>trace_ts</c> which means
- the time when the trace data was generated. <c>event_ts</c> means
- the time when the trace data was parsed (transformed into an
- event-record).</p>
- </section>
-
- <section>
- <title>Contents viewer window</title>
- <p>File menu:</p>
- <list type="bulleted">
- <item>
- <p>Close - Close this window.</p>
- </item>
- <item>
- <p>Save - Save the contents of this window to file.</p>
- </item>
- </list>
- <p>Filters menu:</p>
- <list type="bulleted">
- <item>
- <p>ActiveFilter - Start a new contents viewer window
- with the same active filter.</p>
- </item>
- <item>
- <p>AnotherFilter (2) - If more filters are inserted into
- the dictionary, these will turn up here as entries
- in the <c>Filters</c> menu. The second filter will be
- number 2, the next one number 3 etc. The names are sorted.</p>
- </item>
- </list>
- <p>Hide menu:</p>
- <list type="bulleted">
- <item>
- <p>Hide actor in viewer - Known actors are shown as a
- named vertical bars in the viewer window. By hiding the
- actor, its vertical bar will be removed and the viewer
- will be refreshed.</p>
- <p>Hiding the actor is only useful if the <c>max_actors</c>
- threshold has been reached, as it then will imply that
- the "hidden" actor will be displayed as if it were <c>"UNKNOWN"</c>.
- If the <c>max_actors</c> threshold not have been reached,
- the actor will re-appear as a vertical bar in the viewer.
- </p>
- </item>
- <item>
- <p>Show actor in viewer - This implies that the actor
- will be added as a known actor in the viewer with
- its own vertical bar.</p>
- </item>
- </list>
- <p>Search menu:</p>
- <list type="bulleted">
- <item>
- <p>Forward from this event - Set this event to be the first
- event in the viewer and change its display mode to be
- enter forward search mode. The actor of this event
- (from, to or both) will be added to the list of selected
- actors.
- </p>
- </item>
- <item>
- <p>Reverse from this event - Set this event to be the first
- event in the viewer and change its display mode to be
- enter reverse search mode. The actor of this event
- (from, to or both) will be added to the list of selected
- actors. Observe, that the events will be shown in reverse
- order.
- </p>
- </item>
- <item>
- <p>Abort search. Display all - Switch the display mode
- of the viewer to show all events regardless of any
- ongoing searches. Abort the searches.</p>
- </item>
- </list>
- </section>
-</chapter>
-
diff --git a/lib/et/doc/src/et_collector.xml b/lib/et/doc/src/et_collector.xml
index 01ca7caa5b..88c478c89a 100644
--- a/lib/et/doc/src/et_collector.xml
+++ b/lib/et/doc/src/et_collector.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>et_collector</title>
@@ -84,11 +84,12 @@
dictionary updates will be propagated to the subscriber processes
matching the pattern {{subscriber, '_'}, '_'} where the first '_'
is interpreted as a pid().</p>
- <p>In global trace mode, the collector will automatically start
- tracing on all connected Erlang nodes. When a node connects, a port
- tracer will be started on that node and a corresponding trace
- client on the collector node. By default the global trace pattern
- is 'max'.</p>
+
+ <p>In global trace mode, the collector will automatically
+ start tracing on all connected Erlang nodes. When a node
+ connects, a port tracer will be started on that node and a
+ corresponding trace client on the collector node.</p>
+
<p>Default values:</p>
<list type="bulleted">
<item>parent_pid - self().</item>
@@ -349,7 +350,7 @@
</type>
<desc>
<p>Iterate over the currently stored events.</p>
- <p>Iterates over the currently stored eventsand applies
+ <p>Iterates over the currently stored events and applies
a function for each event. The iteration may be performed
forwards or backwards and may be limited to a maximum
number of events (abs(Limit)).</p>
diff --git a/lib/et/doc/src/et_desc.xmlsrc b/lib/et/doc/src/et_desc.xmlsrc
new file mode 100644
index 0000000000..c02517ae01
--- /dev/null
+++ b/lib/et/doc/src/et_desc.xmlsrc
@@ -0,0 +1,683 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2002</year><year>2010</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>Description</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <responsible>H&aring;kan Mattsson</responsible>
+ <docno></docno>
+ <approved>H&aring;kan Mattsson</approved>
+ <checked></checked>
+ <date></date>
+ <rev>%VSN%</rev>
+ <file>et_desc.xml</file>
+ </header>
+
+ <section>
+ <title>Overview</title>
+
+ <p>The two major components of the <c>Event Tracer (ET)</c> tool
+ is a graphical sequence chart viewer (<c>et_viewer</c>) and its
+ backing storage (<c>et_collector</c>). One <c>Collector</c> may be
+ used as backing storage for several simultaneous <c>Viewers</c>
+ where each one may display a different view of the same trace
+ data.</p>
+
+ <p>The interface between the <c>Collector</c> and its
+ <c>Viewers</c> is public in order to enable other types of
+ <c>Viewers</c>. However in the following text we will focus on
+ usage of the <c>et_viewer</c>.</p>
+
+ <p>The main start function is <c>et_viewer:start/1</c>. By
+ default it will start both an <c>et_collector</c> and an
+ <c>et_viewer</c>:</p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ % erl -pa et/examples
+ Erlang R13B03 (erts-5.7.4) [64-bit] [smp:4:4] [rq:4]
+ [async-threads:0] [kernel-poll:false]
+
+ Eshell V5.7.4 (abort with ^G)
+ 1> {ok, Viewer} = et_viewer:start([]).
+ {ok,<0.40.0>}]]></code>
+
+ <p>A <c>Viewer</c> gets trace <c>Events</c> from its
+ <c>Collector</c> by polling it regularly for more <c>Events</c> to
+ display. <c>Events</c> are for example reported to the
+ <c>Collector</c> with <c>et_collector:report_event/6</c>:</p>
+
+ <code type="none"><![CDATA[
+ 2> Collector = et_viewer:get_collector_pid(Viewer).
+ <0.39.0>
+ 3> et_collector:report_event(Collector, 60, my_shell, mnesia_tm, start_outer,
+ 3> "Start outer transaction"),
+ 3> et_collector:report_event(Collector, 40, mnesia_tm, my_shell, new_tid,
+ 3> "New transaction id is 4711"),
+ 3> et_collector:report_event(Collector, 20, my_shell, mnesia_locker, try_write_lock,
+ 3> "Acquire write lock for {my_tab, key}"),
+ 3> et_collector:report_event(Collector, 10, mnesia_locker, my_shell, granted,
+ 3> "You got the write lock for {my_tab, key}"),
+ 3> et_collector:report_event(Collector, 60, my_shell, do_commit,
+ 3> "Perform transaction commit"),
+ 3> et_collector:report_event(Collector, 40, my_shell, mnesia_locker, release_tid,
+ 3> "Release all locks for transaction 4711"),
+ 3> et_collector:report_event(Collector, 60, my_shell, mnesia_tm, delete_transaction,
+ 3> "End of outer transaction"),
+ 3> et_collector:report_event(Collector, 20, my_shell, end_outer,
+ 3> "Transaction returned {atomic, ok}").
+ {ok,{table_handle,<0.39.0>,16402,trace_ts,
+ #Fun<et_collector.0.62831470>}}]]></code>
+
+ <p>This actually is a simulation of the process <c>Events</c>
+ caused by a <c>Mnesia</c> transaction that writes a record in a local
+ table:</p>
+
+ <code type="none"><![CDATA[
+ mnesia:transaction(fun() -> mnesia:write({my_tab, key, val}) end).]]></code>
+
+ <p>At this stage when we have a couple of <c>Events</c>, it is time to
+ show how it looks like in the graphical interface of
+ <c>et_viewer</c>:</p>
+
+ <p></p>
+
+ <image file="sim_trans.png">
+ <icaption>A simulated Mnesia transaction which writes one record</icaption>
+ </image>
+
+ <p>In the sequence chart, the actors (which symbolically has
+ performed the <c>Event</c>) are shown as named vertical bars. The
+ order of the actors may be altered by dragging (hold mouse button
+ 1 pressed during the operation) the name tag of an actor and drop
+ it elsewhere:</p>
+
+ <image file="sim_trans_move_actor.png">
+ <icaption>Two actors has switched places</icaption>
+ </image>
+
+ <p>An <c>Event</c> may be an action performed by one single actor
+ (blue text label) or it may involve two actors and is then
+ depicted as an arrow directed from one actor to another (red text
+ label). Details of an <c>Event</c> can be shown by clicking (press
+ and release the mouse button 1) on the event label text or on the
+ arrow. When doing that a <c>Contents Viewer</c> window pops up. It
+ may look like this:</p>
+
+ <p></p>
+
+ <image file="sim_trans_write_lock.png">
+ <icaption>Details of a write lock message</icaption>
+ </image>
+ </section>
+
+ <section>
+ <title>Filters and dictionary</title>
+
+ <p>The <c>Event Tracer (ET)</c> uses named filters in various
+ contexts. An Event Trace filter is an <c>Erlang fun</c> that takes
+ some trace data as input and returns a possibly modified version
+ of it:
+ </p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ filter(TraceData) -> false | true | {true, NewEvent}
+
+ TraceData = Event | erlang_trace_data()
+ Event = #event{}
+ NewEvent = #event{}]]></code>
+
+ <p>The interface of the filter function is the same as the the
+ filter functions for the good old <c>lists:zf/2</c>. If the filter
+ returns <c>false</c> it means that the trace data should silently
+ be dropped. <c>true</c> means that the trace data data already is
+ an <c>Event Record</c> and that it should be kept as it is.
+ <c>true</c> means that the <c>TraceData</c> already is an <c>Event
+ Record</c> and that it should be kept as it is. <c>{true,
+ NewEvent}</c> means that the original trace data should be
+ replaced with <c>Event</c>. This provides means to get rid of
+ unwanted <c>Events</c> as well as enabling alternate views of an
+ <c>Event</c>.</p>
+
+ <p>The first filter that the trace data is exposed for is the
+ <c>Collector Filter</c>. When a trace <c>Event</c> is reported with
+ <c>et_collector:report/2</c> (or
+ <c>et_collector:report_event/5,6</c>) the first thing that
+ happens, is that a message is sent to the <c>Collector</c> process
+ to fetch a handle that contains some useful stuff, such as the
+ <c>Collector Filter Fun</c> and an Ets table identifier. Then the
+ <c>Collector Filter Fun</c> is applied and if it returns
+ <c>true</c> (or <c>{true, NewEvent}</c>), the <c>Event</c> will be stored
+ in an Ets table. As an optimization, subsequent calls to
+ <c>et_collector:report</c>-functions can use the handle directly
+ instead of the <c>Collector Pid</c>.</p>
+
+ <p>All filters (registered in a <c>Collector</c> or in a
+ <c>Viewer</c>) must be able to handle an <c>Event record</c> as
+ input. The <c>Collector Filter</c> (that is the filter named
+ <c>all</c>) is a little bit special, as its input also may be raw
+ <c>Erlang Trace Data</c></p>
+
+ <p>The <c>Collector</c> manages a key/value based dictionary,
+ where the filters are stored. Updates of the dictionary is
+ propagated to all subscribing processes. When a <c>Viewer</c> is
+ started it is registered as a subscriber of dictionary
+ updates.</p>
+
+ <p>In each <c>Viewer</c> there is only one filter that is active
+ and all trace <c>Events</c> that the <c>Viewer</c> gets from the
+ <c>Collector</c> will pass thru that filter. By writing clever
+ filters it is possible to customize how the <c>Events</c> looks
+ like in the viewer. The following filter in
+ <c>et/examples/et_demo.erl</c> replaces the actor names
+ <c>mnesia_tm</c> and <c>mnesia_locker</c> and leaves everything
+ else in the record as it was:</p>
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%mgr_actors" type="erl"></codeinclude>
+ <p>If we now add the filter to the running <c>Collector</c>:</p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ 4> Fun = fun(E) -> et_demo:mgr_actors(E) end.
+ #Fun<erl_eval.6.13229925>
+ 5> et_collector:dict_insert(Collector, {filter, mgr_actors}, Fun).
+ ok]]></code>
+
+ <p>you will see that the <c>Filter</c> menu in all viewers have
+ got a new entry called <c>mgr_actors</c>. Select it, and a new
+ <c>Viewer</c> window will pop up:</p>
+
+ <p></p>
+
+ <image file="sim_trans_mgr_actors.png">
+ <icaption>The same trace data in a different view</icaption>
+ </image>
+
+ <p>In order to see the nitty gritty details of an <c>Event</c> you
+ may click on the <c>Event</c> in order to start a <c>Contents
+ Viewer</c> for that <c>Event</c>. In the <c>Contents Viewer</c>
+ there also is a filter menu that enables inspection of the
+ <c>Event</c> from other views than the one selected in the
+ viewer. A click on the <c>new_tid</c> <c>Event</c> will cause a
+ <c>Contents Viewer</c> window to pop up, showing the <c>Event</c>
+ in the <c>mgr_actors</c> view:</p>
+
+ <p></p>
+
+ <image file="sim_trans_contents_viewer_mgr_actors.png">
+ <icaption>The trace <c>Event</c> in the mgr_actors view</icaption>
+ </image>
+
+ <p>Select the <c>all</c> entry in the <c>Filters</c> menu
+ and a new <c>Contents Viewer window</c> will pop up showing the
+ same trace <c>Event</c> in the collectors view:</p>
+
+ <p></p>
+
+ <image file="sim_trans_contents_viewer_collector.png">
+ <icaption>The same trace <c>Event</c> in the collectors
+ view</icaption>
+ </image>
+ </section>
+
+ <section>
+ <title>Trace clients</title>
+ <p>As you have seen, it is possible to use the
+ <c>et_collector:report_event/5,6</c> functions explicitly. By
+ using those functions you can write your own trace client that
+ reads trace data from any source stored in any format and just
+ feed the <c>Collector</c> with it. You may replace the default
+ <c>Collector Filter</c> with a filter that converts new exciting
+ trace data formats to <c>Event Records</c> or you may convert it
+ to an <c>Event Record</c> before you invoke
+ <c>et_collector:report/2</c> and then rely on the default
+ <c>Collector Filter</c> to handle the new format.</p>
+
+ <p>There are also existing functions in the API that reads from
+ various sources and calls <c>et_collector:report/2</c>:</p>
+
+ <list type="bulleted">
+ <item>
+ <p>The trace <c>Events</c> that are hosted by the <c>Collector</c> may be
+ stored to file and later be loaded by selecting <c>save</c>
+ and <c>load</c> entries in the <c>Viewers</c> <c>File</c> menu
+ or via the <c>et_collector</c> API.</p>
+ </item>
+
+ <item>
+ <p>It is also possible to perform live tracing of a running
+ system by making use of the built-in trace support in the
+ Erlang emulator. These Erlang traces can be directed to files
+ or to ports. See the reference manual for
+ <c>erlang:trace/4</c>, <c>erlang:trace_pattern/3</c>,
+ <c>dbg</c> and <c>ttb</c> for more info.</p>
+
+ <p>There are also corresponding trace client types that can
+ read the Erlang trace data format from such files or ports.
+ The <c>et_collector:start_trace_client/3</c> function makes
+ use of these Erlang trace clients and redirects the trace data
+ to the <c>Collector</c>.</p>
+
+ <p>The default <c>Collector Filter</c> converts the raw Erlang
+ trace data format into <c>Event Records</c>. If you want to
+ perform this differently you can of course write your own
+ <c>Collector Filter</c> from scratch. But it may probably save
+ you some efforts if you first apply the default filter in
+ <c>et_selector:parse_event/2</c> before you apply your own
+ conversions of its output.</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Global tracing</title>
+
+ <p>Setting up an Erlang tracer on a set of nodes and connecting
+ trace clients to the ports of these tracers is not intuitive. In
+ order to make this it easier the <c>Event Tracer</c> has a notion
+ of global tracing. When used, the <c>et_collector</c> process will
+ monitor Erlang nodes and when one connects, an Erlang tracer will
+ automatically be started on the newly connected node. A
+ corresponding trace client will also be started on the
+ <c>Collector</c> node in order to automatically forward the trace
+ <c>Events</c> to the <c>Collector</c>. Set the boolean parameter
+ <c>trace_global</c> to <c>true</c> for either the
+ <c>et_collector</c> or <c>et_viewer</c> in order to activate the
+ global tracing. There is no restriction on how many concurrent
+ (anonymous) collectors you can have, but you can only have one
+ <b>global</b> <c>Collector</c> as its name is registered in
+ <c>global</c>.</p>
+
+ <p>In order to further simplify the tracing, you can make use of
+ the <c>et:trace_me/4,5</c> functions. These functions are intended
+ to be invoked from other applications when there are interesting
+ <c>Events</c>, in your application that needs to be
+ highlighted. The functions are extremely light weight as they do
+ nothing besides returning an atom. These functions are
+ specifically designed to be traced for. As the caller explicitly
+ provides the values for the <c>Event Record</c> fields, the
+ default <c>Collector Filter</c> is able to automatically provide a
+ customized <c>Event Record</c> without any user defined filter
+ functions.</p>
+
+ <p>In normal operation, the <c>et:trace_me/4,5</c> calls are almost
+ for free. When tracing is needed, you can either activate tracing
+ on these functions explicitly. Or you can combine the usage of
+ <c>trace_global</c> with the usage of <c>trace_pattern</c>. When
+ set, the <c>trace_pattern</c> will automatically be activated on
+ all connected nodes. </p>
+
+ <p>One nice thing with the <c>trace_pattern</c> is that it
+ provides a very simple way of minimizing the amount of generated
+ trace data by allowing you to explicitly control the detail level
+ of the tracing. As you may have seen the <c>et_viewer</c> have a
+ slider called <c>"Detail Level"</c> that allows you to control the
+ detail level of the trace <c>Events</c> displayed in the
+ <c>Viewer</c>. On the other hand if you set a low detail level in
+ the <c>trace_pattern</c>, lots of the trace data will never be
+ generated and thus not sent over the socket to the trace client
+ and stored in the <c>Collector</c>.</p>
+ </section>
+
+ <section>
+ <title>Viewer window</title>
+
+ <p>Almost all functionality available in the <c>et_viewer</c> is
+ also available via shortcuts. Which key that has the same effect
+ as selecting a menu entry is shown enclosed in parentheses. For
+ example pressing the key <c>r</c> is equivalent to selecting the
+ menu entry <c>Viewer->Refresh</c>.</p>
+
+ <p>File menu:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>Clear all events in the Collector</c> - Deletes all
+ <c>Events</c> stored in the <c>Collector</c> and notifies all
+ connected <c>Viewers</c> about this.</p>
+ </item>
+
+ <item>
+ <p><c>Load events to the Collector from file</c> - Loads the
+ <c>Collector</c> with <c>Events</c> from a file and notifies
+ all connected <c>Viewers</c> about this.</p>
+ </item>
+
+ <item>
+ <p><c>Save all events in the Collector to file</c> - Saves all
+ <c>Events</c> stored in the <c>Collector</c> to file.</p>
+ </item>
+
+ <item>
+ <p><c>Print setup</c> - Enables editing of printer setting,
+ such as paper and layout.</p>
+ </item>
+
+ <item>
+ <p><c>Print current page</c> - Prints the events on the
+ current page. The page size is dependent of the selected paper
+ type.</p>
+ </item>
+
+ <item>
+ <p><c>Print all pages</c> - Prints all events. The page size
+ is dependent of the selected paper type.</p>
+ </item>
+
+ <item>
+ <p><c>Close this Viewer</c> - Closes this <c>Viewer</c>
+ window, but keeps all other <c>Viewers</c> windows and the
+ <c>Collector</c> process.</p>
+ </item>
+
+ <item>
+ <p><c>Close other Viewers, but this</c> - Keeps this
+ <c>Viewer</c> window and its <c>Collector</c> process, but
+ closes all other <c>Viewers</c> windowsconnected to the same
+ <c>Collector</c>.</p>
+ </item>
+
+ <item>
+ <p><c>Close all Viewers and the Collector</c> - Closes the
+ <c>Collector</c> and all <c>Viewers</c> connected to it.</p>
+ </item>
+ </list>
+
+ <p>Viewer menu:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>First</c> - Scrolls <c>this</c> viewer to the first
+ <c>Event</c> in the <c>Collector</c>.</p>
+ </item>
+
+ <item>
+ <p><c>Last</c> - Scrolls <c>this</c> viewer to the last
+ <c>Event</c> in the <c>Collector</c>.</p>
+ </item>
+
+ <item>
+ <p><c>Prev</c> - Scrolls <c>this</c> viewer one page
+ backwards.</p>
+ </item>
+
+ <item>
+ <p><c>Next</c> - Scrolls <c>this</c> viewer one page
+ forward.</p>
+ </item>
+
+ <item>
+ <p><c>Refresh</c> - Clears <c>this</c> viewer and re-read its
+ <c>Events</c> from the <c>Collector</c>.</p>
+ </item>
+
+ <item>
+ <p><c>Up</c> - Scrolls a few <c>Events</c> backwards.</p>
+ </item>
+
+ <item>
+ <p><c>Down</c> - Scrolls a few <c>Events</c> forward.</p>
+ </item>
+
+ <item>
+ <p><c>Display all actors.</c> - Reset the settings for hidden
+ and/or highlighted actors.</p>
+ </item>
+ </list>
+
+ <p>Collector menu:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>First</c> - Scrolls<c>all</c> viewers to the first
+ <c>Event</c> in the <c>Collector</c>.</p>
+ </item>
+
+ <item>
+ <p><c>Last</c> - Scrolls <c>all</c> viewers to the last
+ <c>Event</c> in the <c>Collector</c>.</p>
+ </item>
+
+ <item>
+ <p><c>Prev</c> - Scrolls <c>all</c> viewers one page
+ backwards.</p>
+ </item>
+
+ <item>
+ <p><c>Next</c> - Scrolls <c>all</c> viewers one page
+ forward.</p>
+ </item>
+
+ <item>
+ <p><c>Refresh</c> - Clears <c>all</c> viewers and re-read
+ their <c>Events</c> from the <c>Collector</c>.</p>
+ </item>
+ </list>
+
+ <p>Filters and scaling menu:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>ActiveFilter (=)</c> - Starts a new <c>Viewer</c> window
+ with the same active filter and scale as the current one.</p>
+ </item>
+
+ <item>
+ <p><c>ActiveFilter (+)</c> - Starts a new <c>Viewer</c> window
+ with the same active filter but a larger scale than the
+ current one.</p>
+ </item>
+
+ <item>
+ <p><c>ActiveFilter (-)</c> - Starts a new <c>Viewer </c>window
+ with the same active filter but a smaller scale than the
+ current one.</p>
+ </item>
+
+ <item>
+ <p><c>all (0)</c> - Starts a new <c>Viewer</c> with the
+ <c>Collector Filter</c> as active filter. It will cause all
+ events in the collector to be viewed.</p>
+ </item>
+
+ <item>
+ <p><c>AnotherFilter (2)</c> - If more filters are inserted
+ into the dictionary, these will turn up here as entries in the
+ <c>Filters</c> menu. The second filter will get the shortcut
+ number 2, the next one number 3 etc. The names are sorted.</p>
+ </item>
+ </list>
+
+ <p>Slider and radio buttons:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>Hide From=To</c> - When true, this means that the
+ <c>Viewer</c> will hide all <c>Events</c> where the from-actor
+ equals to its to-actor. These events are sometimes called
+ actions.</p>
+ </item>
+
+ <item>
+ <p><c>Hide (excluded actors)</c> - When true, this means that
+ the <c>Viewer</c> will hide all <c>Events</c> whose actors are
+ marked as excluded. Excluded actors are normally enclosed in
+ round brackets when they are displayed inthe
+ <c>Viewer</c>.</p>
+ </item>
+
+ <item>
+ <p><c>Detail level</c> - This slider controls the resolution
+ of the <c>Viewer</c>. Only <c>Events</c> with a detail level
+ <c>smaller</c> than the selected one (default=100=max) are
+ displayed.</p>
+ </item>
+ </list>
+
+ <p>Other features:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>Vertical scroll</c> - Use mouse wheel and up/down arrows
+ to scroll little. Use page up/down and home/end buttons to
+ scroll more.</p>
+ </item>
+
+ <item>
+ <p><c>Display details of an event</c> - Left mouse click on
+ the event label or the arrowand a new <c>Contents Viewer</c>
+ window will pop up, displaying the contents of an
+ <c>Event</c>.</p>
+ </item>
+
+ <item>
+ <p><c>Highlight actor (toggle)</c> - Left mouse click on the
+ actor name tag. The actor name will be enclosed in square
+ brackets <c>[]</c>. When one or more actors are highlighted,
+ only events related to those actors are displayed. All others
+ are hidden.</p>
+ </item>
+
+ <item>
+ <p><c>Exclude actor (toggle)</c> - Right mouse click on the
+ actor name tag. The actor name will be enclosed in round
+ brackets <c>()</c>. When an actor is excluded, all events
+ related to this actor is hidden. If the checkbox <c>Hide
+ (excluded actors)</c> is checked, even the name tags and
+ corresponding vertical line of excluded actors will be
+ hidden.</p>
+ </item>
+
+ <item>
+ <p><c>Move actor</c> - Left mouse button drag and drop on
+ actor name tag. Move the actor by first clicking on the actor
+ name, keeping the button pressed while moving the cursor to a
+ new location and release the button where the actor should be
+ moved to.</p>
+ </item>
+
+ <item>
+ <p><c>Display all actors</c> - Press the 'a' button. Reset the
+ settings for hidden and/or highlighted actors.</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Configuration</title>
+
+ <p>The <c>Event Records</c> in the Ets table are ordered by their
+ timestamp. Which timestamp that should be used is controlled via
+ the <c>event_order</c> parameter. Default is <c>trace_ts</c> which
+ means the time when the trace data was generated. <c>event_ts</c>
+ means the time when the trace data was parsed (transformed into an
+ <c>Event Record</c>).</p>
+ </section>
+
+ <section>
+ <title>Contents viewer window</title>
+
+ <p>File menu:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>Close</c> - Close this window.</p>
+ </item>
+
+ <item>
+ <p><c>Save</c> - Save the contents of this window to file.</p>
+ </item>
+ </list>
+
+ <p>Filters menu:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>ActiveFilter</c> - Start a new <c>Contents Viewer
+ window</c> with the same active filter.</p>
+ </item>
+
+ <item>
+ <p><c>AnotherFilter (2)</c> - If more filters are inserted
+ into the dictionary, these will turn up here as entries in the
+ <c>Filters</c> menu. The second filter will be number 2, the
+ next one number 3 etc. The names are sorted.</p>
+ </item>
+ </list>
+
+ <p>Hide menu:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>Hide actor in viewer</c> - Known actors are shown as a
+ named vertical bars in the <c>Viewer</c> window. By hiding the
+ actor, its vertical bar will be removed and the <c>Viewer</c>
+ will be refreshed.</p>
+
+ <p><c>Hiding the actor</c> is only useful if the
+ <c>max_actors</c> threshold has been reached, as it then will
+ imply that the "hidden" actor will be displayed as if it were
+ <c>"UNKNOWN"</c>. If the <c>max_actors</c> threshold not have
+ been reached, the actor will re-appear as a vertical bar in
+ the <c>Viewer</c>.</p>
+ </item>
+ <item>
+ <p><c>Show actor in viewer</c> - This implies that the actor
+ will be added as a known actor in the <c>Viewer</c> with its
+ own vertical bar.</p>
+ </item>
+ </list>
+
+ <p>Search menu:</p>
+
+ <list type="bulleted">
+ <item>
+ <p><c>Forward from this event</c> - Set this event to be the first
+ event in the viewer and change its display mode to be enter
+ forward search mode. The actor of this event (from, to or
+ both) will be added to the list of selected actors.</p>
+ </item>
+
+ <item>
+ <p><c>Reverse from this event</c> - Set this event to be the
+ first <c>Event</c> in the <c>Viewer</c> and change its display
+ mode to be enter reverse search mode. The actor of this
+ <c>Event</c> (from, to or both) will be added to the list of
+ selected actors. Observe, that the <c>Events</c> will be shown
+ in reverse order.</p>
+ </item>
+
+ <item>
+ <p><c>Abort search. Display all</c> - Switch the display mode
+ of the <c>Viewer</c> to show all <c>Events</c> regardless of
+ any ongoing searches. Abort the searches.</p>
+ </item>
+ </list>
+ </section>
+</chapter>
+
diff --git a/lib/et/doc/src/et_examples.xml b/lib/et/doc/src/et_examples.xml
deleted file mode 100644
index 7627b191a1..0000000000
--- a/lib/et/doc/src/et_examples.xml
+++ /dev/null
@@ -1,311 +0,0 @@
-<?xml version="1.0" encoding="latin1" ?>
-<!DOCTYPE chapter SYSTEM "chapter.dtd">
-
-<chapter>
- <header>
- <copyright>
- <year>2002</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>Examples</title>
- <prepared>H&aring;kan Mattsson</prepared>
- <responsible>H&aring;kan Mattsson</responsible>
- <docno></docno>
- <approved>H&aring;kan Mattsson</approved>
- <checked></checked>
- <date></date>
- <rev>%VSN%</rev>
- <file>et_examples.xml</file>
- </header>
-
- <section>
- <title>A simulated Mnesia transaction</title>
- <p>The Erlang code for running the simulated Mnesia transaction example
- in the previous chapter is included in the <c>et/examples/et_demo.erl</c> file:
- </p>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%sim_trans" type="erl"></codeinclude>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%mgr_actors" type="erl"></codeinclude>
- <p>If you invoke the <c>et_demo:sim_trans()</c> function a viewer
- window will pop up and the sequence trace will be almost the same as
- if the following Mnesia transaction would have been run:</p>
- <p></p>
- <code type="none">
- mnesia:transaction(fun() -> mnesia:write({my_tab, key, val}) end).
- </code>
- <p>And the viewer window will look like:</p>
- <p></p>
- <code type="none"><![CDATA[
- $ erl -pa ../examples
- Erlang (BEAM) emulator version 2002.10.08 [source]
-
- Eshell V2002.10.08 (abort with ^G)
- 1> et_demo:sim_trans().
- {ok,{table_handle,<0.30.0>,11,trace_ts,#Fun<et_collector.0.83904657>}}
- 2>
- ]]></code>
- <p></p>
- <image file="sim_trans.gif">
- <icaption>A simulated Mnesia transaction which writes one record</icaption>
- </image>
- </section>
-
- <section>
- <title>Some convenient functions used in the Mnesia transaction example</title>
- <p>The <c>module_as_actor</c> filter converts the event-records so
- the module names becomes actors and the invoked functions becomes
- labels. If the information about who the caller was it will be
- displayed as an arrow directed from the caller to the callee. The
- <c>[{message, {caller}}, {return_trace}]</c> options to <c>dbg:tpl/2</c>
- function will imply the necessary information in the Erlang traces.
- Here follows the <c>module_as_actor</c> filter:</p>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%module_as_actor" type="erl"></codeinclude>
- <p>The <c>plain_process_info</c> filter does not alter the event-records.
- It merely ensures that the event not related to processes are skipped:</p>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%plain_process_info" type="erl"></codeinclude>
- <p>The <c>plain_process_info_nolink</c> filter does not alter the
- event-records. It do makes use of the <c>plain_process_info</c> , but
- do also ensure that the process info related to linking and unlinking
- is skipped:</p>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%plain_process_info_nolink" type="erl"></codeinclude>
- <p>In order to simplify the startup of an <c>et_viewer</c> process
- with the filters mentioned above, plus some others (that also are
- found in <c>et/examples/et_demo.erl</c> src/et_collector.erl the
- <c>et_demo:start/0,1</c> functions can be used:</p>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%start" type="erl"></codeinclude>
- <p>A simple one-liner starts the tool:</p>
- <code type="none">
- erl -pa ../examples -s et_demo
- </code>
- <p>The filters are included by the following parameters:</p>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%filters" type="erl"></codeinclude>
- </section>
-
- <section>
- <title>Erlang trace of a Mnesia transaction</title>
- <p>The following piece of code <c>et_demo:trace_mnesia/0</c>
- activates call tracing of both local and external function calls for
- all modules in the Mnesia application. The call traces are configured
- cover all processes (both existing and those that are spawned in the
- future) and include timestamps for trace data. It do also activate
- tracing of process related events for Mnesia's static processes plus
- the calling process (that is your shell). Please, observe that the
- <c>whereis/1</c> call in the following code requires that both the
- traced Mnesia application and the <c>et_viewer</c>is running on the
- same node:</p>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%trace_mnesia" type="erl"></codeinclude>
- <p>The <c>et_demo:live_trans/0</c> function starts the a global
- controller, starts a viewer, starts Mnesia, creates a local table,
- activates tracing (as described above) and registers the shell
- process is as 'my_shell' for clarity. Finally the a simple Mnesia
- transaction that writes a single record is run:</p>
- <p></p>
- <codeinclude file="../../examples/et_demo.erl" tag="%live_trans" type="erl"></codeinclude>
- <p>Now we run the <c>et_demo:live_trans/0</c> function:</p>
- <p></p>
- <code type="none">
- erl -pa ../examples -s et_demo live_trans
- Erlang (BEAM) emulator version 2002.10.08 [source]
-
- Eshell V2002.10.08 (abort with ^G)
- 1>
- </code>
- <p>Please, explore the different filters in order to see how the traced
- transaction can be seen from different point of views:</p>
- <p></p>
- <image file="live_trans.gif">
- <icaption>A real Mnesia transaction which writes one record</icaption>
- </image>
- </section>
-
- <section>
- <title>Erlang trace of Megaco startup</title>
- <p>The Event Tracer (ET) tool was initially written in order to
- demonstrate how messages where sent over the Megaco protocol. This
- were back in the old days before the standard bodies of IETF and ITU
- had approved Megaco (also called H.248) as an international
- standard.</p>
- <p>In the Megaco application of Erlang/OTP, the code is carefully
- instrumented with calls to <c>et:report_event/5</c>. For call a detail
- level is set in order to dynamically control the trace level in a
- simple manner.</p>
- <p>The <c>megaco_filter</c> module implements a customized filter
- for Megaco messages. It does also make use of <c>trace_global</c>
- combined with usage of the <c>trace_pattern</c>:</p>
- <p></p>
- <code type="none">
- -module(megaco_filter).
- -export([start/0]).
-
- start() ->
- Options =
- [{event_order, event_ts},
- {scale, 3},
- {max_actors, infinity},
- {trace_pattern, {megaco, max}},
- {trace_global, true},
- {dict_insert, {filter, megaco_filter}, fun filter/1},
- {active_filter, megaco_filter},
- {title, "Megaco tracer - Erlang/OTP"}],
- et_viewer:start(Options).
- </code>
- <p>First we start an Erlang node with the a global collector and
- its viewer. The <c>et_viewer: search for: [] ++ ["gateway_tt"]</c>
- printout is caused by a click on the "gateway_tt" actor name in the
- viewer. It means that only events with that actor will be displayed
- in the viewer.</p>
- <p></p>
- <code type="none">
- erl -sname observer -s megaco_filter
- Erlang (BEAM) emulator version 2002.10.08 [source]
-
- Eshell V2002.10.08 (abort with ^G)
- (observer@amrod)1> et_viewer: search for: [] ++ ["gateway_tt"]
- </code>
- <p>Secondly we start another Erlang node which we connect the
- observer node, before we start the application that we want to
- trace. In this case we start a Media Gateway Controller that listens
- for both TCP and UDP on the text and binary ports for Megaco:</p>
- <p></p>
- <code type="none">
- erl -sname mgc -pa ../../megaco/examples/simple
- Erlang (BEAM) emulator version 2002.10.08 [source]
-
- Eshell V2002.10.08 (abort with ^G)
- (mgc@amrod)1> net:ping(observer@amrod).
- pong
- (mgc@amrod)2> megaco:start().
- ok
- (mgc@amrod)3> megaco_simple_mgc:start().
- {ok,[{ok,2944,
- {megaco_receive_handle,{deviceName,"controller"},
- megaco_pretty_text_encoder,
- [],
- megaco_tcp}},
- {ok,2944,
- {megaco_receive_handle,{deviceName,"controller"},
- megaco_pretty_text_encoder,
- [],
- megaco_udp}},
- {ok,2945,
- {megaco_receive_handle,{deviceName,"controller"},
- megaco_binary_encoder,
- [],
- megaco_tcp}},
- {ok,2945,
- {megaco_receive_handle,{deviceName,"controller"},
- megaco_binary_encoder,
- [],
- megaco_udp}}]}
- (mgc@amrod)4>
- </code>
- <p>And finally we start an Erlang node for the Media Gateways and
- connect to the observer node. Each Media Gateway connects to the
- controller and sends an initial Service Change message. The controller
- accepts the gateways and sends a reply to each one using the same
- transport mechanism and message encoding according to the preference
- of each gateway. That is all combinations of TCP/IP transport, UDP/IP
- transport, text encoding and ASN.1 BER encoding:</p>
- <p></p>
- <code type="none">
- erl -sname mg -pa ../../megaco/examples/simple
- Erlang (BEAM) emulator version 2002.10.08 [source]
-
- Eshell V2002.10.08 (abort with ^G)
- (mg@amrod)1> net:ping(observer@amrod).
- pong
- (mg@amrod)2> megaco_simple_mg:start().
- [{{deviceName,"gateway_tt"},{error,{start_user,megaco_not_started}}},
- {{deviceName,"gateway_tb"},{error,{start_user,megaco_not_started}}},
- {{deviceName,"gateway_ut"},{error,{start_user,megaco_not_started}}},
- {{deviceName,"gateway_ub"},{error,{start_user,megaco_not_started}}}]
- (mg@amrod)3> megaco:start().
- ok
- (mg@amrod)4> megaco_simple_mg:start().
- [{{deviceName,"gateway_tt"},
- {1,
- {ok,[{'ActionReply',0,
- asn1_NOVALUE,
- asn1_NOVALUE,
- [{serviceChangeReply,
- {'ServiceChangeReply',
- [{megaco_term_id,false,["root"]}],
- {serviceChangeResParms,
- {'ServiceChangeResParm',
- {deviceName|...},
- asn1_NOVALUE|...}}}}]}]}}},
- {{deviceName,"gateway_tb"},
- {1,
- {ok,[{'ActionReply',0,
- asn1_NOVALUE,
- asn1_NOVALUE,
- [{serviceChangeReply,
- {'ServiceChangeReply',
- [{megaco_term_id,false,["root"]}],
- {serviceChangeResParms,
- {'ServiceChangeResParm',
- {...}|...}}}}]}]}}},
- {{deviceName,"gateway_ut"},
- {1,
- {ok,[{'ActionReply',0,
- asn1_NOVALUE,
- asn1_NOVALUE,
- [{serviceChangeReply,
- {'ServiceChangeReply',
- [{megaco_term_id,false,["root"]}],
- {serviceChangeResParms,
- {'ServiceChangeResParm',{...}|...}}}}]}]}}},
- {{deviceName,"gateway_ub"},
- {1,
- {ok,[{'ActionReply',0,
- asn1_NOVALUE,
- asn1_NOVALUE,
- [{serviceChangeReply,
- {'ServiceChangeReply',
- [{megaco_term_id,false,["root"]}],
- {serviceChangeResParms,
- {'ServiceChangeResParm'|...}}}}]}]}}}]
- (mg@amrod)5>
- </code>
- <p>The Megaco adopted viewer looks like this, when we have clicked
- on the "gateway_tt" actor name in order to only display the events
- regarding that actor:</p>
- <p></p>
- <image file="megaco_tracer.gif">
- <icaption>The viewer adopted for Megaco</icaption>
- </image>
- <p>A pretty printed Megaco message looks like this:</p>
- <p></p>
- <image file="megaco_filter.gif">
- <icaption>A textual Megaco message</icaption>
- </image>
- <p>And the corresponding internal form for the same Megaco message
- looks like this:</p>
- <p></p>
- <image file="megaco_collector.gif">
- <icaption>The internal form of a Megaco message</icaption>
- </image>
- </section>
-</chapter>
-
diff --git a/lib/et/doc/src/et_examples.xmlsrc b/lib/et/doc/src/et_examples.xmlsrc
new file mode 100644
index 0000000000..7678184515
--- /dev/null
+++ b/lib/et/doc/src/et_examples.xmlsrc
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2002</year><year>2010</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>Advanced examples</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <responsible>H&aring;kan Mattsson</responsible>
+ <docno></docno>
+ <approved>H&aring;kan Mattsson</approved>
+ <checked></checked>
+ <date></date>
+ <rev>%VSN%</rev>
+ <file>et_examples.xml</file>
+ </header>
+
+ <section>
+ <title>A simulated Mnesia transaction</title>
+ <p>The Erlang code for running the simulated <c>Mnesia</c> transaction
+ example in the previous chapter is included in the
+ <c>et/examples/et_demo.erl</c> file:</p>
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%sim_trans" type="erl"></codeinclude>
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%mgr_actors" type="erl"></codeinclude>
+
+ <p>If you invoke the <c>et_demo:sim_trans()</c> function, a
+ <c>Viewer</c> window will pop up and the sequence trace will be
+ almost the same as if the following <c>Mnesia</c> transaction
+ would have been run:</p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ mnesia:transaction(fun() -> mnesia:write({my_tab, key, val}) end).]]></code>
+
+ <p>And the viewer window will look like:</p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ Erlang R13B03 (erts-5.7.4) [64-bit] [smp:4:4] [rq:4]
+ [async-threads:0] [kernel-poll:false]
+
+ Eshell V5.7.4 (abort with ^G)
+ 1> {ok, Viewer} = et_viewer:start([]).
+ {ok,<0.40.0>;}
+ 2> et_demo:sim_trans().
+ {ok,{table_handle,<0.45.0>,24596,trace_ts,
+ #Fun<et_collector.0.62831470>}}]]></code>
+
+ <p></p>
+
+ <image file="sim_trans.png">
+ <icaption>A simulated <c>Mnesia</c> transaction which writes one
+ record</icaption>
+ </image>
+
+ </section>
+
+ <section>
+ <title>Some convenient functions used in the <c>Mnesia</c> transaction
+ example</title>
+
+ <p>The <c>module_as_actor</c> filter converts the <c>Event
+ Records</c> so the module names becomes actors and the invoked
+ functions becomes labels. If the information about who the caller
+ was it will be displayed as an arrow directed from the caller to
+ the callee. The <c>[{message, {caller}}, {return_trace}]</c>
+ options to <c>dbg:tpl/2</c> function will imply the necessary
+ information in the Erlang traces. Here follows the
+ <c>module_as_actor</c> filter:</p>
+
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%module_as_actor" type="erl"></codeinclude>
+
+ <p>The <c>plain_process_info</c> filter does not alter the
+ <c>Event Records</c>. It merely ensures that the event not
+ related to processes are skipped:</p>
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%plain_process_info" type="erl"></codeinclude>
+
+ <p>The <c>plain_process_info_nolink</c> filter does not alter the
+ <c>Event Records</c>. It do makes use of the
+ <c>plain_process_info</c> , but do also ensure that the process
+ info related to linking and unlinking is skipped:</p>
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%plain_process_info_nolink" type="erl"></codeinclude>
+
+ <p>In order to simplify the startup of an <c>et_viewer</c> process
+ with the filters mentioned above, plus some others (that also are
+ found in <c>et/examples/et_demo.erl</c> src/et_collector.erl the
+ <c>et_demo:start/0,1</c> functions can be used:</p>
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%start" type="erl"></codeinclude>
+
+ <p>A simple one-liner starts the tool:</p>
+
+ <code type="none"><![CDATA[
+ erl -pa ../examples -s et_demo]]></code>
+
+ <p>The filters are included by the following parameters:</p>
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%filters" type="erl"></codeinclude>
+
+ </section>
+
+ <section>
+ <title>Erlang trace of a real Mnesia transaction</title>
+
+ <p>The following piece of code <c>et_demo:trace_mnesia/0</c>
+ activates call tracing of both local and external function calls
+ for all modules in the <c>Mnesia</c> application. The call traces
+ are configured cover all processes (both existing and those that
+ are spawned in the future) and include timestamps for trace
+ data. It do also activate tracing of process related events for
+ <c>Mnesia</c>'s static processes plus the calling process (that is
+ your shell). Please, observe that the <c>whereis/1</c> call in the
+ following code requires that both the traced <c>Mnesia</c>
+ application and the <c>et_viewer</c> is running on the same
+ node:</p>
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%trace_mnesia" type="erl"></codeinclude>
+
+ <p>The <c>et_demo:live_trans/0</c> function starts the global
+ <c>Collector</c>, starts a <c>Viewer</c>, starts <c>Mnesia</c>,
+ creates a local table, activates tracing (as described above) and
+ registers the shell process is as 'my_shell' for clarity. Finally
+ a simple <c>Mnesia</c> transaction that writes a single record
+ is run:</p>
+
+ <p></p>
+
+ <codeinclude file="../../examples/et_demo.erl" tag="%live_trans" type="erl"></codeinclude>
+
+ <p>Now we run the <c>et_demo:live_trans/0</c> function:</p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ erl -pa ../examples
+ Erlang R13B03 (erts-5.7.4) [64-bit] [smp:4:4] [rq:4]
+ [async-threads:0] [kernel-poll:false]
+
+ Eshell V5.7.4 (abort with ^G)
+ 1> et_demo:live_trans().
+ {atomic,ok}]]></code>
+
+ <p>Please, explore the different filters in order to see how the traced
+ transaction can be seen from different point of views:</p>
+
+ <p></p>
+
+ <image file="live_trans.png">
+ <icaption>A real <c>Mnesia</c> transaction which writes one record</icaption>
+ </image>
+
+ </section>
+
+ <section>
+ <title>Erlang trace of Megaco startup</title>
+
+ <p>The <c>Event Tracer (ET)</c> tool was initially written in
+ order to demonstrate how messages where sent over the
+ <c>Megaco</c> protocol. This were back in the old days before the
+ standard bodies of <c>IETF</c> and <c>ITU</c> had approved
+ <c>Megaco</c> (also called <c>H.248</c>) as an international
+ standard.</p>
+
+ <p>In the <c>Megaco</c> application of Erlang/OTP, the code is
+ carefully instrumented with calls to <c>et:trace_me/5</c>. For
+ each call a detail level is given in order to enable dynamic
+ control of the trace level in a simple manner.</p>
+
+ <p>The <c>megaco_filter</c> module implements a customized filter
+ for <c>Megaco</c> messages. It does also make use of
+ <c>trace_global</c> combined with usage of the
+ <c>trace_pattern</c>:</p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ -module(megaco_filter).
+ -export([start/0]).
+
+ start() ->
+ Options =
+ [{event_order, event_ts},
+ {scale, 3},
+ {max_actors, infinity},
+ {trace_pattern, {megaco, max}},
+ {trace_global, true},
+ {dict_insert, {filter, megaco_filter}, fun filter/1},
+ {active_filter, megaco_filter},
+ {title, "Megaco tracer - Erlang/OTP"}],
+ et_viewer:start(Options).]]></code>
+
+ <p>First we start an Erlang node with a global <c>Collector</c>
+ and its <c>Viewer</c>.</p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ erl -sname observer
+ Erlang R13B03 (erts-5.7.4) [64-bit] [smp:4:4] [rq:4]
+ [async-threads:0] [kernel-poll:false]
+
+ Eshell V5.7.4 (abort with ^G)
+ (observer@falco)1> megaco_filter:start().
+ {ok,<0.48.0>}]]></code>
+
+ <p>Secondly we start another Erlang node which we connect the
+ observer node, before we start the application that we want to
+ trace. In this case we start a Media Gateway Controller that
+ listens for both TCP and UDP on the text and binary ports for
+ Megaco:</p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ erl -sname mgc -pa ../../megaco/examples/simple
+ Erlang R13B03 (erts-5.7.4) [64-bit] [smp:4:4] [rq:4]
+ [async-threads:0] [kernel-poll:false]
+
+ Eshell V5.7.4 (abort with ^G)
+ (mgc@falco)1> net:ping(observer@falco).
+ pong
+ (mgc@falco)2> megaco:start().
+ ok
+ (mgc@falco)3> megaco_simple_mgc:start().
+ {ok,[{ok,2944,
+ {megaco_receive_handle,{deviceName,"controller"},
+ megaco_pretty_text_encoder,[],megaco_tcp,dynamic}},
+ {ok,2944,
+ {megaco_receive_handle,{deviceName,"controller"},
+ megaco_pretty_text_encoder,[],megaco_udp,dynamic}},
+ {ok,2945,
+ {megaco_receive_handle,{deviceName,"controller"},
+ megaco_binary_encoder,[],megaco_tcp,dynamic}},
+ {ok,2945,
+ {megaco_receive_handle,{deviceName,"controller"},
+ megaco_binary_encoder,[],megaco_udp,dynamic}}]}]]></code>
+
+ <p>And finally we start an Erlang node for the Media Gateways and
+ connect to the observer node. Each Media Gateway connects to the
+ controller and sends an initial Service Change message. The
+ controller accepts the gateways and sends a reply to each one
+ using the same transport mechanism and message encoding according
+ to the preference of each gateway. That is all combinations of
+ TCP/IP transport, UDP/IP transport, text encoding and ASN.1 BER
+ encoding:</p>
+
+ <p></p>
+
+ <code type="none"><![CDATA[
+ Erlang R13B03 (erts-5.7.4) [64-bit] [smp:4:4] [rq:4]
+ [async-threads:0] [kernel-poll:false]
+
+ Eshell V5.7.4 (abort with ^G)
+ (mg@falco)1> net:ping(observer@falco).
+ pong
+ (mg@falco)2> megaco_simple_mg:start().
+ [{{deviceName,"gateway_tt"},
+ {error,{start_user,megaco_not_started}}},
+ {{deviceName,"gateway_tb"},
+ {error,{start_user,megaco_not_started}}},
+ {{deviceName,"gateway_ut"},
+ {error,{start_user,megaco_not_started}}},
+ {{deviceName,"gateway_ub"},
+ {error,{start_user,megaco_not_started}}}]
+ (mg@falco)3> megaco:start().
+ ok
+ (mg@falco)4> megaco_simple_mg:start().
+ [{{deviceName,"gateway_tt"},
+ {1,
+ {ok,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE,
+ [{serviceChangeReply,
+ {'ServiceChangeReply',
+ [{megaco_term_id,false,["root"]}],
+ {serviceChangeResParms,
+ {'ServiceChangeResParm',
+ {deviceName,"controller"},
+ asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,
+ asn1_NOVALUE}}}}]}]}}},
+ {{deviceName,"gateway_tb"},
+ {1,
+ {ok,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE,
+ [{serviceChangeReply,
+ {'ServiceChangeReply',
+ [{megaco_term_id,false,["root"]}],
+ {serviceChangeResParms,
+ {'ServiceChangeResParm',
+ {deviceName,"controller"},
+ asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,
+ asn1_NOVALUE}}}}]}]}}},
+ {{deviceName,"gateway_ut"},
+ {1,
+ {ok,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE,
+ [{serviceChangeReply,
+ {'ServiceChangeReply',
+ [{megaco_term_id,false,["root"]}],
+ {serviceChangeResParms,
+ {'ServiceChangeResParm',
+ {deviceName,"controller"},
+ asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,
+ asn1_NOVALUE}}}}]}]}}},
+ {{deviceName,"gateway_ub"},
+ {1,
+ {ok,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE,
+ [{serviceChangeReply,
+ {'ServiceChangeReply',
+ [{megaco_term_id,false,["root"]}],
+ {serviceChangeResParms,
+ {'ServiceChangeResParm',
+ {deviceName,"controller"},
+ asn1_NOVALUE,asn1_NOVALUE,
+ asn1_NOVALUE,...}}}}]}]}}}]]]></code>
+
+ <p>The <c>Megaco</c> adopted viewer looks like this, when we have clicked
+ on the <b>[gateway_tt]</b> actor name in order to only display the events
+ regarding that actor:</p>
+
+ <p></p>
+
+ <image file="megaco_tracer.png">
+ <icaption>The viewer adopted for Megaco</icaption>
+ </image>
+
+ <p>A pretty printed <c>Megaco</c> message looks like this:</p>
+
+ <p></p>
+
+ <image file="megaco_filter.png">
+ <icaption>A textual <c>Megaco</c> message</icaption>
+ </image>
+
+ <p>And the corresponding internal form for the same <c>Megaco</c> message
+ looks like this:</p>
+
+ <p></p>
+
+ <image file="megaco_collector.png">
+ <icaption>The internal form of a <c>Megaco</c> message</icaption>
+ </image>
+
+ </section>
+
+</chapter>
+
diff --git a/lib/et/doc/src/et_intro.xml b/lib/et/doc/src/et_intro.xml
index 8dfa678b11..0c5fb14d55 100644
--- a/lib/et/doc/src/et_intro.xml
+++ b/lib/et/doc/src/et_intro.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Introduction</title>
@@ -31,65 +31,89 @@
<rev>%VSN%</rev>
<file>et_intro.xml</file>
</header>
- <p>The Event Tracer (ET) uses the built-in trace mechanism in Erlang
- and provides tools for collection and graphical viewing of trace
- data.</p>
- <p>The viewed trace data is normally collected from Erlang trace ports
- or files.</p>
+
+ <p>The <c>Event Tracer (ET)</c> uses the built-in trace mechanism in
+ Erlang and provides tools for collection and graphical viewing of
+ trace data.</p>
+
+ <p>The viewed trace data is normally collected from Erlang trace
+ ports or files.</p>
<section>
- <title>Scope and Purpose</title>
- <p>This manual describes the Event Tracer (ET) application, as a component
- of the Erlang/Open Telecom Platform development environment. It
- is assumed that the reader is familiar with the Erlang
- Development Environment, which is described in a separate User's
- Guide.</p>
+ <title>Scope and Purpose</title>'
+
+ <p>This manual describes the <c>Event Tracer (ET)</c> application,
+ as a component of the Erlang/Open Telecom Platform development
+ environment. It is assumed that the reader is familiar with the
+ Erlang Development Environment, which is described in a separate
+ User's Guide.</p>
</section>
<section>
<title>Prerequisites</title>
+
<p>The following prerequisites is required for understanding the
- material in the Event Tracer (ET) User's Guide:</p>
+ material in the <c>Event Tracer (ET)</c> User's Guide:</p>
+
<list type="bulleted">
<item>
- <p>familiarity with the Erlang system and Erlang programming in
- general and the especially the art of Erlang tracing.</p>
+ <p>familiarity with the Erlang system and Erlang programming
+ in general and the especially the art of Erlang tracing.</p>
</item>
</list>
- <p>The application requires Erlang/OTP release R7B or later.</p>
+
+ <p>The application requires Erlang/OTP release R13BB or later. If
+ you use the old <c>GS</c> based GUI it does suffice with R7B.</p>
+
</section>
<section>
<title>About This Manual</title>
- <p>In addition to this introductory chapter, the Megaco User's
- Guide contains the following chapters:</p>
+
+ <p>In addition to this introductory chapter, the <c>Event
+ Tracers</c> User's Guide contains the following chapters:</p>
+
<list type="bulleted">
<item>
- <p>Chapter 2: "Usage" describes the architecture
- and typical usage of the application.</p>
+ <p>Chapter 2: "Tutorial" provides a walk-through of the
+ various parts of the application. The tutorial is based on
+ <c>Jayson Vantuyl's</c> article
+ <c>http://souja.net/2009/04/making-sense-of-erlangs-event-tracer.html</c>.</p>
+ </item>
+
+ <item>
+ <p>Chapter 3: "Description" describes the architecture and typical
+ usage of the application.</p>
</item>
+
<item>
- <p>Chapter 3: "Examples" gives some usage examples</p>
+ <p>Chapter 4: "Advanced examples" gives some usage examples</p>
</item>
</list>
+
</section>
<section>
<title>Where to Find More Information</title>
+
<p>Refer to the following documentation for more information about
- Event Tracer (ET) and about the Erlang/OTP development system:</p>
+ <c>Event Tracer (ET)</c> and about the Erlang/OTP development system:</p>
+
<list type="bulleted">
<item>
<p>the Reference Manual of the <c>Event Tracer (ET)</c>.</p>
</item>
+
<item>
- <p>documentation of basic tracing in <c>erlang:trace/4</c> and
- <c>erlang:trace_pattern/3</c> and then the utilities derived from
- these: <c>dbg</c>, <c>observer</c> and <c>et</c>.</p>
+ <p>documentation of basic tracing in <c>erlang:trace/4</c> and
+ <c>erlang:trace_pattern/3</c> and then the utilities derived
+ from these: <c>dbg</c>, <c>observer</c>, <c>invisio</c> and
+ <c>et</c>.</p>
</item>
+
<item>
- <p>Concurrent Programming in Erlang, 2nd Edition (1996),
- Prentice-Hall, ISBN 0-13-508301-X.</p>
+ <p>Programming Erlang: Software for a Concurrent World by Joe
+ Armstrong; ISBN: 978-1-93435-600-5</p>
</item>
</list>
</section>
diff --git a/lib/et/doc/src/et_selector.xml b/lib/et/doc/src/et_selector.xml
index 59b1d3dea9..dd12166d85 100644
--- a/lib/et/doc/src/et_selector.xml
+++ b/lib/et/doc/src/et_selector.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>et_selector</title>
@@ -35,72 +35,112 @@
<description>
<p></p>
</description>
+
<funcs>
<func>
<name>make_pattern(RawPattern) -> TracePattern</name>
<fsummary>Makes a trace pattern suitable to feed change_pattern/1</fsummary>
+
<type>
<v>RawPattern = detail_level()</v>
<v>TracePattern = erlang_trace_pattern_match_spec()</v>
- <v>detail_level() = min | max | integer(X) when X =&lt; 0, X >= 100</v>
+ <v>detail_level() = min | max | integer(X) when X &gt;= 0, X =&lt; 100</v>
</type>
+
<desc>
<p>Makes a trace pattern suitable to feed change_pattern/1</p>
- <p>Min detail level deactivates tracing of calls to phone_home/4,5</p>
- <p>Max detail level activates tracing of all calls to phone_home/4,5</p>
+ <p>Min detail level deactivates tracing of calls to <c>et:trace_me/4,5</c></p>
+ <p>Max detail level activates tracing of all calls to <c>et:trace_me/4,5</c></p>
<p>integer(X) detail level activates tracing of all calls to
- phone_home/4,5 whose detail level argument is lesser than X.</p>
- <p>See also erlang:trace_pattern/2 for more info about its match_spec()</p>
+ <c>et:trace_me/4,5</c> whose detail level argument is lesser than
+ X.</p>
+ <p>See also <c>erlang:trace_pattern/2</c> for more info about its <c>match_spec()</c></p>
</desc>
</func>
+
<func>
<name>change_pattern(Pattern) -> ok</name>
+
<fsummary>Activates/deactivates tracing by changing the current trace pattern</fsummary>
+
<type>
<v>Pattern = detail_level() | empty_match_spec() | erlang_trace_pattern_match_spec()</v>
- <v>detail_level() = min | max | integer(X) when X =&lt;0, X >= 100</v>
+ <v>detail_level() = min | max | integer(X) when X &gt;= 0, X =&lt; 100</v>
<v>empty_match_spec() = [] </v>
</type>
+
<desc>
<p>Activates/deactivates tracing by changing the current trace pattern.</p>
- <p>Min detail level deactivates tracing of calls to phone_home/4,5</p>
- <p>Max detail level activates tracing of all calls to phone_home/4,5</p>
- <p>integer(X) detail level activates tracing of all calls to
- phone_home/4,5 whose detail level argument is lesser than X.</p>
- <p>An empty match spec deactivates tracing of calls to phone_home/4,5</p>
- <p>Other match specs activates tracing of calls to phone_home/4,5
- accordingly with erlang:trace_pattern/2.</p>
+ <p><c>min</c> detail level deactivates tracing of calls to <c>et:trace_me/4,5</c></p>
+ <p><c>max</c> detail level activates tracing of all calls to <c>et:trace_me/4,5</c></p>
+ <p><c>integer(X)</c> detail level activates tracing of all
+ calls to <c>et:trace_me/4,5</c> whose detail level argument is
+ lesser than <c>X</c>.</p>
+ <p>An empty match spec deactivates tracing of calls to <c>et:trace_me/4,5</c></p>
+ <p>Other match specs activates tracing of calls to
+ <c>et:trace_me/4,5</c> accordingly with
+ <c>erlang:trace_pattern/2</c>.</p>
</desc>
</func>
<func>
<name>parse_event(Mod, ValidTraceData) -> false | true | {true, Event}</name>
+
<fsummary>Transforms trace data and makes an event record out of it</fsummary>
+
<type>
<v>Mod = module_name() | undefined &lt;v>module_name() = atom() &lt;v>ValidTraceData = erlang_trace_data() | record(event)</v>
<v>erlang_trace_data() = {trace, Pid, Label, Info} | {trace, Pid, Label, Info, Extra} | {trace_ts, Pid, Label, Info, ReportedTS} | {trace_ts, Pid, Label, Info, Extra, ReportedTS} | {seq_trace, Label, Info} | {seq_trace, Label, Info, ReportedTS} | {drop, NumberOfDroppedItems}</v>
</type>
+
<desc>
<p>Transforms trace data and makes an event record out of it.</p>
- <p>See erlang:trace/3 for more info about the semantics of
- the trace data.</p>
- <p>An event record consists of the following fields:
- detail_level - Noise has a high level as opposed to essentials.
- trace_ts - Time when the trace was generated.
- Same as event_ts if omitted in trace data.
- event_ts - Time when the event record was created.
- from - From actor, such as sender of a message.
- to - To actor, such as receiver of message.
- label - Label intended to provide a brief event summary.
- contents - All nitty gritty details of the event.</p>
- <p>See et:phone_home/4 and et:phone_home/5 for details.</p>
- <p>Returns:
- {true, Event} - where Event is an #event{} record representing the
- trace data
- true - means that the trace data already is an event
- record and that it is valid as it is.
- No transformation is needed.
- false - means that the trace data is uninteresting and
- should be dropped</p>
+
+ <p>See <c>erlang:trace/3</c> for more info about the semantics of the
+ trace data.</p>
+
+ <p>An event record consists of the following fields:</p>
+ <taglist>
+ <tag><em>detail_level</em></tag>
+ <item><p>Noise has a high level as opposed to essentials.</p></item>
+
+
+ <tag><em>trace_ts</em></tag>
+ <item><p>Time when the trace was generated. Same as
+ event_ts if omitted in trace data.</p></item>
+
+ <tag><em>event_ts</em></tag>
+ <item><p>Time when the event record was created.</p></item>
+
+ <tag><em>from</em></tag>
+ <item><p>From actor, such as sender of a message.</p></item>
+
+ <tag><em>to</em></tag>
+ <item><p>To actor, such as receiver of message.</p></item>
+
+ <tag><em>label</em></tag>
+ <item><p>Label intended to provide a brief event summary.</p></item>
+
+ <tag><em>contents</em></tag>
+ <item><p>All nitty gritty details of the event.</p></item>
+ </taglist>
+
+ <p>See <c>et:trace_me/4</c>and <c>et:trace_me/5</c> for details.</p>
+
+ <p>Returns:</p>
+ <taglist>
+ <tag><em>{true, Event}</em></tag>
+ <item><p>where Event is an #event{} record representing the
+ trace data</p></item>
+
+ <tag><em>true</em></tag>
+ <item><p>means that the trace data already is an event
+ record and that it is valid as it is. No transformation is
+ needed.</p></item>
+
+ <tag><em>false</em></tag>
+ <item><p>means that the trace data is uninteresting and
+ should be dropped</p></item>
+ </taglist>
</desc>
</func>
</funcs>
diff --git a/lib/et/doc/src/et_tutorial.xmlsrc b/lib/et/doc/src/et_tutorial.xmlsrc
new file mode 100644
index 0000000000..c72234a587
--- /dev/null
+++ b/lib/et/doc/src/et_tutorial.xmlsrc
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2009</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>Tutorial</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <responsible>H&aring;kan Mattsson</responsible>
+ <docno></docno>
+ <approved>H&aring;kan Mattsson</approved>
+ <checked></checked>
+ <date></date>
+ <rev>%VSN%</rev>
+ </header>
+
+ <section>
+ <title>Visualizing Message Sequence Charts</title>
+
+ <p>The easiest way of using <c>ET</c>, is to just use it as a
+ graphical tool for displaying message sequence charts. In order to
+ do that you need to first start a <c>Viewer</c> (which by default
+ starts a <c>Collector</c>):</p>
+
+ <code type="none"><![CDATA[
+ {ok, ViewerPid} = et_viewer:start([{title,"Coffee Order"}]),
+ CollectorPid = et_viewer:get_collector_pid(ViewerPid).]]></code>
+
+ <marker id="report_event"></marker>
+ <p>Then you send events to the <c>Collector</c>
+ with the function <c>et_collector:report_event/6</c> like this:</p>
+
+ <code type="none"><![CDATA[
+ et_collector:report_event(CollectorPid,85,from,to,message,extra_stuff).]]></code>
+
+ <p>The <c>Viewer</c> will automatically pull events from the
+ <c>Collector</c> and display them on the screen.</p>
+
+ <p>The number (in this case 85) is an integer from 1 to 100 that
+ specifies the "detail level" of the message. The higher the
+ number, the more important it is. This provides a crude form of
+ priority filtering.</p>
+
+ <p>The <c>from</c>, <c>to</c>, and <c>message</c> parameters are
+ exactly what they sound like. <c>from</c> and <c>to</c> are
+ visualized in the <c>Viewer</c> as "lifelines", with the message
+ passing from one to the other. If <c>from</c> and <c>to</c> are
+ the same value, then it is displayed next to the lifeline as an
+ "action". The <c>extra_stuff </c>value is simply data that you can
+ attach that will be displayed when someone actually clicks on the
+ action or message in the <c>Viewer</c> window.</p>
+
+ <p>The module <c>et/examples/et_display_demo.erl</c> illustrates
+ how it can be used:</p>
+
+ <codeinclude file="../../examples/et_display_demo.erl" tag="%module" type="erl"></codeinclude>
+
+ <p>When you run the <c>et_display_demo:test().</c> function in the
+ example above, the <c>Viewer</c> window will look like this:</p>.
+
+ <p></p>
+
+ <image file="coffee_order.png">
+ <icaption>Screenshot of the <c>Viewer</c> window</icaption>
+ </image>
+
+ </section>
+
+ <section>
+ <title>Four Modules</title>
+
+ <p>The event tracer framework is made up of four modules:</p>
+
+ <list type="bulleted">
+ <item><p><c>et</c></p></item>
+ <item><p><c>et_collector</c></p></item>
+ <item><p><c>et_viewer</c></p></item>
+ <item><p><c>et_selector</c></p></item>
+ </list>
+
+ <p>In addition, you'll probably want to familiarize yourself with
+ the <c>dbg</c> module and possibly <c>seq_trace</c> module as
+ well.</p>
+ </section>
+
+ <section>
+ <title>The Event Tracer Interface</title>
+
+ <p>The <c>et</c> module is not like other modules. It contains a
+ function called <c>et:trace_me/5</c>. Which is a function that
+ does not do any useful stuff at all. Its sole purpose is to be a
+ function that is easy to trace. A call to it may be something
+ like:</p>
+
+ <code type="none"><![CDATA[
+ et:trace_me(85,from,to,message,extra_stuff).]]></code>
+
+ <p>The parameters to <c>et:trace_me/5</c> are the same as to
+ <seealso
+ marker="#report_event"><c>et_collector:report_event/6</c></seealso>
+ in the previous chapter. The big difference between the two is in
+ the semantics of the two functions. The second actually reports an
+ <c>Event</c> to the <c>Collector</c> while the first does nothing,
+ it just returns the atom <c>hopefully_traced</c>. In order to make
+ the parameters to <c>et:trace_me/5</c> turn up in the
+ <c>Collector</c>, tracing of that function must be activated and
+ the <c>Collector</c> must be registered as a <c>Tracer</c> of the
+ <c>Raw Trace Data</c>.</p>
+
+ <p>Erlang tracing is a seething pile of pain that involves
+ reasonably complex knowledge of clever ports, tracing return
+ formats, and specialized tracing <c>MatchSpecs</c> (which are
+ really their own special kind of hell). The tracing mechanism is
+ very powerful indeed, but it can be hard to grasp.</p>
+
+ <p>Luckily there is a simplified way to start tracing of
+ <c>et:trace_me/5</c> function calls. The idea is that you should
+ instrument your code with calls to <c>et:trace_me/5</c> in
+ strategic places where you have interesting information available
+ in your program. Then you just start the <c>Collector</c> with
+ global tracing enabled:</p>
+
+ <code type="none"><![CDATA[
+ et_viewer:start([{trace_global, true}, {trace_pattern, {et,max}}]).]]></code>
+
+ <p>This will start a <c>Collector</c>, a <c>Viewer</c> and also
+ start the tracing of <c>et:trace_me/5</c> function calls. The
+ <c>Raw Trace Data</c> is collected by the <c>Collector</c> and a
+ view of it is displayed on the screen by the <c>Viewer</c>. You
+ can define your own "views" of the data by implementing your own
+ <c>Filter</c> functions and register them in the
+ <c>Viewer</c>.</p>
+ </section>
+
+ <section>
+ <title>The Collector and Viewer</title>
+
+ <p>These two pieces work in concert. Basically, the
+ <c>Collector</c> receives <c>Raw Trace Data</c> and processes it
+ into <c>Events</c> in a <c>et</c> specific format (defined in
+ <c>et/include/et.hrl</c>). The <c>Viewer</c> interrogates the
+ <c>Collector</c> and displays an interactive representation of the
+ data.</p>
+
+ <p>You might wonder why these aren't just one module. The
+ <c>Collector</c> is a generic full-fledged framework that allows
+ processes to "subscribe" to the <c>Events</c> that it
+ collects. One <c>Collector</c> can serve several
+ <c>Viewers</c>. The typical case is that you have one
+ <c>Viewer</c> that visualizes <c>Events</c> in one flavor and
+ another <c>Viewer</c> that visualizes them in another flavor. If
+ you for example are tracing a text based protocol like <c>HTML</c>
+ (or <c>Megaco/H.248</c>) it would be useful to be able to display
+ the <c>Events</c> as plain text as well as the internal
+ representation of the message. The architecture does also allow
+ you to implement your own <c>Viewer</c> program as long as it
+ complies to the protocol between the <c>Collector/Viewer</c>
+ protocol. Currently two kinds of <c>Viewers</c> exists. That is
+ the old <c>GS</c> based one and the new based on
+ <c>wxWidgets</c>. But if you feel for it you may implement your
+ own <c>Viewer</c>, which for example could display the
+ <c>Events</c> as ASCII art or whatever you feel useful.</p>
+
+ <p>The <c>Viewer</c> will by default create a <c>Collector</c> for
+ you. With a few options and some configuration settings you can
+ start collecting <c>Events</c>.</p>
+
+ <p>The <c>Collector</c> API does also allow you to save the
+ collected <c>Events</c> to file and later load them in a later
+ session.</p>
+
+ </section>
+
+ <section>
+ <title>The Selector</title>
+
+ <p>This is perhaps the most central module in the entirety of the
+ <c>et</c> suite. The <c>Collector</c> needs "filters" to convert
+ the <c>Raw Trace Data</c> into "events" that it can display. The
+ <c>et_selector</c> module provides the default <c>Filter</c> and
+ some API calls to manage the <c>Trace Pattern</c>. The
+ <c>Selector</c> provides various functions that achieve the
+ following:</p>
+
+ <list type="bulleted">
+ <item><p>Convert <c>Raw Trace Data</c> into an appropriate
+ <c>Event</c></p></item>
+ <item><p>Magically notice traces of the <c>et:trace_me/5</c>
+ function and make appropriate <c>Events</c></p></item>
+ <item><p>Carefully prevent translating the <c>Raw Trace Data</c>
+ twice</p></item>
+ <item><p>Manage a <c>Trace Pattern</c></p></item>
+ </list>
+
+ <p>The <c>Trace Pattern</c> is basically a tuple of a
+ <c>module</c> and a <c>detail level</c> (either an integer or the
+ atom max for full detail). In most cases the <c>Trace Pattern</c>
+ <c>{et,max}</c> does suffice. But if you do not want any runtime
+ dependency of <c>et</c> you can implement your own
+ <c>trace_me/5</c> function in some module and refer to that module
+ in the <c>Trace Pattern</c>.</p>
+
+ <p>The specified module flows from your instantiation of the
+ <c>Viewer</c>, to the <c>Collector</c> that it automatically
+ creates, gets stashed in as the <c>Trace Pattern</c>, and
+ eventually goes down into the bowels of the <c>Selector</c>.</p>
+
+ <p>The module that you specify gets passed down (eventually) into
+ <c>Selector</c>'s default <c>Filter</c>. The format of the
+ <c>et:trace_me/5</c> function call is hardcoded in that
+ <c>Filter</c>.</p>
+
+ </section>
+
+ <section>
+ <title>How To Put It Together</title>
+
+ <p>The <c>Collector</c> automatically registers itself to listen
+ for trace <c>Events</c>, so all you have to do is enable them.</p>
+
+ <p>For those people who want to do general tracing, consult the
+ <c>dbg</c> module on how to trace whatever you're interested in
+ and let it work its magic. If you just want <c>et:trace_me/5</c>
+ to work, do the following:</p>
+
+ <list type="ordered">
+ <item><p>Create a <c>Collector</c></p></item>
+ <item><p>Create a <c>Viewer</c> (this can do step #1 for you)</p></item>
+ <item><p>Turn on and pare down debugging</p></item>
+ </list>
+
+ <p>The module <c>et/examples/et_trace_demo.erl</c> achieves this.</p>
+
+ <codeinclude file="../../examples/et_trace_demo.erl" tag="%module" type="erl"></codeinclude>
+
+ <p>Running through the above, the most important points are:</p>
+
+ <list type="bulleted">
+ <item><p>Turn on global tracing</p></item>
+ <item><p>Set a <c>Trace Pattern</c></p></item>
+ <item><p>Tell <c>dbg</c> to trace function Calls</p></item>
+ <item><p>Tell it specifically to trace the <c>et:trace_me/5</c> function</p></item>
+ </list>
+
+ <p>When you run the <c>et_trace_demo:test()</c> function above, the
+ <c>Viewer</c> window will look like this screenshot:</p>.
+
+ <p></p>
+
+ <image file="coffee_order.png">
+ <icaption>Screenshot of the <c>Viewer</c> window</icaption>
+ </image>
+
+ </section>
+
+</chapter>
diff --git a/lib/et/doc/src/et_viewer.xml b/lib/et/doc/src/et_viewer.xml
index a3e34ac06e..c16e5b8869 100644
--- a/lib/et/doc/src/et_viewer.xml
+++ b/lib/et/doc/src/et_viewer.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>et_viewer</title>
@@ -72,7 +72,7 @@
<fsummary>Start a sequence chart viewer for trace events (messages/actions)</fsummary>
<type>
<v>Options = [option() | collector_option()]</v>
- <v>option() = {parent_pid, extended_pid()} | {title, term()} | {detail_level, detail_level()} | {is_suspended, boolean()} | {scale, integer()} | {width, integer()} | {height, integer()} | {collector_pid, extended_pid()} | {event_order, event_order()} | {active_filter, atom()} | {max_events, extended_integer()} | {max_actors, extended_integer()} | {trace_pattern, et_collector_trace_pattern()} | {trace_port, et_collector_trace_port()} | {trace_global, et_collector_trace_global()} | {trace_client, et_collector_trace_client()} | {dict_insert, {filter, filter_name()}, event_filter_fun()} | {dict_insert, et_collector_dict_key(), et_collector_dict_val()} | {dict_delete, {filter, filter_name()}} | {dict_delete, et_collector_dict_key()} | {actors, actors()} | {first_event, first_key()} | {hide_unknown, boolean()} | {hide_actions, boolean()} | {display_mode, display_mode()}</v>
+ <v>option() = {parent_pid, extended_pid()} | {title, term()} | {detail_level, detail_level()} | {is_suspended, boolean()} | {scale, integer()} | {width, integer()} | {height, integer()} | {collector_pid, extended_pid()} | {event_order, event_order()} | {active_filter, atom()} | {max_actors, extended_integer()} | {trace_pattern, et_collector_trace_pattern()} | {trace_port, et_collector_trace_port()} | {trace_global, et_collector_trace_global()} | {trace_client, et_collector_trace_client()} | {dict_insert, {filter, filter_name()}, event_filter_fun()} | {dict_insert, et_collector_dict_key(), et_collector_dict_val()} | {dict_delete, {filter, filter_name()}} | {dict_delete, et_collector_dict_key()} | {actors, actors()} | {first_event, first_key()} | {hide_unknown, boolean()} | {hide_actions, boolean()} | {display_mode, display_mode()}</v>
<v>extended_pid() = pid() | undefined</v>
<v>detail_level() = min | max | integer(X) when X >=0, X =&lt; 100</v>
<v>event_order() = trace_ts | event_ts</v>
@@ -113,7 +113,6 @@
<item>collector_pid - undefined.</item>
<item>event_order - trace_ts.</item>
<item>active_filter - collector.</item>
- <item>max_events - 100.</item>
<item>max_actors - 5.</item>
<item>actors - ["UNKNOWN"].</item>
<item>first_event - first.</item>
diff --git a/lib/et/doc/src/fascicules.xml b/lib/et/doc/src/fascicules.xml
deleted file mode 100644
index 0678195e07..0000000000
--- a/lib/et/doc/src/fascicules.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?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/et/doc/src/files.mk b/lib/et/doc/src/files.mk
index 13d6cf4d74..41fffb83f1 100644
--- a/lib/et/doc/src/files.mk
+++ b/lib/et/doc/src/files.mk
@@ -1,19 +1,19 @@
#-*-makefile-*- ; force emacs to enter makefile-mode
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2002-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2002-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
XML_APPLICATION_FILES = \
@@ -26,32 +26,27 @@ XML_REF3_FILES = \
et_viewer.xml
XML_PART_FILES = \
- part.xml \
- part_notes.xml
+ part.xml
XML_CHAPTER_FILES = \
et_intro.xml \
- et_architecture.xml \
+ et_tutorial.xml \
+ et_desc.xml \
et_examples.xml \
notes.xml
BOOK_FILES = book.xml
-GIF_FILES = \
- book.gif \
- live_trans.gif \
- megaco_collector.gif \
- megaco_filter.gif \
- megaco_tracer.gif \
- note.gif \
- notes.gif \
- ref_man.gif \
- sim_trans.gif \
- sim_trans_contents_viewer_collector.gif \
- sim_trans_contents_viewer_mgr_actors.gif \
- sim_trans_mgr_actors.gif \
- sim_trans_move_actor.gif \
- sim_trans_write_lock.gif \
- user_guide.gif \
- warning.gif
+IMAGE_FILES = \
+ coffee_order.png \
+ live_trans.png \
+ megaco_collector.png \
+ megaco_filter.png \
+ megaco_tracer.png \
+ sim_trans.png \
+ sim_trans_contents_viewer_collector.png \
+ sim_trans_contents_viewer_mgr_actors.png \
+ sim_trans_mgr_actors.png \
+ sim_trans_move_actor.png \
+ sim_trans_write_lock.png
diff --git a/lib/et/doc/src/live_trans.gif b/lib/et/doc/src/live_trans.gif
deleted file mode 100644
index e2070f89e9..0000000000
--- a/lib/et/doc/src/live_trans.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/live_trans.png b/lib/et/doc/src/live_trans.png
new file mode 100644
index 0000000000..94192697d2
--- /dev/null
+++ b/lib/et/doc/src/live_trans.png
Binary files differ
diff --git a/lib/et/doc/src/live_trans.ps b/lib/et/doc/src/live_trans.ps
deleted file mode 100644
index 8855f2694b..0000000000
--- a/lib/et/doc/src/live_trans.ps
+++ /dev/null
@@ -1,1559 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner
-%%Title: /home/hakan/picts/live_trans.ps
-%%CreationDate: Mon Oct 14 17:29:47 2002
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 429 326
-%%EndComments
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-10 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.173228 14.173228 translate
-% Translate to begin of first scanline
-0.000000 310.991634 translate
-414.655512 -310.991634 scale
-% Image geometry
-496 372 8
-% Transformation matrix
-[ 496 0 0 372 0 0 ]
-% Strings to hold RGB-samples per scanline
-/rstr 496 string def
-/gstr 496 string def
-/bstr 496 string def
-{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
-true 3
-%%BeginData: 85402 ASCII Bytes
-colorimage
-!AQV60nB=U!.b->!<4eQ3Ih~>
-r'Z)9JH16$RfN@SJ,~>
-"DW"!C3+q+JH16$RfEJ1CAr:)~>
-r]0uYnc&U&JcC<$JcFp5!56GQrr<*\0faa~>
-r^?bdnc&U'JcC<$JcFp5!5?MRrrE$dJ,~>
-rcA)>nc&U&JcC<$JcFp5!56GQrrE%>J,~>
-s"OQTs8VWG!53s6J^o>%kLBRGa56ja!WY5@J,~>
-s$Qngs8VWC!5=$8J_#D'kLKXIa4gR]!WYVVJ,~>
-s)S5As8VWG!53s6J^o>%kLBRGa56ja!W[:_J,~>
-!]^8\n(n&XJ^o>%J^rr6!56A.!lY-oJ,~>
-!^m%gn(IcUJ_#D'J_'#8!5?G+!l=q*J,~>
-!cnAAn(n&XJ^o>%J^rr6!56A.!lY.\J,~>
-!\j]Tn(n&XT%*h[J^s#8!6'N>jOF7D`SL[8!&9!~>
-!^m%gn(IcUT%3qbdXg!7ecEqAdanHHQIZ&M`S(C1!(;>~>
-!cnAAn(n&XT%*h[J^s#8!6'N>jOF7D`SL[8!-<Y~>
-!<E/fh>k7Cec1lXeHNpfe\-<VrfmH5!J>a8eH(S\^t&ILpXKAZH[D":eHLSPe^]nKpXK:sHi;Iq
-UqN;K!57RPpRLp5s.'&Es.'#D!NZ9O~>
-!<E/fg&Sk@f)LlVedTEhf"Q]`R?<W_eq&Cgf)LTBf)Lm,ecWX;I@9*Gs+14$s,m',s+1."!MR5t
-ec<GIg@q$.gAdT>gAdT=g&\>VJ,~>
-!<E/fh>k7Cec1lXeHNpfe\-<VrfmH5!J>a8eH(S\^t&ILpXKAZH[D":eHLSPe^]nKpXK:sHi;Iq
-UqN;K!57RPpRLp5s.'&Es.'#D!NZ9O~>
-!<E/thZ',ChZ',Eh>k7dec0srMuM6.UjIaYec1m+eH*Y&gsm"UHaM=]Hc=O"Ph"<:He$Zc]uAM&
-K6tDas-39.!fMEEiRJ*aHe$Z2PkW]/K7!RI!jm<nS^d_RkMGs'p>5b<s5*^ErS@RV!.Y~>
-!<E/tf)M08f)M0:ec<G]df4^qNW.?-Tm_XZdf5I%dK.4ngsQeOJ[X!dIE'QpOj_[/J^Vu`[`-\p
-J\]_6On[9+NIAglimRjXs3gq0pX9(mrR(bUID29#!5@XIpR1a+rL*]:rL*W8!NlEQ~>
-!<E/thZ',ChZ',Eh>k7dec0srMuM6.UjIaYec1m+eH*Y&gsm"UHaM=]Hc=O"Ph"<:He$Zc]uAM&
-K6tDas-39.!fMEEiRJ*aHe$Z2PkW]/K7!RI!jm<nS^d_RkMGs'p>5b<s5*^ErS@RV!.Y~>
-!<E/uhYiuChYiuDh>k7dec'n!c.1?sH\:&&!J>aSeHLkqe^];!qpbk&He$Z!Hc=M9K6suU!J>aW
-eH(;Lo@3koHi2CpP`)*_!57RPpRLs6pRM3=!NZ9O~>
-!<E/uf);$8f);$9ec<G]df+Xub0n^lI>-D's+/tR"c8MmdXcuHdf4mudf4m;df4m*df4mVdf4mi
-df4mrdK,ViS^IMPkLTBqp=Au+rRM"P!.Y~>
-!<E/uhYiuChYiuDh>k7dec'n!c.1?sH\:&&!J>aSeHLkqe^];!qpbk&He$Z!Hc=M9K6suU!J>aW
-eH(;Lo@3koHi2CpP`)*_!57RPpRLs6pRM3=!NZ9O~>
-!<E/uhY`oDhY`oCh>k7deL>itHaM>BH\6t$eVf@!K6suUe]!GnK='1Z`J](iK>#ffHe$*"H[C[i
-r7(eCrd,^*Mi4Zp`KY^rMoF5sXG_FPMp9ekMgL)`e^]S9XGd&-"MK/qeXZVc#gJ!Ke^];!eYN1k
-s2>D)H\8]UeVf?eMq*H,qpk_)*PI)P[+3-[H[C[ie^]S9]n:[=["E_4e^_WsH\8^)eHDChK6qt?
-ec1O<["F:]e^]S9XGbW1MgLA`rm_pgMgKf/c.0dkH\8]Ue]!GnH\9#^`J](iK>%*2$\NfVeVf@!
-K6suUSGmj=c)chMMlc['s,.5tK6suUeZ=[UMlcp.)2!:deUr5!eVf@!K6suUeUr5!c$QPB]mIGa
-eH!;GhY3Q5hYE]>h>s\XJ,~>
-!<E/uf)1s9f)1s8ec<G]dOBTuIBq;<JUrO'dZ'6tKn6PXd__,pKsK.T_NBCtKsoE\J^VQ#JUNNl
-r6bS=rd>j)NK'co`fYh#NP<ihY).RTM9=8`OaVqhdaF,7V2bH%"M0#md[C)_#g.^LdaE\td\6Yg
-s2#2,I>+uTdZ'6_NREB/qpPM(*P-rUZI6aTJUNNldaF,7[Y9:8[Y9:<daH!pI>,!+dKH+lJUN+E
-df5:;[Xj:TdaF,7V2`p+M1(5`rmD^fM1'f/b0n.hI>+uTd__,tI>,,X_NBCtKspg*s+13us,@2n
-Kn6PXRJqU<b-$SLM6?U$s,@AsKn6PXd]SFTM6?j+s+13us+13us,@Q#Kn6PXdXcttb(6S@[XG`Y
-dK%#Ef(YU*f(ka3ecDoRJ,~>
-!<E/uhY`oDhY`oCh>k7deL>itHaM>BH\6t$eVf@!K6suUe]!GnK='1Z`J](iK>#ffHe$*"H[C[i
-r7(eCrd,^*Mi4Zp`KY^rMoF5sXG_FPMp9ekMgL)`e^]S9XGd&-"MK/qeXZVc#gJ!Ke^];!eYN1k
-s2>D)H\8]UeVf?eMq*H,qpk_)*PI)P[+3-[H[C[ie^]S9]n:[=["E_4e^_WsH\8^)eHDChK6qt?
-ec1O<["F:]e^]S9XGbW1MgLA`rm_pgMgKf/c.0dkH\8]Ue]!GnH\9#^`J](iK>%*2$\NfVeVf@!
-K6suUSGmj=c)chMMlc['s,.5tK6suUeZ=[UMlcp.)2!:deUr5!eVf@!K6suUeUr5!c$QPB]mIGa
-eH!;GhY3Q5hYE]>h>s\XJ,~>
-!<E/teb>U4eH!;[bpe"0H^)dNP_4V5c%CA$S9on5`IifVP^CBoMgMhE[(X_:Hd07*]sN-Er66G)
-H[EHNK6rNP]r\oSH]-.EH],8<UrC<*K>!Lr`Qa$^Mkp<r,+O#!c,G$V^!21Vc-:lfc,G$V]u>VV
-]p*l_c%CA$Us4gMqopL@H]+D@K?_*2]sN-Ec-:lfMk#-@Mk#-Hc,G<f]p*l_c(o]^]mG,$bqF]r
-Pa$NZc-:lfMkmG$PeE<.XNdPfMmTje`PmI^]p*l_c&6qU]sPJtMgMhE[(Z:['n^kXc%CA$S9on5
-`HusFXF$2FP^BM,bpe9lMk#-Hc)c8V]p*lFc-:lfc-:lfc-:lfMk#-Hc-:lfc'4.2c,G%"T$78K
-kLBR&q:,J8o[Wi/qpb_K!.Y~>
-!<E/tdeB1.dK%#Yc7+14I?i*SR>$@?c@LD#Tm_X?b(58XQ$pZtM1)hH[_C%<J^2!4^:&HHr6?M+
-JUPD\JUNBO^952YI>Q7GI>P8<WlE24Kt<Ot`m0-`M5C0r,,'G)cGkE`_Tm^`cH^ulcGkE`_T%.\
-\s7]`c@LD#V9XpSqp$R?I>OYGL!IE8^:&HHcH^uhNM1cKNM1cScH:]l\s7]`cCoZ[^4Ck1c7a`s
-Od1?[cH^uhM5@5#Q+iN3Wm7GhM6aRi`l`jd\s7]`cA?tX^:(c$M1)hH[_DR_s+13q&V5@eTm_X?
-`drQTWdU/HQ$o\-c7+<mM4o?OcDl;X^6O,HcH^ulcH^ulcH^uhM4o?OcH^ulcB4+3cGk:+T$@>M
-kL'?uq9f82o[<W)qpGMJ!.Y~>
-!<E/teb>U4eH!;[bpe"0H^)dNP_4V5c%CA$S9on5`IifVP^CBoMgMhE[(X_:Hd07*]sN-Er66G)
-H[EHNK6rNP]r\oSH]-.EH],8<UrC<*K>!Lr`Qa$^Mkp<r,+O#!c,G$V^!21Vc-:lfc,G$V]u>VV
-]p*l_c%CA$Us4gMqopL@H]+D@K?_*2]sN-Ec-:lfMk#-@Mk#-Hc,G<f]p*l_c(o]^]mG,$bqF]r
-Pa$NZc-:lfMkmG$PeE<.XNdPfMmTje`PmI^]p*l_c&6qU]sPJtMgMhE[(Z:['n^kXc%CA$S9on5
-`HusFXF$2FP^BM,bpe9lMk#-Hc)c8V]p*lFc-:lfc-:lfc-:lfMk#-Hc-:lfc'4.2c,G%"T$78K
-kLBR&q:,J8o[Wi/qpb_K!.Y~>
-!<E/sebPa5eH!;[boM/,P^CZ5["F"Uc%CA^c$Of^XF$J^XF%%nMgLu-rlkIrHiD7l`P$nVqoo:s
-Hd0ffHi;1o`P$nVc%CA^rQPYMH^r?^H`YJEHi)%gP^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%n
-K7!=:"bV0@c$Og:boXj;K7hFnK6tS^H[E`VH[F#=H^r?^H`YJEHc=6^Hhbi$K6tk^H\9SfK6tkf
-K6tS^`I!6^K6tT9bmUV"SB\-^XNcZMSA"pH",hMr^%]bdK6tkfK6tS^H[F#^K6tjqHc=7KH\;+<
-,_LH_c$Of^K6tS^`I!6^c%CAfc%CAfc%CA^c$Of^c%CAEHbKF'!IL'&blGH?eGu-8eGu-3ebbm6
-eH)`OJ,~>
-!<E/sdeT=/dK%#Yc5h>0Ob(Z3ZA""Xc@LD`c@LPlY'm"dY'mIuM1(r3rm(OprltV_^4D"8cMrIq
-c2rQFb5TZk_S1STc@p\`rQYbQIA+fdIBLkHIEMK5!L8*4cMrIqcMrIqcMrIqcMrG'cE;Shb-$/q
-c@LDdpW`qnIE'Q`Jc<q9_S1STcH^uhb0GQdb0GQhcE;Shb-$/qc@p\hc@LQAc5(tZb/Sj\cH^uh
-b0Gil`m2SPM9^g'_YqafY'm"dY'mIuM1(r3rltV&I@\7LcMrIqc4PVU`m0-dcH^ulcA?thcGk9h
-ps(.9IE'Q`J^0+#`m2SPM9aCtJ^2PlJ^2PlIE'Q`J^2PlJZaF<rltOmQ(H8$^?<oERJG82RInr)
-RJYD5XoNt~>
-!<E/sebPa5eH!;[boM/,P^CZ5["F"Uc%CA^c$Of^XF$J^XF%%nMgLu-rlkIrHiD7l`P$nVqoo:s
-Hd0ffHi;1o`P$nVc%CA^rQPYMH^r?^H`YJEHi)%gP^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%n
-K7!=:"bV0@c$Og:boXj;K7hFnK6tS^H[E`VH[F#=H^r?^H`YJEHc=6^Hhbi$K6tk^H\9SfK6tkf
-K6tS^`I!6^K6tT9bmUV"SB\-^XNcZMSA"pH",hMr^%]bdK6tkfK6tS^H[F#^K6tjqHc=7KH\;+<
-,_LH_c$Of^K6tS^`I!6^c%CAfc%CAfc%CA^c$Of^c%CAEHbKF'!IL'&blGH?eGu-8eGu-3ebbm6
-eH)`OJ,~>
-!<E/rebbm6eH!;[bn>B!XF$aic%CYnc%CAfc%CAfV#5QOUs6lCH[C[ac%CAf]n:rqH\;4?&;,>S
-c%CAfc+Sa^MgL*$H[G\8!2TO>"/O1oHi)%gP^EDS%tf5Rc%CAfc%CAfc%CAfV#5QAUs4O=p<=M.
-Hd0ffHd06VK8Y)/c-:lfc-:lfc-:lfc(t8a#GfUkHd0ffHhbhpK6tkfH[F#^K6tkfH[Gb:s*Fgl
-H[G\8!2TO>%]%@gP^@b8^!4N\H[C[aq99J'Hd0ffHd0ffHd0ffHd-narltIiprs(sHd0ffHd-na
-rltIis3271Hd0ffHd0ffHd0ffHd0ffH\6[arlkIjPb-,"^&6C\^%n/u^%TtVSGC\8SFtG.SG^n<
-X8mb~>
-!<E/rdefI0dK%#Yc4YQ%Y'm<ub(YPpc@LPlc@LPlV>P`RV9ZrCI=7*hc@LPl\qP]pI>.RDs+13q
-s+13q#eG_@NI?N+I=;%=!2]UA"/X:oJc!^nQ$rYWs+13qs+13qs+13qs+(3rV>P`DV9XXCp<N\h
-s3CXq'[F:DJW5)3cH^ulcH^ulcH^ulcDCGe#Go^oIEp,hJb[OjJcF$qIK.UmJcF!rJUROCs*Xso
-I=;%=!2]UA%].IfQ$n(?^<XT\I=7*hq9K"ks3CXqs3CXqs3CXq!mZ@Frm(Olps/njs3CXq!mZ@F
-rm(Ols3CXqs3CXqs3CXqs3CXqs3:auI>NNprltOmQ(H8$^AQCZ](q`o](XPPRJG82RJ##(RJbJ6
-XoNt~>
-!<E/rebbm6eH!;[bn>B!XF$aic%CYnc%CAfc%CAfV#5QOUs6lCH[C[ac%CAf]n:rqH\;4?&;,>S
-c%CAfc+Sa^MgL*$H[G\8!2TO>"/O1oHi)%gP^EDS%tf5Rc%CAfc%CAfc%CAfV#5QAUs4O=p<=M.
-Hd0ffHd06VK8Y)/c-:lfc-:lfc-:lfc(t8a#GfUkHd0ffHhbhpK6tkfH[F#^K6tkfH[Gb:s*Fgl
-H[G\8!2TO>%]%@gP^@b8^!4N\H[C[aq99J'Hd0ffHd0ffHd0ffHd-narltIiprs(sHd0ffHd-na
-rltIis3271Hd0ffHd0ffHd0ffHd0ffH\6[arlkIjPb-,"^&6C\^%n/u^%TtVSGC\8SFtG.SG^n<
-X8mb~>
-!<E/qebu$7eH!;[bnPN#`Hurrc%CYnc%CAfc%CAfXF$K6bmhXfH\9RqHd.Iqc-:lnqoo_*Hd0ff
-Hd0fnHd0ffK?]$q^&?1WXF$K8blNHDqoonPHc=7SK6tkfK6tkfK6tkfK6tkEH^t#Y!J>amboD@_
-c-:lfc&6qnc%CYnc%CAfc%CAfc%CAfXF$K8blr`H`Q`aVprsS,Hd0NVK?_YnHd0ffHc=7KH\9Rq
-HbKC&!j$a=qTT,]UjIanblbq\H\;.='n^kXc%CAfc%CAfc%CAfK6tS^`I!74bpe9lc-:lfc%CA^
-c,G$^c-:lfc-:lfc-:lfc-:lfc-:lf[!S%^c,G%"T$78Kr71P3p=0/5q:,J8p=8o-rRCqM!.Y~>
-!<E/qdf#U1dK%#Yc4k]'`dN9#c@pttc@LPlc@LPlY'm#?c4.deI>,stJ^07+b0G]pqp,4ms3CXq
-s3:q1J]c8lL!GC#^AZ=YY'm#AcMrImc5*+%`m2k\J^2PlJ^2PlJ^2PlJ^1EHU&<49JbIChJcF$q
-JJQOjJ]c8lL!ItpJ^2PlJ^2PlJ^1EHU&<1>JUP\`JV!UAs+(m0b'euhc@LPlcA?thcGk9hc@p\\
-rQYJIIA-M_"3.$_L&T@"`h@g7q9K"ks3CXqs3CXqs3CXq#L80S`m2SPM>5BrJcF$qJKrHsIE'RP
-I>Q7pJUu+lJUu+lJUu+lJUu+lJUt7XQ-R[pIA*7X!5ABZpR1a'!1EZ2!1EQ/pR2!.!NlEQ~>
-!<E/qebu$7eH!;[bnPN#`Hurrc%CYnc%CAfc%CAfXF$K6bmhXfH\9RqHd.Iqc-:lnqoo_*Hd0ff
-Hd0fnHd0ffK?]$q^&?1WXF$K8blNHDqoonPHc=7SK6tkfK6tkfK6tkfK6tkEH^t#Y!J>amboD@_
-c-:lfc&6qnc%CYnc%CAfc%CAfc%CAfXF$K8blr`H`Q`aVprsS,Hd0NVK?_YnHd0ffHc=7KH\9Rq
-HbKC&!j$a=qTT,]UjIanblbq\H\;.='n^kXc%CAfc%CAfc%CAfK6tS^`I!74bpe9lc-:lfc%CA^
-c,G$^c-:lfc-:lfc-:lfc-:lfc-:lf[!S%^c,G%"T$78Kr71P3p=0/5q:,J8p=8o-rRCqM!.Y~>
-!<E/pec208eH!;[bpn(9c&6qMc%CYnc%CAfc%CAfc%CA=[&gXZUpRhBH]-.$Hd.IqXK6bq^&6+s
-K6suMK6tkfMgMP,H[EH-H\8E5XMrG:H_e$M[*=5Mqop.pHaM&BK6tkfK6tkfK6tkfK6suEK6sE$
-XL-6)HiD7jMhCoO-\Hcjc%CAfMgMP,H[EHNK6tkfK6tkfK6tkfK6sE$XL-6:H^'bAHhbi=K6t;-
-H_ep2K6tkfXF$2FP^BLVXF#T$]r]2tK6sE$XL-6J[(WhnMp8')]sN-Eq99Y,Hd0ffHd0ffHd0ff
-Hd/X=PeE<.XSC$hK6tkfK6tkEH^)4.H`YK:K6tkfK6tkfK6tkfK6tkfK6tk-HaM&)HbH#q!58<\
-pRLs-!1`l8!1`c5rLEo<rLEi:!NZ9O~>
-!<E/pcMs1*c2bTUasqh5b)(PLb(YPlb(5,db(5,d`eAi;[]ZpYTsDD<I>Q*tJ]`gtWiCJq^AQ+q
-M1)hPJUttdM1)D(I=8i0I>+i4Wkuc0IAOBTZH@`LqoTqjIBL`8JUttdJUttdJUttdM1)hLKmff+
-Y-Q3$Jc<glM>PHqJcEmmJK`0mIB';qID3jTJ]c,dJ]c,dJ]budIAOBTZHAG\Q'$KGpr`Vf/\[p,
-TutN/J]c-8I?hC/IAP)dI>+i4Wkuc0IAOBTZHAlH^9W0Db+Z,[email protected]*b5[%mb5[%mb5[%mb5["t
-b,TlT\s7]?pr`Vfs2t@m,Kd$7Q+E6/V96r3J]c,dJ]c,dJ]c,dJ]c,dJ]a7+Y0*nq[[tVA^AQ:N
-Q1iK'Q2/]*Q1iN%Q2f/.Q2Su/XoNt~>
-!<E/pec208eH!;[bpn(9c&6qMc%CYnc%CAfc%CAfc%CA=[&gXZUpRhBH]-.$Hd.IqXK6bq^&6+s
-K6suMK6tkfMgMP,H[EH-H\8E5XMrG:H_e$M[*=5Mqop.pHaM&BK6tkfK6tkfK6tkfK6suEK6sE$
-XL-6)HiD7jMhCoO-\Hcjc%CAfMgMP,H[EHNK6tkfK6tkfK6tkfK6sE$XL-6:H^'bAHhbi=K6t;-
-H_ep2K6tkfXF$2FP^BLVXF#T$]r]2tK6sE$XL-6J[(WhnMp8')]sN-Eq99Y,Hd0ffHd0ffHd0ff
-Hd/X=PeE<.XSC$hK6tkfK6tkEH^)4.H`YK:K6tkfK6tkfK6tkfK6tkfK6tk-HaM&)HbH#q!58<\
-pRLs-!1`l8!1`c5rLEo<rLEi:!NZ9O~>
-!<E/feH!;[bpn(9c+U4'c%CYnc%CAfc%CAfc,GooH\8EEP_4=0Pf:n"Hd/pMH^pmYSG^VR["E_=
-K6tkf["E^qUjJWVXG_FPMoEr[P^@b0XNcBEqT]%us32C5Hd0ffHd0ffHd0gBK6t;NP^@b0XNcBE
-rlkIrHi)&8K6tkfK6tkMK6s,aH^r?5Hd0ffHd0ffHd0gSP^@b0XNe_BK=$8Xprrekrd+X8rlkIr
-HiD7mXFkkPXT$H_XG_FPMoEr[P^@b0XNcu^H[D!rc'3j-H^)MFbnPeWc-:lfc-:lfc-:lfc-<>B
-H\8Eobm]5Oc-:lfc-<>BH\8F!bnu([c-:lfc-:lfc-:lfc-:lfc,G<f`J]YFblGHTeH!;YS,g7r
-eb>U,ec20<ec20;eH)`OJ,~>
-!<E/fc2bTUasqh5b.=Umb(YPlb(5,db(5,db/0EpI>+iHQ%=@7Q+kClJ]bETI@['[RJb2LZ@RS<
-JUttd[Y9.#Tm`?OWel.PM8%-LQ%=@;Y0)<HqTAhts2t@ms2t@ms2t@ms2kbUJUtDLQ%=@;Y0)<H
-rlY7lqo\qis2t@m+j.6II@['[REC)3b0#9db0#9db0%SdJUN6Tb/0!dY(;0!aom9DI=[gcb5[%l
-aonPpI>+^#ar7::I=6sdb/0EpI>+iHQ%=@7Q+kD+JUN*7^A5qOJcEmmJcEmmJcEmmJcEjqV1j>O
-WqX[9JcEmmJcEjqV1j>OWrC0@JcEmmJcEmmJcEmmJcEmmJHj9:JUth#NLe2l^AQ7V[eZ0g[eA#@
-Q1`H&Q2T#.Q2Jo.XoNt~>
-!<E/feH!;[bpn(9c+U4'c%CYnc%CAfc%CAfc,GooH\8EEP_4=0Pf:n"Hd/pMH^pmYSG^VR["E_=
-K6tkf["E^qUjJWVXG_FPMoEr[P^@b0XNcBEqT]%us32C5Hd0ffHd0ffHd0gBK6t;NP^@b0XNcBE
-rlkIrHi)&8K6tkfK6tkMK6s,aH^r?5Hd0ffHd0ffHd0gSP^@b0XNe_BK=$8Xprrekrd+X8rlkIr
-HiD7mXFkkPXT$H_XG_FPMoEr[P^@b0XNcu^H[D!rc'3j-H^)MFbnPeWc-:lfc-:lfc-:lfc-<>B
-H\8Eobm]5Oc-:lfc-<>BH\8F!bnu([c-:lfc-:lfc-:lfc-:lfc,G<f`J]YFblGHTeH!;YS,g7r
-eb>U,ec20<ec20;eH)`OJ,~>
-!<E/feH!:YblYk:XL$1JHNLm5Hdg79HN:bEc2)be^"^d5XFnK_blGGqeH)`OJ,~>
-!<E/fc2bSSao]G2V6e>@I0.!2J^_d<I/pkDb5-Md]%b@/We&$XaoK/oc2k'JJ,~>
-!<E/feH!:YblYk:XL$1JHNLm5Hdg79HN:bEc2)be^"^d5XFnK_blGGqeH)`OJ,~>
-!<E/fblGGP`<!ZJX2P*lH\TK?UqN;;!56=q!NZ9O~>
-!<E/faoK/N`W<fIX2b0jL;j7f^7<1C^;S.pXoNt~>
-!<E/fblGGP`<!ZJX2P*lH\TK?UqN;;!56=q!NZ9O~>
-!<E/fblGG.`QQ7#XF\?_`;mTiblOmGJ,~>
-!<E/faoK/,`llC%Y(=Tb`W3`kaoSXFJ,~>
-!<E/fblGG.`QQ7#XF\?_`;mTiblOmGJ,~>
-!<E/fblGG.`IZ!Z`TP2?]u8.rX8mb~>
-!<E/faoK/,`du-\`ok>A^;S.pXoNt~>
-!<E/fblGG.`IZ!Z`TP2?]u8.rX8mb~>
-!!%S&JV/N+PCii8J,~>
-!!%S$JUrB'PCW]6J,~>
-!!%S&JV/N+PCii8J,~>
-!<E0!joD3.s+13$s.0/nV#TT>]`<Q~>
-!<E0!joD*+s+13$s.0/nU&X9;\c@6~>
-!<E0!joD3.s+13$s.0/nV#TT>]`<Q~>
-!<E0!joD3.s+13$s.95pK;AP0k.LbF~>
-!<E0!joD*+s+13$s.95pJYE,+k.1PC~>
-!<E0!joD3.s+13$s.95pK;AP0k.LbF~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:A!!:[N!:A>:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK
-!;Y1F!.i[OebI\pK*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IF!!:jS!:AM?!<(XM!7T[#!;Y@K!!:jS!:eeC!9W#2!!_-W!8?-,!9W#8!<1^P
-!;Y@K!.ijTgA'D%JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:A!!:[N!:A>:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK
-!;Y1F!.i[OebI\pK*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!;b7G!:A>:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3
-!<1OK!;Y1F!.i[OebI\pK*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!;bFL!:AM?!<(XO!7KU$!<:dQ!;bFL!!:jS!:eeC!9W#8!;bFL!<:dQ!9W#8
-!<1^P!;Y@K!.ijTgA'D%JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!;b7G!:A>:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3
-!<1OK!;Y1F!.i[OebI\pK*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<:UL!!LgP!7fWu!<:UL!<:UL!<:UL!<:UJ!<:UL
-!!:[N!;+hA!;k=F!<:UL!!LgP!7fWu!<1OI!<:UJ!<:UJ!<:UL!!:[N!;+hA!<(IJ!!CaO!7h#J
-s4.&Js4.,L!n@8No[WsArmh#Ks4.&Js4.,L"k<SQeGoT#eUc9Mec17*V#TT>]`<Q~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<:dQ!!M!U!8?0*!<:dQ!<:dQ!<:dQ!<:dO!<:dQ
-!!:jS!;,"F!;kLK!<:dQ!!M!U!8?0*!<1^N!<:dO!<:dO!<:dQ!!:jS!;,"F!<(XO!!CpT!8@AO
-s4[DOs4[JQ!nmVSo\0<Frn@APs4[DOs4[JQ"kiqVg&M,(g4@uWgAc^-U&X9;\c@6~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<:UL!!LgP!7fWu!<:UL!<:UL!<:UL!<:UJ!<:UL
-!!:[N!;+hA!;k=F!<:UL!!LgP!7fWu!<1OI!<:UJ!<:UJ!<:UL!!:[N!;+hA!<(IJ!!CaO!7h#J
-s4.&Js4.,L!n@8No[WsArmh#Ks4.&Js4.,L"k<SQeGoT#eUc9Mec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@s4.,L*7Y#heGoU"eGoU"!!(R"!!(R"!!(OL
-!7fU"!7guIo[WsAr71fIs4.,L+OpGleGoU"!!(R"!!(OL!7fU"!7fU"!7fU"!7fU"!7guIo[WsA
-rRLoJ&(LX[e^XX"e^XX"e^XX"ebfF>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[Oec42"K*A(N
-k2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Es4[JQ*81Amg&M-,g&M-,!!(a,!!(a,!!(^Q
-!8?-,!8@>No\0<Fr7_/Ns4[JQ+PHeqg&M-,!!(a,!!(^Q!8?-,!8?-,!8?-,!8?-,!8@>No\0<F
-rS%8O&)%!`g=cN,g=cN,g=cN,gACsCgA_0PgA_-[g&M-,g&M-,!!(aP!!:jS!.ijTgAfn,JH_bI
-k2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@s4.,L*7Y#heGoU"eGoU"!!(R"!!(R"!!(OL
-!7fU"!7guIo[WsAr71fIs4.,L+OpGleGoU"!!(R"!!(OL!7fU"!7fU"!7fU"!7fU"!7guIo[WsA
-rRLoJ&(LX[e^XX"e^XX"e^XX"ebfF>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[Oec42"K*A(N
-k2s>WJ,~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ec,XLec,UheGoU"!!(R"!!(R"!!(OL!7_&Le^XX"
-e^XX"ec#R>ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^
-eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%s4..%"f21\k.LbF~>
-!<E0!joV7Vs8(II!"@Q]!87DQg&M-,g&M-EgA_0QgA_-mg&M-,!!(a,!!(a,!!(^Q!87DQg=cN,
-g=cN,gAV*CgA_0NgA_0QgA_-`g&M-,!!(^Q!8?-,!87DQqqD&Ms4[JQs4[JQ!8@DPo%O!A'&!<c
-g&M-,g&M-,g&M-,g&M-,rW)NCq>_)\!!(a,!!(^Q!87DQg=cN,J_G\/s4[L("ektYk.1PC~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ec,XLec,UheGoU"!!(R"!!(R"!!(OL!7_&Le^XX"
-e^XX"ec#R>ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^
-eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%s4..%"f21\k.LbF~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo$n!Ge^XZMeGoU"qZ-ZHrr<;S!!(OL!7fWs!!:[N!:eV>
-!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J
-eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^seNs+:KNs5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!CpT!8@;Mo%F?Lg=cP\g&M-,qZ-ZMrr<;X!!(^Q!8?0(!!:jS!:eeC
-!;tRN!<:dQ!!_-W!87DQgA:jOg&M-MgA_0QgA_0QgA_-Sg&M-CgA_0OgA_-Yg&M-,g&M-,gA:jO
-g&M-CgA_0PgA_-QgA:jVg&M-,!!(a,!!%T(J_L.Xs+(?Is5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo$n!Ge^XZMeGoU"qZ-ZHrr<;S!!(OL!7fWs!!:[N!:eV>
-!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J
-eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^seNs+:KNs5rIW!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Lma_79s4.,L!n@8Nqpk]H$.T"UeGoU"eGoUIec,X>ec,XI
-ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI
-!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[Oec42"K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!!V'V!87DQmb7U>s4[JQ!nmVSqqD&M$/,@Zg&M-,g&M-NgA_0CgA_0N
-gA_0QgA_-Yg&M-,!!(^Q!;tRN!;kLM!<:dQ!<:dQ!!:jS!:eeC!<(XO!".E[!8?-,!8?-,!;tRN
-!:eeC!<1^P!!:jS!;tRN!!_-W!8?-,!.ijTgAfn,JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Lma_79s4.,L!n@8Nqpk]H$.T"UeGoU"eGoUIec,X>ec,XI
-ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI
-!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[Oec42"K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"n^[X>rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L
-!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ
-#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[Oec42"K*A(Nk2s>W
-J,~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,n_4!Crn@AP#20%Wg=cN,rn@APs4[JQrn@APs4[JQ
-!nmVSnCmmBs4[DOs4[JQ(tnrig&M-,!!(a,!!(^Q!8?-,!8?-,!8@DPs4[JQ!nmVSn_4!CrS%8O
-#MK.Xg=cN,gAV*PgA_-Sg&M-CgA_0PgA_-[g&M-,g&M-,!!(aP!!:jS!.ijTgAfn,JH_bIk2s5T
-J,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"n^[X>rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L
-!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ
-#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[Oec42"K*A(Nk2s>W
-J,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:\P=!<1OK!<:UJ!<(IJ!<:UL!<(IH!<:UL!:SJ:!<:UJ
-!<:UL!!LgP!7fWu!<1OI!<(IJ!<:UJ!<:UL!:eV>!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK
-!<:UJ!<:UL!!UmQ!7_&LJ^o>%rmh%$"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:\_B!<1^P!<:dO!<(XO!<:dQ!<(XM!<:dQ!:SY?!<:dO
-!<:dQ!!M!U!8?0*!<1^N!<(XO!<:dO!<:dQ!:eeC!<(XO!!:jS!<1^P!<:dO!<:dQ!:eeC!<1^P
-!<:dO!<:dQ!!V'V!87DQJ_G\/rn@C'"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:\P=!<1OK!<:UJ!<(IJ!<:UL!<(IH!<:UL!:SJ:!<:UJ
-!<:UL!!LgP!7fWu!<1OI!<(IJ!<:UJ!<:UL!:eV>!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK
-!<:UJ!<:UL!!UmQ!7_&LJ^o>%rmh%$"f21\k.LbF~>
-!<E0!joV@Ys+/_"ec,W#eUc9Jec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/n'gA_/(g4@uTgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/_"ec,W#eUc9Jec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/_"ec,W#eUc9Jec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/n'gA_/(g4@uTgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/_"ec,W#eUc9Jec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/_"ec,W#eUc9Jec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/n'gA_/(g4@uTgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/_"ec,W#eUc9Jec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tOgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8Eec17*V#TT>]`<Q~>
-!<E0!joV@Ys+,fRK7SZIK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+,`PJUrBEJH_bIk2s5TJ,~>
-!<E0!joV@Ys+,fRK7SZIK*A(Nk2s>WJ,~>
-!<E0!joM:XJV/N+JV0PH"f21\k.LbF~>
-!<E0!joM1UJUrB'JUsDD"ektYk.1PC~>
-!<E0!joM:XJV/N+JV0PH"f21\k.LbF~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.e`#'V!;=tC!;P+E!!:[N!;k=H!9_o4!.i[OeHMcKk2s>WJ,~>
-!<E0!joD*+g>Uc`!;>.H!;P:J!!:jS!;kLM!9`)9!.ijTg'+2Mk2s5TJ,~>
-!<E0!joD3.e`#'V!;=tC!;P+E!!:[N!;k=H!9_o4!.i[OeHMcKk2s>WJ,~>
-!<E0!joD3.e`#'Y!<:UL!;G%D!;4nB!;k=H!9_o4!.i[OeHMcKk2s>WJ,~>
-!<E0!joD*+g>Ucc!<:dQ!;G4I!;5(G!;kLM!9`)9!.ijTg'+2Mk2s5TJ,~>
-!<E0!joD3.e`#'Y!<:UL!;G%D!;4nB!;k=H!9_o4!.i[OeHMcKk2s>WJ,~>
-!<E0!joD4Keb9%=eb]?&ec,XKec,XLeboLJeboLJeboLJec,UNeGoUHec,XIeboLJec,XKec,XL
-eboLJec,W#eUc6SV#TT>]`<Q~>
-!<E0!joD+Hg@kRBgA:l+gA_0PgA_0QgAM$OgAM$OgAM$OgA_-Sg&M-MgA_0NgAM$OgA_0PgA_0Q
-gAM$OgA_/(g4@r]U&X9;\c@6~>
-!<E0!joD4Keb9%=eb]?&ec,XKec,XLeboLJeboLJeboLJec,UNeGoUHec,XIeboLJec,XKec,XL
-eboLJec,W#eUc6SV#TT>]`<Q~>
-!<E0!joD4KebB(DKDF't!//o&!<1OK!#X5d!7fU"!7fU"!7fU"!7fU"!7_&LeGoUHec,XJec,XL
-ec,UNeGoUKec,UUeGoU"eGoU"!!%T#J^jq"s5rIW!.Y~>
-!<E0!joD+Hg@tUIJbe%"!/0)+!<1^P!#XDi!8?-,!8?-,!8?-,!8?-,!87DQg&M-MgA_0OgA_0Q
-gA_-Sg&M-PgA_-Zg&M-,g&M-,!!%T(J_C:$s5rIT!.Y~>
-!<E0!joD4KebB(DKDF't!//o&!<1OK!#X5d!7fU"!7fU"!7fU"!7fU"!7_&LeGoUHec,XJec,XL
-ec,UNeGoUKec,UUeGoU"eGoU"!!%T#J^jq"s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,UOeGoU"r;ciIr;clJquHcIr;`_FrrE&Krr<DV!!(R"!!(R"
-!!)oHrr<5Q!!(OL!;k=H!<(IJ!<:UL!<:UL!"IHY!7fU"!7fU"!7_&LJ^o>%"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_-Tg&M-,r;ciNr;clOquHcNr;`_KrrE&Prr<D[!!(a,!!(a,
-!!)oMrr<5V!!(^Q!;kLM!<(XO!<:dQ!<:dQ!"IW^!8?-,!8?-,!87DQJ_G\/"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XJec,UOeGoU"r;ciIr;clJquHcIr;`_FrrE&Krr<DV!!(R"!!(R"
-!!)oHrr<5Q!!(OL!;k=H!<(IJ!<:UL!<:UL!"IHY!7fU"!7fU"!7_&LJ^o>%"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XJebT:Gec,UReGoU"eGoUJec,UReGoU"eGoTIec,XKec,ULeb]@H
-ec,XKebfCNeGoU"!!)oHrrE#JqZ-ZHrr<2P!!(R"qZ$]J!!%T#J^jq"s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0OgA1gLgA_-Wg&M-,g&M-OgA_-Wg&M-,g&M,NgA_0PgA_-QgA:mM
-gA_0PgACpSg&M-,!!)oMrrE#OqZ-ZMrr<2U!!(a,qZ$]O!!%T(J_C:$s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJebT:Gec,UReGoU"eGoUJec,UReGoU"eGoTIec,XKec,ULeb]@H
-ec,XKebfCNeGoU"!!)oHrrE#JqZ-ZHrr<2P!!(R"qZ$]J!!%T#J^jq"s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tebfCIec#RKec,XLec,UReGoU"eGoUKec,XLec,XLec,WIec,XKec,UN
-eGoUHec,XLec,XLec,UQeGoU"!!)oHrrE#JrrDoGrW)rJrrDuIrr@W#J^jq"s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gACpNgAV*PgA_0QgA_-Wg&M-,g&M-PgA_0QgA_0QgA_/NgA_0PgA_-S
-g&M-MgA_0QgA_0QgA_-Vg&M-,!!)oMrrE#OrrDoLrW)rOrrDuNrr@W(J_C:$s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tebfCIec#RKec,XLec,UReGoU"eGoUKec,XLec,XLec,WIec,XKec,UN
-eGoUHec,XLec,XLec,UQeGoU"!!)oHrrE#JrrDoGrW)rJrrDuIrr@W#J^jq"s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKeb]=Heb]@GeGoUKeb]?Eec,XLec,XLec,XLec,XLec,UL
-ec#RKec,UQeGoU"!!)oHrrE#JrrE)LrrE&KrW)rJrrE)Lrr<,N!!%T#J^jq"s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0PgA:jMgA:mLg&M-PgA:lJgA_0QgA_0QgA_0QgA_0QgA_-Q
-gAV*PgA_-Vg&M-,!!)oMrrE#OrrE)QrrE&PrW)rOrrE)Qrr<,S!!%T(J_C:$s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKeb]=Heb]@GeGoUKeb]?Eec,XLec,XLec,XLec,XLec,UL
-ec#RKec,UQeGoU"!!)oHrrE#JrrE)LrrE&KrW)rJrrE)Lrr<,N!!%T#J^jq"s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XIec,XHec,XKec,WEebfFGeboLHec,XLec#OKeboIL
-eGoUHeb]=HeboLGeGoUIeboLJec,W#eUc6SV#TT>]`<Q~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0PgA_0NgA_0MgA_0PgA_/JgACsLgAM$MgA_0QgAV'PgAM!Q
-g&M-MgA:jMgAM$Lg&M-NgAM$OgA_/(g4@r]U&X9;\c@6~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XIec,XHec,XKec,WEebfFGeboLHec,XLec#OKeboIL
-eGoUHeb]=HeboLGeGoUIeboLJec,W#eUc6SV#TT>]`<Q~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XLec,UUeGoU"eGoU"!!)uJrrE)Lrr@W#J^o>%j4+=/
-s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0PgA_0QgA_-Zg&M-,g&M-,!!)uOrrE)Qrr@W(J_G\/j4X[1
-s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XLec,UUeGoU"eGoU"!!)uJrrE)Lrr@W#J^o>%j4+=/
-s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,XJeboLIeboLJebfFIeboK!eUc8%e`,*_V#TT>]`<Q~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0OgAM$NgAM$OgACsNgAM#&g4@t/g>^fiU&X9;\c@6~>
-!<E0!joD4Kec5[Gec19tec,XJec,XJeboLIeboLJebfFIeboK!eUc8%e`,*_V#TT>]`<Q~>
-!<E0!joD4Kec5[EK7VR(eUc8ZeHMcKk2s>WJ,~>
-!<E0!joD+HgAh3JJUuO+g4@tdg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[EK7VR(eUc8ZeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XJeboLIeboK!eaM#lV#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0OgAM$NgAM#&g@*`!U&X9;\c@6~>
-!<E0!joD3.eUc8dec,XJeboLIeboK!eaM#lV#TT>]`<Q~>
-!<E0!joD3.eUc8feboLIec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD*+g4@tpgAM$NgA_0QgA_-Wg&M-,g&M,(g@3f"U&X9;\c@6~>
-!<E0!joD3.eUc8feboLIec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g@3f"U&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g@3f"U&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g@3f"U&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g@3f"U&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#eaV)mV#TT>]`<Q~>
-!<E0!joD4Keb4Xkec,XKec,UNeGoUIec,XAeb]@,ebK2reZ77#!<1OK!<:UL!!^sR!7fU"!.i\i
-eHMcKk2s>WJ,~>
-!<E0!joD+Hg@g*ngA_0PgA_-Sg&M-NgA_0FgA:m1gA(`"g8is-!<1^P!<:dQ!!_-W!8?-,!.ikn
-g'+2Mk2s5TJ,~>
-!<E0!joD4Keb4Xkec,XKec,UNeGoUIec,XAeb]@,ebK2reZ77#!<1OK!<:UL!!^sR!7fU"!.i\i
-eHMcKk2s>WJ,~>
-!<E0!joD4Keb=[rs7t4F!<1OK!;Y1F!;+hA!8Q-)!.i\!ec,XKec,XLec,UReGoU"eGoT#eaV)m
-V#TT>]`<Q~>
-!<E0!joD+Hg@p-us7tCK!<1^P!;Y@K!;,"F!8Q<.!.ik&gA_0PgA_0QgA_-Wg&M-,g&M,(g@3f"
-U&X9;\c@6~>
-!<E0!joD4Keb=[rs7t4F!<1OK!;Y1F!;+hA!8Q-)!.i\!ec,XKec,XLec,UReGoU"eGoT#eaV)m
-V#TT>]`<Q~>
-!<E0!joD4Kec19uXT/=rec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#Jrr</O!!(RJ!<:RM!7h&K
-!7h&Kp!s'BrRLiHJ^q!TrrE#Jr;ciIr;_E!n'qT;s5rIW!.Y~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-\g&M-,g&M-,!!(a,r;c]JrrE#Orr</T!!(aO!<:aR!8@DP
-!8@DPp"KEGrS%2MJ_I?^rrE#Or;ciNr;_E&n(Ir=s5rIT!.Y~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#Jrr</O!!(RJ!<:RM!7h&K
-!7h&Kp!s'BrRLiHJ^q!TrrE#Jr;ciIr;_E!n'qT;s5rIW!.Y~>
-!<E0!joD4Kec19uXT/=rec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IE!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeW//`V#TT>]`<Q~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;kLM!<(XJ!<:dQ!".E[!8?-,
-!8?-,!;>.H!<1^P!<:dQ!.ijTg5akjU&X9;\c@6~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IE!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeW//`V#TT>]`<Q~>
-!<E0!joD4Kec19uXT/=rebT7WeGoU"!!(R"!!(OL!7fU"!;k=E!!(RK!<:UL!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%Nn"</s5rIW!.Y~>
-!<E0!joD+HgAca#0`V1KgA1d\g&M-,!!(a,!!(^Q!8?-,!;kLJ!!(aP!<:dQ!<:dQ!"7K\!8?-,
-!8?-,!8@;MrS%8Orn@APs4[JQJ_G\/NnOZ1s5rIT!.Y~>
-!<E0!joD4Kec19u@fQK(ebT7WeGoU"!!(R"!!(OL!7fU"!;k=E!!(RK!<:UL!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%Nn"</s5rIW!.Y~>
-!<E0!joD4Kec19uXT/=rec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<(IJ!<1OK!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeW//`V#TT>]`<Q~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-[g&M-,!!(a,!!(aM!;kLM!<(XO!<1^P!<:dQ!".E[!8?-,
-!8?-,!;>.H!<1^P!<:dQ!.ijTg5akjU&X9;\c@6~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<(IJ!<1OK!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeW//`V#TT>]`<Q~>
-!<E0!joD4Kec19uXT/=rec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<(IJ!<1OK!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%Nn"</s5rIW!.Y~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-]g&M-,!!(a,!!(^Q!;G4I!<(XO!<1^P!<:dQ!"7K\!8?-,
-!8?-,!8@;MrS%8Orn@APs4[JQJ_G\/NnOZ1s5rIT!.Y~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<(IJ!<1OK!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%Nn"</s5rIW!.Y~>
-!<E0!joD4Kec19uXT/=rec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IJ!<1OK!<:UL!".6V
-!7fU"!7fU"!;=tC!<1OK!<:UL!.i[OeW//`V#TT>]`<Q~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;kLM!<(XO!<1^P!<:dQ!".E[
-!8?-,!8?-,!;>.H!<1^P!<:dQ!.ijTg5akjU&X9;\c@6~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IJ!<1OK!<:UL!".6V
-!7fU"!7fU"!;=tC!<1OK!<:UL!.i[OeW//`V#TT>]`<Q~>
-!<E0!joD4Kec19uXT/=rec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#JrrE#Jr;clJrrE)LrrE)L
-rrDcCrrE#Jr;bI"JV1dkJ^sMF"f21\k.LbF~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-\g&M-,g&M-,!!(a,r;c]JrrE#OrrE#Or;clOrrE)QrrE)Q
-rrDcHrrE#Or;bI'JUtXgJ_KkP"ektYk.1PC~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#JrrE#Jr;clJrrE)LrrE)L
-rrDcCrrE#Jr;bI"JV1dkJ^sMF"f21\k.LbF~>
-!<E0!joD4Kec19ss+/]#eU`@iK)kq&eb@StV#TT>]`<Q~>
-!<E0!joD+HgAca!s+/l(g4=glJH5_$g@s;)U&X9;\c@6~>
-!<E0!joD4Kec19ss+/]#eU`@iK)kq&eb@StV#TT>]`<Q~>
-!<E0!joD3.e`YK_K7U_r^#B!Beb@StV#TT>]`<Q~>
-!<E0!joD*+g?72iJUt\u_VtNGg@s;)U&X9;\c@6~>
-!<E0!joD3.e`YK_K7U_r^#B!Beb@StV#TT>]`<Q~>
-!<E0!joD3.e`YK_K7U_r^#]1pKE(t&eb@StV#TT>]`<Q~>
-!<E0!joD*+g?72iJUt\u_W:^uJcGb$g@s;)U&X9;\c@6~>
-!<E0!joD3.e`YK_K7U_r^#]1pKE(t&eb@StV#TT>]`<Q~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(pY#eEs5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(pY#eEs5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(pY#eEs5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(pY#eEs5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(pY#eEs5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(pY#eEs5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(pY#eEs5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(pY#eEs5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#pXKGCs5rIW!.Y~>
-!<E0!joD4Keb9%=ec,XKec,UNeGoUIec,XAec,XKec,XFec,WYec18Q^#Qg+s7OnCKE(Vps+C@O
-J^sMF"f21\k.LbF~>
-!<E0!joD+Hg@kRBgA_0PgA_-Sg&M-NgA_0FgA_0PgA_0KgA_/^gAc_T_W/N5s7P(HJcGDss+14M
-J_KkP"ektYk.1PC~>
-!<E0!joD4Keb9%=ec,XKec,UNeGoUIec,XAec,XKec,XFec,WYec18Q^#Qg+s7OnCKE(Vps+C@O
-J^sMF"f21\k.LbF~>
-!<E0!joD4KebB(DKDF't!<1OK!;Y1F!;+hA!<1OK!;Y1F!4UMYK7U_r^&S-*eH(=&p!s(ps8RZ#
-pXKGCs5rIW!.Y~>
-!<E0!joD+Hg@tUIJbe%"!<1^P!;Y@K!;,"F!<1^P!;Y@K!4U\^JUt\u_Z0Z/g&Zd)p"KFss8RZ(
-pY#eEs5rIT!.Y~>
-!<E0!joD4KebB(DKDF't!<1OK!;Y1F!;+hA!<1OK!;Y1F!4UMYK7U_r^&S-*eH(=&p!s(ps8RZ#
-pXKGCs5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE&Krr<__!!(OL!7fU"!7fU"
-!7_&LeGoUKeboLJec,XLec,XLec,UQeGoU"!!(a's+>m9j1YKmp!j(qs7OqBKE(t&eb@StV#TT>
-]`<Q~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-\g&M-,g&M-,!!(a,r;c]JrrE&Prr<_d!!(^Q!8?-,!8?-,
-!87DQg&M-PgAM$OgA_0QgA_0QgA_-Vg&M-,!!(a,s+,a<j21irp"BFts7P+GJcGb$g@s;)U&X9;
-\c@6~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE&Krr<__!!(OL!7fU"!7fU"
-!7_&LeGoUKeboLJec,XLec,XLec,UQeGoU"!!(a's+>m9j1YKmp!j(qs7OqBKE(t&eb@StV#TT>
-]`<Q~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<1OK!!(RK!".6V!7_&L
-eGoU"ec#O`eGoU"!!(R"!!(OL!7fU"!7fU"!7h&K!n@8NgXZ=VJ\C*Ws8V_D!<;YCs8RZ#pXKGC
-s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;kLM!<1^P!!(aP!".E[!87DQ
-g&M-,gAV'eg&M-,!!(a,!!(^Q!8?-,!8?-,!8@DP!nmVSgY2[YJ\pHas8V_B!<;YAs8RZ(pY#eE
-s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<1OK!!(RK!".6V!7_&L
-eGoU"ec#O`eGoU"!!(R"!!(OL!7fU"!7fU"!7h&K!n@8NgXZ=VJ\C*Ws8V_D!<;YCs8RZ#pXKGC
-s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tebT7WeGoU"!!(R"!!(OL!7fU"!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>m9j1PHmjFdL4J^sMF"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA1d\g&M-,!!(a,!!(^Q!8?-,!;kLM!<1^P!!h3X!8?-,!8@AOrn@AP
-s4[JQ(tnrig=cN,g=cN,g&M-,!!(a,!!(a,!!(d-s+,a<j2(frjFR@2J_KkP"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tebT7WeGoU"!!(R"!!(OL!7fU"!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>m9j1PHmjFdL4J^sMF"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>n&_uG;<pXKGCs5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-[g&M-,!!(a,!!(aM!;kLM!<1^P!!h3X!8?-,!8@AOrn@AP
-s4[JQ(tnrig=cN,g=cN,g&M-,!!(a,!!(a,!!(d-s+,b$_uG;ApY#eEs5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>n&_uG;<pXKGCs5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<1OK!%l_$!7fU"!7_&LeGoU"
-eGoU"eGoU"!!(R"!!(R"!!(OL!7_&Le^XX"e^XX"gXQ:VJcEUeJ^sMF"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-]g&M-,!!(a,!!(^Q!;G4I!<1^P!%ln)!8?-,!87DQg&M-,
-g&M-,g&M-,!!(a,!!(a,!!(^Q!87DQg=cN,g=cN,gY)XYJcEUeJ_KkP"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<1OK!%l_$!7fU"!7_&LeGoU"
-eGoU"eGoU"!!(R"!!(R"!!(OL!7_&Le^XX"e^XX"gXQ:VJcEUeJ^sMF"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;b7G!$B_k!7fU"!7fU"!7_&L
-e^XX"eGoU"eGoU"!!(R"!!*#KrrE)LrrE&KrrE)Lrr@W#J^on5"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;bFL!$Bnp!8?-,!8?-,!87DQ
-g=cN,g&M-,g&M-,!!(a,!!*#PrrE)QrrE&PrrE)Qrr@W(J_H7?"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;b7G!$B_k!7fU"!7fU"!7_&L
-e^XX"eGoU"eGoU"!!(R"!!*#KrrE)LrrE&KrrE)Lrr@W#J^on5"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;cZDquHcIrrE)Lrr<,N!!*#Kr;clJ
-rrE)Lr;cfHrrE)LrrE&KrrE)Lrr@W#J^on5"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-\g&M-,g&M-,!!(a,r;cZIquHcNrrE)Qrr<,S!!*#Pr;clO
-rrE)Qr;cfMrrE)QrrE&PrrE)Qrr@W(J_H7?"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;cZDquHcIrrE)Lrr<,N!!*#Kr;clJ
-rrE)Lr;cfHrrE)LrrE&KrrE)Lrr@W#J^on5"f21\k.LbF~>
-!<E0!joD4Kec5[EK7VR(eUc8ZeHMcKk2s>WJ,~>
-!<E0!joD+HgAh3JJUuO+g4@tdg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[EK7VR(eUc8ZeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F#rKDX1&V#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`'Jc".)U&X9;\c@6~>
-!<E0!joD3.eUc8%e[F#rKDX1&V#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F#sK)krKeHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g:#`(JH5`Ig'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%e[F#sK)krKeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%e[F$.KDN7]KDN:]s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jbm4`Jbm7`s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KDN7]KDN:]s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KDW=_s+C0]s8VuH"f21\k.LbF~>
-!<E0!joD*+g4@t/g:#`8Jc!:bs+1$`s8VuM"ektYk.1PC~>
-!<E0!joD3.eUc8%e[F$.KDW=_s+C0]s8VuH"f21\k.LbF~>
-!<E0!joD3.eUc8%e[F$.KDW=`s+>t$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g:#`8Jc!:cs+,au_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%e[F$.KDW=`s+>t$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%e[F$.KD`F_s8R`K^&S-0eHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g:#`8Jc*Cbs8RZI_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%e[F$.KD`F_s8R`K^&S-0eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%e[F$.KD`F_rrU`'KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jc*CbrrUo*Jc*Cbs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KD`F_rrU`'KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KDiL`s8UXLKD`F_s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jc3Ics8UgQJc*Cbs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KDiL`s8UXLKD`F_s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KDiL`s8LRKKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jc3Ics8LaPJc3Ics81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KDiL`s8LRKKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KDrRas8CLJKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jc<Ods8C[OJc3Ics81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KDrRas8CLJKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KDrRas8:FIKDrRas81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jc<Ods8:UNJc<Ods81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KDrRas8:FIKDrRas81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KE&Xbs81@HKDrRas81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8JcEUes81OMJc<Ods81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KE&Xbs81@HKDrRas81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KE&Xbs8(:GKE&Xbs81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8JcEUes8(ILJcEUes81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KE&Xbs8(:GKE&Xbs81=MV#TT>]`<Q~>
-!<E0!joD3.e`>9\s7OqBs8CLJs.%U>s7+V>s-qO=s7+Y>s7=e@s68)6K*&ads7t4FKE&Xbs81=M
-V#TT>]`<Q~>
-!<E0!joD*+g>puf!;5(G!<(XO!1_aC!:ebC!1V[B!:eeC!;"qE!9r5;JHE^gs7tCKJcEUes81LR
-U&X9;\c@6~>
-!<E0!joD3.e`>9\!;4nB!<(IJ!1_R>!:eS>!1VL=!:eV>!;"b@!9r&6K*&ads7t4FKE&Xbs81=M
-V#TT>]`<Q~>
-!<E0!joD4Lec5[Lec#LJeboFOec5["s8UXKs8UXLs8UXLrrCUIrrCUKs-hI<s7FhAs8:CIs,5D-
-s,#8+s74\?s68)6K*&ads7k.EK*&ads81=MV#TT>]`<Q~>
-!<E0!joD+IgAe#LgARiJgAIcOg81Y"V5;oFV>o9LV>o9LV#]6IV#]6KV4-*<!;+tF!;tON!/oP2
-!/]D0!:nhD!9r5;JHE^gs7k=JJHE^gs81LRU&X9;\c@6~>
-!<E0!joD4Lec,XLeboIJebfCOeGoU"!!(RK!<:UL!<:UL!!(RI!!(RK!1MF<!;+eA!;t@I!/oA-
-!/]5+!:nY?!9r&6K*&ads7k.EK*&ads81=MV#TT>]`<Q~>
-!<E0!joD4KeIMW0ec41Ms4,["e^a]Ms8LOVs4,["e^a]Mec42"rm_5Qe^a]Mec2r*s8NATs4,["
-s4./LpsoBDs4.,KrRLrJr7(fIr7(fI\(1NY#M&k)ec42"s8CLJs8CLIs8LRKs8LRKs7b(BrrgmP
-s4.._ec5XSec41Ms4./LrRLrJrRLoIrmh&Krmh&Kp!j'BrRLrJrRLrJrm_,Nec5[Kec5[KeH,^#
-rr;fEs+C@Oon*=Zs8VuH"f21\k.LbF~>
-!<E0!joD+Hg('t5g83NWV:sY"g=iCWV>f0VV:sY"g=iCWg83N"rn7RQg=iCWg82+/rr<>Y!8?-,
-!87DQptG]Is4[GPrS%8Or7V,Nr7V,N\(^i^#MK13g&Th,!<(XO!<(XN!<1^P!<1^P!;G4G!!M!U
-!87FdgA_-Xg&Tj\!87DQrS%8OrS%5Nrn@APrn@APp"BBGrS%8OrS%8Orn7GSg&M-PgA_0Pg&V3-
-rW)cJs+14Momm1]s8VuM"ektYk.1PC~>
-!<E0!joD4KeIDT0eH".M!7fU"e^XZM!<1LV!7fU"e^XZMeH","rm_2Qe^XZMeGuo*rr<>T!7fU"
-!7_&Lpso?Ds4.)KrRLoJr7(cIr7(cI\(1KY#Lrh)eH","!<(IJ!<(II!<1OK!<1OK!;G%B!!LgP
-!7_(_ec,USeH".M!7_&LrRLoJrRLlIrmh#Krmh#Kp!j$BrRLoJrRLoJrm_)NeGoUKec,XKeH#[#
-rW)cEs+C@Oon*=Zs8VuH"f21\k.LbF~>
-!<E0!joD4KeIDQ/ec41Ms8UXLe^a^"rRLrJ'@m-5ec41Ms4./"s4./"ec5["s0C/^s4./"s4,["
-e^a]qeH#XIeHu9+ec41Ms4,["rRCoJr7(fI\()/lec42"e^a]Mec41Ms4,["e^a]reH#XIeH#XD
-eH#XKeHGp&s4..`eJ%u5s4./"ec41Ms4,["e^a]Mec5Kr!<;uI!<;cC!<<&K%fb)0s4,["e^a]M
-ec42"rm_,Ne^a^!eH#XCec17%s7:mCs81=MV#TT>]`<Q~>
-!<E0!joD+Hg'sn4g83NWV5;nBg=iC"rS%:J'AB;:g83NWV:qd"V:qd"g81Y"V6\e^!87G,!8?-,
-g=cQ&g&M-Ng'Ic5g&Tj\!8?-,rRq5Or7V,N\(VJqg&Th,g=cP\g&Tj\!8?-,g=cQ'g&M-Ng&M-I
-g&M-Pg&qE0!87Feg(OJ?!87G,g&Tj\!8?-,g=cP\g&V!'!!)rN!!)`H!!*#P%KP5:!8?-,g=cP\
-g&Th,rn7GSg=cQ+g&M-HgAc^(s7:gAs81LRU&X9;\c@6~>
-!<E0!joD4KeI;N/eH".M!!(OLe^XX"rRLoJ'@d*5eH".M!7_)"!7_)"eGoU"!4(,^!7_)"!7fU"
-e^XZqeGoUIeHl6+eH".M!7fU"rRClJr7(cI\(),leH","e^XZMeH".M!7fU"e^XZreGoUIeGoUD
-eGoUKeH>m&!7_(`eIqr5!7_)"eH".M!7fU"e^XZMeH#Hr!!)rI!!)`C!!*#K%KP&0!7fU"e^XZM
-eH","rm_)Ne^X[!eGoUCec17%s7:mCs81=MV#TT>]`<Q~>
-!<E0!joD4KeIMW0ec41Ms4./Le^a]Ms8LO`s4./Le^a]Mec42"ec42"e^a]Ms8TCT$NJZVec41M
-s4,["psoEErm_2Pe^a]Mec,UHeH#XIeH#WYeI;K.s4./"ec41Ms4,[!s8CLJs8:CIs8LRJs7b%D
-s8LOOs4./"s1["ls4./"s4,["e^a]Mec,UIec5[IeH#XKec,UBeH#XKeHZ'(ec41Ms8:FIs8CLI
-s8CIJs7Y"CKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+Hg('t5g83NWV:qcBg=iCWV>f0`V:qcBg=iCWg83N"g83N"g=iCWV5:KO$38c[g&Tj\
-!8?-,ptG`Jrn7MUg=cP\gAV*Mg&M-Ng&M,^g'du8!87G,g&Tj\!8?0+!<(XO!;tON!<1^O!;G1I
-!<1[T!87G,[email protected]!87G,!8?-,g=cP\gAV*NgA_0Ng&M-PgAV*Gg&M-Pg'.Q2g&Tj\!;tRN!<(XN
-!<(UO!;>.HJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4KeIDT0eH".M!7_&Le^XZM!<1L`!7_&Le^XZMeH","eH","e^XZM!!'=T$38TVeH".M
-!7fU"psoBErm_/Pe^XZMec#RHeGoUIeGoTYeI2H.!7_)"eH".M!7fX!!<(IJ!;t@I!<1OJ!;G"D
-!<1LO!7_)"!5?tl!7_)"!7fU"e^XZMec#RIec,XIeGoUKec#RBeGoUKeHQ$(eH".M!;tCI!<(II
-!<(FJ!;=tCKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4KeKFnBec41Ms4,["e^a]Mec41Ms4,["e^a]Mec41Ms4./KeH>j%ec2r*$NJZVec41M
-s4,["p=0TOe^a]Mec41Ms4,["rRCoJr7(fI\()&iec42"e^a]Mec41Ms4,["r7(fIrRD,Pe^a]M
-ec5Bo#liH*s8UXLec3A6&HC;\ec41Ms4,["e^a]Mec5Qt!<<#J#636(s4,["p=00Crm_MYe^a]M
-ec41Ms4,["ec5X!"96p%s8LOKs7Y"CKCJp<eHMcKk2s>WJ,~>
-!<E0!joD+Hg*!6Gg83NWV:sY"g=iCWg83NWV:sY"g=iCWg83NWV:qdFg&n2*g82+/$38c[g&Tj\
-!8?-,p=]oTg=cP\g&Tj\!8?-,rRq5Or7V,N\(VAng&Th,g=cP\g&Tj\!8?-,r7V,NrRqGUg=cP\
-g&Um$#QWT4!!(^Qg&Sk@&-1Dag&Tj\!8?-,g=cP\g&V')!!)uO"p!B2!8?-,p=]KHrn7h^g=cP\
-g&Tj\!8?-,g&V-+!s%'/!<1[P!;>.HJai^:g'+2Mk2s5TJ,~>
-!<E0!joD4KeK=kBeH".M!7fU"e^XZMeH".M!7fU"e^XZMeH".M!7_)KeH5g%eGuo*$38TVeH".M
-!7fU"p=0QOe^XZMeH".M!7fU"rRClJr7(cI\()#ieH","e^XZMeH".M!7fU"r7(cIrRD)Pe^XZM
-eH#?o#QWE*!!(OLeH!>6&-15\eH".M!7fU"e^XZMeH#Nt!!)uJ"p!3(!7fU"p=0-Crm_JYe^XZM
-eH".M!7fU"eH#U!!s$m%!<1LK!;=tCKCJp<eHMcKk2s>WJ,~>
-!<E0!joD4Jec5[Lec5[LeH,^#rr<#Krr<#K!<<&Ks8W)K$3/QUe^a^"e^a]*eHu9+s4./Le^a^"
-psoBDs4.,K#1`bRe^a^"rmgrH!7h#I\^^f^ec41trs%$Rs4,["s8LRJs8LRHrrgmPs4./Dec5XR
-ec42"ec5ZaeH>j%s4.&I#1`bRe^a^"rmh#JrmgrH"P*PPec5Hqr;ZfIs8W&Js8W,Ls8N/Ns8W)K
-s8W)KrVuZCs+BqC!e^OQqpbkGs5rIW!.Y~>
-!<E0!joD+GgAe#LgAe#Lg&\&(rh]YKrh]YK!2]\Ks/#_K$)Q@Pg=iC"g=iC/g'Ic5!87DQg=cN,
-ptG]Is4[GP#20%Wg=cN,rn@8M!8@>N\_7,cg&Tk)!!_-W!8?-,!<1^O!<1^M!!M!U!87GIgA_-W
-g&Th,g&M,fg&h?/!8@>N#20%Wg=cN,rn@>Orn@8M"PNhUg&Us&quHcNrrE#OrrE)Qrr<,S!!*#P
-rrE&Pr;cWHs+0eA!eLCOqq;4Is5rIT!.Y~>
-!<E0!joD4Jec,XLec,XLeH#[#rW)uKrW)uK!!*#KrrE&K#lrKUe^XX"e^XZ*eHl6+!7_&Le^XX"
-pso?Ds4.)K#1W\Re^XX"rmgoH!7guI\^^c^eH".t!!^sR!7fU"!<1OJ!<1OH!!LgP!7_)Dec,UR
-eH","eGoTaeH5g%!7guI#1W\Re^XX"rmguJrmgoH"P!JPeH#EqquHcIrrE#JrrE)Lrr<,N!!*#K
-rrE&Kr;cWCs+BqC!e^OQqpbkGs5rIW!.Y~>
-!<E0!joD3.eb%Als+/^Oe\p#<KE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g@X)!!.ijTg;M_FJcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eb%Al!.i[Oe\p#<KE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eb7Pns8CLFs+/_pebfB-ebfBsec1:%s7CsDs81=MV#TT>]`<Q~>
-!<E0!joD*+g@j8#!<(XK!.ikugA:l2gA:m#gAca(s7CmBs81LRU&X9;\c@6~>
-!<E0!joD3.eb7Pn!<(IF!.i\peb]?-eb]?sec1:%s7CsDs81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.K)krCKE(uKeHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g:#`8JH5`AJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%e[F$.K)krCKE(uKeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g:#`8Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%e[F$.KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X;eH#X=eH#X7eH#WjeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-@g&M-Bg&M-<g&M,og&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU;eGoU=eGoU7eGoTjeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X;eH#X=eH#X7eH#WjeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-@g&M-Bg&M-<g&M,og&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU;eGoU=eGoU7eGoTjeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAec,UKec#OJec5[JeH,^#rr2uKrVuZCs8W,Ls8N5Ps8UX"rVulIs8W)K
-!WU^Ls4>d$s,,>,s0gJXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-FgAV*PgAM$OgA_0Og&V3-rVurPr;cWHrrE)Qrr<2U!!(a,r;ciNrrE&P
-!<CjQ!8#p)!/fJ1!4LV]Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUAec#RKeboLJec,XJeH#[#rVurKr;cWCrrE)Lrr<2P!!(R"r;ciIrrE&K
-!<C[L!8#a$!/f;,!4LGXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XBeH#XHeH#XHeH#XJeH#XIeH#XDeHu9+ec41Ms4,["rm_#KrRD#Me^a^!
-eH#X!eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Gg&M-Mg&M-Mg&M-Og&M-Ng&M-Ig'Ic5g&Tj\!8?-,rn7>PrRq>Rg=cQ+
-g&M-&g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBeGoUHeGoUHeGoUJeGoUIeGoUDeHl6+eH".M!7fU"rm^uKrRCuMe^X[!
-eGoU!eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAec5[JeH#XJec,UIeH#XIeH#XDeHu9+ec41Ms4,["rm_#KrRLoIrRCoJ
-eC=R!MU__,[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-FgA_0Og&M-OgAV*Ng&M-Ng&M-Ig'Ic5g&Tj\!8?-,rn7>PrS%5NrRq5O
-eCjm&MV8%1[bCb4o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAec,XJeGoUJec#RIeGoUIeGoUDeHl6+eH".M!7fU"rm^uKrRLlIrRClJ
-eC=O!MU_\,[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#X?eH#XKeHc-)ec5["ec5Tu!<;uI"96p%s8(7Ps4,["e^a]Mec5X!#liH*
-s4./"ec5X!!<:R!!<7r,!<9LXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Dg&M-Pg'7W3g&M-,g&V**!!)rN!s%'/!;bCU!8?-,g=cP\g&V-+#QWT4
-!87G,g&V-+!!(O&!!%o1!!'I]s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoU?eGoUKeHZ*)eGoU"eH#Qu!!)rI!s$m%!;b4P!7fU"e^XZMeH#U!#QWE*
-!7_)"eH#U!!!(O!!!%o,!!'IXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBec,UHec5[Lec5XOec41MrVuiHs8VlEs8W&Js8N,Ms8LRKs8LRKs8LRI
-s45^#s,,>,s0gJXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-GgAV*MgA_0QgA_-Tg&Tj\r;cfMrrDiJrrE#Orr<)R!<1^P!<1^P!<1^N
-!7oj(!/fJ1!4LV]Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBec#RHec,XLec,UOeH".Mr;cfHrrDiErrE#Jrr<)M!<1OK!<1OK!<1OI
-!7o[#!/f;,!4LGXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X%ebfBWeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-*gA:l\g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU%eb]?WeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gA_0Lg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5eboLGeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gAM$Lg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5eboLGeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gA:mMg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eVO8+s,,>,s0gJXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g5#`dg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eVF3_eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gA:mMg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4ec#RHeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gAV*Mg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4ec#RHeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gA_0Lg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X)eH#XHeH#XIec5Z`eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-.g&M-Mg&M-NgA_/eg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU)eGoUHeGoUIec,W`eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X)eH#XAeH#W`eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-.g&M-Fg&M,eg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU)eGoUAeGoT`eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XCeH>j%s8W&Js8W,L"om-Qec5[Gec#OIec5[Jec,T_eH#W,eH#WXec19m
-^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Hg&h?/!!)uOrrE)Q"T[6Vg&M-LgAM$NgA_0OgAV)dg&M,1g&M,]gAc`p
-_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUCeH5g%!!)uJrrE)L"T['QeGoUGeboLIec,XJec#Q_eGoT,eGoTXec19m
-^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBeIV]1ec41Ms4,["ec42"ec5Ep!<;rH!<<&K"96p%s1["`s,,>,s0gJX
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-Gg(+2;g&Tj\!8?-,g&Th,g&Up%!!)oM!!*#P!s%'/[email protected]!/fJ1!4LV]
-Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBeIMZ1eH".M!7fU"eH","eH#Bp!!)oH!!*#K!s$m%!5?t`!/f;,!4LGX
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XBeHQ!'ec41Mrr<#K"TR$Pec5Ep!<;rH!<<&K"96p%s1["`s,,>,s0gJX
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-Gg'%K1g&Tj\rW)uP"9@-Ug&Up%!!)oM!!*#P!s%'/[email protected]!/fJ1!4LV]
-Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBeHGs'eH".MrW)uK"9?sPeH#Bp!!)oH!!*#K!s$m%!5?t`!/f;,!4LGX
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XBeIMW0ec41Ms4,["e^a]Ms7b%Gs4,["rm_#Krm_,Ne^a]6eH#W,eH#WX
-ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Gg(",:g&Tj\!8?-,g=cP\!;G1L!8?-,rn7>Prn7GSg=cP@g&M,1g&M,]
-gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBeIDT0eH".M!7fU"e^XZM!;G"G!7fU"rm^uKrm_)Ne^XZ6eGoT,eGoTX
-ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XCec,RQec5["ec5[KeH5d$s7Y"Cs8UXIs8UXLrrL[M^XW>aMU__,[akD1
-o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-HgAV'Vg&M-,g&M-Pg&_9.!;>.H!<:dN!<:dQ!!1dR^Y/YfMV8%1[bCb4
-o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUCec#OQeGoU"eGoUKeH,a$!;=tC!<:UI!<:UL!!1UM^XW;aMU_\,[akD1
-o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X1ebfBKeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-6gA:lPg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU1eb]?KeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XGec,W5eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-LgA_/:g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUGec,W5eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XJeboK2eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-OgAM#7g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUJeboK2eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH5d$eb]?0eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&_9.gA:l5g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eH,a$eb]?0eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eVO8+s,,>,s0gJXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g5#`dg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eVF3_eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH5d$ebfE0eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&_9.gACr5g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eH,a$ebfE0eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XJeboK2eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-OgAM#7g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUJeboK2eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XGec,W5eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-LgA_/:g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUGec,W5eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAeH#X*eH#XJeH#X=ec5[@ec5[2eH#W,eH#WXec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD+?g&Rt,g&M-Fg&M-/g&M-Og&M-BgA_0EgA_07g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5T
-J,~>
-!<E0!joD4BeGoT,eGoUAeGoU*eGoUJeGoU=ec,X@ec,X2eGoT,eGoTXec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD4BeH#W,eH#XAeH#X%eH#X<eH#X?eH#X2eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Fg&M-*g&M-Ag&M-Dg&M-7g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUAeGoU%eGoU<eGoU?eGoU2eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBec#OJeH,^#r;QiKs8VrG#liHTec5["s4.,Ks4./LrmguIrmh&Kp=00C
-rRLrJrRLrJrm_,Nec5[5eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-GgAM$Og&V3-qu?fP!!)lL#QWQYg&M-,!8@DPs4[JQrn@;Nrn@APp=]KH
-rS%8OrS%8Orn7GSg&M-:g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBeboLJeH#[#qu?fK!!)lG#QWBTeGoU"!7h&Ks4.,LrmgrIrmh#Kp=0-C
-rRLoJrRLoJrm_)NeGoU5eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAeH#XIeH#XJeH>j%ec5Kr"TR$Pec5X!!<;rH!<<#J!<<#J"96p%s7b%D
-s8LOYs4,["e^a]Mec41Ms4./4eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Fg&M-Ng&M-Og&h?/g&V!'"9@-Ug&V-+!!)oM!!)uO!!)uO!s%'/!;G1I
-!<1[^!8?-,g=cP\g&Tj\!87G9g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUAeGoUIeGoUJeH5g%eH#Hr"9?sPeH#U!!!)oH!!)uJ!!)uJ!s$m%!;G"D
-!<1LY!7fU"e^XZMeH".M!7_)4eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAeH#XIeH#XJeH>j%ec5Kr"TR$Pec5X!!<;rH!<<#J!<<#Jrr;]B!<<&K
-#636(s4,["r71iIk1'J3MU__,[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-Fg&M-Ng&M-Og&h?/g&V!'"9@-Ug&V-+!!)oM!!)uO!!)uOrW)ZG!!*#P
-"p!B2!8?-,r7_/Nk1Te8MV8%1[bCb4o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAeGoUIeGoUJeH5g%eH#Hr"9?sPeH#U!!!)oH!!)uJ!!)uJrW)ZB!!*#K
-"p!3(!7fU"r71fIk1'G3MU_\,[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#XAeHZ'(ec41Ms8CIMs4,["q:,QHec5Tu!<;rH!<<#J#liH*s4./"ec5Bo
-!<<&K%fb)0s4,["e^a]Mec42"kLBS4MU__,[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-Fg'.Q2g&Tj\!<(UR!8?-,q:YlMg&V**!!)oM!!)uO#QWT4!87G,g&Um$
-!!*#P%KP5:!8?-,g=cP\g&Th,kLon9MV8%1[bCb4o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAeHQ$(eH".M!<(FM!7fU"q:,NHeH#Qu!!)oH!!)uJ#QWE*!7_)"eH#?o
-!!*#K%KP&0!7fU"e^XZMeH","kLBP4MU_\,[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#X@ec5[Lec#OIec5[EeH5d$s8LRIs8UXIs8LRKs8LRKs7k.Bs8UXLs8CLJ
-s8UXLrrUaNs6.u5s,,>,s0gJXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-EgA_0QgAM$NgA_0Jg&_9.!<1^N!<:dN!<1^P!<1^P!;P:G!<:dQ!<(XO
-!<:dQ!!:jS!9i,:!/fJ1!4LV]Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoU@ec,XLeboLIec,XEeH,a$!<1OI!<:UI!<1OK!<1OK!;P+B!<:UL!<(IJ
-!<:UL!!:[N!9hr5!/f;,!4LGXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#X5eH#WFeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-:g&M,Kg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU5eGoTFeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X7ec5[JebfC,ebfBoeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-<gA_0OgA:m1gA:ltg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU7ec,XJeb]@,eb]?oeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gA_0Lg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5eboLGeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gAM$Lg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5eboLGeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gA:mMg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eU[^_!!*&-ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g496c!4LV]Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eU[^^!4LGXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gA:mMg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4ec#RHeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gAV*Mg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4ec#RHeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gA_0Lg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X)eH#XBec5Z`eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-.g&M-GgA_/eg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU)eGoUBec,W`eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X)eH#XAeH#W`eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-.g&M-Fg&M,eg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU)eGoUAeGoT`eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAec5XPec42"ec,RMec5[KeH>j%s8W)KrVulIs8W&Jrr9^_!<7r,!<9LX
-s+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-FgA_-Ug&Th,gAV'Rg&M-Pg&h?/!!*#Pr;ciNrrE#OrW'[d!!%o1!!'I]
-s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUAec,UPeH","ec#OMeGoUKeH5g%!!*#Kr;ciIrrE#JrW'[_!!%o,!!'IX
-s+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBeH>j%ec5X!!<;rH!<<&K"96p%s8LOKs8CISs4,["e^a]Mec3A6!<7r,
-!<9LXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Gg&h?/g&V-+!!)oM!!*#P!s%'/!<1[P!<(UX!8?-,g=cP\g&Sk@!!%o1
-!!'I]s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUBeH5g%eH#U!!!)oH!!*#K!s$m%!<1LK!<(FS!7fU"e^XZMeH!>6!!%o,
-!!'IXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBeH>j%ec5X!!<<#Jrr;uJ"96p%s8LOKs8CLIs8LONs4,["^=<5`MU__,
-[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-Gg&h?/g&V-+!!)uOrW)rO!s%'/!<1[P!<(XN!<1[S!8?-,^=iPeMV8%1
-[bCb4o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUBeH5g%eH#U!!!)uJrW)rJ!s$m%!<1LK!<(II!<1LN!7fU"^=<2`MU_\,
-[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#XBeH>j%ec5X!!<<&K"96p%s8LONs4,["rm_MYe^a]Ms4,["e^a]Mec3A6
-!<7r,!<9LXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Gg&h?/g&V-+!!*#P!s%'/!<1[S!8?-,rn7h^g=cP\!8?-,g=cP\g&Sk@
-!!%o1!!'I]s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUBeH5g%eH#U!!!*#K!s$m%!<1LN!7fU"rm_JYe^XZM!7fU"e^XZMeH!>6
-!!%o,!!'IXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XAec,UKec#OJec5XNec42!rrUaNs8LRKs8LRKs8CLJrrL[M^XW>aMU__,
-[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-FgAV*PgAM$OgA_-Sg&Tk+!!:jS!<1^P!<1^P!<(XO!!1dR^Y/YfMV8%1
-[bCb4o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAec#RKeboLJec,UNeH"/!!!:[N!<1OK!<1OK!<(IJ!!1UM^XW;aMU_\,
-[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#X?eH#W<eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Dg&M,Ag&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU?eGoT<eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBec,T:eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-GgAV)?g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBec#Q:eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XGec,W5eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-LgA_/:g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUGec,W5eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XJeboK2eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-OgAM#7g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUJeboK2eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH5d$eb]?0eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&_9.gA:l5g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eH,a$eb]?0eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eU[^_!!*&-ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g496c!4LV]Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eU[^^!4LGXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH5d$ebfE0eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&_9.gACr5g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eH,a$ebfE0eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XJeboK2eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-OgAM#7g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUJeboK2eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XGec,W5eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-LgA_/:g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUGec,W5eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X5ec5[,eH#XHeH#XIec5[#eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-:gA_01g&M-Mg&M-NgA_0(g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU5ec,X,eGoUHeGoUIec,X#eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X4eH#X,eH#XAeH#X#eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-9g&M-1g&M-Fg&M-(g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU4eGoU,eGoUAeGoU#eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBeH,^#rr<#Ks8W#I!<<#Js8W)Ks8W#Irr;uJs8VlErVulIs8W&Jrr:R"
-!<7r,!<9LXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Gg&V3-rW)uPrrDuN!!)uOrrE&PrrDuNrW)rOrrDiJr;ciNrrE#OrW(O'
-!!%o1!!'I]s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUBeH#[#rW)uKrrDuI!!)uJrrE&KrrDuIrW)rJrrDiEr;ciIrrE#JrW(O"
-!!%o,!!'IXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XAeH#XJeH>j%ec5Tu!<<&K"96p%s8CIJs8LOKs8:CLs4,["psfBEqpb]H
-rm_,Ne^a]NeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Fg&M-Og&h?/g&V**!!*#P!s%'/!<(UO!<1[P!;tOQ!8?-,pt>]Jqq;#M
-rn7GSg=cPXg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUAeGoUJeH5g%eH#Qu!!*#K!s$m%!<(FJ!<1LK!;t@L!7fU"psf?EqpbZH
-rm_)Ne^XZNeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAeH#XJec,UHeH#XKec,UJec,UIec5[Kec,UCeH#XHeH#XKeH>j%ec44N
-!<7r,!<9LXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Fg&M-OgAV*Mg&M-PgAV*OgAV*NgA_0PgAV*Hg&M-Mg&M-Pg&h?/g&T^X
-!!%o1!!'I]s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUAeGoUJec#RHeGoUKec#RJec#RIec,XKec#RCeGoUHeGoUKeH5g%eH"1N
-!!%o,!!'IXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XAeH#XJeH>j%ec5Tu!<<&K#liH*s4./"ec5Ns#636(s4,["psfKHe^a^!
-eH#XKeH>j%ec44N!<7r,!<9LXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Fg&M-Og&h?/g&V**!!*#P#QWT4!87G,g&V$("p!B2!8?-,pt>fMg=cQ+
-g&M-Pg&h?/g&T^X!!%o1!!'I]s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUAeGoUJeH5g%eH#Qu!!*#K#QWE*!7_)"eH#Ks"p!3(!7fU"psfHHe^X[!
-eGoUKeH5g%eH"1N!!%o,!!'IXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBec#OIec5[KeboIIec5[Kec5XOec41Mrr;rIs8VfCs8W,Lr;ZfIs8N,M
-s4>d$s,,>,s0gJXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-GgAM$NgA_0PgACsNgA_0PgA_-Tg&Tj\rW)oNrrDcHrrE)QquHcNrr<)R
-!8#p)!/fJ1!4LV]Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBeboLIec,XKebfFIec,XKec,UOeH".MrW)oIrrDcCrrE)LquHcIrr<)M
-!8#a$!/f;,!4LGXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#WnebfBceH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,sgA:lhg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoTneb]?ceGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gA_0Lg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5eboLGeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gAM$Lg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5eboLGeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gA:mMg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eU[^_!!*&-ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g496c!4LV]Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eU[^^!4LGXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gA:mMg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4ec#RHeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gAV*Mg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4ec#RHeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gA_0Lg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X@ec5[Eec5[DeH#X=eH#X%eH#XHeH#X@eH#W,eH#WXec19m^&S-0eHMcK
-k2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-EgA_0JgA_0Ig&M-Bg&M-*g&M-Mg&M-Eg&M,1g&M,]gAc`p_Z0Z5g'+2M
-k2s5TJ,~>
-!<E0!joD4BeGoT,eGoU@ec,XEec,XDeGoU=eGoU%eGoUHeGoU@eGoT,eGoTXec19m^&S-0eHMcK
-k2s>WJ,~>
-!<E0!joD4BeH#W,eH#X?eH#XDeH#XDeH#X=eH#X%eH#X9eH#W,eH#WXec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD+?g&Rt,g&M-Dg&M-Ig&M-Ig&M-Bg&M-*g&M->g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5T
-J,~>
-!<E0!joD4BeGoT,eGoU?eGoUDeGoUDeGoU=eGoU%eGoU9eGoT,eGoTXec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD4BeH#W,eH#XAec,UJec5[IeH#XJec5[Kec#OIec5[Eec#OJeH,^#rr3&Ms8W)K"96pO
-s8CLIs8UXLs8:FIs8LRIs8LRKs8CLJs8UURs4./Le^a\WeH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-FgAV*OgA_0Ng&M-OgA_0PgAM$NgA_0JgAM$Og&V3-rW!#R!!*#P!s%$T
-!<(XN!<:dQ!;tRN!<1^N!<1^P!<(XO!<:aW!87DQg=cOag&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUAec#RJec,XIeGoUJec,XKeboLIec,XEeboLJeH#[#rW!#M!!*#K!s$jO
-!<(II!<:UL!;tCI!<1OI!<1OK!<(IJ!<:RR!7_&Le^XYWeGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBeHu9+ec41Ms4,["rRCoJrm_,Ne^a^!eH#XJeH>j%ec5Ep!<;uI!<;rH
-!<<&K#636(s4,["qUGTGrm_,Ne^a^!eH#XHeH#XKeI2E-ec41Ms4,["ec1NW!<9LXs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Gg'Ic5g&Tj\!8?-,rRq5Orn7GSg=cQ+g&M-Og&h?/g&Up%!!)rN!!)oM
-!!*#P"p!B2!8?-,qUtoLrn7GSg=cQ+g&M-Mg&M-Pg'[o7g&Tj\!8?-,g&R#a!!'I]s+0aXs8VuM
-"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUBeHl6+eH".M!7fU"rRClJrm_)Ne^X[!eGoUJeH5g%eH#Bp!!)rI!!)oH
-!!*#K"p!3(!7fU"qUGQGrm_)Ne^X[!eGoUHeGoUKeI)B-eH".M!7fU"eGtKW!!'IXs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBeHQ!'ec41Mrr;oH!<<&Krr;rI!<<#Jrr;`C!<;uI!<<#Jrr;uJ"96p%
-s8LRKs8LRJs8LOKs81=Hs81=Hs8LOVs4,["e^a]Mec42"MU__,[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-Gg'%K1g&Tj\rW)lM!!*#PrW)oN!!)uOrW)]H!!)rN!!)uOrW)rO!s%'/
-!<1^P!<1^O!<1[P!;kIM!;kIM!<1[[!8?-,g=cP\g&Th,MV8%1[bCb4o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUBeHGs'eH".MrW)lH!!*#KrW)oI!!)uJrW)]C!!)rI!!)uJrW)rJ!s$m%
-!<1OK!<1OJ!<1LK!;k:H!;k:H!<1LV!7fU"e^XZMeH","MU_\,[akD1o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#XBeHu9+ec41Ms4,["rRCoJrm_,Ne^a^!eHl3*ec42"e^a]peHZ'(ec41M
-s8LONs4,["rm_,Ne^a]teHQ!'s4,["rm_,Ne^a^!eH>j%ec5X!!<<&K$iec-s4,["e^a]Ms,,>,
-s0gJXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-Gg'Ic5g&Tj\!8?-,rRq5Orn7GSg=cQ+g'@]4g&Th,g=cQ%g'.Q2g&Tj\
-!<1[S!8?-,rn7GSg=cQ)g'%K1!8?-,rn7GSg=cQ+g&h?/g&V-+!!*#P$NSo7!8?-,g=cP\!/fJ1
-!4LV]Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBeHl6+eH".M!7fU"rRClJrm_)Ne^X[!eHc0*eH","e^XZpeHQ$(eH".M
-!<1LN!7fU"rm_)Ne^XZteHGs'!7fU"rm_)Ne^X[!eH5g%eH#U!!!*#K$NS`-!7fU"e^XZM!/f;,
-!4LGXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XAec5XQec41Ms8W)Kr;ZfIs8W#Is8W)Ks8VfCs8W,LrVuoJs8N/Ns4.,K
-"4dGOec,UJec5XMec5X!s8W#Is8W,Lr;ZfIs8W,Lrr2uKrr7l+!<9LXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-FgA_-Vg&Tj\!!*#PquHcNrrDuNrrE&PrrDcHrrE)Qr;clOrr<,S!8@DP
-"53_TgAV*OgA_-Rg&V-+rrDuNrrE)QquHcNrrE)QrVurPrW%i0!!'I]s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUAec,UQeH".M!!*#KquHcIrrDuIrrE&KrrDcCrrE)Lr;clJrr<,N!7h&K
-"4[AOec#RJec,UMeH#U!rrDuIrrE)LquHcIrrE)LrVurKrW%i+!!'IXs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#WtebfB]eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-$gA:lbg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoTteb]?]eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gA_0Lg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5eboLGeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gAM$Lg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5eboLGeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gA:mMg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eVO8+s,,>,s0gJXKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g5#`dg&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eVF3_eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gA:mMg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4ec#RHeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gAV*Mg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4ec#RHeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gA_0Lg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19ks81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`ns81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19ks81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec17%^%D=+KE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc^(_Y!j0JcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec17%^%D=+KE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec17'^&S--ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc^*_Z0Z2gAc^*_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec17'^&S--ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:%^&S-.ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca(_Z0Z3gAc^*_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:%^&S-.ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:%^&S-/ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca(_Z0Z4gAca(_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:%^&S-/ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:$^&S-0ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca'_Z0Z5gAca(_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:$^&S-0ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:$^&S-1ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca'_Z0Z6gAca'_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:$^&S-1ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:#^&S-2ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca&_Z0Z7gAca'_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:#^&S-2ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:#^&S-3ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca&_Z0Z8gAca&_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:#^&S-3ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:"^&S-4ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca%_Z0Z9gAca&_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:"^&S-4ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:"^&S*6eUrMP^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca%_Z0W;g4=hQ_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:"^&S*6eUrMP^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:!]`A*3KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca$_>sW8Jc*Cbs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:!]`A*3KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec1:!]`S4dKDW@^s81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca$_?0agJc!=as81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec1:!]`S4dKDW@^s81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19u^&N`^^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca#_Z,2a_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19u^&N`^^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19u]`<]]^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAca#_>o/`_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19u]`<]]^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXec19ks81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]gAc`ns81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXec19ks81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WXeGt6js81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,]g&Q]ms81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTXeGt6js81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#W?eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,Dg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoT?eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD*+g4@t/g7?q$U&X9;\c@6~>
-!<E0!joD3.eUc8%eXb4oV#TT>]`<Q~>
-!<E0!joD4SeU`@(K7SZhKBC\fV#TT>]`<Q~>
-!<E0!joD+Pg4=g+JUrBdJ`bYiU&X9;\c@6~>
-!<E0!joD4SeU`@(K7SZhKBC\fV#TT>]`<Q~>
-!<E0!joD4SeU`@(K7SZiK)kr6eHMcKk2s>WJ,~>
-!<E0!joD+Pg4=g+JUrBeJH5`4g'+2Mk2s5TJ,~>
-!<E0!joD4SeU`@(K7SZiK)kr6eHMcKk2s>WJ,~>
-!<E0!joD4Sec19n]`J/HK)^D8J\C!Ts8V`)s8V63"f21\k.LbF~>
-!<E0!joD+PgAc`q_?'\RK)^D=J\p?^s8V`.s8V68"ektYk.1PC~>
-!<E0!joD4Sec19n]`J/HK)^D8J\C!Ts8V`)s8V63"f21\k.LbF~>
-!<E0!joD4Sec19p^&S*5K=up;!/#j9J\C!TrVuT)s8V63"f21\k.LbF~>
-!<E0!joD+PgAc`s_Z0W:J\m'>!.f^<J\p?^rVuT.s8V68"ektYk.1PC~>
-!<E0!joD4Sec19p^&S*5K=up;!/#j9J\C!TrVuT)s8V63"f21\k.LbF~>
-!<Bh3SGUk:KD3(Ys8R]Q^&S+eec18Q]n*lT^&.j)^&S,peHMJVS=BQZJ,~>
-!<B_0RJY_<JbR%\s8RWO_Z0XjgAc_T_L]S^_YaB._Z0Yug'*nUR@+$TJ,~>
-!<Bh3SGUk:KD3(Ys8R]Q^&S+eec18Q]n*lT^&.j)^&S,peHMJVS=BQZJ,~>
-!!)uB!1`r:s+C-\rVm&OK7gl;s+])(K7U^e^#6U(s8UXJs8'G/s5qi8SB\a\S,e'~>
-!!)u?!1E`<s+1!_rVm&TJUt]<s+]8-JUt[h_Vi<2s8UgOs8'V4s5r#=REE+PR/ha~>
-!!)uB!1`r:s+C-\rVm&OK7gl;s+])(K7U^e^#6U(s8UXJs8'G/s5qi8SB\a\S,e'~>
-!<CCD]`=T"ec1:!^&A!1ec17'^&S+eec18Q]n*lT^&S-2ec#OG^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca$_YsN6gAc^*_Z0XjgAc_T_L]S^_Z0Z7gAV'L_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:!^&A!1ec17'^&S+eec18Q]n*lT^&S-2ec#OG^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:#^&A!/ec17'^&S+eec18Q]n*lT^&S-0ec#OI^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca&_YsN4gAc^*_Z0XjgAc_T_L]S^_Z0Z5gAV'N_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:#^&A!/ec17'^&S+eec18Q]n*lT^&S-0ec#OI^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:%^&A!-ec17'^&S+eec18Q]n*lT^&S-.ec#LL^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca(_YsN2gAc^*_Z0XjgAc_T_L]S^_Z0Z3gAV$Q_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:%^&A!-ec17'^&S+eec18Q]n*lT^&S-.ec#LL^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ebb!oec17'^&S+eec18Q]n*lT^&S--ebt.#s5qi8SB\a\S,e'~>
-!<C:A\cA/qgA?HrgAc^*_Z0XjgAc_T_L]S^_Z0Z2gAQU&s5r#=REE+PR/ha~>
-!<CCD]`=T"ebb!oec17'^&S+eec18Q]n*lT^&S--ebt.#s5qi8SB\a\S,e'~>
-!<CCD]`=T"ec1:%^&<T[ec17'^&S+eec18Q]n*lT^&S-.ebt+%^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca(_Yo&^gAc^*_Z0XjgAc_T_L]S^_Z0Z3gAQR(_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:%^&<T[ec17'^&S+eec18Q]n*lT^&S-.ebt+%^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:#^&<T]ec17'^&S+eec18Q]n*lT^&S-0ebt."^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca&_Yo&`gAc^*_Z0XjgAc_T_L]S^_Z0Z5gAQU%_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:#^&<T]ec17'^&S+eec18Q]n*lT^&S-0ebt."^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:!^&<T_ec17'^&S+eec18Q]n*lT^&S-2ebt-u^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca$_Yo&bgAc^*_Z0XjgAc_T_L]S^_Z0Z7gAQU#_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:!^&<T_ec17'^&S+eec18Q]n*lT^&S-2ebt-u^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec19t^&<QeeUrLfs8Ri(s+>m9J\C!Ts8W,LrIas[s8V63"e<iN]po(Q~>
-!<C:A\cA/qgAca"_Yo#hg4=gls8Ri-s+,a<J\p?^s8W,QrIOg^s8V68"e!NE\sWPK~>
-!<CCD]`=T"ec19t^&<QeeUrLfs8Ri(s+>m9J\C!Ts8W,LrIas[s8V63"e<iN]po(Q~>
-!<CCD]`=T"ec19r^&3Ka^&S+eec18Q]n*lT^&S-2KD<.[s5qi8SB\a\S,e'~>
-!<C:A\cA/qgAc`u_Yerd_Z0XjgAc_T_L]S^_Z0Z7Jb[+^s5r#=REE+PR/ha~>
-!<CCD]`=T"ec19r^&3Ka^&S+eec18Q]n*lT^&S-2KD<.[s5qi8SB\a\S,e'~>
-!<CCD]`=T"ec19p^&EWc^&S+cK7U^e^#6U(s8R`F^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAc`s_Z#)f_Z0XhJUt[h_Vi<2s8RZD_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec19p^&EWc^&S+cK7U^e^#6U(s8R`F^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec19n]`Ni"s+>rT]n*lT]`J.coY(;)k1'X*c+Uf\!.Y~>
-!<C:A\cA/qgAc`q_?,;*s+>lR_L]S^_?'[foYUY.k1U!,b.>0P!.Y~>
-!<CCD]`=T"ec19n]`Ni"s+>rT]n*lT]`J.coY(;)k1'X*c+Uf\!.Y~>
-!<CCD]`=T"ec18Qs+13$s1nZseHMJf]tKp9J,~>
-!<C:A\cA/qgAc_Ts+13$s1nZsg'*ne]"4:0J,~>
-!<CCD]`=T"ec18Qs+13$s1nZseHMJf]tKp9J,~>
-!<CCD]`=T"eGt5Qs+13$s1eTreHMJf]tKp9J,~>
-!<C:A\cA/qg&Q\Ts+13$s1eTrg'*ne]"4:0J,~>
-!<CCD]`=T"eGt5Qs+13$s1eTreHMJf]tKp9J,~>
-!<CCD]`=RReUc8%eXb4oSB\a\S,e'~>
-!<C:A\cA.Lg4@t/g7?q$REE+PR/ha~>
-!<CCD]`=RReUc8%eXb4oSB\a\S,e'~>
-!<CCC^%%VDUk,=mUqNQ(^%.Znc2PBWS,e'~>
-!<C:@]()2>Tn/ngTtR-"](26hb5SsQR/ha~>
-!<CCC^%%VDUk,=mUqNQ(^%.Znc2PBWS,e'~>
-!\j]"rOqgI!53s`JcC<$^&RWIrk/B'!',Q~>
-!^m%2rOVUC!4ma]JcC<$^&RWFrji0!!(;>~>
-!cn@drOqgI!53s`JcC<$^&RWIrk/B'!-<Y~>
-!]^8*n%A^kJ`_OGJ`aZ.!6suG!h96FJ,~>
-!^m%2n%&LeJ`_OGJ`aZ.!6XcA!gs$VJ,~>
-!cn@dn%A^kJ`_OGJ`aZ.!6suG!h973J,~>
-">Mn:S=K,_!1\W&J`_OG^#f=>n\+sm!WY5@J,~>
-s$QngR@3TV!1AE#J`_OG^#f=;n[eag!WYVVJ,~>
-"DVuXS=K,_!1\W&J`_OG^#f=>n\+sm!W[:_J,~>
-">Mns!!)MYJ\?WJJ\A_0nXTUZ!]_tqJ,~>
-r^?bdn<nj=J\$ED]XmX$rrE$dJ,~>
-rcA)>n=5'CJ\?WJ]Y3j*rr<+AC3+n~>
-!BDn63Iq0]!.b->!!G#:0f^t=~>
-r'Z)9JH16$RfN@SJ,~>
-!HW#TF+F=B!.b->!;png~>
-%%EndData
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/lib/et/doc/src/megaco_collector.gif b/lib/et/doc/src/megaco_collector.gif
deleted file mode 100644
index 56a2c5891e..0000000000
--- a/lib/et/doc/src/megaco_collector.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/megaco_collector.png b/lib/et/doc/src/megaco_collector.png
new file mode 100644
index 0000000000..d5c2cde7e4
--- /dev/null
+++ b/lib/et/doc/src/megaco_collector.png
Binary files differ
diff --git a/lib/et/doc/src/megaco_collector.ps b/lib/et/doc/src/megaco_collector.ps
deleted file mode 100644
index bdc603f087..0000000000
--- a/lib/et/doc/src/megaco_collector.ps
+++ /dev/null
@@ -1,3247 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner
-%%Title: /home/hakan/picts/megaco_collector.ps
-%%CreationDate: Mon Oct 14 18:04:40 2002
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 433 458
-%%EndComments
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-10 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.173228 14.173228 translate
-% Translate to begin of first scanline
-0.000000 443.079478 translate
-417.999508 -443.079478 scale
-% Image geometry
-500 530 8
-% Transformation matrix
-[ 500 0 0 530 0 0 ]
-% Strings to hold RGB-samples per scanline
-/rstr 500 string def
-/gstr 500 string def
-/bstr 500 string def
-{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
-true 3
-%%BeginData: 194862 ASCII Bytes
-colorimage
-"4bhXB)#L068!gRJNn]M`]jGHoiV;t7J0da:/CXf"%jdo1k5~>
-"5;@eBD>U16Sa3Zq*KWuJO.RI!$q5?!E_b_=TM8npfR\n/42gU~>
-"4bhXB)#L084%l+JQ%+u`_ujnoiV;t7J0da:/CXf"'&!2F+=~>
-"k%V!e`,ckkQ'lHmK'S4JX5tp<L9#;Q^3u(QC!o(QBml'QC!o(QBml'Q^3r(QBml'Q^3r(QC!r(
-Q^3r(QC!o'Q^3u)QC!o'Q^3u)QC!o(Q^3u(QC!o(Q^3u(Q^=#)QBml'Q^=$:QNNP?Q^7T:!1*SM
-J!QFaOckiiP*(oiOckiiP*(oiP*1rjOcbfhP*1rjOckliP*(liOckliP*(liOckihP*(ojOckih
-P*(ojOckiiP*(oiOckiiP*(oiP*1rjOcbfhP*1rjOckliP*(liOckliP*(ojOckihP*(ojOckih
-P*(oiOckiiP"Lk"OcbfhP*1rjOckliP*(liOckliP*(ojOckihP*(ojOckiiP*(oiOckiiP*(oi
-P*1rjOcbfhP*1rjOcbfhP*1rjOc`Z6iVqg:kPjZKlL+*+a6*B\!9=%A"mk[FeD]<aiW/*=kQBYF
--oQS~>
-%bH$2e`5cQk32'qm-_6-MP'sAnXb<&hOOY<qOIVXrLEq[qOIVXrLEq[qOIVXrLF%^SXlANSH,8X
-SH,8[SH,8XSH,8[SH,8XSH,8[SH,8XSH,8[SHGISSY#eN!1s%X!1s.[!1s%X!1s.[!1s%X/=rE'
-?h*%3ioB.^k32'qm-DXRi8EVTjlP[hlKdidiSNMOioK4_kigd*0116~>
-"k%V!e`,ckkQ'lHmK(25J`<$U($"<5j5T+YioB%Yio9"XioB%Yio9"siX"T(ioB%Yio9"si]#oW
-ioB%Yio9"XioB%Yio9"Xj5T(Yio9"Xj5T(YioB%Xj5T(YioB%Xj5T+YioB%Xj5T+YioC!s#ijq(
-j5T+YioC!s2rioWj5T+YioB%Xj5T+YioB%Yio9"XioB%Yio9"Xj5T(Yio9"Xj5T(YioB%Xj5T(Y
-ioB%Xj8IsCj5T(YioB%Xj8IsUj5T(YioB%Xj5T(YioB%Xj5T+YioB%XOn%E0iW/0@kQU8>md%pU
-ro*q<rTFFOmdAT`hu;U8jo+BFh69@gJ,~>
-"H0M7e_C)[#2nV*k3/jIX)J#\d;Nc=EGoi<Df]o;FDu8AE--)>F)Q,?E--&>F)Z8AEcc5BEcH>C
-F*;JGEcQDCF`h\KEH?;AH?=4TDg-DFHZF7SDg?JHIrBOWE.)eLI;aLWF+A4SI<'g]FanFYH?4RX
-G^XR\G]eLVH[A;)Jou9gEI`@WK5uBhF+e^^JoQ?gFbFd_Irg6dG_0sdI!(-aH[p-hG^"d\Isc?k
-FF&IXK6_ZnEdiFYKQMNkEIrL[K5uEiF*!"WH%BseH?Fm]I=H<lG'\a[K6qcqF+/U[Km.fpEe8[]
-L3%cnEeSa`K5uNkFbOpbJT?HiG_C*fI<:0cH\$0iH?Y$_IsuKnG'eg\KR7lrEdiLZKm.ipEeA^^
-Kl_]mF+ng`K5uQkFbXscJ9$?gGS#LJJUMZpFF8X[HqWkWe^iLSh>lL4jorf`e^`:-rn[Y7roO70
-iVq@-f`'_2hrNq^O<oD~>
-%Z[dDf%Jd3hV[>Qk3&pXX*XksJC]'EI"$EjI=-HjI!p?iI!gBiIXQTnI=6TlIXZ]qI"$QmJUMrt
-H[pWoJp`'"H\6itK7/<%I>!'!KRAH(IYE3%K7/H'J:r<(JprN(Jq\W.J:N-(I>*<'MLC,4I>NN*
-M1(,3IYiN+LOG&3JVnl1Kmnu1K8P&6K7Jo/L515:J:`Z+MM-M>I>*K+N.HV>I#<W.NI?M;I>i`/
-Mg^G:IuSo2M1(A9JrP28LOY>6KSt5;KS#54M26YBJ;&r0NJ)kDI>E`/O+;nCI>ir4O+)k1Mgg\=
-K8k><Lk(S:L5UM@KS,;6MMQeDJ;0#3NeN(FIYio2O+E"DI>rr4O+)qCIuf/6NI?e@JWG89MLUY<
-KT1D=LOkM9LPpVAK7f25MhlnEItio2NeE%FIYrr3O+;qCI>(_gdacq%g=tKAioB1_`ST(of@npm
-gtpuKjQ=eHdaQe"g=kB>iSrs\/:[~>
-"H0M7e_C)[#2nV*k30LUX31Iee&m0ab0%rNbKe8Tbfe;Sbg";UbKJ2Rc-4AVb08,QcHFDVb0A/R
-cH=AUb0J2RcH=DWb0\>UccXPXbL"DVcH=JVbg4GYc-4SXcI'k`ccsk]d*U"ac-F_\dEg(bbg4Y[
-dE^%ebgXt`e]cChbgaq`eBH@gbgjtbe'-=fc.'u;dW<X_c-On`eBcCibgFk_e]lFibgXq`e]cFh
-bgk"aeBHCgc.1%be'-=ecIC(edEL.cd*p4gcd(%ada?:hc-Ok_eBcChbgOq`e]lFibgXq`e]cFh
-bgjt`eBHCgc.1%ce'-=ecIC(edEU4cd*p4gcH\i-bgXt`e]lIibgat`[email protected]%d
-d`g7dcd^1fd*:+bdF-7hc-Fh_e'Q@ibgFn`eBZ@hbg)+5e^`7*rn[Y5rT4:(i76B0h>Z72ir8'@
-dc(2U!8.;-"lJD'k)`5d~>
-%VF8Ag=Xj1i8s"NkO#?LqIp"GD//HP!GuWHB`W!co4\8\]P$SF$u19WJCM'BJWe5iCi&BN"cpuB
-\YNp6Bf'aEC2Rg&D/*p'OH"$lD/*p'C2Rd'Chds)DJs90Chn'+E,KE2CMn6/Ec>f=CiXW4GA_;J
-G&)5ACjBr>G&2ABDg6,CFDQ>CF*MMIEGp2@GBReME-$>AIWKFWDL$JCIrTRYCjgACJ8]^XD1?PH
-I;OCSDLcYMHYn7REdqtSG&;hMGC47[F)lkMIX#^`EHltLJol!bDLHeIKQ23dD1ZkKKPu6aD1lqQ
-JSfs\DhN%UG^O@\EclqMJTbpbE-cqLK626lDh<@RMfX5uD23=VM/RroD2NF]L2DZiEf"acIr1$a
-G_^-iH#SX\It2BmFa&UXKmIZqEd`OVLj!rtDM*:RMfO2tD23=WM/RuoD2WI^Kl)TiF,=jeIVjsa
-H%p0jG]AU[It%lDM04&uD2!4,mFBbArn\"?jlY^hlc7r6aD(Tf&o=u<lIFkDe^Au:gt-eLjlX]H
-J,~>
-%VO>Cf[S7'hr<SGk3B-WqK2j_H$8Rt!I8n`FTH]2o5t+r^iSjb%!IJuMq,MXMjr"5G^/Lr"dm\Y
-^8c;PF`2GIG'\CUGBS.RG'S:uQ$7ItG'S:UH$4L[G'nOZI!0j^GCFa_HZsp`H%'scH?XmaI!p3h
-H$XsaJ9uKmG^Y'cJpMcqG_(9eKmA-!GD(?iL3S<#G_^WpKm/<#HAHj!JU!#uItr6'IsQrtK7c71
-M1'l0H&-rqMgL)1G`$ouM0Xl,H&R*%L3ST)I>W?*JpE<&Jr"Z0IXI*#LP'l3I"@-!Mh-58H\R8G
-H&[9'Mg:22H]WW0Lj>&2J;ni4K6iZ-Ko()8J:ET*MM-8:I>!K'NduS>HAR?$OF;b?G`@9&O*c\;
-H&mE+NHpM7I#r]1LM_<tIY!K(N.QD<I"mH&NdlS>HAdE$OaMk?H&dE)Nd?S9H'!H-Mg:;4IZJi4
-KmAc.K8b&7JUNT+Lkg8:IY*Q)N.FsneCN=,gYUiIj6#Of_qrqcB4tsmCMgKAkgA89f$]#7g=LYK
-jQ=NFJ,~>
-%VF8Ag=Xj1i8s"NkO#sXqSWHS`l7>`!QN+Q_u[iso>C^WkJ?N'%)pNDbjOEQbgl$q`l75]"k;qT
-jk7QH`;do.`5op;aMl3>f%%aZa2Q-=`Q6$=`l6$<`lH'>`l6$<a3)BCaMuEBaN;EE`lH9Bb/q]I
-a2lECcH+/P`m)WHc,\#O`m;cKcGn,Oa3VfLbf7rMaj.oNbK%rMbK\&PaiViKbfe&QaNMiJcH=8S
-a3;`IccF8R`m)ZIcH"/QI`B^Ub0J#Ob/hoLbKRuOair,OdE9PYaNi&Md`K\Z`mDoMd`B_Z`mVuO
-dDsVWa3r&RcGn8Sb0e8VbfA2Rc-ODWb/r&OccjDWair)NdE9SYa3W#Md`K\Z`mMuNd`B_Y`mVuP
-d)OGUaO8/ScGn;Tb0e8VbK&&Pc-F>Vs2m:Ja3`&Me&fh[`mMrNdDsSW`mVuQcc4ATajS8Uc,S2R
-bL"8VbK/,QcHXAWaii&Od)q13e^`FRh?r3&k2tmna5GLhC&McZCpiEje`#'/dX[eAf6F7Uk/p)B~>
-%U%fGfQ0d"jlV^nZ0n\eqHj;A]OpS=!arT_pKmueT3V"q!d'MolsC3@ctf]!8!?o@j@,l*?0bi$
-Q0LcbSQ5Jm&n&Cs@UNSQ?XdGNG0tPC?XdDNIpubr@piqV@qB"Z@UWtXAS>Ic@qBIaCM70p@:s=`
-D.R6o?ts@bDdd?t@;ogiE+*U!@rc$lDIIQuAoV6tD.@]uC3!^)C1_ZuEH#E5ASZErG&(];@;p<u
-HY7)=@!?L#Hspr9@X;^%H!ti9AUS-/G[l,<C4'N7F(Tl5DgZh>Hu<\HA9E!*I;!MG@XW61J7NbH
-AUeH3I:@PDBRjW7H";D?Cjol?F(^&8FF%JJD/Fc4HZ`tQAo`6.J8T1Q@sN61JnK(N@Xi?4J7NnK
-Aq=Z8I:@\GC4To=G\)G@Dgc)CF(p5:Fa7MKCi4]3Hus%RATN0.J8K-QIq*eIB7a`9HXhSECOfo?
-G%Q>>EI;5FE,'o6GB[YMBlAE/IWAdcmFBtjh>lL5jp(&;m)S&9b54I:V!II!iRQSL5s^BE5sa/i
-ha2h~>
-%U%iFe8\0oio?7kXm<&jqJ-.Y_/esZ!c>]&pM0i%V.oR;!e?\<lt[&Vd;uS4;4V*hj\`(FC?oX=
-T'K2%U14%9<GZMfDSL^=Ci!s(DJa3>dt2LREGfW6CiFB2Ec,f9CiaQ5FDZ#<D09`8F_l2?DKfr=
-F_uDCEHl;DF)QDCFEqbNEcQMDH$4+TDfpDDIWTUZDL-VMDh2kNIVjUYEe81UI;jg[GCaX_H#eOU
-H[TjcFEW7RJ9l6iDgHnOKQVHjDLd(SLN%QjDhWCXKl;KjEJSU[KPlKhFbamcIrU9cH%^'iH?=s]
-It2KoFEiLWKm[s!Dh!@XMKO0!DM<L[Mf=)sDi&[^Iu%uqIWLKfI"lQsH$>-aK7J!$EdNRZM0a?'
-Dh3L[N,s<$DMW[_Mf4,uEJnsbLi.urFGt-fKQ)flG_p<lIWLKfI>)TsG^#$_KRe*%EI<LZM0X9%
-Dh<O\N,j9#DM`^_Mf4/uEJnpbLi/#rCJjEKg"P3;hr<\YkN_<LhuVHMr]h/a6q!m8lI+M>f9efg
-MJbgMf]h-VJ,~>
-%U%fGfQ0d"jlV^nZ0o;pqRH[Djgslj!kRI0pUL@Tf!k:^!lDd@m(!SAl`&@cMoh:8nrhbQ\Eg[/
-deAjk^oR:AICeLV]=GPe\\5Vd`p(@Q\\5Sd]t(ef]"P\e]Xb_e]>1tj^:M(j]>(nj]Y)(n^VIIt
-]tM=q_83e&]YD@r_nWn']>;=q`4Wh%]>MCr`4Nh%]Z%S"_n3n'^;[b%_S!k$^W*n*_S+%'_Ss1.
-^V@h$`PT=0]YVS!a1oAha1K=.]u[k&`k0:,^;mk(_n=((^rF",_7mt%_o04/]thY"`kf@0]Yh\#
-a1f=/]?%k'ah5R2]ZIq)a1KC/^<+%+`Os=-^rX.._nF1)_oB=1^qaR']>hb%ah>R2]?.n(aLfF0
-]ue"*a1KF/^WF.-`4X4+_8j1/_S4.)`5TC2^VRt&a2>X5]Yh_$ahY^5]>hb%ah>U3]?.k(aLfI1
-]udt)`k0@/^W=(,`4a:,_T0:0_RYBfe_C)[!9!k=#3bLAa5GRlq`tgilgE<^e_$<V6&KJE6.kP]
-6@]~>
-)-Q.ZdS3#*^6hG_K^Pm0<)ckE`PH_hrj5o/<$PYKai/ON^W2XBDT/0rK7X!GEjWoR<4&F>Zt\+W
-KUg-#Ki@tMBS!s2CUef=9mO^pGEJ_;b'/l&DoK_E?,`n#;cK$i>1`"fdrUc7?0:*mUW9H>RC]YP
-cV[Y@A[':qCk9OFLf]Z&5L,g"TuX9AK#Pj,LAfDN]uQUHCrNH&XeA]r<E<:&>$+d1=BILg<Er[,
-?<:<8<af-7@96f@<ao09?WLT=>@^fE>utW@?=R#I>?YW@@U`GU>[V8IBjb.]>%M8p=);/ND-(O^
->B!eZBj#@]?uB+`@p3kWAnkIh?t"%YDIm!n?"[tVEa`?r>A[tUF^8Tt=`RtXFB`Qq=a"4bFBNWr
-?$BRiDHV*kAp7F$B3fjjD/`['@q9ggFD4s+?YjadG[t</>B4I^HXCN1=a+IdH<bH,>'j[lG$0!$
-B4#sjDf8g*@V9pgG%b3/?>a^cH"1E1>'4OaHs^`2>'ORgH!>?)>C9dnFBNj"@X24!Cg)0nC3<['
-Amp!kE,Jj+@;'jfG%Y0/?#OXbH=CN3>'4LaHX:T0>'XUhGZo3'>]E-rg]$%=i8s+`l0[p*`8KIp
-932$n#u[_ima^.Gh9Tj85m9`Bl0dFqJ,~>
-%U%oIcV-W(]U;;YJF9L<rac=ka2Nb2rOQeDAKu'!bK5Ho_oe]fIESM<NK3qaJ[rpsB"P1d\9Qco
-OJBt<O(A6$FcOLcHG59a?AQYAL7PJnc@VLLJ&fZhDTfGOA7_IGB%uU-epa4PB^+N5XN@eaUVXHt
-d:-ZuFh,]9HB6.iQ=u]P:"#bHWl_YeON>YFPl/pl_TJ]kIET!S[&IVPBP2-oC2.?sBPD<qD/!X$
-BP_R!E,',YE+a**B6.a'E+a3,CNF00DJ40-DffZ9D/4B1F)kr=CN+K2G].ADC3=W4HYmbLBmF`7
-Ir':QBmsu?I;4.NCOp>GH>.kJE.<@PI!'1UD0C8?IrTCWCO:5>K5Pj_C4LDEK5>m\C4gJJJSK^W
-DM2kQHtn:RFG"=ZG&;tOH@9O]EcZnLJ9PgbDgHnJKQD0gCk6kIM/R]lC5$bLLM_QgCPZqSK5-'^
-E//:ZHu"LWGD'^aG&E+RI=>seEcm(OK6M0gDL?DQCPHnPKkl9bCl*(WJ80g\Ee\C]H>A=UH%Kdb
-FE*(QIsYseE-R"MKQV3gD16nKLN.KjC4pbJLi.WiCPQqQKkl<bD1>@Gg"P3;hr<\YkN_C!_Vj.h
-8l\qq>#_Ebm*seBg<=7r6UXM2k3CbgJ,~>
-%U%uOdS3#*^6hG_K^QO?rj)jLj5Io)s4F^XZQls5jl*tmiSr4k_!0D8a2\/?^YIksZJjKth7N+H
-`7!]&`NoKLCrbSI^>HiiW5[fU`6m/LkJ5?a^uOIp\*;\iZEr!+S*][WlaG43S+Z3df&PJleDoE(
-lE7J"]A;Q+]#`mjbI#UiNU4H\f&PMoaQ;F/a8b5BiT&Cs_!0Xlg;pS/['[?M\$iWR[^E]R\@?pn
-]!f)Z[CNfU]!]/\[D',\]sYPa\%];_]=#A^\\5D`\[K5\]">Aa\@K;\]XbMc\%[email protected][_TMa
-_RI4m[_]Mb_7%+j[_fPe^UCth\\Y_h]XG\e]YCki]"#Sc^V%"l\@fVc^q.(n\%fVb_R[:p[_]Sc
-_RI7nGIGB!]>:ql]=>ki^qdCt\\#eg_nEP"\A,nh`O`\#\&5qga18q$[`,ki`OE_$[`H(pa0rt$
-\]D:s_m[Ut]uRS"^UV@q^r3\%]Y):n`5&k(\\Q.l`kB"*\&6"iah#7+[`6"laLB%&[`H%o`jWk#
-\]D:t_Bu_4]=l7n`P8t)\\Z1la1T++[`#qjaLT+)[`?%na1'"&\&*d_g]$%=i8s+`l0[p*`8KIp
-932$n#u[_ima^.Gh9Tj85m9`Bl0dFqJ,~>
-)-Q1[hS)lR6:FIikjkW;:/53IQ(tj3pfBl_:*ZFdCL:,tQttW-Fo.?D[SZaEW6'A<>i*DdohE*5
-6gq$\:eL^^FC+']N2Usi:"5N&]781UpQi:(aeFs=@eus"8l!-^8[uW"p25uQ6.M]ZiH<jn[,$"1
-N]g-4[a&>k@H;u]k&$%A4jBOHj*'%<k`8eM9_a(gT5!28DYo\oLsejj;-6Rn<DQ^q;HQas<Dcmr
-='&7(<)cCm:g-pu>u=X+;-m4%?Vk$3;diR+>u4s2=(G39?;tQ<>%CKA>ZPK9?XZoJ='TE9BO=hV
-;dj38C0=hV;JBN?D,XnV;fGuHIrA5"A63eN@;AbZ?!D5FBOt4b=C>uEDdcgh<G,uGF'<!i;fQ;N
-E`Hdf<c_MRE`6si=a!hYD,k[a?ZT.aB39@YAT(Oi?s[nRD/!-t=CuMOG%"^"<,QGQGZeTt;g)YV
-G#`Bp=*IkYE`7*l>^'1`CfYac@WPIhAm0F[Bk2*]G@"^!<,lSSGZJHq<H_bWFB!0m=a4%\E)_!i
-??K7cC05^aA8tOjA6j@YCi!0s>[qeQFCe[#<GHAOG?n[!;fZMSGZI/thVR/LjlYakmdBQ4_r]au
-N8s'_keXChnCQIph>kh"5m:rgmdB($J,~>
-"^0sBhRlhd6k=A%n>]5f>AMl\VnIZU@8[#.,H'@>Bk?.nG2e7+qjG[=>k`cLb^eD]i5hP_=MV^J
-n#g>0<rQ<QCZL;7Y(?(Det&VPM:77PS@imdVO,JEq5I_&>Jle.]u3S;G*qAcf;=8^I,'([gjs%$
-8m>N4dVN];jbeNNH'@Pcd%Z9UIG(+TQ=FT7pP%:sFQ&.'qO(NNdoTm^@U*;K?"@8KA6`YR?=mMQ
-AR/qV?tWbXA7'(X@qT(_s'f,H?"dkYD.$pk?>X7`DI.*n?uTOdDd@?r@[email protected]#CL_Nq
-DK0'/AnZ?pFDYN5?uC$nG\Li8@!$?tHX^f7@!QL"H!k]5@XDX%G@,Z4B7+-/F(Sm0ASZQuHZ!GE
-@<-L"IV3GC?[?[&IpmA@@=N!+I:.>AAV"?1H=;8=C49T:FC]r5E-u)EDJ=W0G]mVLAo<$)IrK(P
-@Wm!+JnT"M@"**.JmrhI@Y&91IUIPEAqFN6H=DD?CM\K/HZWhO@rZj(J8K%O@<m!+Jn8kJ@"3*/
-J73YGA:eH3I:.PDBRsW9G[l;<D15lAEb9o4FEq>HC2AB-HuikO@nc1AgtpuKjQ>[km-j>XinMS5
-i8`n]^8^Mge_Ag4h985S6tbcNmGC3[~>
-)-Q1[hS)lR6:FIikjl6FW2R#g]u\a6s,i`KW$B^RTq.Y?]Vb,,]DoM#e"Zl>akj2aVX`BUqO-<m
-MYY;`R%jSYGd$\Ha3:[^OR'[$f"BtOqnLp[il/XfXoH>)U8[%YT\nCTs.IO*N:"H`m],QTgutf1
-\r3Mcgu"WoU@PFgnZg10M<_mfn#PZfoXC0WT`;"R_kc_5\Gs.&`S[5cWirJ)Y,\Y+WirG)Y,SV*
-Y-4k2XfSh.Ycr2LZ`C77Wj8e/ZDt.5X0\k/ZDt45XgG+6YcG15YdLL>[email protected][BQdB
-X0T(4\?<*HWjo@:];r<IX1GL=\Z30GXh1X?\#R$DYdpdD[]R6EZF['JZELsD\%/WSYd1pB]=+lU
-XgYdA]s4hk]WA]QY.h$G\u`QMZ+R0K\#mBI[(EEPZ`q-E\@A]VYI2!D^9k/ZXh)$F^Tb,YX1l!G
-^9+rVXhV*I]W8`SYeI6L\ui]OZb3BP\$*QL\%8]UZEh0F]=4uYY-tsD^9b,YXLbpE^TY&WXM2'H
-^9+uVY.q3J]W8cSYeI7>\MUG'Z*_0E]sb,ZXgksE^9Y)YXLu$G^TN+RhVR/LjlYakmdBQ4_r]au
-N8s'_keXChnCQIph>kh"5m:rgmdB($J,~>
-)-Q1\j6"3U84n6hp%G:J8kO!_cH!2+p.e3Y8gD'\5Y,&S@nG[>E;)i/[RKn/alC.Y@bZl[p-cBt
-6B0.4M+IS;J%W8&E.7:^jNkiOB&]i0be@B?d_iV(pL-N_9#$?UZarHrDN<d?d?gQp_:!V5\j/eV
-7nQD)Tg;4fqasNUFGT3Dbak3k_9o7[9LVKJp3-:I9\kqLpJ+;2ej2r*9i4e^<)67g9N"\\<)$1f
-9ik.f=%u[m9it.h<D6Ik;-@*u=B&%#:K:Ol>ZFX.:g@4#@T-?9:LI4#@o6H8:M!L-A5Hc<;.id4
-?Vb65=_LWD?;YQ=?tN8N>$,Q<ARJDQ<aKH9C0FYS;e0<6CfanV:ha-6D,b"TIo1#a?>WPU>ublE
-AS+hY=^5fACL:"\<F]]>DH^7^;ef]=EE6O_;/TT@Dc:=Y;fu/ODGbFZ=`dVYAQ*\Q@W54c>uu/K
-C1gIf=^Z5IEF2^h<G6)EFBW!k;fH,DG?/?l;KQ,JF&Qsc<-D>SD,PF[>BEh\A5dYQ@rG4b>uXsL
-<,6)EF]`'k;K?)FG#`6i;fu5NEDgd`<HhJWC/T.W??/t_@8qGO;F'U*hk+1[?=[ZTn+H:ijke4A
-k2tmp`NA\(g>(QAeT!l@7SoiGoAr;h~>
-(g6(ZiSq^Q6pu=[na`VP=BKh1d`Sn>p0%>r,K%5l<bD,C=QG`opJJK4;YG@Yjho;Xh33'V:qX>8
-QHdg?=8l<2=i.bbG_tp$jjM;ZDr[t@cGX>Qf#PF=p1[H-=N6V,\@kZ2G*_5\e=<?(`RTIG]h;C+
-<`iJVVbpK@qGpbnIZ`qec_@'%`RM!e=]JO.p3l^W>Mtuqp/kFVfM,OV>$YE`>%(W@@U!8J>@UoG
-@U!AL?"@/M?s@5J@:WSU?X@GPARo%]?XmeTC11Ib?"dhUD-pgj?#4%YEF3Ep?>s@bE*dHp?ZTUk
-DdINsAoqC"BjZ$mCiNd(An?-nEGJp+@V^$kF_50.?u^$jG[kN3??^'mH!t]2?[?9uG[GW/'k2N!
-E,o?5B5)["GAL]:@rQQtH>$uAH=:u7@=;[)G$fQ/B7"'1E++6-Dg>];C1_p(G&h#?Ao<!(HYd5C
-@ruj$IV<PG@!Z["J7N_F@")g)I:7D>@Y&*2G[Pr7BmsK8EFFB/E-bo>CM/-+G&h#@AoE$'Hu*DE
-@s)m%IqNVG@!c^#J7E\D@")d*I:.A=@Y&'2/U(TOBki')H#I,BARJ0qh;4]0?XR8MZgRDR^u=.o
-NoT9blG9Rjo%2OLhUHTF6j62Um-rt"J,~>
-)-Q1\j6"3U84n6hp%GnTUSG6ehqQ;Ss,NiQUEeXBOJ&QNR%NlV[/Z$;dZsj+j6bFQT^T7ls,,X[
-PJc8=`M*7*Eo57#U:^8gn_i0FVXM[\hV+:`in;\Qs-T@OUZ&MNgXMAcTZ?VZlat71fA`g\e;g2n
-Sti(G^QbCuremKHVo8=akeP11fAagLNLZW=s.oU`U@,V!s,N_dj,^"7V5C2eVl-AjUo1/eWMZYq
-V6$SmGH@X@WMQ_oWN2ksW2?\nWiDntVl6\mXJi&!VQHqrZ)=V*V6HqsZ)4Y*V6Qu!YbeP'VQm&$
-XerD'XL>(6YG\n1YI(49XfJq0Z`p@:Wirh-[B6I<W3W\+\#Z[?VR<S+\#HX<Vmi_/[\pL8W48h2
-Z_t75XF@UU['-C;Wj/q/[]HR>W3ie-\>ld?Vm`_.\#?X<W4T+8\>Qm?X1P@=Z`(L:YdgUAYH#46
-['ZdCXKT14\?DmEWjB+2\ui-GW40"0]W/9GVn0"4\u<'BW4T(8\#6d>XLbC>ZDbC9Z+-^BY,f16
-[BlgDXK]75\Z`$FWW0=lW4K(6\Z!$BWP#7;[AUU<Y.CR@Z)G=8Vge!hhk+1[?=[ZTn+H:ijke4A
-k2tmp`NA\(g>(QAeT!l@7SoiGoAr;h~>
-)-Q1ak2tjI=a0!"p@bCK8kN:7V-RMAoj^\p8gBh^Htd9LR!@S-E:uc0[RKb=XjCKb:YUeIp-c4'
-:ip-]fKoI.(kM2%7YL8&c_auV<6EpCmB0+&Y?k[?p0dkl(7qEqZarKsDN<d?bc$BZF'htQ\Nskq
-r^p>!dWB8FjF`!E?ARl.baj"?G@,IQRV->5nqZ"mGi*RUp.S)NY<boU:f9td:JOk_;Gg.g9i+b^
-=AVgq9NG(e=A;[o9NY.h>>/.!:0^On>>&7&;-m"&>\6cA;H@1"@9?E;:Kq+#@oHK>9k.C*B2;f@
-:M<d3CJSSO;f5K>B2<>J=DL`E@T%)C?"cuL>ZY`<A7JMS<Es65CL1"X;.='5D-("Z:MjN@ED^7[
-;/o`DD,4tW<H:rGBi&bQ><?^uC1C4`;djE:E*QOa:hXB<FB)df:39iHFAQ^c;g;APF&6si=EmbY
-D,YX`?Z]+bB30@WB5UUk?=%u#;/g2LGuS?o;0H;OF]!$j<I%VTEDUge>BWn\CK5U]@WG7e@p+"R
-CMZsp>$uDJFCeR!;e^)IG?eKs:i^2MGuSEp;KlGQF]!*k<d@\VCI%7CjBt8?84lL$p%J!pjl"OH
-k324#`NT"/g>(QDT0Yc%F%T'cp>nVk~>
-)-Q1^ioT=?;g%0koC]%S<E3SZW+K^^okmn2<?n-oK5khbT7Q$HGkOtF\kqsTZI3H#>2><dp.r-9
->^^J+fM2<E(l@\-;iC-Ed]-nm?d7>Zn$Z<@ZY*r\p1XG*(8S$3\%PN0Fd1uXc`N;jH"UKm]M*:8
-r`(GUeU)@_jG\lWB92@Jc_?!QI;"#jTPnjUnrM_*KAq<#p/Y4h[7jh+>$?DV?<C?;=']'5@9?cA
-=(,<:?rpcC=^tQ>@om8K>@puH@9I8J?Y*;O?X.;IAS,+]?!qAKCL^Xe>%MANDdQpi=D_\VF'E9o
->&n(^E`m<p?$0CcDcq0m@WP^jC0bsfAoLmoARTacDf/j*?tXO`F_P6->]"CaG@G-*>'4U:@!Z'p
-EEmd"ATh7!CgVNoCiWa*ARp!gF`(Q6?>F[eHY?r:>B=aiI:6l8>'k$pHsC`6FC'H,C3j'2D.8!#
-EcbT9ASHKpH>d5A?#XslIV*5>>Bk*pJ6m,;>CL6tHs:c6?[uO#G[#T2AURg+EaO<*CO'*3Ch%p!
-F*(`<@qp<nHYm5A?#b!mIV!2>>Bt-qJ6d):>^g<uHs:i7@";U$E_>WRiF;dS+[nnHnal@fj581D
-k3)$q`3&V%g">0>SjYu*DFR1Vo&;rc~>
-)-Q1ak2tjI=a0!"p@c"PS=HG<`LEBorLBJYS0Q2@Z`L:q]smF&YQ'F4dZFC/e)?gfQ0tu^s+f7Z
-RC&gFk)oV4(q]M!NP51Iji3d[S)ib7oZr]ZbaY,ms-N_T(<aU`f[Pr]T>U5RkJk1&VOX%'duLKM
-rg[TPiioPkn?KXoQ,*-IkJ4@kW19pZ_5aW2r35S)\F$&ks,<Jkb);p_T:VRGSXuUJTqS$PT:_sO
-VP0Z[Str-QVOsQYSu/6TVOjTZSu/-RV4FKXTrO]]VOsl]USs`_UnOf[VP\R0WhH2eSuJNYWh-2k
-T<P2hYb/%tTsCAjY+MqrUp-MnX.cemVllYrW2$VjX/r#"USb5eYGe5$TW5)dZ)"8#T<G5gZ(\/!
-TWt>iYb/(uU9^JnYb8A$VR)r"XJ3+sWj/2'W2?qpYH=P,UT(Mj[&Kn/TWYGCTs^\qZCeJ'UpZkt
-YG&A#W3W&$X/!(rXKS;(VPgbmZ)j_/TrYDj[&9e-TWkMl[A'\+T<tPn[%OV)U:$bqZ(JD&V6lnu
-Y+`8!W3W&%Whd%rXfnG+V5U\lZE'b.TrbJk[&0b-T<YJm[\9b(I-f_N?pR+M8kL1Pp%J!pjl"OH
-k324#`NT"/g>(QDT0Yc%F%T'cp>nVk~>
-%U&2]k3)+!h<">'p@kFKr^mE2[(r&2Y-`QTE[,.c^q4H!Zb1rSB[&o9R7!^^@@Y0<>e,&lbsHEk
-IBgMoE+o5k).?peM`l:)4))(;R893V6HFC>@^3_@>g?CL8q1Kq>b%<Nc=)4:4G:anMS?`@R@?Kf
-_ECL`>,&jE@!&rlF?Oug40O?2N4llGEOruP9VT4DZ+PoVABdYJb%XF>:f9td:/4b^;G^(e9i+b^
-=&2Xo9ib.d=ADdp9ik+e>>A=#:0^Rp=AE+#:gQt&>>J^+=("g3<`*@'>[1l:@T-B=:h*U*B2MuB
-:hE[.BMrJL;f,KAB2NGI=DLfH?rCiA?YE;O=]T?;ARSJQ<aBE:C0FVS;e'<8CfanY;Jf]=EE$L]
-;K#ZBD,P.U<,klJBMrbO>AdAS?rV,G@VSbY=]mh);e]]>E)pLe;KH&FFB!$e<-;ARF&R-f=*Rb]
-CK,I]@!#@f@TI_TBl-dk>[DPPE+Dsn=(lMNF^89UF]E?l<HhPWEDgmb>BX"`BN97ZA9(Uj?WhSR
-Chcpm>%2POF(&-p<bcGMG$A?r<,lDKGZSTs;fu>OF]<<k<HqVYE(rU^jQ<CQD/O60_=mTq^uXV/
-DghV;&q@akp=n3Yk1tKWlJm;ro_.B5J,~>
-%U&)VjlYgmguS"sp%P@Sr_Wo?\AF\@YI8u\G9^mu_n0o0[_[ejDU2"MSkGimCSSeQ@_@/,cV&E%
-K<i>(GB!P*)/!NrO@Xc@6u]WQS5u/f9uqiYBXPaO@aAE\;0$NsA"TGectS-K7>Jp-PJFnRSY/T(
-`C<^%@&V#TAUD)+H:NJ)7'VYKOhe\VHG.4`<2I<W[)%eoC<oacb]-Q[<`W+#<)m.$>$"X-<*<F(
->uk!3<*`X+?WC98<+/p2@T?`?<Ff09@T6i?=(YKA@7XF3=^5Q>B3eVS=(5Z?CKb%Y<bYrDDcpXb
-=)D5LD-1R`=`IVVCKGF\?#Wq^Am'1ZAT(Xi?sRhVCM6jl?"@nVEFE'n>&%ea=`n%\E`d<k>'=+c
-Cfkdd@WP[kAQj7]C2[3t?X\.^EG8U%?"n@^G%+j(>B"@]G[>*,=a4F`H<Y?*>'aOgG$0$#?$fgp
-Dd%EoATq=#B3]ghDK/g)@:XUdFD+m*?#4RbG[b-#H!59(>C0[kFBEct@!Z$sCg)-lBQ[I&A6sUe
-E,Jj*?Y=ObG%Fp*>]4RaH!k3->'4I_HX(E-=a=FcGZo3'>C0XlF&PZoiSpbKBk_C#^@V'j^>n5&
-EIE:cJpk?)p=e*UinJsQk2CZgnFYd-J,~>
-%U&2]k3)+!h<">'p@l%Jrf[Sbcdodsc-EWoXWsXXf@-CgcIT(JV;d-J]nseYT>T7)RFe:1ie+;c
-XjGVHTq_Og)5<eTY_TF=J>UWC^6?FXLYS_bU!;0*RcBJ.PA[2QS]/@"j-?t'J[X7/\^]0)_nLr2
-gOk]RSAj+.RAnWcTn9Q(JC1Q^\^T*,VUX5/O2o_Kc.94PU>gs#i1#jmQ^3l(QBdo(R$a2.QC=;.
-SX>b7QCF>/SX5b7Q(=;/SX,b6QCXA3SsH%:Qm&/hSt)+?Q^aV5TUD.?Q_0h8U6qIDQDC+>W0j9S
-Q_p:CJ#A[0TU;[HTV\!PS=?FEUnO3TR\6LEVOa3SRA6IDVjj<UR&6FDX-of[R&c^LWL0ZWR]MpQ
-V3n<RT;e3VTUDmLUo'N[SXujLVkKN[R\QgKWh#Z\RAZdJXIGu`R&cgLX-ol]R]N!QWL0]XS?/-U
-V4"BSTrFH[TUW$OV/)rrX.5i_RAlmKXI>u`RB)mNWgTf[R]MsRW0jWVSZA0VURJ9RU8XH[St)mM
-Vkf`^S"ZgLWh5c^R\lpLX.5i_RAljKXI>u_RB)jMWgTi[R]MsRVj)JkjQ<CQD/O60_=mTq^uXV/
-DghV;&q@akp=n3Yk1tKWlJm;ro_.B5J,~>
-%U&5^k3VO(n+?>Ip\pjJrC$oT4$#Yp:QGF3,@Neu3]f\n3]fVr5<VFr5smat5s.1l697M!4[hRr
-5W_"sO8b"SBL>'I6:F(%76ipq5Xde#697M'5W_"l5Wes6(Irk)6T[S"4%2:s6p<[u4ZY\m4$c:u
-55mu>5s%+i6TmIl6:F%$6om\&4ZY\m4ZY\m6U*^u4Zc&&5='UE4[i"77o2fL:Ie/R85MiM:.A,R
-92e>X:.S>U9i4AY9MBq87oW;V=@uCk7T`M\>"Map8mY7i>=_st9OC@l=@lps;dW(&<_['r=Be@-
-;H.1!@U)ZB:0M*uBNJ,F8mkq!Bi%oA8S;.&BM2]=9l!U0A4^K<;JJj4?VG66=Ck';>Z#?3?Xl`F
-<EEm,B3e>N9jV@&CfXPN8nD=*Dbj^rAP$fB<c:WD@SUr@?#3)P>Z>c;An=\X;d=35DdZLc:1S$4
-F')Ua95S-9FAH@\9QO?>C2cj^@o7>E?u&DU>?>f<Bk1%^;I403Ea;[c9kS'6F&ZF^8oS-:F%p4Y
-:30H?DG+kU;fkcEBh`YN>&R&M@T%;D@;8GV>$,`;C1C(^;.+03?U!f<k3)+!mdKiBpA"O#kiV$k
-mI'E4rq6Ehi7Itj!:'RO!;$3`!U)k#~>
-%U&,Zk3;0umd]oAp\CXTrD3\l84Q?K>aGAN,ABkD7n?EK7n?BO91i#O9i">Q:.RlI:.J)Q8l//O
-9LqZOR/W0bE)02!:/FPU:eXDM9Me;S:.J,W9h7cI9M#.Z(K,pA:.S)R85MoO:eF;S8Ol?J852oQ
-9E%a):.RlH:J+,J:/FPU:Ie/U8kDTM:.RoN:]=%291Vl[9MU7r92S\i;-6ar=]&=(;d31&>>ea-
-<ErF,>#\j.=^4g5>#o*2?!UE><a0!1@p<#F;da!4B3AGM;eKH>C/n\P<,5]DBN&SR=Dh2MBN/kU
-?#3MUAQWqS@qnt^?sR\NBkUUi>@VPMEar?q<bcB!=*._WDcC^f>BEq[CKGXb@W>CfB3TO\BPgdm
-?t"(UE+iEu=_DVPG@Fs(<cDkYH!G!&<Hr(^G?8^"=a=:cFB*Qu?@#[jDch?nAT_!sBjH'fD/`R&
-@:XO^F_Y0/=_i"XH=LE.<c`%\HWt3*<I/1aGZSm%>'jLfFB!QuA7'U`E,Jg*?=n=[G\CE0=Di%Z
-HXLE.<H`(^HWY*(=*e=cG?/g$>^T[hE`RKr@X(ppCg26jBld9g8a56rk3;0un+$#Bp\2D`j6#Oi
-lgF64oChq6f&GcQkj%O&nFH8Gj["C~>
-%U&5^k3VO(n+?>Ip\qLIrJLl9JUrT5O1"tj,F+%:JV8r:JV&`:KnPA8Ll-h<M1^A4Lk1G;KStP8
-L4Xu6\,NQKRYZ`NM2R%@Mhlq8LPpb=Lk1GAM1U;5LP#M`(QGT$M1LG;JW#/7MhH\=KRnc5JVT/:
-L&R!2M1U;4MhZe8MMm.AMLgVBKn4i5L4Ou7MM?e>K7]&BKnlk5Jr>YMN099^P)YQcNg>]fQ&V)l
-O-YchPE(riOd1lkOcPffPEV#qOHZ&kR?N`$NL#l5Ngc&nR#RMtOID/rRZF,,Pb3u,R?=2)R%981
-QB\#&S=5P5OdDW!TU(e7O.Ml(V3@=?Nh`#,UlV(;OJJ,.ToPk8PGF;1Srfb5Q_KM6RZaM/S"Gb;
-QBlTdNhDl)V3.4=Nhi#,UQ;%;Oen5/TT5h8PbX;2S<Bk8S>2+CR['h4Tq@IHQ("M/VONgLOJ&8.
-WKrsKNhr81WK<^FO/\J5VN7ODPGs\8U5l4?Q`#n>Ss$(:S>2+CR?jb3U7[RIPaeJ/Vj`mLO.`.1
-OK"M6UlM=APc9b:Toc7>RAGq?S<Kq7StV4EQ^FY2Un*^KP+A>-STjD^k3)+!mdKiBpA"O#kiV$k
-mI'E4rq6Ehi7Itj!:'RO!;$3`!U)k#~>
-%U&5`m-a<2p%J.Trr8ZQp-\dFhF%6.j?iu;7mYWls$ZlV1.+Q"6q9X86qBO.77KX;84?6A8P2BE
-7n66@91_QK7S?EC:e+&P6r$<A<(9SW6rQWIIoSp7:./,R:/jV_9Lr8T;boea8PN2Q>"hIk7o`DS
->tRjo6s<DX@S'U%6t&eb?U\6t7Ueti=[ZXm9j^@o;FP(g;d)Rs:JG=h>uX4)9N5:d@Sf^-86f1`
-AkZ*07:B%bA4]s,6tK(i?q"I#87b@p=[Zpu;.N+*;FbLr=asgJBMqW>7q,RhCe[u>7;#OnBLlN6
-6u5Uu@mt!/95-t(>=<7&<+SL0<(^mt>[9d5:f:moA5u0993PXjBi.]>7UoIgCeRr=7;,RoBLcK5
-7;P\"@RXp.9kd1+>"!1%<FeO1<(gpt?!Kg6:K(gnAQ;<:93Y[jBi%Z>7V!uK53q@pm-a<2p%J.T
-rqsRqkNVF&n+$,Fp\OpJfB2;^mdBT9p@e:ZlU$+~>
-%U&2^l0Ia*nalJKqYR'XpJ:icrD)6H!)NPg!)M]Qs%rbjfhc9X:f1%c;G^4h:fL=i<)HRm<)6:g
-<DZ^o;-6[q<_upt<*E+$<Dcsu='/:(<)d(!>ZXd1;cm7#?rg97;-d:#@T6K;:gmI*@o?Z=:hEa2
-@8UQ<<+]'9?VtN=>%UWD>?#B;@:;i,CKObR;.j-4CK4eS;/BE=CJneP;K#WDAl3>J=DUoL?r:oG
-?YE;Q>ZYfBAn"VV=^Gi?CgC%Z<G#c=E`uad;/KW<EE-L\:iKTAIVr"u?W(rG@q\\Y>?PoCCLL%]
-=(,i?E*QLc;eol>G$&-g:iTcBF&Zja:j#oJDGY:Y<HM5RAl*SQ?#NPX?W2&IAS=n]>?c&DDI?=a
-=(>r@Ea2df;J]c<G$&3h:iTcCE`6^_:j,uLD,>1W<c_5RAPdMP?>`SX?;u#Hs(3u^FBVpg;/T]2
-l/h*mlgF64oChqTq7c"RkN_C$nFH5Gq"rjsjQGamm-jH8p%S:F6%A~>
-%U&5`m-a<2p%J.Trr9<RpP]*1rJKHjrJKZp!f`4te;XEes,LBDOH#6\NK9'[M2[IUN0'-\P)b]g
-NKoTeQ&V#jNL#TfPDtihO-P]hOc>ZfPE_&oOH>iiQBI5rO->igR$!GsNg>lgT95A.NLZ8qSrf>,
-NLl>tSW0,(O.MH%RTYWDPE_]"SsGG3OdV\uTp1b6Nh)MsUQLq6NM)N!TT>V1NMDZ'SW0;-OeIi*
-R>mr(QCa).Q&q]$R[T54PEqo%U6^n;OIVf"V3@1=NhMc"V3.7<NMMf'GG^FoRuOA1R\Ge;Q]n;.
-T:Cn>PaJ5*UmR=COIi#&Vj3UENMDo(VidOBNM_u,V2_4<O/J/2TT,h7Q)0M7RZ=>1R\>_;Q^"A.
-TUUq>PF8/)UmR=BOIr)'W0E[ENMDl'VidRBNMi&.UlD.;OJe52T8f_6Q7\qnU7$8lk321"mdToC
-p\=ac_!'tGmdBQ6p@e7Ws5;Mkkj%U(nFQAIq#'GEJ,~>
-!(-Umrji*Ark/>d,_7+i+b:fV+TaC+[/IK5\cBAA]`P7B[JmW8\Gj&D]Y2"dZ*^t=[fEu<])TGE
-[Q/j~>
-%RIM/['d<M\%&rZ]"<\JJL?!rfdD=tmNsACZa-pE[C*HP\@B,]];W$@Za@-K[^WcW]">8NZEpmF
-[C3NR\@K2W3.L~>
-!(-Umrji*Ark/>u:4Yfa7"IbG6ipc([/IK5\cBAA]`P7B[JmW8\Gj&D]Y2"dZ*^t=[fEu<])TGE
-[Q/j~>
-"'=dJ]_M@(qLS?kp4;qVp&OjCqZQ#pm+4OR~>
-"'=dJ](l.&qLS?kp4;qVp&OjCqZQ#nm++FP~>
-"'=dJ]_M@)qY,R7JbFZg`qBE-h>7?:^?jH;J,~>
-"^19U^&R>Jj+66Aj-ep2fTs);g-U;~>
-"^19U]Dq5KkCMfIkF(K:g6B)9fg1,~>
-"^19U^&R>Jj+66Aj-ep2fTs);g-U;~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U]DplAg4@t/g6pXua+:_hfg1,~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U]DplAg4@t/g6pXua+:_hfg1,~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U]DplAg4@t/g6pXua+:_hfg1,~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U^&QsgeH""p_#_iuo[O>p_U[,OcG@rZe]Gi&eH<\)_9_W$!R/ITeH!km_$.d#`RVlNJ^o>%
-J^sPG"iGu'nCg3Z~>
-"^19U]Dpmig&T\$`<"H-o\']%a4f1be&Bqmg<Rn5g&oC7`RF>1!R]!^g&TS"`<FB0b1anaJ_G\/
-J_KnQ"il2'nC^*X~>
-"^19U^&QsgeH""p_#_iuo[O>p_U[,OcG@rZe]Gi&eH<\)_9_W$!R/ITeH!km_$.d#`RVlNJ^o>%
-J^sPG"iGu'nCg3Z~>
-"^19U^&QsgeH_rO='f3?M$rt+$]#5A^As[._U[1>47q&+SK_B);t/<<H5cM-!J:[W?3PC^0%CVe
-J^o>%J^sPG"iGu'nCg3Z~>
-"^19U]Dpmig&e8S=oMh1N=5C4$]>JJ_uQ<9a4f6O4nRG2Td*u3<Ue]CI2_h5!JUmZ@0Ldf0A7(n
-J_G\/J_KnQ"il2'nC^*X~>
-"^19U^&QsgeH_rO='f3?M$rt+$]#5A^As[._U[1>47q&+SK_B);t/<<H5cM-!J:[W?3PC^0%CVe
-J^o>%J^sPG"iGu'nCg3Z~>
-"^19U^&QsgeI8;T`7:P6M$qF'8k-hreI[NFe\;*H/[]G'9fp3Q8mop>eJ`-[\!SA^<D#WtV`[@m
-W%EcVLI".hH5;0*a8+7%K+c_bKh>r0LB]?M>tR5s=D:BH8P2e"J^o>%L"-@EK=UL*6@]~>
-"^19U]Dpmig'jt]aP*FCN=4$29M!>%g(9/Og;EuV0"Gn1:-HWZ94H<Eg)=`c]UU4m=%l'*X$&q"
-X=fA_MF'[email protected](`4oLeDG8M?bcW?VEW(>&6lQ92&4-J_G\/L"Z^NJ[b.%6%A~>
-"^19U^&QsgeI8;T`7:P6M$qF'8k-hreI[NFe\;*H/[]G'9fp3Q8mop>eJ`-[\!SA^<D#WtV`[@m
-W%EcVLI".hH5;0*a8+7%K+c_bKh>r0LB]?M>tR5s=D:BH8P2e"J^o>%L"-@EK=UL*6@]~>
-"^19U^&QsgeI8;TA8RA.M$nhJeLYD0eI[[email protected]'!/giP.m$Nqd/]R/eJW9PCUAd+eM:W^T;hmL
-!$5eSP,iPJ%@\_^q:-:6$#P$.-"\d['7uGKeNd(m!)b]hUiiPceUc8)eHNjC\a\<>J,~>
-"^19U]Dpmig'jt]B5j"7N=1@Rg+@(8g(9/HE+As/!0.&W/3Qj"ec;68g)4lXDRbK5g,!;iUTOTW
-!$>qVQ*57W%A,%fq:ZX>$#k<5->>-e'8;bQg-Sh"!)kfjW-G=ng4@t3g',NJ\+&':J,~>
-"^19U^&QsgeI8;TA8RA.M$nhJeLYD0eI[[email protected]'!/giP.m$Nqd/]R/eJW9PCUAd+eM:W^T;hmL
-!$5eSP,iPJ%@\_^q:-:6$#P$.-"\d['7uGKeNd(m!)b]hUiiPceUc8)eHNjC\a\<>J,~>
-"^19U^&QsgeI8;TUU$$`M$nh=8hPMeeI[NDZCh2U!/gij=Z]Cr8LL>0eJc04^E";J"\LFmT/Sh3
-MZC'5!g;*aH5b<]D>D]uK+G8rE$]*KeJ!P!!(o"_2bqW9R3b2<J^o>%L"-@EK=UL*6@]~>
-"^19U]Dpmig'jt]Vm_ikN=1@D9J:nkg(9/L[\Nn`!0.&q><Ph$9.6_6g)@iA_]9bR"\^UrUGt@9
-NW?NA"-qToI2^ffE;A3(L(C`)E[GKRg(T1,!),1d3)J&FSL-bHJ_G\/L"Z^NJ[b.%6%A~>
-"^19U^&QsgeI8;TUU$$`M$nh=8hPMeeI[NDZCh2U!/gij=Z]Cr8LL>0eJc04^E";J"\LFmT/Sh3
-MZC'5!g;*aH5b<]D>D]uK+G8rE$]*KeJ!P!!(o"_2bqW9R3b2<J^o>%L"-@EK=UL*6@]~>
-"^19U^&QsgeI8;T`7:%PM$nhJeU*e]eI[NFe\;*B!/giO.Q^Epdq#l^eJ_LPeW0og&(Q,r-u>m`
-MZClL!g9R#H5b<]D>D]uK+c_bE$]*KeJ!O,!7cgc2dOt*Gb>OmJ^o>%L"-@EK=UL*6@]~>
-"^19U]Dpmig'jt]aP)p\N=1@Rg4#[ig(9/Og;EuO!0.&V.m6a!fOh\ig)=-Yg6)Yr&))T).;u?h
-NW@AY"-p$-I2^ffE;A3(L(`4oE[GKRg(T06!8<9o3+(C6H__.!J_G\/L"Z^NJ[b.%6%A~>
-"^19U^&QsgeI8;T`7:%PM$nhJeU*e]eI[NFe\;*B!/giO.Q^Epdq#l^eJ_LPeW0og&(Q,r-u>m`
-MZClL!g9R#H5b<]D>D]uK+c_bE$]*KeJ!O,!7cgc2dOt*Gb>OmJ^o>%L"-@EK=UL*6@]~>
-"^19U^&QsgeI8]:a46n>RlSYm8kI,"eI\01e\j/30Xbt1C0nkA8n?6CeJcFm8j\T^=\;0(W]ad/
-5qpO5NC#mtO$qMoL&'78Ps3aKLJ<7teX8\2@7ic'>C"c@9hJ@,J^o>%L"-@EK=UL*6@]~>
-"^19U]Dpmig'kAEbhApMSiY5#9M<Y+g(9f:g;u+B1:hO;D.1RN94lZKg)A.$9LG#j>>.T3Y!6E9
-6Sd'CO@2F)P"+/%M##a@R6]K[MGJh)g7:RB@n]/1?$k;M:/"[6J_G\/L"Z^NJ[b.%6%A~>
-"^19U^&QsgeI8]:a46n>RlSYm8kI,"eI\01e\j/30Xbt1C0nkA8n?6CeJcFm8j\T^=\;0(W]ad/
-5qpO5NC#mtO$qMoL&'78Ps3aKLJ<7teX8\2@7ic'>C"c@9hJ@,J^o>%L"-@EK=UL*6@]~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U]DplAg4@t/g6pXua+:_hfg1,~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U]DplAg4@t/g6pXua+:_hfg1,~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U]DplAg4@t/g6pXua+:_hfg1,~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U]DplAg4@t/g6pXua+:_hfg1,~>
-"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~>
-"^19U]AqOpeUc8%eYLahe-4..^@9iCJ,~>
-"^19U\`V_!g4@t/g8*Hrf`fg:]^XT?J,~>
-"^19U]AqOpeUc8%eYLahe-4..^@9iCJ,~>
-"^19U\^e0?Y(<a,Y,8?'dFF$HK*@7R_!p&EJ,~>
-"^19U\D"cM\q.GD\u*%?f@kuRJH^tP^@9fAJ,~>
-"^19U\^eKH\q.GD\u*%?daa-IK*@7R_!p&EJ,~>
-#$LBV\^c7IJSp$VJSqH)"`L*aeVBaqX9#AerN$1XkJ6T@6@]~>
-#$LBV\D!1"JVJ`1JVL+X"Ld%<L7eIK!Nq^dY6E_H^@9fAJ,~>
-#$LBV\^d1/JWPGEJWQgl"ME=9LS"LH!NVLaX9IDB_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP"hO-ReVC+&]`R5W\Gj/Fp?06\g-U;~>
-#$LBV\D!1KJ_G\/J_I*W"lfR=g4l[-_?/e]]`,bOpZfK^fg1,~>
-#$LBV\^d1YJ`_OGJ``ro"mc3AeVC+&]`R5W\Gj/Fp?06\g-U;~>
-#$LBV\^c7gY,hr+S"$@XXJ;8SWe%7&XG3ea]'e2#LT%o"d.)pnrk/L/kJ6T@6@]~>
-#$LBV\D!1KY1a30`5L3[g<[^UfR_b-g4n;hir@lhL9&2.eFA9srk\j5lFuc@6%A~>
-#$LBV\^d1YY3$&Hcd1S4k1\/-jFQHEk(`"+li5YgLT%o"d.)pnrk/L/kJ6T@6@]~>
-#?gKW\^c7gD#RcCVQ?$\?NHOOrEff)XCYb=XK8B"?NcmR?XIgKX9NZO?\PS_RJgItO^DY#UL.ej
-rEfYh?XI75X9tq/9hf3#T2nZ\EIk3BXG3ea]'e2#LT%o#l0kp8rk/L/kJ6T@6@]~>
-#?gKW\D!1KM>h`$db;A4GQGXarHJRmg44G"g=k'UGQc$dG^,;Fg'3X`GcBEN_Yn]a\9NMWcZk8E
-rHJFSG^+T,g'ZDM@UalAa_bKrOFc,:g4n;hir@lhL9&2/lLD6<rk\j5lFuc@6%A~>
-#?gKW\^d1YOT'_2hWDiVIf[d'rI5(+k(eHHk2tV$Ig"0*It*g\jp%3&J$S5!c2E+s_LI=&g4,0h
-rI4pdIt*(AjpL*kB4m"^e8o88R"=CNk(`"+li5YgLT%o#l0kp8rk/L/kJ6T@6@]~>
--X#m"\^c7gG=[RI=e_TDM2>,\?u/;R5aSR+3gZqLWeiEdV42BqOnl'sO\9S]XK83WJVdWR<b8A2
-8p-RVM2=0YM(jhcX9"u\q5aq"6`d@OXH$GbX?;'8JZOU-'Y<_aeVC*:`r4f?PGPt+p?06\g-U;~>
--X#m"\D!1KQWpVqER)cjY-)H5H&>ae;8Cna9#007f<.6=dDV#N\G=hs\6b-4g=jkCUTS^&D1UEk
-?'N8iY-(71Xurodg&]C4q:Z2'<8-&"g9bkRg.[(OJ_Gk4']T/Lg4lZFb5L>JP,H16pZfK^fg1,~>
--X#m"\^d1YT4#.;GhL_7\$p7VJ<=0+<m'R1:<M_]j0q:_h9V<q_YN=4_dntWk2tDkXLEPGF,8u;
-@[t_/\$nuQ[m7M&joO&Uq;r%?=m"jCk.Z*&k"pWkJ`_^L'^PePeVC*:`r4f?PGPt+p?06\g-U;~>
-**M^l\^c7gN`rNcIVPrHXEBAcKpl,*I\NolCHVQs!'L7^!K17XX8uXbrN$W%TluHXMd3?X<h-6R
-XEAccX??E^!F$Q>X9tq-='&e2N`iHb4FsSbXG3ej]'e2#LT%oPn(#smOgr*ukJ6T@6@]~>
-**M^l\D!1KZZFjSTSD/og6AbSWP`\`T?Z)^LJ7[#!)3CG!O6eAg&ZE$rRqlfba,WEZ$"dGD8k4&
-g6@uSg._Fu!H]U_g'ZDJDJjdSZuOgR9S(oKg4n;qir@lhL9&2Xn_2^%OhAR*lFuc@6%A~>
-**M^l\^d1Y]m8c&WK$%:k+&p&ZHdX/W7^71O&5f;!)W[W!P3[QjoKn@rT4`!fUfdl\pWYnF3s&G
-k+&.&k"u!<!I?*gjpL'gF`i8t^3Jf&:k@b[k(`"4li5YgLT%oPn(#smOgr*ukJ6T@6@]~>
-&6\G`\^c7gN`rNcIVPrG4<+7#!EbH_X91V:<danJ!'L7^"H-QeXI&db'OHZuVOaeY3#8KpXA>7>
-@B?OV4>Hi:#<])hQ`R9\Q2.KgVFco48?@hSXK4O8XF[I-X;&86f@>YTd/)GGe]j#R^%UX)nCg3Z~>
-&6\G`\D!1KZZFjSTSD/n9HsGh!H>LHg&k*GD4U[[!)3CG"L3+'g;!L<'R-b7d`:'F7i^+6g18($
-HeR1,9KrI0#>Ek*^Y7Da^%p@hdp0Ak>M?H(g=f5Og4@t4g(`QHhV*^beGJ+Vg<ke\_Y<?0nC^*X~>
-&6\G`\^d1Y]m8c&WK$%9:a>r$!Hu9Xjo\M`F/Alu!)W[W"M0!Ck0!P_'RdOSh9tFl9-*$Sk%W)I
-K')2N:dP*C#>jRFb3%j:aSFs*hI4:<@-51Jk2oKkk(2ZLjqR.]g!tkVd/)GGe]j#R^%UX)nCg3Z~>
-*Ehgm\^c7gN`rNcIVPrHXE]McXK5NcXK6VM>[1;.X8kB^X9=GeXK4P\X:AQoXGU>c8"k6fNi\mE
-4T;Dg4KNdMVlW"^X??0W$Dg+kX?<SE=fe\eJZOF(L9(Wkmap!EW9`pNeHi=;^%UX)nCg3Z~>
-*Ehgm\D!1KZZFjSTSD/og6eqRg=gMSg=hj7F`hO"g&OhGg'"['g=f6sg(&>1g95_S>0NG@[+`]-
-9`E`P9\Pkue(RLLg._1n$IMi,g.^5-ESB,?J_G\/L=umls5)IaX6fBTg'FpA_Y<?0nC^*X~>
-*Ehgm\^d1Y]m8c&WK$%:k+T3'k2pj&k2r:^I!fu6joA6Wjoi8Ck2oM:jplgMk.,p&?J)$b^?4!S
-;#]S`;!+IAhr[btk"ta5$JekIk"t3SGin-bJ`_OGL?8a,s4PqXW9`pNeHi=;^%UX)nCg3Z~>
-.9Z*$\^c7gF%(b8>,7fDKS3-OXGfPbRA2`fSV8\ZWe<!XUmPpfKS2A_X<<KnC4p>.U,ICP=EU^G
-@=5/XQnF&F24&tKKS2(]XCX!ZX9tk!KS3($Pur]m;h;$$XG3e]]'e2#LU-TsrPAiRNhlC3_!p&E
-J,~>
-.9Z*$\D!1KP$"W[F3r&jVl+(#g9Ob<_TkZ?a/M,1f;C[-d(tK@Vl*)_g*!_+L8TcMc:+;%E0T)/
-H_&mE^cJBk7),W\Vl)`4g4)-Yg'Z;:Vl+"X]l0gHBn=uhg4n;dir@lhL:$X!rP]&XNMcI8^@9fA
-J,~>
-.9Z*$\^d1YRU*/%H/-q5YcqlDk.=f\c.Ygcd]u$Sj01\NgWPXbYcpgujrh?FNj+OlfgqsDG+@^U
-JYhMkb<<)68'.tuYcpFUk(Z"ojpL!WYcqd&aE=_kDLpr$k(`"'li5YgLU-TsrPAiRNhlC3_!p&E
-J,~>
-#?gKW\^c7gE;jALVQ?*^A.>!/F(Ag=S7H/mAn6@hraZ&#M#CiaGl+QBFo>hOMjsZU#F2BlNgm,O
-M#CiaPPo"pC94LoE;6L@OCVmlXK71fA>XpZJZOU-#.j6SeVDVNqL]!6o&mgXg-U;~>
-#?gKW\D!1KNrFM0e(VP7Igs<LP(.tb`IEBHJq'HDrdOsiXo3_LR/>S;Q2Q15Z,HTj#JJjF[)LbQ
-XSmVK])@*]L>(@bNqh<7[srnIg=iTWJ'ro%J_Gk4#3,[>g4n%OqLJj3o'3sYfg1,~>
-#?gKW\^d1YQMuU?hWDoXL(2GjRYHR-d"[:lM2&"fre:I&[f(p\U&3sPSc+9D]$L>0#KPuh^<l$)
-[Jbg[`VkMoNTTB6QMBSK_1m]lk2s%*L>ILDJ`_^L#4)<BeVDVNqL]!6o&mgXg-U;~>
-#$LBV\^c7gJZOF(JZPiP"hO-ReVCX/b6@\(_!p&EJ,~>
-#$LBV\D!1KJ_G\/J_I*W"lfR=g4m05c3=%/^@9fAJ,~>
-#$LBV\^d1YJ`_OGJ``ro"mc3AeVCX/b6@\(_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP"hO-ReVDWLrs%*JkJ6T@6@]~>
-#$LBV\D!1KJ_G\/J_I*W"lfR=g4n&Ors%'IlFuc@6%A~>
-#$LBV\^d1YJ`_OGJ``ro"mc3AeVDWLrs%*JkJ6T@6@]~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpl"nL%"3?nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&IqqDA"KC8$=nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpl"nL%"3?nCg3Z~>
-$<cfZ\^c7g:HCRbri?cB4,U,@H9+/NG-#I?4?P]Y4??!SX9!g1cE%(_4+VsaJZQ5[#.j6SeVDWD
-qpbqlKCA!=nCg3Z~>
-$<cfZ\D!1KA4fLcrn8$59!?t&Rn6:IQ.h$c9MA*W9M&F0g&[nRcIr>T9;I-mJ_IKb#3,[>g4n&H
-qq;:uJaVg;nC^*X~>
-$<cfZ\^d1YC/.U%roOlH:UoQLUeOZ^T&l&.:f'rl:ekB>joMKqcK51g:T]31J`a?%#4)<BeVDWD
-qpbqlKCA!=nCg3Z~>
-$!H]Y\^c7gXAYA^X8uU:ri?MjXK59cX?<Sc4KP8Hr2]pVI*er0W^BU"SueW&UkjH#XFkA/XJTj#
-D0Z&]"*/6qQhmcoGE8>4VlZtOD47PRM0a$5ri?ERCoj[SENFP)TRj1qXLtV=]'e2#LXYejeHa-I
-n)qLUg-U;~>
-$!H]Y\D!1Kg1S.ug&frMIK%q/9\S34^tMK9g.^5F=T$kRYFX%o("ZGtMTFMqMU/Dsg=iE]NnVs>
-^5A<Wg&mIpMSK#A&!s]FMU^A6V2E1ET!"N>c2QE'SVc(QMN?J^MTUM(J_Icj#3,[>g4n&Hqq;:u
-JaVg;nC^*X~>
-$!H]Y\^d1Yk&&6=joXXlK`:*B;!-nVb2uO_k"t3n?2Wgc\Y[[8(#rG4P1/RFP2!FDk2rk1QKI%e
-ac`@sjo_$7P0*R_&"gVcP2PKbY*.)mVRWCag&C+?VNL$%P*b=.P1G3HJ`aW-#4)<BeVDWDqpbql
-KCA!=nCg3Z~>
-$!H]Y\^c7gXAYA_X:h<s6Dgic3h`6ERB/EB>`>bY7f9=g<ADk%*3)Y8H_IO:4*FtGJ;RobG[[O>
-3.#O`XCcU%=EXJA*,JYVHXEk*Ap[LSH5gaK=f8@&Hu,mb:0XfF321u*JZQMc#.j6SeVDWDqpbql
-KCA!=nCg3Z~>
-$!H]Y\D!1Kg1S.ug(Mb5<79LS9$GLl_:hH(FKsQE=T$kRCd-5"*8"V>SBT^599sjYU9B*;R!dCc
-7\#Bug4>KYE0U4Q*/SNLS9`haJXgN(Rj*f]ER`^rSVc(R@W^=m8'Z\>J_Icj#3,[>g4n&Hqq;:u
-JaVg;nC^*X~>
-$!H]Y\^d1Yk&&6=jq?EQ=l&6&:>"39biVUOHFr=m?2WgcE^A(7*91UUUtFha:S*)sX13q\TRu*,
-8u.Z<k(oP'G+JKl*0G;`UjqO/Lno"GUa2/"GMhQFVNL$&BR8g89A+mYJ`aW-#4)<BeVDWDqpbql
-KCA!=nCg3Z~>
-,?aHs\^c7gXAY@cR?=R4ARIs.X=d"5=/;o?7ldZPU.25cI`nenBn$#^s&8lt%Xqtt7''gPXGpGc
-Ear[-q5aXV-D:@>'d[F&?UgJZXK7=cXK6ecXK71cXE/N8XF[IbX9Q9(f@>Z*nb^iAa+NjD_!p&E
-J,~>
-,?aHs\D!1Kg1S.R_RJ5lJ9k;Ng,`D@DU7#c>"IB$bui]RTZc$iL7nM!!GQ<Ig('d+HWJjIX4jn$
-g6$f6SGCk?Z7sK$g(c8kJ9b;9@bTP?G1tZ@M;$[aHeOXIJ_G\/]@mJKs5)Iaddm:h#Kq\dlFuc@
-6%A~>
-,?aHs\^d1Yk&&6&c,/U=Lk/gnjum$WFPGq.?;0MDfj3b&W6=<(NN)m=!H)iSjpn>GJQq8f[H>/J
-k*^mYV>96T]/%t:jqTY-Lk&gWB]eHgI-0RgOlkf5K'&MmJ`_OG]B0=`s4PqXe+*=c#KMJckJ6T@
-6@]~>
--X#m"\^c7gXAY@cIVOLGK7dNhX?<Sc;4"@HXH?ScU.25c4KPWYT$OJCBn!.VXK5?cri?ZaA:nki
-XC6mcNE`KXKS*ofqQ'^V>lC`6211%-Lmgc2XFk)cXF+j`X9(n\6\2=iXLbJ;]'e2#LXYejeHa-I
-n)qLUg-U;~>
--X#m"\D!1Kg1S.RTSB@oV58F@g.^5SB#*+og:2%Sbui]R9\S4FaNrQFL7m8Dg=g8Srn7p^I\i*+
-g3]mSZZFjFW25*?qUttUFT'o'6_:-MXi+>lg80>Rg7=*"g&bHq<e8tUg:GuBir@lhL=5Yig'>fP
-mcqOUfg1,~>
--X#m"\^d1Yk&&6&WK"-:YHNGek"t4&Cs(m:k/)6&fj3b&;!-one'I.]NN)'kk2pR&roOcsKs-hI
-k(0r&]m8bmZ*0"bqW7gjHi<(:8#EJl\'A:<k-'R&k,+:?joSo7>(Pgek.9[Zli5YgLXYejeHa-I
-n)qLUg-U;~>
--X#m"\^c7gCFi@i7;>4SH$))@M'623<hY!d?="h;==.?\/?GpK.*nt6Lg"+kXIh(AMQEn?=C+cL
-OYp+>=tuaD<aJpfqQ'a$13!5o'TQ=&?$)M[>@(g@XF<MuGH@mC/q\_VJZQGa#.j6SeVDWDqpbql
-KCA!=nCg3Z~>
--X#m"\D!1KLcB'l=,'aNRZp<OXsnR=Cs8S%GBYRGE%lK[383(t1XFboXE&N/g;u?fYM.^=E-GkH
-[mOrbE^.iUD0L!*qUu!j5E>`s'XVh'G*KosF*E&dg7VG=QeL0A3i7J^J_I]h#3,[>g4n&Hqq;:u
-JaVg;nC^*X~>
--X#m"\^d1YO#q3,>`DocU7=ki\1E&VEn@<BI=3]_Fu+Pp46G[?2UCM)[<R+Jk0uM1\E;qhG("*[
-_FAP-Gs^1oF+&8EqW7j'6^@Z5'Y\a=I%8J8H$tA.k,DN[TB>:m4g0G!J`aQ+#4)<BeVDWDqpbql
-KCA!=nCg3Z~>
-#?gKW\^c7gOSt%AT8SSmP_tHkre^cIXI0!E!K3WLM?K!AXI><tX9XrHV6$POMOjaJ%[N!FMP,if
-XH8=<R>Qleq5aXZMN[q>':"H6XI;nHMPmPWR#6cdXK80kUk,UuXLbJ;]'e2#LXYejeHa-In)qLU
-g-U;~>
-#?gKW\D!1K[f*B7ag&%`]W\Z^riZCCg;3cl!O0cGY6;8eg;CJHg'>3mdG!'QYK-Xr%_f-iYKO,W
-g:"38_QU/Uq:YnYYIXVc'>:TTg;II1YLD4Z_6:&Ug=jk^d"0o%g:GuBir@lhL=5Yig'>fPmcqOU
-fg1,~>
-#?gKW\^d1Y_#:eKe[i<5`jre2rj`*Xk03e7!7q+Z"Ma*]cGRri#K=7/k2*YZdf/A=aLTm4f"&QX
-^q&CI\[fcVjoW?/_u8^2aLSqFc=k)*hra(F\[fcCk1XJ&J`_OG]&j4_s4PqXe+*=c#KMJckJ6T@
-6@]~>
-#$LBV\^c7gJZJsT@OG[\X94DX,aa.aJZQGa#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_C4[I5-0Fg&nWm/\lqkJ_I]h#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`['sK/A8Vjo`840[#%0J`aQ+#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZJsTR$*d1X952[P,<f3JZQGa#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_C4[_7@;Tg&oX2\^H&_J_I]h#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`['sbeqNsjoa;S_qot,J`aQ+#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-$<cfZ\^c7gXDp%2ri?ir4?ll#BJV%o-CU/b4Aqc(+ZqklUk,UuXF[ImX9Q9(f@>Z*nb^iAa+NjD
-_!p&EJ,~>
-$<cfZ\D!1Kg5eLRrn8*r9MfT*KL%@\0Z1P%9PDMF.SNNXc[jf$g4@ttg'6R:hV*_4o)%,GbCT*H
-^@9fAJ,~>
-$<cfZ\^d1Yk*JJrroOs3:fVSBMa]Kn1X3p@:i=de/5T/igO\L<k(2[7jp(/Og!tl,nb^iAa+NjD
-_!p&EJ,~>
--X#m"\^c7gXK5T)Uo]P[XJe:4@#.pH;1McHXHlbc4KPVkM6*e%?dPkhAo;(!?$EBO<(E^bXD17^
-8!9rY7p5hm#a%VhC94='7s'<`JZPED#.j6SeVDWDqpbqlKCA!=nCg3Z~>
--X#m"\D!1Kg=gU_ce>[Hg=8omH*)%oAts=og:h7S9\S3FY1hTpGgP.ZJW"o<G*gq:CKf'<g4ie5
->.N@0>&jPq#e4&iL>(*[>*FNkJ_H[K#3,[>g4n&Hqq;:uJaVg;nC^*X~>
--X#m"\^d1Yk2pr.gZH.pk2B1=J@9X:Cohg;k/_H&;!-ni\E;qEJ'd<mM3ER[I@oZaEF7G^k)NfX
-?c2#R?[)M3#f9r*Noo5+?^lW/J``Nc#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-)-QCi\^c7gXHHUrJuj09XK8A"VlEj\VLrCXX9q(k4KPGaPH:j#:=-'dSelYjG#G,>PbD*FC4;jY
-5H0!fTnZsVOBeK1(7S9sTlbF.XF[IEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-)-QCi\D!1Kg:;$NV:q5sg=k'-eCSZJe#.Zog'UO-9\S!:]%YkmA'ipRa;pZlQ>"Tb]?G*.L7lb/
-:tD/Abc5sB[rooj*5lU9b`e9Bg4@tLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-)-QCi\^d1Yk/;:rY3)@Ck2tU]hrAmqhQV_5jpFrI;!-Y[`TH<BB[GlcdiY;/So*5-`Rf.SNi:QP
-<T9gcf<^"i_0ae9*RA]Vf:/:]k(2Zdjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-%U&5^\^c7gXAUuA1TYe?qlBp&OK=.Gri?8cX>W:2M9DtAV*ghHQ;W_d5<gf84KPW[7'*Ik5;ZTG
-8tN,cK5Z&7X8kA6XF[IEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-%U&5^\D!1Kg1NlO6/%Wdqq;0l[b@[/rn7NLg-eb<Y05N?d8\1n^1al':f'6-9\S4I<nc8F:dT6W
-?HCjSVMprBg&Oftg4@tLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-%U&5^\^d1Yk&!^j7-:,.qrS$)^uhqVroOA\k"&KV\'*nTh-&3:a_eaC<E28B;!-oq>NY'i<CM2q
-A(0T&YEYd\joA5/k(2Zdjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
--X#m"\^c7gN`rE]I;=XHXK7\YXK5NcXHHedXI;nc4K4oPTrb>UJ^CJBV*ghHQ;X)MTrFKG:RJ55
-7''jOWFfA9C4<7cLP'0>XHQY8XF[IEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
--X#m"\D!1KZuXaKSqsLog=j6]g=gMSg:;:Tg;@FS9\.:$bhCdWUX7^=d8\1n^1b?!bgs\EA\m)o
-<n_r#eq%nrL7d2RX/:F$g:D*Og4@tLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
--X#m"\^d1Y^3S\rViS9:k2sb6k2pj&k/2K&k0@Z&:uTlDfB25/XO-)Rh-&3:a_f4Af\t,rC<Yh?
->NURDiJ;dANi;+&[BGAJk/;:kk(2Zdjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
--X#m"\^c7g73PZI/LIEO4?QN5XA^8uGcZih4AM;t(hp(8=KJT%/C:IB>T/,4INOr<6Te#-Rnl.Q
-7')VD4BE_uXD0j[@]Y/D4B8&*XF[IEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
--X#m"\D!1K==S*C3AK'b9MB-@g1i'%QeJ]A9Okr;*erC[Dq`oY2pg8&FWmM*TI7R`<D6c6`+;Vd
-<nb/i9PuB%g4i9pI+kDj9Phn'g4@tLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
--X#m"\^d1Y>V0rX4>Yp':f)&Yk&2e=T]Wje:h\+X+H>O&Flqh'3md"5HQoO<W%#s*>#8bOcY?:*
->NWn4:in;<k)E26K''44:ib0=k(2Zdjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gTWA0BCOrR<XGj4b]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KT\9F=LOn01g5O_iir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YT]Q9RO+HGEk)AF,li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gUT=QT4?RD1XF[I2X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KUY5gR9MC4mg4@t9g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YUZMZg:f*4(k(2ZQjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#?gKW\^c7gWVr4iUm[XPX-oEOrL!neR@^LJRB3"ZR/i`QXSnOjTrb#WU7^8C(9;R?4GU#;BKSDC
-XJT5b5bP3R:cqFHqQ'b!ClA:o"H,B)ENAr;!M`QjX9*o+WVNUrKlI!l"#2o#NV]^_K028?XK-J+
-4GN^6"K#Ed5bRqS!I]7mX:La^4CtIm69I@bU9(4r4H'3?#`ga-XJfVk4Igu(NN<>qmap!Ee+*=c
-#KMJckJ6T@6@]~>
-#?gKW\D!1Kf)<Did)*WQftkVQrP8`d_8t?I_V3-2_#VINg&T"h_$/$9cb[oLh:`XtPY=cOg=CpN
-9YT6/F\GZUg<X>(@F"`'!niC6rn7LZ9MCQ#qUttrB`-QcU-.$&g&\15rRq?;9MDehg'OZN9UFJd
-PY=cNqUu)$F\GZUq:Yk@RJtnN_b<aRe_3tr9Kp_TdWA0ern7Xd5el%&I8!>SJ_H+;#3,[>g4n&H
-qq;:uJaVg;nC^*X~>
-#?gKW\^d1YiVgt*gs+(*jil$(rQGN&bgY_!bi[FSbQ-#djoE[*bQZV\g<A7#h<#L7S5<%hk2M=r
-:rqeUHVdbok1aZJB%m+D!p,NTroO?o:f*P?qW7h4DZ&VuX$G\?joMcRrT42K:f+k%jpA7g:nZt4
-SPW.hqW7q;Hr*hoq;q^UU&O0bc;7>mi9"-<:dNarhKi#0roOL%6d"QLKMYLmJ`_sS#4)<BeVDWD
-qpbqlKCA!=nCg3Z~>
-,?aHs\^c7gS0g[#3bg]5XJ[a?K,dZ_-%[<oX>r2?2btDh.Jg+P*_m_J8#'-]<\W@2(8XC"X?<SE
-=fe\eXE\]cUdV:mLTHJ>qQ'a>0S05)"?`ce8Y>m]!i/mHr2]r^5cFO\!e`mHrN#u]pT+[?XK4Uc
-WH5/B4Sl,^G]0[[6i*kcIlqHEX:7:nXC-gbE3--5Suc.Ur2^/d=HKV;A?;jpJZOj4#.j6SeVDWD
-qpbqlKCA!=nCg3Z~>
-,?aHs\D!1K`@tD*8qor*g=/5cVB]Y`0;U0\g.4Wc7:d]T2#>o4-=\?.>0h(tD*?_/(=?+8g.^5-
-ESB,?g6[iRcrSkIX4jn$qUu"64JVo0"AIP'>furt!mkgAr7V3G;:YNs!iT%ArRq6FpY#q5g=f<S
-ere\?9`!HGR>oqJ<VkDNThL1>g'pa0g3TjSNS<)lakCjBr7VEMDn"H!IbNLLJ_H+;#3,[>g4n&H
-qq;:uJaVg;nC^*X~>
-,?aHs\^d1Ycn\mA:5r"=k28L/Y9dpu19N2nk"J>.8STPd2u;YC-tju<?e][;F$SRD(>W-Uk"t3S
-Gin-bk+J%&gfrol[H>/JqW7jJ5cjtI"An7C@Fb8;!o%fUr8n&W<T3f:!jPjVrT4)VpZ;dIk2oS&
-igJrk;#9;WTp=cr=o.7^W_eZRjpb/Lk(0r&Q0.4<eE2(ir8n8]Fi!4FL$%MoJ`_sS#4)<BeVDWD
-qpbqlKCA!=nCg3Z~>
-,?aHs\^c7gXAY@TK62TWXK,fcX?<SQ?^jVtGBS#.:96RZ:AV$u:8pIQ=.)gbS4W^]!@iBSX;7k(
-XIr+cN`iHb4KNdHXJA7cSu&N=BDS\2QY1mKX9:YeX@]&]X9,Ai4T2>`>E(nHqQ'agKjO_Z!],t.
-poFakO[Z:OXI,,?qQ'gEDlfd&qQ'adHtiS]"?`ce@#+`_'9-=tX?;r6Uo^Y8H<?91Un4ZW9nBC*
-X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-,?aHs\D!1Kg1S.>VN[^-g=UeSg.^5=Gf3j9Q^*]e@bON0@f"db@b+B$DSfo;`E`Dr!B$;)g(r>W
-g<3^SZuOgR9\Phng<`mSaO/_:KDO:'^Or<\g&t+'g0Detg&fjC9`<ZIF0e`oqUu"iWH\<p!^X?8
-pt?"n\6.D;g;1:'qUu(?NS;c[qUu"fSV@'s"AIP'HE@,"'=)i6g.]Dod+[33Rr>did)aq[@=d-l
-g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-,?aHs\^d1Yk&&5fYFDPNk2_0&k"t3cJ'VPWT:MD4B]`.RB_pitB]<%GFNnO^cscq9!B6b4jqd%$
-k13r&^3Jf&;!+F:k1j2'e(s/fMYcH:abm2!joeNCk$cg;joXMe;#TMYH+d5:qW7k+Z@;c7!^soO
-puVk/_Hl6bk01\MqW7pSQ0-n*qW7k(VMtN:"An7CJ[PL>'>/bRk"s@?gZIX^UNOE8gskK4B7]3)
-jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-*Ehgm\^c7gXAVY:Suf"UXJ84cX>!X,XK5!L<c`<\X8kBWX9bdiXK80t<E5[jX8uRci2dEb<gg%L
-=fe\eXE\]cUdY3`"G16eXEskG"HKRbB7^&`#s>;j8Y<(d<E36%X8kB^X9=kjVEh*UX9"2brN$*'
-=&tR]X9a)Q<i`='DHC6BX9<cdXJJ;[X9!fbri?5bXK5fbri?Q_@]ZXS<``J+UK3gcOT)<_PZFf8
-XGs:c]'e2#LXYejeHa-In)qLUg-U;~>
-*Ehgm\D!1Kg1O_EaP,?Ag<WjSg-'75g=ff5D39t[g&Oh@g'H8+g=jhhCi%5mg&Z?&i7\[gD8P#6
-ESB,?g6[iRcrU/""Jp\'g7/(X"LQn:K;8G"#u'(,>ftc=Ci".kg&OhGg'#3.do"Zkg&\C$rRq?m
-DJd&^g'F-bD;!XsMf*k;g'!h'g<iprg&[n$rn7KKg=gkSrn7g\IG3C(D/OCJcY^U=\,P(_]PZ8O
-g5Xejir@lhL=5Yig'>fPmcqOUfg1,~>
-*Ehgm\^d1Yk&"T_e)odhk1X)&k!3rMk2p*\F.&HqjoA6Pjp9sHk2tB=EcT\/joKhAi8tO)F3Wj]
-Gin-bk+J%&gfsd?"KmRCk+qus"MX$\MQHg>#uKdH@FaL_EcQI)joA6WjoikKhGrP1joMu@rT43*
-FE>Itjp7]'F62QHPB;BPjohBCk1s29joMK@roO>[k2q6&roOZqK]_DJF*)]igN1\`_>`Qu`cL0k
-k)JL-li5YgLXYejeHa-In)qLUg-U;~>
-*Ehgm\^c7gXAXRIQ_1@K9hV%YX>lD=R]&fM='K_EX8kBWX9bdiXK8@\PESPmX;@L2Suf#R=fe\e
-XE\]cUdV;cL1[BcXIfET"J`'"B7^&`#s>;j8Y<)KPEV71X8kB^X9=/PM)1:iX9"2bqlBg6I.s]C
-5-"R_!'L+Z"F+jdV*k'[!Inh_X9:YeXC-h_X:e$sXK47RX?<SR4c)XSXK7dlUOfM*X9Q9(f@>Z*
-nb^iAa+NjD_!p&EJ,~>
-*Ehgm\D!1Kg1R0p^rb<K@UI10g./_a_pr#7DKCs>g&Oh@g'H8+g=k)a]"2/%g)%kLaP,@TESB,?
-g6[iRcrSlSWe&^Sg;s9)"OGfUK;8G"#u'(,>ftd4]"5QRg&OhGg'"<cY!KSng&\C$qq;(,T(gq>
-:>#O!!)37C"IY8'd8g"r!MP5Hg&t+'g3Tk"g(IT5g=em>g.^5>:9I`gg=jA_c@O].g'6R:hV*_4
-o)%,GbCT*H^@9fAJ,~>
-*Ehgm\^d1Yk&%2<bLG\#B4THQk"EX,c/<$\FEs;RjoA6Pjp9sHk2tX9`5H*>jqlNie)of,Gin-b
-k+J%&gfrq'[#!Z&k0s=J"P`)$MQHg>#uKdH@FaMZ`5K[pjoA6Wjoho(\4"40joMu@qrRp@VYB3R
-;WRf=!)WOS"JM+Ch-'R9!NM+XjoeNCk(0r>jq;"Qk2o.fk"t3e;Rg&.k2sj3fn&:Ejp(/Og!tl,
-nb^iAa+NjD_!p&EJ,~>
-&6\G`\^c7gXAY@cIVPsb=C(p-#s>;j;3skHX9EYDX8kBWX9bdiXK7g7R]JXNX8u7ViiEoo<1'b)
-XH$GbX?<S/E3,j'XFk)cRt(78!G?u_X9:YeX@]&[X8kB^X9=u!?R'^hX9"2bri?BEWiTu`XK6qX
-ri?EDXK4UcWH,)A4T;Dk>(WiWG]0[[6`dA^9q2-`!Inh_X9:YeXC-h_X8kB^X:JQpX?<S[?XGKn
-XHlqbXDWTjNN<>qmap!Ee+*=c#KMJckJ6T@6@]~>
-&6\G`\D!1Kg1S.RTSD1RE-D67#u'(,B#%Zog'<c>g&Oh@g'H8+g=jCq_qIf`g&Yrkin>0uCV\Y_
-g9bkRg.^4eNnVi\g80>R`M*+]!J@0Hg&t+'g0Derg&OhGg'#<<GV,3Vg&\C$rn7X<f\2.Qg=i9D
-rn7[;g=f<Ser\V>9`E`TF/@UER>oqJ<SH0M@`A?#!MP5Hg&t+'g3Tk"g&OhGg(/>2g.^5IG^)Aq
-g:hLSg5LU:NS4Trs5)Iaddm:h#Kq\dlFuc@6%A~>
-&6\G`\^d1Yk&&6&WK$'%G('AP#uKdHCs$2:jp.=RjoA6Pjp9sHk2soAc/qk%joKD1ioV$8E6IC.
-k.Z*&k"t35QKHt,k-'R&c`6g'!K*uXjoeNCk$cg9joA6WjoitYIP78fjoMu@roOKPjQ;Q$k2r^l
-roONOk2oS&igAlj;#]SdH*6;lTp=cr=m"ktB[Hb@!NM+XjoeNCk(0r>joA6WjpugNk"t3qIXXP1
-k/hc&k*1GZNTLH2s4PqXe+*=c#KMJckJ6T@6@]~>
-,?aHs\^c7gQnpcc2gVR,IYFl)H8%HD1P7GcXET5sVE?OpQ27QgLcdCZXI`]m4HTQD!A]&^X;7]g
-4?Pj0WG+IWQ`R)j4@#UAF#Z9BDu-OB>r=QYXK7@C4E@M"X9>1Y0Kbg'X9+A9@/?r7F>u*YXK8*Y
-4C>"fXDgE'X9jSC4F+$/G!%mBri@##F0)I@>s(BGXK7m@Q)q'(2`4pCXID=7AZ5U0!*B0$"/fBd
-JGuVUS23pAN\ij\<.V-1X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-,?aHs\D!1K_*CRc7[r,cTW-Z!RlsG=5c-bcg6\SgdS)et^&$FhX@k`Wg;nGI9XarS!C379g(r1%
-9MA::eqHdk^Y7.Z9Ms'gP"/2:N;D68G!e`Wg=if*9Te!)g'#Sm4\Wfng&eQDH2?5)P=IrWg=jbG
-9R5.Ag5]#/g'O]O9UXVfQ:suQrn88aP1nX=G"bcWg=jM(^"V1t7RMCRg;Q`ZJ^sbR!,qkj"4MBd
-UAijP`^++gZpRM\COt3!g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-,?aHs\^d1Yb=#'$8u(P2WNt[KUd7gR7'At%k+Jg<h,$C6aSP$*[ST7nk0n`m:r*(m!CNaDjqci@
-:f(-Rif-c2b3%T/:fc62RS-INPksMLHq-emk2s9P:mpDAjoj:45u>o,joW1]JGSC<RnH1lk2t8n
-:k7Kdk*B!GjpA:h:nd%5Skr7kroP+qRc`biI8Eqrk2t#NaQDWI8k4?mk0Qq$LuJ?q!-S;'"5eH%
-X8_5ed7%a2^.(pqEIm83jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gjK&?(r&at2JZOF(JZR+t#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KjOsTur(I*eJ_G\/J_JB&#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YjQ6H4r(mBrJ`_OGJ`b5>#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#?gKW\^c7gUA]*8Q?@4gFoJHDIWD4_X9G,7Knc[]rc/!cqQ'[=rc/1"XHIUbL>ApHWa._LDQKR5
-4?S%nRSQ%0M6)n34@YJ0X9,@jJc;_RE]cHgW;<RrOtus:!bW@Kq5aU.?i@&.(d'p?qQ(!=4?QuO
-Wa7eMD>L=:Rnl.1M>=4R>&+&<)1an4<1p=oN](CKXCF@TAZVt@0K`46XG])iXGa.a]'e2#LXYej
-eHa-In)qLUg-U;~>
-#?gKW\D!1Kc2Eb-^6FbBQ2]J=TTRP!g',KYW2eRKrfI2NqUtq5rfIAfg:<?SWnlAEf60h]MqZEm
-9MD&3`+2P;Y1gHk9N\e#g&fi-V#K'NOA&>ieb[u#\Ng#G!eVQEq:Yk"Gl?=u+&#A7qUu729MB]a
-fQU"_MYc$0`+2P;XngZOEeaSI)5Kr"C<P>bZUB8rg3u^hJ_Jh(4\TJAg9=,!g5FYhir@lhL=5Yi
-g'>fPmcqOUfg1,~>
-#?gKW\^d1Yf_q3@aIJZdSc7aQWL;H=jos/#Z*`Ysrg<b^qW7dIrg<r#k/3V&[,'j[j*aa#PNLP>
-:f+(PcY63S\)tV::gLs7joXOJXo@GcQr$V*i;2R:_aF@a!fA,Zq;q^5J,SL3+AbnJqW8*E:f)Z'
-j*aa#P5=;DcY?9T\,#.eG`Mdc)6H_3E7X16]h!k>k(QW.M!!iN5Yu:Zk.+0:k)8@+li5YgLXYej
-eHa-In)qLUg-U;~>
-,?aHs\^c7gN]pZ7<bbQ-F`M&pXFNEmXK8C#F^l2gIkZ"f1&@sX.W[+X8"W_&=Y'KQ!N2sWX;7X%
-XK4OcN`[email protected]>PbE&?q,_HX9:YeX@]&]X9,%q1&\0UWBWYHqQ'a?<aPa+!'L"W
-$&G[a5,tW?XK4P\X9<cdXJJ;\X9*6:C&Y1I4KPVlLTIOREFQ#N4KPVHXK5ccri?0a>r[D:Ml[,o
-map!Ee+*=c#KMJckJ6T@6@]~>
-,?aHs\D!1KZVGUBD2)b6Q'$XOg7h9Ig=k+mQ$s_,TKJL)55Nt>2Ng"W>0:TFE&R^L!S#c]g(r+>
-g=f6SZuOgR9\Phng<`mSIBD50F8FSlH<I$Bg&t+'g0Detg&fH755j1;ekf5oqUu"7Cj5j3!)3.@
-$*Dq8:>"4&g=f6sg'!h'g<ipsg&d.FL&Td>9\S3HXP2??O+#a99\S2og=ghSrn7FaG"7,;MqSBp
-s5)Iaddm:h#Kq\dlFuc@6%A~>
-,?aHs\^d1Y]i'/ZF,b*NSXG;rk,V=lk2tZBSV8-IWBd#F62K^M31;ml?e'(cFufQa!T2qsjqccY
-k2oM&^3Jf&;!+F:k1j2'KXU$VH2?Y)J6o>VjoeNCk$cg;joX.U62fpJi`&q:qW7jKEdmuL!)WFP
-$+B!Y;WQoLk2oM:johBCk1s2:joUZ^N;hrQ;!-nk[H?RfQ\=M`;!-n:k2q0&roO:"I7o.RMrk60
-s4PqXe+*=c#KMJckJ6T@6@]~>
-,?aHs\^c7gR<aNrOFqasXJ84cXHZ[HXK5!cXK6$8U.1u8B)8S8AuS"kD4+/#XChI5!=Nc%X::7n
-XH$GbX?<S/E3,j'rN$$;H24NBB7^&`"?`ce8Y>g[!'L4]"%](MW;3LqMI-7_![_]8poFaTCJ_(5
-XF+ecqQ'gEDlfd&q5aUHC&Y1K4KPVlLTHJ>Kjq-b;JU&HXK5c/CSCa/!'Gh6Ml[,omap!Ee+*=c
-#KMJckJ6T@6@]~>
-,?aHs\D!1K_O@KP[\f@Pg<WjSg:V/og=ffSg=h/4buiDrK)41-K%<cGMS`lWg4K=X!=k"Eg'tK0
-g9bkRg.^4eNnVi\rRq:2RebY<K;8G""AIP'>fulr!)3@F"'`rGebRo"YBTs!!\oJ-pt?"QLM#5n
-g7F(<qUu(?NS;c[q:YkCL&Td@9\S3HXP1"%WI<LSBSV@Wg=gggLX#hP!).stMqSBps5)Iaddm:h
-#Kq\dlFuc@6%A~>
-,?aHs\^d1Yc(_Os^osAsk1X)&k/M@:k2p+&k2qN_fj3FBM>H?@M;hOkP0I_'k)'*"!=k:Mjpf+L
-k.Z*&k"t35QKHt,rT4-FUA<pPMQHg>"An7C@Fb29!)WXV"(9\[iVDU:\:4D=!],nApuVjfO)*k>
-k,+2^qW7pSQ0-n*q;q^XN;hrS;!-nk[H>/JZ@qB&DNBisk2q/5O4aHo!)S7/Mrk60s4PqXe+*=c
-#KMJckJ6T@6@]~>
-)HlLj\^c7gXK7.cXK6V[T3[P[XAXgiENDa(rN$*q(cG+`X9bdiXK8=,4?Si,X9!j@i2d]_=JDmW
-=fe\eXE\]cUdV;cWc*3bXDIku"GX"ZB7^&`#s>;j8Y<(K4?Pt0X8kB^X9=PhWBdEXX9"2brN$*M
-I:.p-X9ao99<5.qMLA=tX9<cdXJJ;[X9!fbri?hsXK5fbXAY@<@]ZY)I=4hkXI"?`;uWiu4FsSl
-X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-)HlLj\D!1Kg=iQSg=hjHb&t/Hg1[ODOP3s^rRq@u+%0T5g'H8+g=k&%9ME%sg&[qdi7\saE6[+D
-ESB,?g6[iRcrSlSfSuBSg55f&"KL20K;8G"#u'(,>ftbs9MAFbg&OhGg'"g+eksung&\C$rRq@G
-Sp@L7g'G-Y?eF)dYF]>%g'!h'g<iprg&[n$rn8)\g=gkSg1\4"IG3C_St9BEg:s5NC&Zfd9S(oU
-g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-)HlLj\^d1Yk2s"&k2r:peU50pk&.SgR-%i-rT448+@p/?jp9sHk2tQN:f,+0joMO/i8tg#G1brk
-Gin-bk+J%&gfrq'jHZP'k)fR="LI7QMQHg>#uKdH@FaL?:f(<ojoA6WjoiGHi`4t5joMu@rT43\
-Vgu;Qjp8c#AE;n8\>O-=johBCk1s29joMK@roOqlk2q6&k&/8GK]_E.Vl+1ik/sU"DuSl!:k@be
-jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-)HlLj\^c7gXK7.cXK6V"8RJR#N(ur9=//?ZrN$-r7\Y$Rq5ak$5HLr^KWM7;goLO<=T5B3N`iHb
-4KNdHXJA7cXD`CYX8usbri?5bXK5!cq5aQYri?6T3b'I]q5aUS?Mgf)COGlX!C!O^X8kBZX9<cd
-XJJ;[X9!fbri?VmXK5fbX=n'X3Mrl?XK4P^X8kB^X8kA6XGa.a]'e2#LXYejeHa-In)qLUg-U;~>
-)HlLj\D!1Kg=iQSg=hiU>^4uVZ"%$DDU2S1rRqD!=O!,&q:Z,*:tjXMW7os!gtDe;E;nQ$ZuOgR
-9\Phng<`mSg5VNpg&Zi$rn7KKg=ffSq:YgBrn7LQ8U`=\q:YkQGPg(pLn=@p!D_;Gg&OhCg'!h'
-g<iprg&[n$rn7lVg=gkSg,jam8CQ9dg=f6ug&OhGg&Oftg5FYhir@lhL=5Yig'>fPmcqOUfg1,~>
-)HlLj\^d1Yk2s"&k2r:$@=RG%]4k\^FP:0RrT479?.kdHq;qtB<T`GuZ0(1Fgu\XQG5gV6^3Jf&
-;!+F:k1j2'k*;Y7joL@@roO>[k2p+&q;qZRroO?f9nb<qq;q^fIf&7.OJ_d7!E/"WjoA6SjohBC
-k1s29joMK@roO_fk2q6&k!+Q49]"o.k2oM<joA6WjoA5/k)8@+li5YgLXYejeHa-In)qLUg-U;~>
-,?aHs\^c7gXJ'f<SZHO9XGpVa<-Y++7uER8Q^:sYPs(J#3;T]_V3O$.XI1#^QU^tU!AJl[X;7^%
-NL*MDP$+-<8$%/SQ]b1HEb:YjD>[email protected]=+MX9tto24(;DUP41IJblGXU3T\-XK6!!
-QY(iNXDU3#X9i4"QU@dO?^I*Jri@h8Eic?lBpXuYXK7m=Q)q'[E*T!9X@S\E?AttDKj$a>X@&>@
-6`ctmQ^:1CVjB9-X+@@3X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-,?aHs\D!1Kg<>h!a4c5sg9Q%PCREAb>-GV[^qb*H]hZAY8,CpGd_&)eg;5)6^fgZj!Bcn3g(r.<
-ZbU5-\T#@">M>^(^pn"1OFb3FMYc$6aE*Heg=fZE^gPC`g'ZHI6bq:,cD[EoU\`[Sc'i@dg=h(k
-^k/E:g5Jc*g'Mu=^fK+<Geh*rrn9(uOP8E]L;:?2g=jJ#^"V2`NciFsg0DG/GHol,W,Y\ag/Yr(
-<SGZI^qa+,eA+Gefn%k:g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-,?aHs\^d1Yk1H8HdcQODk.H9#EM1t1?b+7'bKG7pa&:+(9D[cWh8`.3k053Yb?k21!C3L@jqciX
-]ut6S_fs;I@-4DJbJS,XR#&qiP5=;Jds7>4k2osmb@T<&jpL.l8'BoSg9IY;XSV&hfV3<3k2qH?
-bDECak*/aBjp?IZb?EucJ'6#?roPq0R-*P1NQ]4Sk2suIa6)O8Q$h'Ck$cHVI_4aRZ$9=-k#omN
->3=FlbKF5Si6+X6jalQRjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-+'J$o\^c7gXF*i@Brk92XK729:f)RI:h?_l:f*.QC]7-1?M^`0N_iPQXJ1#M:nIZf!EP*;X8o3u
-:_$a3XF*i@Uo^Y::fXTuK`4dJJblGSCf!rRXK7mf:kebI!2KNi!1s1k!g6AtqQ'dJ:f(g(X9)9r
-F8i6AJRADX$'e=`Mla"::f*MXX8uU[ri?0@:fRFq%\QXgXK6YC:i*57W)-<9rN$N7:o17S:f*:U
-XFj>GSZJ1W:]RJGXGs:c]'e2#LXYejeHa-In)qLUg-U;~>
-+'J$o\D!1Kg7;hfL"^9Sg=iX6AnIZ\Aq8UHAnJC'M#LudGP^#"Zt<oeg<H+8B#su*!H#%"g&T\&
-Ae&t;g7Dngd+[36Ao$,SVuC9.U\`[NLh:7fg=jMXAuYX\!7(RU!6G/n!kDp%qUu%EAnHYog&br"
-OoF&8Uj;sn$,'q_YhIg6AnJjXg&ZAprn7F7Ao%D"%a/J(g=hp+Ar56qeRiE]rRqd(B$o>@AnJR,
-g88Ioa4e<-AcUG6g5Xejir@lhL=5Yig'>fPmcqOUfg1,~>
-+'J$o\^d1Yk,)s2N95(qk2s(`Ci$#"Ckq/lCi$fIO8`qqIJW(4^2.V,k1QM^Ct&CG!HYg2joFB>
-C^tgSk,)s2gZIXaCiSV"Yl8G=XSV&cODJa-k2t!+CpNp"!87?f!7Ur0!lSo=qW7mZCi"t-joTF:
-RJu=LXag?4$--ju]&r.aCi%8njoKk6roO9KCiKC9%b>IDk2r@RCm!lBi,!5'rT4W;Cu"0gCi$uN
-k-&T;dcS^OC]NIGk)JL-li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gjK&?Qr/^oQJZOF(JZR+t#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KjOsUTr3cUMJ_G\/J_JB&#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YjQ6Hkr4i<bJ`_OGJ`b5>#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gjK&?5r)`rYJZOF(JZR+t#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KjOsU1r,;YAJ_G\/J_JB&#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YjQ6HGr,r(QJ`_OGJ`b5>#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-)-QCi\^c7gXK5MtMheBN9Mqmd9NnN&9VHV.9EItjB`:[2>('(pQ:tqm:]=#kFKC!dHu=M:JZOF(
-f;o1fmap!Ee+*=c#KMJckJ6T@6@]~>
-)-QCi\D!1Kg=gLSYcHK8@;"<>@<1(E@EXo7@00olK`5BcEh6^6^0uZJAH$!@PM2d?SVr'QJ_G\/
-f@gGgs5)Iaddm:h#Kq\dlFuc@6%A~>
-)-QCi\^d1Yk2pi!\[CR_Ao6\aApEHbB%NRPAccZ.MuI;oH)G8TaC^=lC&V]JS*$eaVNZSnJ`_OG
-fB*;'s4PqXe+*=c#KMJckJ6T@6@]~>
-1g08/\^c7gUg9%N1hplSS!R3K="]ej;lWEN4-qk,QTpt/3M[g$UHt0H2jcUg8"3>ECb,Ld!J?nn
-XF[I(XPBl]]'e2#LXYejeHa-In)qLUg-U;~>
-1g08/\D!1Kcule96ACAf`P6?6DEGS.C"HUu9><pL^ei"h8C/i+cVhI17DVO)>/b'lLc57d!N*kf
-g4@t/g>(Bdir@lhL=5Yig'>fPmcqOUfg1,~>
-1g08/\^d1YgjHoa7?*J+d)gF\F?[dJDrY9A:WZ2jb#Ha79\V+Bg/lAX8^'lG?dEN7O?*=&!O0t&
-k(2ZGk1o)'li5YgLXYejeHa-In)qLUg-U;~>
-%9`,]\^c7gN`rNcRZT`3X<VA.?uT)(>HELU6)T46U.1kuJ#kb.Qq3mOJ#PZ2KUGT:XFL5N!=Naq
-XF[I(XPBl]]'e2#LXYejeHa-In)qLUg-U;~>
-%9`,]\D!1KZZFjS_miD>g*;6FH&cXFFP<\B;q%Gobui5RU"W1O_->+:U"3&iVnurtg7eN"!=k!<
-g4@t/g>(Bdir@lhL=5Yig'>fPmcqOUfg1,~>
-%9`,]\^d1Y]m8c&cGNKXjs,bbJ<k/eHKMKi=5U%?fj37!Wod,mb[B#aWo@%:Yg$nEk,SFC!=k9D
-k(2ZGk1o)'li5YgLXYejeHa-In)qLUg-U;~>
-#[-TX\^c7gN`uC_!'L7^#%rHoLKJS$ri?u'VlZto(cG*iX?<CH8>*&cWB[JcX)pHdHN'uHUoApH
-JZOF(goL^kmap!Ee+*=c#KMJckJ6T@6@]~>
-#[-TX\D!1KZZH*!!)3CG#(r[rX)F)Arn85ge(WO#+%0Slg.^!o>KbaSekk)Sfoo*'Rf;"Acdm[$
-J_G\/gtDtls5)Iaddm:h#Kq\dlFuc@6%A~>
-#[-TX\^d1Y]m9S=!)W[W#)]L4[!%g_roP)"hra(S+@p/-k"su:@+OK&i`5.'jdT(CU]0BVgZ!eH
-J`_OGgu\h,s4PqXe+*=c#KMJckJ6T@6@]~>
-#[-TX\^c7gN`uC_!'L7^#%rHoLlON#ri?u'VlZto7])&RX?<S!)PF15WB[JcTQ%!64FsSbXF[J)
-X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#[-TX\D!1KZZH*!!)3CG#(r[rXgC]Brn85ge(WO#=OOC%g.^4U+NrKmekk)SbDt<19S(oKg4@u0
-g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#[-TX\^d1Y]m9S=!)W[W#)]L4[_>L_roP)"hra(S?/E,Gk"t3#,1bo=i`5.'es5C[:k@b[k(2[H
-jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-1g08/\^c7gXDhrp@tBGCEGoNf5@U]\>HFoL.rL`UHnKDY0TRTDOVjamR;XQtXI1#?EEW:B!=Wgr
-XF[I(XPBl]]'e2#LXYejeHa-In)qLUg-U;~>
-1g08/\D!1Kg5h#NI\X#jOGnkA:jgtrFP>H62iGN+SN;jo4gd&T\0&oJ_MpF;g;5(dOE(9R!=t*>
-g4@t/g>(Bdir@lhL=5Yig'>fPmcqOUfg1,~>
-1g08/\^d1Yk*D'qKrh_4R$<Nc<.j=9HKO@]3g7eMVEL<65ef1n_BILmc':8Zk0530R!8Pl!>(EF
-k(2ZGk1o)'li5YgLXYejeHa-In)qLUg-U;~>
-+'J$o\^c7gXK6hnKrhA4G'U0eG(-NePH:j4G'9=ULAl?.IZel<XGs0[Rs&t$XJV&0G,5,=!IC,a
-XF[I(XPBl]]'e2#LXYejeHa-In)qLUg-U;~>
-+'J$o\D!1Kg=i0bW7ot-QC?OWQCusW]%Yl-QBoGBWrA:rTX^<"g9T8_`0Q^Xg=*I)QI,Wb!LgiU
-g4@t/g>(Bdir@lhL=5Yig'>fPmcqOUfg1,~>
-+'J$o\^d1Yk2rS5Z0(2XStbB)SuCf)`9-3XSt=6iZi6O.WPb=Hk.K[8c^p`'k2*kST%j8,!Mdki
-k(2ZGk1o)'li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-$X)o[\^c7gXK5#VU]%7oA,!&*B;g]h!/(85"`LKD9fuMVX8tLLri?-mE.P*AXNIUK]'e2#LXYej
-eHa-In)qLUg-U;~>
-$X)o[\D!1Kg=fk,cMcGsIeVOsK%>h5!2f`h"c_6i@8(V=g&XuGrn7CqNe,o8g</+Rir@lhL=5Yi
-g'>fPmcqOUfg1,~>
-$X)o[\^d1Yk2p/MgAU.6K_OU0M;a?S!3cAu"dS64B2EaMjoJC[roO73Q@\1Lk/ufjli5YgLXYej
-eHa-In)qLUg-U;~>
-$!H]Y\^c7gXK4P^X9!6bri?0"+-?H&!G89fX;$;GXI2kc<g'P9Aun4rWDK+dXB^^8XF[IrX9Q9(
-f@>Z*nb^iAa+NjD_!p&EJ,~>
-$!H]Y\D!1Kg=f6ug&[2$rn7Eg-as!-!J8m[g(^Bhg;7CSD7SAsJ_ErOen)hSg3'ZOg4@u$g'6R:
-hV*_4o)%,GbCT*H^@9fAJ,~>
-$!H]Y\^d1Yk2oM<joLaAroO9#.DYoE!K#cmjqP#2k07W&F2R.CLuq[ribHj&k'O^kk(2[<jp(/O
-g!tl,nb^iAa+NjD_!p&EJ,~>
-$!H]Y\^c7gXK4P^X9!6brN$$%OT)<l6oV'GKKXWDCTFP;Ccm!DqlCuBBMWJ;G-%W/4Jf-Y=Zh0n
-Q`*P><iN1%JNRIJXI;76Ei])=1gXQkAQ!BHW(K1CXK#Yj4CkOm;ER$^XK77@?)`K?HTZ&CXHG\F
-A6Q(7?Ta+FTK/3U:oX5k&Qk-r=cK8,BrjOuXClp^XB^^8XF[IrX9Q9(f@>Z*nb^iAa+NjD_!p&E
-J,~>
-$!H]Y\D!1Kg=f6ug&[2$rRq9k[f4tk=%:`oVbNXSLtLG6M+j>jqq<62K4KjGQ.j_e9[VSFED3&r
-^XZ[bD:[FpUeH5[g;?TXOP0Nb1j=7`J7skpeQkkhg=LXE97GUGBM;$]g=i]'Fk<NcRnSUig:Bsm
-Ira8pGYG0lb=K4*A_-Y1&TG24EO4&cL"]ASg4GpMg3'ZOg4@u$g'6R:hV*_4o)%,GbCT*H^@9fA
-J,~>
-$!H]Y\^d1Yk2oM<joL^@rT4-(_#EI,>>!l:YYq5mO6#HaO\he6qrT)DMe\AaS`\j5:u19nG>P;4
-b2Hl-F5l?EX\a^uk06_!R-"5-1k'ssLMi:;iF>^4k2V"h:ke&kDGX)sk2s-LI,hJ/Uem*4k/:)8
-Km;b?Io*N7f1a,LCZ5'N&U(tPGeMn3N94+!k)#ttk'O^kk(2[<jp(/Og!tl,nb^iAa+NjD_!p&E
-J,~>
-$!H]Y\^c7gXK4P^X8uObrN$$%OSu6j6)Ufc2K#U'M6(N@XD`C]X<O&SI3NuDS5Z8c;O(IIXAi#t
-GFbgdAupPrXFq[V=KJTIEr2ppV&Fq+Io;q>SubtUG]9a^D6.0$XI4C9L176B?*#r$XC-jB?*'81
-T<)CVXCR!c?;>^3I/'cT4KPWA8OH15XD2E^.X\>!HYe87JZR%r#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-$!H]Y\D!1Kg=f7!g&frLZi/SYE45`!%TCj1g-gkQGcobWS_B'kqq<72-_DoYGK":Eg1S'>[G#A,
-g6]k6Uk7<qK%d+N[W'sSQB;!t1smJC-)#"qCrtCJ\X/?1e;Dt,X4kF[g8TMSZ$"bhMV<?XY]ea5
-,g+hcY1e?&g3@+o_4CAT&PUp4Y?Y(9\(ZRiK/K7Sg74"Ng4@u$g'6R:hV*_4o)%,GbCT*H^@9fA
-J,~>
-$!H]Y\^d1Yk2oM=joXXj]`$snG/4(=%ThQMk"(]uJ%4X'V<4#:qrT*I.B"hoIF)ogk&&.a^ZKKM
-k+C)aXbl2AMWV/n^inl&Ss]E;1u0CZ-`V%8En'5m_k<=Xi0!/Q[H>`0k-K^&\pWX3P3.;'\pWY[
--Iq7.\)rCLk'h$:bGP's&Q%WP\RAZR_<-`8M`@Trk,"2kk(2[<jp(/Og!tl,nb^iAa+NjD_!p&E
-J,~>
-$!H]Y\^c7gXK4P^X8udbrN$$%OSu6f6)Ufc4KPVkM6&*(49.SBX<*d)P#dHHK-NK@/Tj=[XI)hc
-Ue3a$Aun1rXK7ImL&S.R4Su37V*ghHQ;W_b4?P<9Sl7a:UTBhT4ADZR8iJjp+KR],XC-idOK>NT
-T<&kl4?63=?>T>:&pJ;rXB(LcJnD*cJ:ME_XK6DcJZOF(bH(oZmap!Ee+*=c#KMJckJ6T@6@]~>
-$!H]Y\D!1Kg=f6ug&ZT$rRq9k[f+ne;q'IS9\S3FY1bW09E7ibg)e+@\S\NoV(GA73L!Fqg;.@S
-csBC+K%`uOg=ir_WW(TO9`*Nud8\1n^[email protected]_=FHcJ$*@9OcE'?:IU^.,%AKg3Kf=[bBG?
-b1[q29M&dKG_u.J&snX4g24CSV1I@SU8*O9g=hUSJ_G\/bM!0[s5)Iaddm:h#Kq\dlFuc@6%A~>
-$!H]Y\^d1Yk2oM<joL+@rT4-(_#<C&=5W0&;!-ni\E5XI:]OGkjrVc]_fNA:Y:i^K4IfI7k0.T&
-gga/CM<7ask2sF3ZMrtd;#BB0h-&3:a_eaA:f'EAe8J/ag?-Uh:[email protected]('m`_<0lg
-e`IuN:ebZdIZa?d&tkQQk&\K'Y))6&X/qD[k2r#&J`_OGbN9#ps4PqXe+*=c#KMJckJ6T@6@]~>
-$!H]Y\^c7gXK4P^X9!6brN$$%OSu7>6)Ufc4KPVkM6($?XK6cMXEo;rXI2hH<f14K=Jr6aO].UJ
-B2G[0PH7VnXDW?cXF#S2XK7.cqlDNK6_6o9;O^^]XI,'6P,tHIXG`UMNE`K,F0)HiX?<Sc@#05H
-XICZ2XAtIcW.:sUM>XFUArutm#\AXiXB(LcJnG"`#-(ggXK5ZcrN$$LGCciHXO4*R]'e2#LXYej
-eHa-In)qLUg-U;~>
-$!H]Y\D!1Kg=f6ug&[2$rRq9k[f+o=;q'IS9\S3FY1e-'g=i(Ng7"Veg;7@1D6J/rE7EUR\7rb4
-K4WbP]%UbJg5DHSg75$jg=iNSqq<dP<6/C[BZ4l7g;121\_>D2g9ATNZZFibP1nW[g.^5SH**Zo
-g;Ghjg2+@Se=tZAY5HuSK"(^4#_8f+g24CSV1JX"#1mk)g=g\SrRq:GQ\!kAg<nUYir@lhL=5Yi
-g'>fPmcqOUfg1,~>
-$!H]Y\^d1Yk2oM<joL^@rT4-(_#<CS=5W0&;!-ni\E87Mk2rN&k+ej:k07VXF1H_>G2VN%_JdTZ
-MJD9n`TCunk*)S&k,#8:k2s"'qrTWh=jpm&D:!CXk01T\_rf`Yk.8t&]m8b1Rc`b/k"t4&J@;A;
-k0H!:k&JB&i2c!h\GYIiM8B/Q#`#VGk&\K'Y)*)>#30pEk2q$&rT4-\T7Q-Uk0`;qli5YgLXYej
-eHa-In)qLUg-U;~>
-$!H]Y\^c7gXK4P^X9!6briA:^.Q2OQX@+?rL4ggdTdrR5V-Z8HN3&j2:9:Nq."<[p/"i1o4B8&G
-;*8GeXI2R@@kFRZDEL%(XG/i"@]0+)10l2X-\*V4R79;7SUN4S5F&<c1d"?uXK6S-4DoftBq[%F
-XFE?,3M3CG<BNO4TIVj?ri?0n&9[rQ%;q!'XI2R@:7\Jf5!G82X8uRbri?0u4@+P"JZR8##.j6S
-eVDWDqpbqlKCA!=nCg3Z~>
-$!H]Y\D!1Kg=f6ug&[2$rn9PN2+3ebg/fq"Wi%G'bVrVWd<J>YZ.dSi@bTOM18-Os2Trg49P_hm
-Ak[beg;7#eIQ>j1MbHg0g8[h?IFJ)I13P=I0qpJ?_,sBBaIkXh:qbS<6;1\'g=hfc9T,f#L!2JV
-g7_2L8BTZ0CeR^?b;VbNrn7Fq'pS[N%?.FCg;7#eA&m<W:/8M%g&Z?$rn7G&9N-MrJ_JN*#3,[>
-g4n&Hqq;:uJaVg;nC^*X~>
-$!H]Y\^d1Yk2oM<joL^@roQC_3(T_)k$'Q9['26Df/d1!h0r0s]B7m8B]eGq26&U63S);Q:iY(8
-Cf#q&k0770Kfn5SP>G)Hk-Il\K\u[h141j[1oiOYb["%[e#>Q.<QO<`78RI=k2r42:m8.<N7^0q
-k,M6j9\&:VEDT]Wf/cBiroO:3(7b?c%?n6_k0770B[Z&*;cCa9joKh@roO:=:fi51J`bAB#4)<B
-eVDWDqpbqlKCA!=nCg3Z~>
-$X)o[\^c7gXK3mSV>dOsN*PPI!H^?jX9!-b_lNp-<Mf>h!D$hhX9,+sS,TJjJMF'RXF[J#X9Q9(
-f@>Z*nb^iAa+NjD_!p&EJ,~>
-$X)o[\D!1Kg=eE(dJhi#Z?59`!L-.Dg&[&$_qG1/Csqt0!F(-Ag&fQ:`W"QmUd!:Zg4@u*g'6R:
-hV*_4o)%,GbCT*H^@9fAJ,~>
-$X)o[\^d1Yk2nXJh>ZO;]R/i(!LujPjoLR@_r_$FEo$BM!FU`MjoX4Wd/N//X[:ork(2[Bjp(/O
-g!tl,nb^iAa+NjD_!p&EJ,~>
-$X)o[\^c7gXK7SFWr9"!RHL[OU@PAfJil/Fm]6D*r&at9hQ-fS4AVU@X9"fjm&U5eSGfMiV4`C@
-JZR5"#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-$X)o[\D!1Kg=j*EfDXD'_WTYQcLTZkV+aRUmb.Z!r(I*nhV&'A9Ou<;g&].Dm+MKk`r4TldE@*p
-J_JK)#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-$X)o[\^d1Yk2sRqj8J*?bie-gg%+8-Y#%romcFM4r(mC'hW=oR:heJOjoNfgm,e?-dJ`2.gt%&=
-J`b>A#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gq5aUh=Pp1\F?0/u!0clQ!J,C)X9+k?QLCmZM^5=(Sq`R$X9"bpr2]oVGk8!;X%`/e
-#-3K7XH/+3l)XuYU7A"MX8nIAX9"WdrN$!_r2]s`XHWXb!EYnEXS&Y!]'e2#LXYejeHa-In)qLU
-g-U;~>
-#$LBV\D!1Kq:YkkDr97LP=bT(!5%^R!Mbpkg&f2L^$jYZYV"M]aJuuEg&]*6r7V0=R.K#4fO4@*
-#2-#Yg:"$.l.Q6\c,S*$g&SbBg&\q=rRq7`r7V4ag:R@<!H-&2g@a/(ir@lhL=5Yig'>fPmcqOU
-fg1,~>
-#$LBV\^d1Yq;q_-Fl2<^Rn`_@!6+Eh!N_j'joWjfaRA6q\hN4-e$I0djoNbSr8n#MU%@CIjCRuG
-#3E2"k.n=Yl/i)sf[8FEjoEBXjoNT`rT4+!r8n("k/I>^!HckCk4Rj@li5YgLXYejeHa-In)qLU
-g-U;~>
-#$LBV\^c7gq5aU8H/>V&4Sc&Y4R]?O4LhHn<g)mP"[8rfOBP6GX8uLbr2]pCEV$74X*jQ@#-0op
-XD0;Wl)Xu&I:S$&X8kB?X8tnbrN#u]r2]r^X??K`!HiI7XS&Y!]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1Kq:Yk/RGQWt9_mBB9^g[89XrdWD7T)g"]!_([W5[Dg&Z6$r7V1<O7V'+fq.ii#2)c]
-g4hT-l.Q5qSpmX0g&Oh(g&YL$rRq6Fr7V3Gg._M"!L/aug@a/(ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Yq;q^BU>G#4;#05R;"*NH:q5WgF2[M/"]FFD^j'>YjoK_@r8n$QQh0>?jeh\4#38\m
-k)DINl/i)/VhMDIjoA68joJr@rT4)Vr8n&Wk"u'>!M#U0k4Rj@li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gq5aU8H2al[Ilp7hR?Biu;4W@a@m!qiFXpZYA#]@,(8kP&>rA^W=$/U(XF_0L8Z]"Y
-7QaA5poGc(XK67l<\dTBXI;mHG-%KE4CKLcSl7a9OK>O54@hi,P!M3-SbfE&Ug#rj6EFrb4Dq6!
-5tO1eX?KHG4H0-<)HL0,9UVuC4Zl`:I3r>a?DX`D4ARQ/XK8$cri?3e76H7uX;G-$XK7RO4B6C&
-Wan4pU37T%P9O&/M*"6,X<Es'4C;U"P!M3gXDMWHRSKrL7QaA4N#uXSAgXUW?p%_kqQ(BHI:S#4
-V-Q2l-%DOd4?ek.Hkeb>ri?iT4A_Q%*b_X%*ccTi4CY7%*ef:hB`"k;P8ZABW2tXe4@fCP!^*PH
-ri?-CF+LFcX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1Kq:Yk/RJtnTThJZj_RWQ<B?-o#IS=e-PW!SVIFe;L(=[Y(G!k!-DbNj1g8,]]>h[oF
-=A3/@pt@#fg=hHID*Vi;g;IGoQ.jT,9RJIeaD"=E\(]Q09NtN5\Pl16`qnC(cZ;d.;qd"#9T.V=
-;I)tfg.l3W9X4HJ)Js^m@)CX*9h]BGShPF`GLG3-9P$6:g=jYSrn7Ie=%oOeg)+k;g=j)99PfdD
-f7-J6cBT`C\gqXOY"Mstg*+7;9R)!>\Pc,*g5CSo_dhE6=\N5?Z7(;QJM>g-H;&M0qUuX>SpmWl
-d</-00;6L&9M`+NSJk14rn8*K9P)5C-A1$B-BO`k9RPBC-E3pjK_sI0\faI9e_6o>9NqGL!_h<A
-rn7C;P(D?[g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Yq;q^BUAj9iWDHu*c,3UZCsoO?Ki!$JS2kjkK];mk(>j[>I7NGOF\koIk,o\#@HQ^m
->u5.XpuWl!k2qgkF$jnOk0@X:S`\^S:kCC%dr/&^_<0m[:gdJN_cKZNdJDu?gNl\L=QYZ@:m:$[
-=(5"(k#6%r:qQSd)KU@(B$KJQ;G_DaV_`j"IGO%R:hi/Sk2t0&roO='>Yq["jqr?Wk2sTa:i_ob
-j+^BSfpsO``%?&m[npH2jrqoW:k+/\_cK[Gk)tX:c=l@]?;P4X]IJafLbe,MJ5C[MqW8KQVhMD<
-gjDqL0ri`B:fG0lVArEHroOr_:i"Ia.#[5a.%$f,:kR_a.'g*+Mu2WC`$.fMiT@?a:ga4a!`8#U
-roO6ORXsVojp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gqQ(X::me>cI;>pW0n3?(XHuec3/"A?M6&@iX@T#]X:8QnXG\j8S<9nS4KPVHrN$-Z
-U9&oXq5aUDD>pU[/!26E4K)/HXE/MhN3%alXI,9SUdV;5C94'`Ip&\NQVmU\'jH[!L,WjqXK6_b
-RP:A84KO0!VlW#WX<L\XXFb&cJubtgI&o/\XAtI)G-%&XWiW:o8Z]"^=/2j/K)2Q4SlMGbQ!'uc
[email protected];X?<Sc8tN,cW]dGbU/[_c?sJq!VlX6^D0B*5:99AJXFk)c5^b\F4KMqHXGU<[X:g_c
-OI`IYMl_[kXI,6RVF%Ac4T2>rEHeLO:old\B<44sJZPqFSZFrTX??<[!D/p^X8kB\X9*sSJc;_O
-QVi=8orJA/map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KqUunAB#33TT82.C5G<)Hg:q:S8#Y-dY1c"Eg0;btg'rA0g9<fq`ja[U9\S2orRqCX
-cJ#(Gq:Yk=MuMER2RkQU9\!dog6.\BZ.c3Hg;(DUcrSknL>'g8TlAK7^h3Gs'm$_8WCDZ8g=i$S
-`&u/q9\QC>eCmUmg*1Bcg80ASUtOIXT%ZN5g2"<^QJ0//f\5'$?/"#NDU-seV>An0a_]/S]l;HS
-@#s#kVqSOug.^5S?-1gSfM:/Sc"bASH?Hi>eCo/MMjACYA(n03g89DS;4^CV9\Ofog95\rg(M!7
-[`@*EZ.c6Hg;1GUdT"rS9`<Z[O-eS:B%fr4KA'#QUY=F.aP'>Ag._=r!F<hGg&OhEg&e&'U]/sJ
-^Lr,Op"BW0s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YqW8aYCWtr'W/p)l6E57ek/qN&9<mW/\E6#hk$Zd;jpcmMk.*kAdD=u-;!-n:rT46n
-g#fDnq;q^RP5aSe3Q!_p:uH39k*hfe]B6Ikk0(g-gfrp>Nonn[Wd!@_b&$q:'mdOTZUp1Uk2rJ&
-c9TnA;!+u[i9!l4js"l'k,sO&XlSW+VWL@Vk&JA-T'"6QjQ>US@clguFP>l5Y579Ee8j.&a*->%
-AXDP6Yi`]Ek"t4&@asQ&jAP.&fPo@&JU>@[hr]EtP+Hp"B]cnYk-'R&<MrTp;!*;:k.,p:jq>VW
-^sV:l]&pCjk01j-hH8q&;#TMkQ_3E`CZ\IUMWRatXQJYUe)jKhk"tm9!FjRWjoA6UjoVXHXT%>_
-a_cUkp#ZJEs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gq5ap?H`X;VLod\VKOb"_$p:URXK5ccX?<Sc8>,j]!'L7^#s>;]<'39(XK4P_X9=YR
-4=t1@X9#:bri?JiX?<RHV&)6V4)R1[X:@@oS5;=.7''gPXK8@S@fEG/4Sl,Z4T;DoW'R>_XJ/1Q
-:9:NZXFk&bX???\,$'l.JnD*A4Zk$<X?<Sc<Kg.HXK4UcXK8$cXK7I)4?PZQqQ((*>*#b?@B?PS
-END+u4=`q'MI)'HX/rD&4fk`S9rtFsWIuKY4?A.4H@&gjXHH"7/nM+LW'%.DX=sQ8!)E3g!'L7^
-#s>;Z;*6m+XK4P_X;+De4?PR(>`:e1;lk.)4;sclF`VSHq5aTgTDbhk4SGiWGB&28orJA/map!E
-e+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1Kq:Z15SD)\BXkMLZVgeX!$r#AKg=geSg.^5S>Kcot!)3CG#u''qCJ7Dng=f7!g'"oe
-9K@_#g&]c$rn7`Rg.^3od2bnS98cLCg($g1`F_e7<n_o$g=k)UI/_h"9`!HC9`E`Xe5FcLg<Ed=
-@bTO0g8BGSg._@s,&OmEV1I@(9h[43g.^5SCV+#ng=f<Sg=jYSg=it_9MA'MqUu>1EjaW%HeR2?
-O4m&%9Ij<#YBR$pg"P04:>4F@@G9Gfeu1,n9M)1@S"4V1g::9Y3e5p]eP+[jg-#@.!+Y]U!)3CG
-#u''mB1tlrg=f7!g(e!a9M@q0Fg4WRC"ehG9HhL2P`h,oq:YjTao0on9_R0@Q]H^Op"BW0s5)Ia
-ddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Yq;r$IUupfi[cZ`2Y_E)=$rH(_k2q0'k"t4&@+P5;!)W[W#uKd7E)9A*k2oM=joiP*
-:csU1joOI@roOSbk"t2:h&fHi:QnWSjpk5MctcHO>NULEk2tX.KDt!5;#9;S;#]Shi)eguk1O(d
-B]eGRk-0U&k"tp:,'1]bY))5N;,B$Fk"t4&EQ)S:k2oS&k2t0&k2sH.:f'obqW81IGe`CJK')3g
-Qf^m=:b,l7\:1f:jlY^d;Wd,gBBJ@;iit+4:ee3XUnr?Mk/1G#4br0"iDAZ5k!/iA!,2&f!)W[W
-#uKd3Cf!i.k2oM=jqVH!:f'dHHb3+pDs!Wf:a=HOS=5h:q;q]eeG\M0;"j#PT9k,kp#ZJEs4PqX
-e+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gq5bKQH*"*1<i`9?O]%sTLg[;HX/oWaX?<Sc8"fa\)L68%F"=>EAZKB'XK4ObSoCc2
-PH-ZTXK7.@r2]l\ri@8*X?<RHWEbIaST/[nX)'PmG]9]f6`cGOX/g6&;kg=K?i$i=EHeIa@u"Kn
-X'^^P9rtEYXFk&bX$$6[-<651Jn;#JW2M"iX?<Sc<0N5GX,@^mXK8!bX/r$rS?%^$XK4L?rN$Z9
-Ni\jOU8oncXFOubX(/6)<(E/OX=C55X/r1$PcL*pSl2>aLkfhnX=?uH=-9OEA?8"o4KCTGH#Kaa
-A#ubG>ktHKF*4O#0s#\=X'J&nX?<PNG-$U-X/fa3V&*G]LTEV=P8^!nRSHVHq5alpSuZA&X?<PV
-DY^@7F`[M_!I7@iXS](']'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1Kq:ZaHRG-B*DV<^'\7j1@XErSog"LYPfhC,R>KZis)OcW<OuD$kJD#HEg=f9Sac>(k
-]%KT)g=iQ&r7WGjg=k4Rg.^3of6+IRa,lFKfnhrIR#]j@<SG!#g"DFrC!PD6H2?50O-ePQIB._J
-fm0a<@bTL/g89ARfhD7r->^6HUk%/qe^Z=Dg.^2RCV$cofruFIg=jVQg"O_g`n@bog=f3&rRqp*
-[+`Z:c.P1=g7s>SfmVT!CKe=Kg+(]Kg"Onp]\1&ea_9#RXK.5Ig,<HpDR\:kJ(d`K9\E+mR>onQ
-IG3D/FSXW<P*FXX52)Hafl^6Ig.^29Q.iHcg"Cf-d2dE\X4g8#\fo,J_dd2pq:Z-]aOu!qg.g8D
-Mtu'-P`l"!!L[>HgABS.ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Yq;rT[U?:UUFQMVM_J\)h[XdL:jlV$$j\Y($?e,&9)PWJXRQ9K5LZO:ck2oP&e<T0:
-`8sXJk2s!Lr8o;%k2tc%k"t2:j*\Q%d[-AmjcMpmTU+\b>3<_DjlMfFDqX6\JGSCCQ_3C$KXHEn
-jaXbbBBJ;PjfaF$j\Yg9-?@#dXbZ%=iScPhk"t1%E5]>8jgcDlk2t-%jlY6;d,i$Ck2oLMrT4c<
-^?3saf]>;_k,aL&jb2dKEF6Z`jsoChjlYED`oY=8e8F"%[Bu*ljuI,;FMd-7L?;Lo:utO8U6Od$
-K]_EVHMQ\NR[iK&60=r,ja:1mk#(6aS`[M3jlM0Xg`Lts[,t6I`$<^mc=gn:q;qune)c8Fk#(6k
-PPO>AS=9E=!MO+Vk549Fli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gq5aU8H2al[S39#[XK4iR@'##EC8!dbFZk#54^@ib%XC3Z:3ipU4bGtTXJA!Nri??!
-4bZ%rX@k/CX<]p0XDU1O6A7R[XBIb[XK6G*Hp"L3@m,N/O0"m84a4!/7Qk,RX;,_<4f#094["b*
-=?Vsm4aBU^Uh2cGr2^m-4]AFQ4f,5E5_;FQ4`HiQ;ll'D?"IKHJNZ.gri?>u4^"kfKb]LDX8uLb
-ri?Pu4bZ&#XFNGsPcUs+<rT0&M*4!hri?0#4]23[*^r5"W]`_NTPpp5:-F:oKfrjQAmB,QGs+<[
-XIUqGpoFsH4aK5lXCOJJ4cZV84\u'Y'9>:>Krh18Kft[%R6=Pe>-+fYAG</176RTNXJS-OpoFL=
-F8i6BVEI4rXS](']'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1Kq:Yk/RJtnT`_B0pg=fY'HJ58kL<NA$PYIRV9m$6c%[p+V@[c#+9r:ahg<`Q"rn7Tc
-9rUk8g0Zl<g*BAGg5A\"<2`Qpg2]npg=hZ`SP7bkISHe9[bAbr9paSf=A=)9g(fZC:!hUr9hhnH
-E)"'29po9]d"+omr7W./9ki<d:!qZj;5I?d9od+cC>--kG(>"pUeOQirn7Tb9l\n@W#Mr=g&Z6$
-rn7fa9rUk@g7h;9]\;)$D>r5kY"_Virn7Eg9kXIZ*`l'^fM,B"bDk60@nipsWD._dJTZb%R8$Dp
-g;c6opt?4@9q+i1g4)hr9siWr9kF=X'=LV0WS5irWD1"Y_+ea'En]6FJ+qY%=A@?"g<r]"pt>b5
-P5a/:dS3YkgABS.ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Yq;q^BUAj9id8<c6k2ooGJEF(5Nn7-@S5Gut;1&0%%\cgjBVOXL;6Ns-k1igCroOGu
-;6j'Uk%$UPjs3dck*&ZC=g:l7k'9g7k2r(/V,6=:Ki,-Q^uj'B;5!(6>u?.IjqX4[;;:6B;,Osf
-G#?>N;5.Msgk\h8r8o!F;/bT*;;LA6<N]T*;3oL)E9=u6I><I;X\hr*roOGt;0V0bYoU@QjoK_@
-roOYr;6j*^k,V?V`ocEMF8k;([o$"*roO9$;/Q<p*aDQnjAB+Ces5C[BMl'4Z;H4*LjP3FU/=e7
-k0cD:puW'T;5@%Nk(Za=;822B;/6*m'>RIBZKC(BZ;JX(bY`DDGin.mLA0g8>uBSCk2&sCpuVUI
-Rf;FNh,.7)k549Fli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gq5aUc<9UC`Vu3=jWp-Sc0V&'B!I/bZX9>T"UhPDKX8o6tU]@@YXSejoV;83R6Ak]B
-!L$^*X9+&JWVNUuX/)P+JE!X6UcG?SXJYok!3>Ri!E,EdX9+kQU4KECX9Q9(f@>Z*nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\D!1Kq:YkeC?X@Oe,7MlfBLui4iR?Q!LT/Eg'$'Sc\8._g&T_%cN)M\gAK7sdG<LW<3Q5R
-!P<Bjg&e0Zf(n#&f[%luU>jl1cq)X>g=#oF!86hp!GKFNg&f2cc%4UGg'6R:hV*_4o)%,GbCT*H
-^@9fAJ,~>
-#$LBV\^d1Yq;q_'E9QEahu)4/j6>\,5g]Gk!MH"Ujojc"gPi6&joFE=gAp0sk5<s6gth)n=Le:k
-!QB<%joVeuiq_^>jP/FLX5`7FgJ$Mek2-$j!9N\3!H-6_joWk)fR`2^jp(/Og!tl,nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\^c7ghQ-]mr'UOKe#WY?6puOmX8n%R6i_GsX8o9u6i^2FX94q[7"4*r"\D*rXK5e,6i`j1
-XPp5b]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KhV%scr)Wm0e(OoA=')*`g&S2O<reTQg&Tb&<rd#pg&o;q=.eI*"^G,_g=gfL<rgBo
-g>U`iir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YhW=g!r*'0?e)gbX>?e,qjoDge>6(;]joFH>>6&Z%jo`t7>H$NC"^tVok2q0k>6*3)
-k2GG,li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZQ_i!2BCm!M-+YX8nuTX8o!nX9#>rJZS^L#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_Iup!6tGq!QNUZg&TBXg&TCrg&]jPJ_KtS#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`ai3!8.53!R]fqjoF%ojoF'4joOPsJ`cgk#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZQbj!Jk.]X8t>$o;htm4nPf[X'fM?F'tR'X94NMN10.8!.+1:!gR/?ri?0Z@"n0Q
-!d^qori?-#PQ%WbU/db8XS](']'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_J#q!N^VFg&Xa*o@a5t:A!6EfQr)%Oa>(4g&ne!Z,H%`!1WN4!k`iLrn7FXHDpDg
-!h7o5rn7Bh])LCbc"tFOgABS.ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`al4!OdRWjoJ/BoB$)7;Y9)UjFE$JR=N`Mjo`EA]?fm,!2T/I!loheroO9mJ?nb.
-!i4tSroO6%`;\m#fQ,Dkk549Fli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZQbj!EtN_X:pnaG&aUbUQhCPTp27KPaebNP_T.<+.8@hTrb>]PcLic(nQ=BV6$&K
-R]N?MUm7^@XK8+[T_YYkCOK`Hri@B4Pbb%TSWoD@Wg'<DR&mB]1mFK2XIPl^Pc(U]Pa%oDXJ(D4
-ri?0kF]87?%@36ZXJD/`R\-[_4KL[EX9!HbrN$$+MLhl+X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_J#q!HPRHg(V66QB0bRcFh9QbIl'J]YrOO]W(k`+2Y\;bhCdb]\1tU+3:9RdFuFL
-_qNPOd(Rc>g=jc`bPBioLn9'orn8X5][4sXa1T+>fY#SD_:mVb6+k1jg;V.b][PTb]Y)MCg<?Tl
-rn7FnQ"p9O%DKL.g<[Le_o^Wd9\N2>g&[G$rRq9rYCYF)g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`al4!I2?XjqGkVSsSU%fuDP(f>cG"`m<f&`j>X++3hg[fB25;`oZ<(+k*Slgucf"
-cK<s&gW/$hk2t:8f(nG1O/I]:roPKL`nT2/d`0>ij2Tinbi\';7E3^:k0VT;`o#q:`l?Znk1@"<
-roO:0ST+Pi%EZWOk1du>cID"=;!(URjoM!@rT4-0\:Nf>jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZQbj(g;s$XF4&I4`RR%=&`4hJK9?0,\='=;a(,]+bs&s7pN-C<)dq?D/_t5:99%H
-<)nd=+&s=_,HRY@<*#[gX=J(7A;%%cJQ,T8B9Q=p<-Y5n6r[-=XEkmdDQKpT6Z,k4XCbF2<i)n!
-X$-E_!L-O^X:BVW<-,.",)TB$S#e`R4T;D_F`[M_!FCY7XS](']'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_J#q(im";g7E%o9on#YDJF%+Ua;kR/V)QaBhnZ]+ffBn>'8PiC2/pcMiLrXA(mbp
-C29u`-Yt)H/DABdC2M,ig+.uNI]1uSUha^DK"Gi6C73I4<bcEJg7'C'N8!!A<JtU?g4=!RD:.(k
-fhMG!!PE1Hg('ZgC6@5U/$E`*`7do=9`E`HP`l"!!I(_ugABS.ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`al4(jNdWk,30;;O?P)FDu<HXXC9p0Sef,Dc6Ss+gc6.?[Lq3E,_9.P*TG"B]cI;
-E,iD,.<6eX0BUu0E-'S+jsuLjKsBe&X`8;^MT'UTE1u)Q>B"Sdk+jADPNM"g>*EoXk(mtqF5?!@
-j\c!=!QT0Yjpn8-E1,k$/\,kBcfS'd;#]SXS=9E=!IhP0k549Fli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZQek5+YcKXGpPdXCZCQ9RDbL6EEhNV,!_cXK"FbXI`7cXFG#D9oG!3Hu4.;G>>62
-NK%^bX?`(5RQRZBI>r\FqQ(O-UnFQcPujocG'$3JXK,ib@WSW3=fe\erN$L*(OW<PB7[.cS4p#c
-X$-E_'9lFsXGfl2NE:M/2I<5PVQ?2eRJs8gR8<d_!KgH7XS](']'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_J&r50.Nag9PqSg457<@%=Ns;qbU!d::DSg=T0Sg;mjSg7a;+@^*.TSr9"_QXeaj
-Za,C;g/5RW_bAcgT<b+lqUue1d*'kk]l)BSQBGCqg=^qSI?N<lESB,?rRqb/*hD$%K;7/S`F.ER
-fhMG!'>/)6g9G(iZ>Q5e7!I&$e(V[m_Z&6i_IWW!!P!#ugABS.ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`ao551=N(k.H-&k(f;cAYm&?=QX/Bh.YF&k2]G&k0n,&k,OHQB=YZrVNRX(T4mB9
-]tBD]k#KJuc;<Y2VnB!7qW8XIgXb3Ca*$A'Ssj!<k2h<&KUV&<GNS$arT4UF+/\2FMQGt&ct;G&
-j\c!='?>(Sk.>69]QC"48:B:DhWE)Fc2Qi+b\I+=!Q&r0k549Fli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZQbj$<iIkLLI9cGB']Dr`]P<XGpG<@fEG4W]dGbRn`j_!JE?0>8*-9HAbEkXFFDX
-7V/YdW'%.DX>Bi[!,M8/!K^F^X8kB^X9iWj@YLnE=fe\erN$$r6iO.f>)rT`"?`ceX$-E_"dDre
-XG&M1>69qg4SGiWF`[M_!FCY7XS](']'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_J#q$?EN-X*`RSQ]KijrcA<pg9Yk"IK%q(fM:/S`F8`!!N8BbF;)0BS$670g7`P/
-=Ff+&eP+[jg-P^[!/U=%!Om"Gg&OhGg'NM+IAtr.ESB,?rRq;"<W:\QEjYi""AIP'fhMG!"h\U(
-g8RF<F98r*9_R0@P`l"!!I(_ugABS.ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`al4$@';I["@H&TU4e6rd"a)k.Q&GK`:*;jAP.&ctE=>!O5/oH5"/YUq1)Mk,ETO
-?&.QBiDAZ5k!]2p!0?g8!PrpWjoA6Wjp@'HKX0aTGNS$arT4.9>5mXbGeX1>"An7Cj\c!="ikTE
-k-@JUH31tG;"j#PS=9E=!IhP0k549Fli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZQbj6!B;MVdk41/Q]$A=bVQ6XJf#PUTCPiKJ81_Wc!!6GBg#pJ;%lq<FMsr:982R
-Kf2\t0onD[3L,b5KnWg6XA_C[X>m1nH\HNjI;=Og?_^;2XEI%1X@n7cKrg1hLod\P=G;H6Q)pX4
-08HX1Rr^lSXJ]QXKl2X:/qp%pX9!HbrN$$+MZ'UW;a>o8#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_J#q6#s?de:+*j3H*WgEN,pYg=9k%ce@*rV`_$6f8Q#pQ^H9NU8a'NCO=c8A(l['
-WC17<5.+%q8\MZXWMt'pg1aI\g,RZ;S#MODT89JCGgBfTg6Gagg0^h=W7nLCXkMLRE2fgY^"UZ.
-40.)h`0+$(g=1PEWJmju4/pO#g&[G$rRq9rYPm/UC/KQ9#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`al46$U-+i.\2:4E]f2GI"N"k2C2Fg?.PKYX#VYj-6.@TV14qX0RqqEJ!=VB]b>H
-Z:JZY6GH=89ut5#ZEeo@k&+5qjuD=YUp?DgW/n6fJ(eLrk+,c7k%1i_Z0&Vd[cZ`*G-\E"a6(sX
-5IBS8c^InHk2:omZBMWD5-il:joM!@rT4-0\GbOjDcMAN#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZQbj!EtN_X:8lRP@L\qO(2[iXK7+sri?3e@q00NX9*EPE;lp[BOc@h@qVm=KWM7m
-A!:Dd@s`QOGCciQ@q246PTFl>X;GeaFf_Zm@qDa=@r/5cA"p&m@sP/WH"1RfX:Lq5@uRLjQ"+<9
-XK7@j@rVFK#AI[oXHI('ReWrbF`[M_!FCZ_X9+V-EIk1q]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_J#q!HPRHg'raa\p`;d[=*JCg=iNhrn7IfI=6_Hg&d@aO8diSKRK?CI=p8#VqTj`
-ICaj<I@H_!Q_`?=I=9>n]-`X6g),]qPhOi_I=U&#I>Q[<IEgK_I@8gCRXKnhg(2>SIBqS\]mY<\
-g=if[I?+<\#D@Mog:;W[_t_pdP`l"!!I(aHg&eo6O+H!hir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`al4!I2?Xjpd<'`.[:8^P%9fk2rt<roO='KS53]joUp'QN$"fMhIkdKSnpIYib)3
-KZ&P^KVYEBTWR@eKS7t>`[I5Kjqs87S`](4KS\dIKTP>^K\>M4KVIVkU4eO*jq$!qKY6I0aFo5'
-k2s:/KU2W"#E4>2k/2k*cM6N&S=9E=!IhQXjoWONQ\"9'li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZQbj!N';DX9+B$X1,/2?`<t*!ha8,ri?0]E3"Pk#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_J#q!Rc;4g&eUAfsfZ9Ggu`H!m?;Lrn7F\NnK!;#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`al4!Sr=FjoW5_jgX@QJ)L=g!nN=iroO9rQK<\[#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\Z>gqU4KCsXF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(qc%4T"g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Nq2fn&::k(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uYt(+H:rRJZOF(o;i/-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]%R5+.'eEXJ_G\/[email protected])Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&j(B._L>pJ`_OGoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\uYsD>E+38JZOF(o;i/-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]%R48FL$JOJ_G\/[email protected])Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&j'KHG"gkJ`_OGoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NW#pZU7d(=JZOF(q5ae3map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\_7(+ZMiJXc-([lJ_G\/q:Z&4s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\`Np=]`$snf[bW9J`_OGq;qnIs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\uZ!Q1/<W(X8t^FJZOF(JZS[K#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%R7I5[peng&Y8@J_G\/J_KqR#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&j*\6YNk+joJ[TJ`_OGJ`cdj#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\uZ1"M2@_'XGIsXJZOF(JZS[K#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%RG"Xf]Oqg9)a/J_G\/J_KqR#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&j:8\$s]Gk-l_PJ`_OGJ`cdj#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g[&a:oM1MaZXF[JJX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K[+YPpY(>;Xg4@uQg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y[,qD1\:Ndnk(2[ijp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\?#[LpT+Uq:f)P@XI+\8X9!jAJZOF(OfSbumap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\CpqCpY#l!AS%Fdg;0]]g&[qfJ_G\/OkL$!s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\E3dWpZ;_9CMTd/k0("'joML0J`_OGOlcl6s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\?#[2pT+TiR$aVLXH.GsX9!.'ri?)kJZOF(Q)k2$map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\Cpq"pY#jU_84CMg:!.<g&[&Ern7?WJ_G\/Q.cH%s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\E3d4pZ;]fbKJQ#k.mDZjoLUcroO2hJ`_OGQ0&;:s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\uZgC86N$qFCK2[M6*XH)+[c/XE[9eXK5*P859)b%p__qXK6I\88##[88t:o<e7?'
-XIcKt]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%S(G>B&<MPC/BpXkM<0+Br[9g6c*>g=fu<>@INb%sD0rg=h]4>D(Y3>E7!5D1UDl
-g7I"&ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&jp^@!CbqRt?r6\)uXW,%,HRk+Q1ak2p9c?t]K$%t.j3k2r*V@#F*T@$]JRF+NJ)
-k+:]>li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\u[KaTK90UV&jlS5c^uZ31utHXJUDSXK6@gTUAHSXJ/XSXK86XTVSZf32NZYJ:XeQ
-XIcKt]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%Sagb":=@d3b7';VBaG7`rs/g<uU?g=hNAb/.N>g<OE?g=jqDb0Sek7a]k-UOh-M
-g7I"&ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&kU*ekP;hh'erI<orGo9%MYWk1uqek2qpcf$.dgk1O[fk2tJlf%]?F9&/KOXF]Mb
-k+:]>li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\?#Zmri?>eXK4RcXK4P^X9aSiXK6YcXJA8`X8uIbri?)^rN$-LCnan$JZOF(Su`.-
-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\CppVrn7TNg=f9Sg=f6ug'Fa+g=hmRg<`n"g&Z3$rn7?GrRqCGLs9\VJ_G\/T%XD.
-s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\E3cfroOG^k2oP&k2oM<jp8>Gk2r>&k1j2?joK\@roO2WrT46[OP"O%J`_OGT&p7C
-s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\?#Zmri?>eXK4RcXK4P^X9aSiXK6YcXJA8`X8uIbri?AfXIGWZVGM2Hri?-]JUsnR
-XJ2d#]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\CppVrn7TNg=f9Sg=f6ug'Fa+g=hmRg<`n"g&Z3$rn7WOg;Lk^dUeAnrn7C\Uk.6N
-g7m:*ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y\E3cfroOG^k2oP&k2oM<jp8>Gk2r>&k1j2?joK\@roOJ_k0M<7hJ8@:roO6rXb#Vc
-k+^uBli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\u[ER4;U,ND&7\[(Lj=*(Hdn_XE$!>=fa8)XBQR'XAg;tGH@l[4AD6FXHYC;X9,Fu
-.=nROXJ2d#]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%S[V9H?gHM]JLq*IQ@1*DF*!g5nEJES<N2g2nIFg1i'%QeL/I9Obilg:TNHg&fr<
-1kFA3g7m:*ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&kNm:``H\OrgX6++rKJ*`0i<k*SCeGNM+Jk'A5dk&;h<TB>9p:hS#7k/KXbjoXXZ
-2hC+Bk+^uBli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gOK8IqJc;_PN$=mFXF[IIX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KOP0_fU]/sKZ7="Jg4@tPg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YOQHS$XT%>`].MQak(2Zhjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gOfSUi-p%@/!Mbp2XF[IHX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KOkKk[1J7Z#!RAB0g4@tOg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YOlc^m2GX86!SYSFk(2Zgjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\?#^kFk!Jm=6?RaT_kej=6HY#Kf(tS>ca_t4A;NOU-q+HVQ?7L4CtJfX93l54Fd4/
-"K5fm4Iu8K!G.ktX957n4Au0[!*Aor!KhF%X8npeX8uY(JZQkm#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K\CptiQ.4LfDW]XQbPTunDWf^hW'j<PFkY2S9OZ9$buRMWdb;W59Rt[ig&mp?9VM=:
-"P%rp9ZQq^!J/>eg&oZ29PFFZ!,hPb!P"6jg&T=ig&ZEFJ_J,t#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y\E3h*S^cd%FQV]cf)+S0FQ_d%Z:@_eHfj(!:hJGDfNV0rhWE-\:l"$+jo_MX:oaBS
-"Q4u1:t#.$!Jo5"joa@O:i?9p!-Itt!Q(6'joF!+joKqdJ`au7#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\?#Zme#WOfk,\PFqlBd9kH#G\Ml`aBXC?pcN`rMWSZI$TX?<Sc@#+T["$EZd4Sl,^
-KOh0c4SYuYH(t)8!F:W]X8m25X9"`@ri?,`WqWRqJ7sM8`iKBUmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\CppVe(Oe\k1Tf/qq;%/kLp][YhIK)g3fpSZuXl-a4cl@g.^5SHE?ts"&.G&9`!HG
-W.*IS9_d<BRa(W]!Ht^Fg&R*+g&]$drn7BJf_=)#U4e*O`nCXVs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\E3cfe)gXpk2lY?qrRmCkN3Pq]&qgOk(9u&^3JdNdcR3hk"t4&J[P@:"&S.B;#9;W
-Z%_?&;#'/RU=f8'!IVKVjoCY?joN]/roO5ZjS.d;X,DPk`o[Kks4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\?$u=XK68)?:A$pXJ/WUJukn^4Dcm)UfolGS?/fN4A/bFSO5M@U\_&-QTR^<XCat*
-4F=02TM7OeD3?K?>Zdg!X93PZ4BMN`'g=7OXF2s@3G(UZVI)H,XJdn.D+:,lX:nHtXC?pcN`rMW
-SZI$TX?<Sc@#+T[".$$`7Ja(gKOh0c4Sc'49eN!<N%B'5>c"N&+>>pIXH>V<XK5c&<'5`5XE-=<
-XK7<p4$]mB0gr*:0:f1pBS!8)X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\Cr6&g=hH_G?8iug<F>*V:sFL9Su*0cuMfW`nK.P9OD\Ua&PfNchc?2^e@h`g4EIH
-9Ushjb@4/)MRY[cF`5V'g&mNW9Q'j`'i$gDg7CZe8:jgpdWeHKg=8EdMcn0sg(S)6g3fpSZuXl-
-a4cl@g.^5SHE?ts"2<L7=Sg_SW.*IS9_mBr@QMQ`Z8[q?FOAf[.6UADg:'a`g=gd[C.tGWg6+m`
-g=ibM92XEh5$$BF4NH0MKRqjsg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\E5)6k2qh.IU%/8k1OZLY3+Yt:m"/HgNZOpdH9T':h=dqdTKCggA9qIb"u@*k)!Dg
-:o*79en7gEOi'<.HZn0@jo_(m:iu^!'iR<Yk,1_09Slm6h1&7ik2A\5P$ZZ5jqDRRk(9u&^3JdN
-dcR3hk"t4&J[P@:"3BWY>l*RcZ%_?&;#06-B0F]*]K2NYHedb*.m["Yk.sl*k2q/*E)<\!k*el+
-k2s5q:K?Q26!NJ_5LS\pMh1$1jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>gbAH&YR-Aj"-4K2AHXD*/qK<0DVXHJUFUdV;=@B?"KK3"hMO]V=Z!'L7^&0R%8
-4KP;YS#fOoX@Q0HOHB=?!'L.[!'L7^&2J\eJip,AM6(i@XD0tGTmld<'0N@t@YUtE>-(AfXESZc
-4KPVlL\\"QX&bG\X9=2eXK4PZX:.mmXK4[+XDE9cXBgb^X9UkhXJ[2*X??K`!Jt1_X8tJari?E8
-Krg><XK7^gW.D%jX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(^J,\.F0Wlq49\+'og4c5NVV7P,g:=TEcrSl#HeQIqVesi8\8M)q!)3CG&1P$@
-9\Rg0`7epKg080o[^Q%d!)3:D!)3CG&3ldJUeKKeY1f,'g4rLoc(Ojc'27-6I&bo-EnXm@g6[lS
-9\S3HXSLQOfkn=sg'"@'g=f6qg'hN/g=fDag52BSg30^ug':=*g=.Rag._M"!NgYHg&Xt$rn7[,
-WS4b"g=j8XeUcGpg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`NpsLAp<Y1Uo'N:uZQ:k)?<qYNDZNk/4pqgfrpJK'(H=Y]JX__K>S8!)W[W&1bNX
-;!-JQcfT.nk$Vu:_8,p0!)WRT!)W[W&4<B[X\e/0\)s3Lk)NE:fW"Z.'2[iRK!a[SGiiPbk+J('
-;!-nk[JAqdj`AB:johrCk2oM8jpZ"Lk2o[0k)lM&k'Xc<jp+`Fk2.]/k"u'>!OmRXjoJB@roON?
-ZKAoGk2sa+iIU.3jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>h)8H,[u4KLZH4J`iV4?-h5ri?SlXJ/cY3CKrWLTISKJn"_\!'L%X!'L7^%6U_n
-4KOuHXK8=mX@SEHX8kB[X8kB^X9Leg4KLZH+T=J*:onDJp8esSDQKpKL9-D=X@o+cGB']HXK5fb
-qQ'am=.B#e"GC<eX??9Z$r<:mX?`_cCj`=c?&SW^#<])hVa7Dc4T;D_M-p7`!BmI^X9kRjX@]%c
-XG:;dJZQnn#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K\_7),>lNFb9\N1o9[OkS9LsV+rn7iUg<FM/864GkX4l:KV0r9r!)31A!)3CG%8>L0
-9\REog=k'"g0:uZg&OhDg&OhGg'17)9\N1o./lmBB%i#sp=^4MMqZm4WnOh#g0_nSQ]Kiog=gkS
-qUu"qDoDJ*"K6e'g._:q$tR6/g/6DSM4NASG-Lnu#>Ek*e5G#S9`E`HXa0p"!D_;Hg'Pu,g0DeS
-g8fYSJ_J/u#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y\`NqC@K,Bs;!(U::u*3i:eZR>roO\ek1FfQ9O$Y1[H?W#Y(Q`9!)WIQ!)W[W%8c3L
-;!-&:k2tRPk$YsujoA6TjoA6Wjp"ZE;!(U:/,i?ID!$b?p?!'aPNM"Z[-#)Ik%)p&TU4e;k2q6&
-qW7k3FjKmG"L3[Ck"tj8$u4&Lk#LC&Oeq4&I(K7<#>jRFhcJt&;#]SX[t"D>!E/"XjpBXHk$cg&
-k-Tg&J`b#8#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\?#Zmri@8*X?<RHWE>@cTR1C&XEQM&G]9`s7')8PXK6c0<MZ^W=no&u4T;Dk4KPVH
-XJApcXI=^A8>,^Y"$EZMLAn7S4T;Dk4KLZH4KMtGXK6?AC4?)^!F(3TX;Gr$XK5lcXH$Jc9:`/.
-END:(XC-gbXF"LWX92OdXDe*>%:X^dXFt,cX?<ScVGEKUX:.mmXK4[cXDE9cXBgb^X9UkhXJ\@c
-X??K`!Jt1_X9^thWH,)AD,4jEX9!ibrN$$U=+RHsX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\CppVrn8Mhg.^3oeo/1SbFF9[g6Y.[Q]BdP<na^$g=i()Cs^nDEVS5f9`E`T9\S2o
-g<a`Sg;B`?>Kccp"&.F^WrC]P9`E`T9\N1o9\Olog=hP?LS+Lu!Hb4;g),m;g=gqSg9bnS?cUle
-O4m:]g3TjSg73Wkg&l6&g5Z*c%=Fc$g8KJSg.^5Sdq$/jg'hN/g=fESg52BSg30^ug':=*g=0$S
-g._M"!NgYHg'CI+ere\?MI_D>g&[q$rRq:RDLpNcg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\E3cfroPA#k"t2:icW6&etn>*k+G0*TU+_t>NWGEk2rJSEnoflGPL;#;#]Sd;!-n:
-k1b"&k0C*k@+P)7"&S.$Zi9(e;#]Sd;!(U:;!*A:k2qrkNi;m<!ICsJjqsGWk2q9&k.Z*&ACBV5
-Qf_-,k(0r&k+m_1jo]_Bk*>r.%>1P?k-9X&k"t4&heC11jpZ"Lk2o\&k)lM&k'Xc<jp+`Fk208&
-k"u'>!OmRXjp4lGigJrkP%fjRjoMN@rT4-gFFiSujp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\?$u=XK67mIl2m5M5=378><(t4E3E`VHc6.0TW;t4?RJ\TgLqFVY[A.QTQraUh2<9
-K.q#@Uea*JUQR>nK(uDbMEFe4XK4T>4H4bCE(+n7HDb164J/Q02f/Jp!gajHrN$icKWM8N:cqFH
-XJ&$E=J`*f4?R2RXJJ*Hri?ej4?PO'XI:;HXK8@14?T19XG7CHri@VE1-0lC0OUn<5-.d@3-;7'
-OZY<[Wa@H>I5#WAF#YsXXK8'X5G5*ZV,*?TX9!ibri?1$:b%$tbcD#[map!Ee+*=c#KMJckJ6T@
-6@]~>
-#$LBV\D!1K\Cr6&g=hHITgPbAY0h#Y>Kt`Q9TMg"dre?O4gj"Q9MC>qbZ.>Vde_Z3^e?jac[n9[
-VEBUecX]^ZcaZ/2V>/a^Y"WQVg=f:a9XC<QN`VHBRac^Y9ZbgP7>Urs!l#qArRr*^VqTkOAkZUY
-g<<SkE73IY9MBueg<iYorn8&[email protected];>Cog=k&*9MEI[g8bsorn8l35=qKQ4aP^I:YK\P8!DZ\
-[nJnXfQfWdSii%eP".fVg=j_E:s7SHd:Bohg&[q$rn7G+AMo%mbh<9\s5)Iaddm:h#Kq\dlFuc@
-6%A~>
-#$LBV\^d1Y\E5)6k2qglW^j<Z\D2(#@+jOu:mOl=hKr(l6,2Qu:f*>8fNM*qh>67Jb"t?"gPJ2&
-YX"31gM'Jtg;?3OY5%,s\57(uk2oT-:q`blQ<]q[UYp`#:t4Gn8W`r6!m2dVrT4rsYib*&CJ\Ws
-k1Em7G2;<,:f)r+k1im:roOn`:f'^Fk0>N;k2tTU:f,R%k-Po9roP_D6;=Dk5_.lb;s&0j9:Y/,
-_,*BnjF9G.Va-R1RS-(mk2t5l<7^3oghFe-joMN@roO:CCH-n-biT,qs4PqXe+*=c#KMJckJ6T@
-6@]~>
-#$LBV\^c7g\?#^JHh"0<F*4Ud!E3UmX9+A=U\Lnk?X!3*!B>\\X9"YbrN$$%OT)<_V'h[^XN[aM
-]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\Cpt@SFP;6P*E*&!G[2Jg&eTKchQ2pH#iZ5!Cip8g&\s$rRq9j[f4t^d5&Rig<A7T
-ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y\E3gTV"*RJR[gMB!H<nXjoW4dgA'e2IsLeN!D9NEjoNVArT4-(_#EHtgbm?-k02rl
-li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\?#_2Vt@%nR63TSX7*+iK`!q4F6fn-Wr+sZ:#i;UVQ/d[!NN'lX9#6!pT+@ke>rb"
-3]<B)X8o*pX8o)JXNR[L]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\Cpu9e+D>s_G!Xfg$dVpVu03gOmC^$fDJ;B@cQ/Ce(Eg:!S>fpg&]^TpY#VpeCk"q
-8jpJog&TP!g&]mSJ_J<$#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y\E3hQht6%6bYV-+jmV=3Z2@DuRHru8j8;^RBB/+ThW3h]!TW)3joOB"pZ;J2eE-k1
-:.WS-joF38joOT"J`b/<#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\?#ZopT+UK4?RVbXGCB\X8uOdri?*TJZOF(Q)k2$map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\CppYpY#kF9MCQ%g8o_sg&Z9'rn7@RJ_G\/Q.cH%s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\E3cipZ;^Z:f*M@k-]m:joKbCroO3gJ`_OGQ0&;:s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\Z?[IKWM8TWN)ntXK8?]W2Qf!Wgo6RXJi1uW;`k/WK!XRXK"=[WN</!WiW.uJZOF(
-Su`.-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]%S(UeYq3Uf@JR(f\5'09%DMHg=O?Tg=k*0e^aZQ&(\)3g=k.Ne^iI,e^rO*eq)P+
-g7I"&ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&jpmiN_P-j5T+XjQ>U`:>t0ok2Xh+k2tX`iSjdu&)t:Tk2t]!iSs"\iT'%YiIU-B
-k+:]>li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\u[KU5U`_8E$8(D>cakh(-kWrXE64+XK4-H5XL1+XB-R+XK6:T5[pgL(2KWh6@l4h
-XIcKt]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%SaX;)?q[N[e[=FkYAC*)U2!g64aJg=e_n;,jOKg28CJg=hK*;1.)s*/Mik;h<YR
-g7I"&ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&kTo<As"%Pq?iQI-0?e*`Zn9k*n_ik2o!:<EQQhk&`/hk2qjK<J'A>*fnr,=FoUc
-k+:]>li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\?#Zmri?>YRB/QPXK4P^X9aSiXK6YDXJA8`X8uIbri?)^rN$,hV5mp\JZOF(Su`.-
-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\CppVrn7T>_V.`;g=f6ug'Fa+g=hm+g<`n"g&Z3$rn7?GrRqBSdFi`JJ_G\/T%XD.
-s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\E3cfroOGNbiVdak2oM<jp8>Gk2r=Qk1j2?joK\@roO2WrT45ch;j$rJ`_OGT&p7C
-s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\?#Zmri?>eXK4RcXK4P^X9aSiXK6YcXJA8`X8uIbri?)^rN$*r7@Qu%XF[IDX9Q9(
-f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\CppVrn7TNg=f9Sg=f6ug'Fa+g=hmRg<`n"g&Z3$rn7?GrRqA"=2eU!g4@tKg'6R:
-hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\E3cfroOG^k2oP&k2oM<jp8>Gk2r>&k1j2?joK\@roO2WrT449>gR)6k(2Zcjp(/O
-g!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\u[H_R5LD3Tf&XC2P7%<24:DEXJ0r?Suc^<XI),JXIW.:UTCOaR='ajWb45Tri?-4
-7tIamXJ2d#]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%S^e_F)2lbX9b+7*4-!6c.C-g<H"%aP)H!g;$D3g;d`tcJ$uP_O[^\f7HH)rn7C(
->(PCYg7m:*ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&kR(bX]n:fLO`R8CZbF8'KoRk1QDKe)l^Fk0$TYk0e"Eg?.O$bbh`/j,$@KroO6;
-?\.?jk+^uBli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\uYn*r_EckGYa*V:N*32:D]D"XF*f>B<5$-XD:UrXCG%%J?5i9:Mg$3!K::_X9+qC
->Cil,XJ2d#]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%R/.raZ8VQt38,A<#.=A/E&8g7;bbKA($Mg5':Pg3mLBU>">5A;U<>!O?hHg&f;R
-F+N%rg7m:*ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&j"Erb;\gTk_!OC6[]VC)>(Uk+ug-MWShlk)X8sk(IJaX6/Q`C6AMX!PEaXjoWsl
-H@b40k+^uBli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gOfSVP=)\)>!g-Q_JZOF(U9"R1map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KOkKlRDN4YL!k<-uJ_G\/U=oh2s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YOlc_iFHujf!lB'<J`_OGU?2[Gs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gOfSV'='pN[JZPBC#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KOkKksDKp`dJ_HXJ#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YOlc_2FFSl(J``Kb#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\?#anMNNIkJZOF(orJA/map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\Cq"mY.&u9J_G\/p"BW0s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\E3k.\AEgZJ`_OGp#ZJEs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\Z>m`>@)7EX9+/PG(H`GXF[JQX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7.[FEic@g&e?bQ@[b@g4@uXg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`O!pH@D+TjoVr(Sq6$Tk(2[pjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZC"7;@FOXJ(5tSZJohNCs2O"."OjNW-![JqS]VJZOd2#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1K]%RY!=,3X$g<?Cia4f7pZX3Xb"2:V.Zi8YZV5JmuJ_H%9#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1Y]&jL6>`PuDk1Hi>dcT]J]jq'("3I^K]`.$oY-<K>J`_mQ#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7g\uZio2H+4^XB9(H;6-e"Sk?)cRTF*52QWuoAn>k2XF[I3X9Q9(f@>Z*nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\D!1K]%S*g7;@D!g2DOnBA)"maBmTS`,:-W7,$@LJU`W0g4@t:g'6R:hV*_4o)%,GbCT*H
-^@9fAJ,~>
-#$LBV\^d1Y]&js'88j=;k&lK9D<9pBdpqP&cZFu!8ET&oLk_+Ek(2ZRjp(/Og!tl,nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\^c7g\Z>g9NW-!pR<j00X/rCo9!#+\=*f1dXF!ZfH:WX=XF[I4X9Q9(f@>Z*nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\D!1K\_7(+ZMrPn_OI#Rg"P0$?J=,JDk!6?g7)N?RTlV>g4@t;g'6R:hV*_4o)%,GbCT*H
-^@9fAJ,~>
-#$LBV\^d1Y\`Np=]`.%/bbV$qjlY^SA*2prFekhbk+lXcUL:6Uk(2ZSjp(/Og!tl,nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\^c7g\Z>g9NW-!b<Gl\%X/rCo9)bmrN,EN?XE[;8D?-2XXF[I4X9Q9(f@>Z*nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\D!1K\_7(+ZMrP`CQ"**g"P0$?N/X_Z&=Ncg6Z%CMZCbJg4@t;g'6R:hV*_4o)%,GbCT*H
-^@9fAJ,~>
-#$LBV\^d1Y\`Np=]`.%!EKcSCjlY^SA,bTp]9AG.k+H,]P5rs\k(2ZSjp(/Og!tl,nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\^c7g\u[$)4^O5OXAa1L'o&fUBeaq8O$.Q*>cau8F)tWJXH`mKJZOF(OfSbumap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1K]%S:$9m=)#g1c[t)l_Q*Kg2'\[7udGFkYMrOcagpg:[TsJ_G\/OkL$!s5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&k-9;16:Ck&6Z?*4+eKNC'E&^JUDeHfjFBR@/H;k/[Y?J`_OGOlcl6s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7g\uZKqF`ihJXIaQhM287"F`i)5U],B9VuEdtFTm])X@YLKJZOF(OfSbumap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1K]%RalQ'Jl5g;oPYXfU6kQ'IoocMj(/eGe2%Pm+DGg0I@sJ_G\/OkL$!s5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&jU,SXmX[k0om-\$kGASXlY?g&@NBi;Vm=SHZUek$h-?J`_OGOlcl6s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7gS?)^&JZOF(O/rPsmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KSD!spJ_G\/O4jfts5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YSE9g.J`_OGO6-Z4s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\uZgF@q1@sXI<X/P,taH@q2%1XG14pVQ?kI@qU@oJZOd2#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1K]%S(KIX\EQg;AAg]%YlHIX];jg8]UNdb<EHIY*.)J_H%9#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1Y]&jpbKn["uk08U6`9-3tKn[q:k-ThrhWEsuKo(BCJ`_mQ#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7g\uZiWKS3?oXA";#8?8X^KS3($Pur]m;QPO^KRd<YXF[I3X9Q9(f@>Z*nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\D!1K]%S*IW2OLLg0gkX>hRS6W2O1Z]l0jJB\KA6W1nBbg4@t:g'6R:hV*_4o)%,GbCT*H
-^@9fAJ,~>
-#$LBV\^d1Y]&jr\Z*A;ok%1g&@HHBXZ*@s(aEFhnDW\0XZ)`5&k(2ZRjp(/Og!tl,nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\^c7g\#^EGPcR!KX?EV\6`d@OXH$GbX?<S/E3,j'JZOF(N3!5pmap!Ee+*=c#KMJckJ6T@
-6@]~>
-#$LBV\D!1K\(V[6]\6'5g.g8J<8-&"g9bkRg.^4eNnVi\J_G\/N7nKqs5)Iaddm:h#Kq\dlFuc@
-6%A~>
-#$LBV\^d1Y\)nNH`o^+[k#(6r=m"jCk.Z*&k"t35QKHt,J`_OGN91?1s4PqXe+*=c#KMJckJ6T@
-6@]~>
-#$LBV\^c7g\Z?]n4BJ>[4KPVIX//1bX?<SE=fe\eXE\]cUdTd8JZOg3#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1K\_7sg9Q&529\S2pg!NdQg.^5-ESB,?g6[iRcrP_OJ_H(:#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1Y\`Og':itIS;!-n;jkX)%k"t3SGin-bk+J%&gfo?lJ`_pR#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7g\#^EGPcR!KX?EV\6`d@OXH$GbX?<S/E3,j'JZOF(N3!5pmap!Ee+*=c#KMJckJ6T@
-6@]~>
-#$LBV\D!1K\(V[6]\6'5g.g8J<8-&"g9bkRg.^4eNnVi\J_G\/N7nKqs5)Iaddm:h#Kq\dlFuc@
-6%A~>
-#$LBV\^d1Y\)nNH`o^+[k#(6r=m"jCk.Z*&k"t35QKHt,J`_OGN91?1s4PqXe+*=c#KMJckJ6T@
-6@]~>
-#$LBV\^c7g\u[$>XK5BcX?<Sc4fbDHXK4OcN`iHb4KNdHXJA7cXJ^lOJZOF(OfSbumap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1K]%S:?g=g;Sg.^5S:"dong=f6SZuOgR9\Phng<`mSg=37QJ_G\/OkL$!s5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&k-Uk2pX&k"t4&;<?V:k2oM&^3Jf&;!+F:k1j2'k2<])J`_OGOlcl6s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7g\u[#m9heZ^XC=mu=feT)9hf3#T2nZ\EibO)9hg)<XH`dHJZOF(OfSbumap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1K]%S9c@:=#tg3d=;ES8o^@:=]?a_bHpOP7?]@:Gk_g:[KoJ_G\/OkL$!s5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&k-"AnH,:k(@8XGNIh-AnHh\e8f/5R-)G-An\.*k/RJ:J`_OGOlcl6s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7g\uZgMS"$4TXJhVXVQ?krS"$@XXJ;8SX/rCrS"0JZ!]=DcJZOF(OfSbumap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1K]%S(S`Pp3Xg==0]e(WO(`PpB]g<[aWf\5''`Q%o2!^qCdJ_G\/OkL$!s5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&jpkd*UP0k2=V5hWEtVd*Ub6k1\2/jQ>UVd*_jT!_7k%J`_OGOlcl6s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7gS?)^?JZOF(O/rPsmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KSD!t:J_G\/O4jfts5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YSE9gOJ`_OGO6-Z4s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\uZgB4[!tiXH5S.KrhA,4[#%2XE$HeU9(G,4[O_$JZOd2#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1K]%S(E:/7,/g9saOW7ot$:/8FTg6#-*cJ%!$:/leuJ_H%9#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1Y]&jp\;Gs+Kk.jkmZKC;O;GtKrk*]+Fg#hFN;H\S5J`_mQ#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7g\uZi\X/f3aX?<Pa4fbDHX/eCbO'/Na4fimIX.r+7XF[I3X9Q9(f@>Z*nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\D!1K]%S*Of[srOg.g5P:>+&qf[rpP[;jjO:"ktpfZmQLg4@t:g'6R:hV*_4o)%,GbCT*H
-^@9fAJ,~>
-#$LBV\^d1Y]&jrbjQ(:"k#(4#;WZ_<jQ'2#^Nei#;<FO;jP!jik(2ZRjp(/Og!tl,nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\^c7g\Z?^KVGrh^4KPVIX//1bX?<SE=fe\eXE\]cUdTd8JZOg3#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1K\_7tQdV?JL9\S2pg!NdQg.^5-ESB,?g6[iRcrP_OJ_H(:#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1Y\`OgihJgNt;!-n;jkX)%k"t3SGin-bk+J%&gfo?lJ`_pR#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7g\Z?]q6<Bq`4KPVIX//1bX?<SE=fe\eXE\]cUdTd8JZOg3#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1K\_7sk<,U"89\S2pg!NdQg.^5-ESB,?g6[iRcrP_OJ_H(:#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1Y\`Og*=EN9Z;!-n;jkX)%k"t3SGin-bk+J%&gfo?lJ`_pR#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7g\#^EGPcR!KX?EV\6`d@OXH$GbX?<S/E3,j'JZOF(N3!5pmap!Ee+*=c#KMJckJ6T@
-6@]~>
-#$LBV\D!1K\(V[6]\6'5g.g8J<8-&"g9bkRg.^4eNnVi\J_G\/N7nKqs5)Iaddm:h#Kq\dlFuc@
-6%A~>
-#$LBV\^d1Y\)nNH`o^+[k#(6r=m"jCk.Z*&k"t35QKHt,J`_OGN91?1s4PqXe+*=c#KMJckJ6T@
-6@]~>
-#$LBV\^c7g\u[$%XK5BcX?<Sc4fbDHXK4OcN`iHb4KNdHXJA7cXJ00sJZOF(OfSbumap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1K]%S9tg=g;Sg.^5S:"dong=f6SZuOgR9\Phng<`mSg<G&gJ_G\/OkL$!s5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&k-4k2pX&k"t4&;<?V:k2oM&^3Jf&;!+F:k1j2'k1PF<J`_OGOlcl6s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7g\u[$.4?R)NXEH]gCTOOM4?RqkV-c>IM6*@M4?o+4XG7.GJZOF(OfSbumap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1K]%S:+9MBi_g6PE+Lt^L89MCr0dWnM[Y1h'89MiCUg8b[oJ_G\/OkL$!s5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&k-@:f)f%k+5CGOQPV_:f*qLh1&6t\)u7^:fYQuk-PW:J`_OGOlcl6s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7gS?)`FI=\JNXH9Lf]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KSD"!+Sq5UHg5t"mir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YSE9i;Vh*u]k)e^0li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gS?)^XJZOF(O/rPsmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KSD!tYJ_G\/O4jfts5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YSE9gpJ`_OGO6-Z4s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gZ`FY&20Z.!,s4:FXHG%q4@/tJ!Gs:]X9t:\4B%oSN]]F0V#%.pE'-7)JZOF(WN6<8
-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KZe>o'6^QNU02,&)g:B199N1rE!K&`0g'YVp9PV`(ZqO/:d/)GuO%`62J_G\/WS.R9
-s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YZfVb>7\Jo#1/Le7k/98V:fmYY!KoD;jpK75:iOtI^/.XSh"p.8Q;CDIJ`_OGWTFEN
-s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\#^3g@'$FtE,VhWI]TV5XIk<MX??K`s#g+Y$;-nkG&aU1XK5fcqQ'oaXK4OcU.gu+
-XF[ITX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\(VIaH.ptRNfDcDTA&!mg<-MNg._M"s%N7B$=:g-QB9gjg=ghSqUu0Jg=f6Sc!\A=
-g4@t[g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\)n=!JEGuuQBgUlW935=k1-p&k"u'>s%rOR$=hQISs\Z9k2q3&qW8#Zk2oM&fk&BY
-k(2Zsjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZ49J4OOMXFt,/DuHa<Bn-)_##phgX@ApHq5ap5H%9LXXK7k@>E\ia#s>;j4KPQQ
-:L8j.XF[IVX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]%RJ>U0NW!g8KLgNW%Q3KVA@u#&:g)g0)Zoq:Z1)RA,8-g=jK>F1D)##u'(,9\S.=
-A9Y/,g4@t]g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]&j=VX'q1Ak-9Z6Q2ThGN2lj=#&qTEk$H\:q;r$;U8s*Ok2ssiH,KL@#uKdH;!-id
-C43OAk(2Zujp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uYs@BV>@+"':V1DuHa<@YXi_#"tMgN*NGHq5apCAS>A+XK7Ot=I/fb"$EZd4T2>_
-MICm`XF[IWX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]%R43KZa;J")bW:NW%Q3I&d/!#%,F)Z?4eoq:Z1:J:r*Jg=j&iE528'"&.G&9`<ZH
-YBugkg4@t^g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]&j'EMq.gh"*DDRQ2ThGK<tO=#%Z0E]R/d;q;r$NLPpPhk2sO=G00UC"&S.B;#TMX
-\Up]0k(2[!jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZ4+4Dg:`X=nft:B%<rSkH*_X9aYjX/pP@GUe^LX9;.eXEJU^X8u^bqQ'c]XK4P`
-X94)Y:oJrHJZQ)W#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%RJ-9T$F8g,k[;@fG'_a^<^"g'Fg,g"Md&Qo22Gg&ta'g6Rj!g&ZK$qUu$Fg=f7"
-g&n0lA^u@cJ_I?^#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&j=D:m/cZk!#JYB`@,qe7I_?jp8GHjlW4MTfB^]jof2Ck+7t=joL"@qW7lVk2oM>
-jo_f4CZ0j,J`a3!#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\?#p^<E-&BE)&t'X9"nbrN%&q@B?Q!E,[1[XK7sTRB3J^Sud*TXCJ?5@#1ncE)ut>
-#X#2i4KP2<AWH_j!CVNjXF[I[X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\Cq1XChh[hNal>ng&]9$rRr<nHeR2kNfGiqg=jS@_V3^MaP)rAg4%c0H*,fSO)=mM
-#Y`t+9\RZ`J@#4.!EQ%Jg4@tbg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\E4$lEcC03Q"a\[email protected]')4?Q'F26k2t)hc0".ue)m6hk(Vs[J@=V&Q?3&f
-#Z0[G;!-A,LqWcL!F)^Xk(2[%jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gZE+6r4KGQbUMTn1!L.s0X9XGABWS;+4.6)L#Xpj_XK89]4Dt/"!H;'<X948@4H'$:
-!f7bGJZOF([&aJCmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KZJ#L]9\J.RcADMR!P=m#g'=QMK\G/#9>^\^#Zj]Eg=jtK9T/o(!KM!qg'4WP9X3=*
-g&0P*XrjKkg4@tbg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YZK;?m;!$j%foZ0p!QCl5jp/1gMrs0M:X&h##[C2Uk2tMs:m1h?!L@d*jp&7j:qGfO
-jo"6B\0.r*k(2[%jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZS[K!DIrnXF[IZX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_KqR!FVROg4@tag'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`cdj!G/6]k(2[$jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\?#_2V7ir2VPrFS"0%i^VYR:rV4aokV#HndVlZWlSH,YgX9"rjq5a[pSXleVX9,)d
-TD5JhSt2YTX9YDpXK8@kSYu:b!Ml`HXL,&5]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\Cpu8dCn67dam@1"4kN5e+q]#dE:1sci1rdeCr1H`rO]ig&]@Eq:Yr!a2cg-g&fO>
-anXQkaN)U)g'>gKg=k)ta4'k<!RTGLg9fQ<ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y\E3hPgqDhNhVmDT"6.bWhYH::h:C`Ng]#V&hr`SjdK&;+joO#hq;qe8daI1OjoX2`
-eG//-e'ctKjp0Jmk2tXNdbjl_!Sl^dk-X7Tli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\?#^HII4*;HXW3,X9"oLlDt"tKDqqPHhONDM3<XqKDo9ZOnc![B1kmOqQ(C*="CAR
-912E0END)l9.G^uXG&fHqQ'gr=%c2&qQ'g^;+jW9qQ(6V91r3MXK7:H=0/K691rEgqQ'^DD1Sdq
-X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\Cpt>T'b55S9qs:g&]9tlIl8hVZ,9LSG(Y>Y.:UeVZ(oB\G4b[JmVlaqUuY/DDp5&
-?WUT$O4m'1?T"q=g8I_oqUu)"DdQk-qUu(^B4#,FqUuLP?XIN^g=i`2DVEfn?XIg+qUtt>Mh0Th
-g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\E3gQVsWUJV1QeUjoNu@lK/,&YQ!YaV=s$S\AP`:YPs+R_YE6qM.C/&qW8LFF?/LG
-A6WS5Qf^nNA2q!Zk-7d:qW7q9F_#$EqW7ptD.I:_qW8?eARo`%k2s0WFQV_>A7ToFqW7gSP(Dc&
-jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\?#Zmri@*:QBn>JSXu@;VlZ>\R?jkSXHZh3XK%SSXI5BRqlC+)QBn2FXF=!3U\Lo(
-R[0nRVj<jEQDL[QL7YKJTer()poG07E*'--08G<RX/rCmQD^g_Q8Fnsri@!5P!"c+MI&EHXI#of
-E-SIKXK#TcXJf$<@f!//Rn]uc4Sl,^D0i:P:AV%+:8t=2I&s>PFB>QF9!#*YWMr".TDbhk4FsT@
-X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\CppVrn8@@^:qtJ`lZ36eCqga_7nRUg:M9jg=O'Tg;:STqq;A0^:qbDg7MrjcM6*,
-_nO^Ue%WiC^<tZSWlWoJbX0%^pt?F)Nc3Xe40,Def\5&u^=:le^-]QQrn87:\P0EbYBN[og:u4m
-NLAM4g=LPSg=9l"IJVY#`F7KS9`!HGMjrG<A,=mnA(K@jS_D\;P]#4/?J=+/f@EWeb5L#o9S(p)
-g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\E3cfroP3WaN3,udF?Oahr`29bfJi,k/DJ9k2XP,k0;!,qrS4GaN2ook,<(:g%a\C
-cH+u,hoO0naP>q)Zd\(!f1*j-puW9;Q?D?45I@e+jQ>UOaPZ.=a@=7troP*R_be,1\U@<:k/u]G
-Q(d?Zk2Um%k2C3HK_jg6ctDM';#9;WP,.6cB_pj*B]A0:V<6faS93oUAEN#Rio3e4ec"V1:k@c9
-jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\?#Zmri?W<;GpStCEleVA#rW_;c7Q5X9iijXJ@ICXA^XCqlC*E;GpPbXAUTILA@nb
-LK%/bXHt,CF<-FDCbULCXFD6gB_e_JU+eV\TWC8WX?NYcNDrebXIW60;JE56G?7iEX9(Mc4T)8\
-4T2>dS4p#cNE_*GqQ'gh9rtEYqQ'g:HE<Q1poF_#=-K_R:Q\`WX9XtiX/rC<<Fc$0!'Gh6[&aJC
-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\CppVrn7m.BP;;:LFd4SIG/EtC1rS*g'Ne,g<_oig1`Liqq;@<BP;5#g1WHZWqk?_
-X(l=$g:o.hP9dQiLcqWhg7]d*K_a=?c94c\bM#YDg.p;SZ>4-$g;dkPBSG0oQ>UR=g&at%9`3TE
-9`<ZM`aINSZZE*oqUu(k@G9F/qUu(1S(bbipt>u*DS"Q=A@QOUg'>9,f\5&8CjuB;!).st[+Y`D
-s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\E3cfroO`ADJjRXO"PEiK][5;Df1g=jp@?Hk1`(4k&3<4qrS3PDJjL@k&!1tZh`_t
-ZuBo@k/o<4RjPo4O?p)4k,KbGMtuKRfg&:qf&ffkk#1:&]Q%hAk0e,oDN3f@T655SjoSBA;#KGU
-;#TM]d:MJ&]m6o:qW7q-BBJ>QqW7pDUuos9puVhBFN!=dC;P)kjp/nHjQ>TcEeXMT!)S7/[,qSY
-s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\Z>gUEW3$YOcGGWX/.bNXG1/D8uSh4FKDQ_Gc[uaHE;U1qQ'pgNfHnkXGgEZX9tLc
-LlQ%^XIE<qQN!rdAV9u`!'L"W';[f_3MWZ4NcoEDV`fcpD.0NI4T;D`MI)#9X93?cX??H_!Lcd^
-X9XYgXK5$cKjsn["Ii,eX???\"DrIdRSN[[#bkFhXK5*cO]VO`!h*8crN$3eC2g8UDL-l8[B'SD
-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\_7(NO8diP\?rV.g!N:9g8]P-?IdbmPhOiOR+g8PS(aQiqUu1h['XAGg9Phqg'Yl#
-XL*M5g;IrO^AcgeJ>W>"!)3.@'@BKZ8C-!V[$?^+e5!$NML4(29`E`IYBQrEg&m;&g._J!!Q/FG
-g'=m*g=flSWI=Ws"N=g'g._@s"H/c'_diMr#gRD+g=frS\8M<"!lK!$rRqIeL5t!AMjo:O[FtiE
-s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\`NpcQN$"c_S3`OjkWP`k-T`SA)ZR=SEAt"T]YC#UZSS8qW8%*^:n<ik.?!8jpKO?
-[_@NXk0J3raSt<&LTg^>!)WFP'AZJo9\\]!^7L\Ri)6nqOb)ZW;#]SY\UCa^jo^jBk"u$=!R5?W
-jp/JFk2p1&Z@r):"OLfDk"tp:"HoSCc=m%9#haCGk2p:&_K>e>!mYu@rT4=&NgAhiPG<]k[H7\Z
-s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\?#Zmri?f>>$<&LV*h>cQ;W`GXK6ncXK6Acri?/`X??<[#AmXJ15N#j>kkB$ROS5>
-"bs+[>#hU%X8umbri?)^pT+dt0KUn[X=%1RN3&m#r`TDTXK4P_X9j)P<iiB35Z/VRri?,fV>[Iq
-4T;Db/5e_dV>I=sRn]uc4Sl,^D0i:P:ALsl=-<K`#Vo:H.A*]-=/Z"u!c(eHri?)^JZQ5[#.j6S
-eVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K\CppVrn8'/EcNS]d8\iR^1alng=i6Sg=hRSrn7EIg._=r#E!PB5HWYFFSOPj`&%C5
-"fg;1F)9J-g&Z`$rn7?GpY$&$4\@cYg+m\eZ.dYXrc/+9g=f7!g'O*aD;*]k;.q5Mrn7BQdJ_c!
-9`E`K2eZ&NdJMW#`F7KS9`!HGMjrG<A,4gZDRf]"#X<!)1s+IcDUeX=!f(T@rn7?GJ_IKb#3,[>
-g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y\E3cfroOoBG^(_"h-&n&a_eb:k2r\&k2qu&roO8Yk"tm9#Ej=V6al-hHhc_(c8PZH
-"gd@RH#hsEjoL7@roO2WpZ;n;5YaJnju%C+]B7s&rceOHk2oM=jp@Z&F6;V:<c07croO5bh#6@8
-;#]S[3c7q^h#$4:ctDM';#9;WP,.6cB_gckFMe%>#X`K82q7!3FPm&Z!fqAUroO2WJ`a?%#4)<B
-eVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\?#Zmri@#2L2[lkV&+3-=J1ZrI>1q#XHQ^lQ)q'I.YRW!$;uV.+`ONH=b^.VqlC^9
-D0L_ZGb[]SL-;32O\]SVXK5-NFFL<mH5ca`'O5TYXHtT2V-K1aF)m"`EMeIDL8k0R#c*VGNhVhm
--]e8.!CN^^X8kB^X:Lbc>X53gX@Z*eXIi@EL/.`L,U%92XF"]:Ht'1YNu"4dXA3nm?%T/IQ=`+O
-X?:oc5H:\FI@pJ>!'L1\!>p69XLkP<]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\CppVrn88tWfA%0d2e@LDp,L8SuQhWg:M9I^"V2J25g9($>HN6.ZW5oEN4-,qq;t?
-MO1?1REns)W_LXi\7C3,g=g#9PG$X`Rj%aa'QoFSg;#ejdWN+RP*)c:O4($iWn.1'#gg+U[EcLa
-0t.)8!EIPGg&OhGg(2*8FA^QAg0J+?g<!s,Wal%^,V"u2g73quSUK5G[2d0>g1$>IG,<p3^4Ai$
-g.\-=:tO8lT$%#c!)3=E!?Rkag:Q&Cir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y\E3cfroP,0[$D]Mh&i&lFk48VVmL^&k/DIka6)O!33i;A$?!5N/=#A:GI2\NqrSgW
-P+]1UU"WbIZr,E:_J+kMk2p<`S#PQ4Ua,j#'RQ-gk/op:h0[*%R[LO\Qeo)6[,M#H#i*<o^Y-]4
-1r0+Q!F":WjoA6Wjq#_XHWK(ek$hoak1"4SZt]O%,V5GIk,"*FVM+*o^E1bak%L<mI'2VXaG<LC
-k"r"`<9)t7Vq(b.!)WUU!?e:kk.Ba[li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\?#Zmri@$+@X*9IV*fB7S?.`RCLX-AXF"DcJ#o`D<hK2h$)h<IMeoJrKOTr9X:oP^
-E3,L;G(!haXES,_KWM8G@W_UN!Ad.BX:U5OLTH,;Ni]=/XK6SSCTO3.@K<8"X9+2eM#OIVJ#WCJ
-!.4XF#&@\FXK6brri?3[@Uc#0X8usqri?0F@VPhC"eK2!XK6jL@K;boX9<KOTr_u-@K<J)X8kB]
-X9*5_Q%?$KX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\CppVrn8:-I$gIpd8ZBY`S.\=Lj[Y)g73P<U"\5BCs)S-$.XEWY_h)fW-koGg(TNp
-NnVF!QCiQ:g6R,6VqTkFI$=Q`!C9fcg(:EtXP0P![+a6(g=hg>LYBoMHiVRhg&eC(Xo@#TT[s(q
-!1`u@#)@TSg=i'frn7IYI!j-:g&Zi7rn7F?I"hRR"iu)<g=i1uHiUq\g'!F`bh@dMHiVjqg&OhF
-g&d0_]ReeKg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\E3cfroP-DJtT!;h-$;#d,r&eOFl<Nk,!Z]WoiHnEn1!J$/pJp\rc(:Z%BX`jqF&4
-QKHMFSu71Zk+@6WYib)rJt)c%!C^5kjq,&?[H=ZE^?4RSk2r4dO65!lJcOX%joVuC[f5CiWT*m=
-!2]VU#*4Amk2rJ:roO<oJqDSQjoL@TroO9SJrTcl"k/(Xk2rT@JcNsmjoh!%fB/(lJcOm-joA6V
-joU\ta+<Bbjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\?#^mFo&0@LbXP]X9*B.M>4.UQu5'_XJ5WB!0?iT!0I,.!28YY!EH%^X9!C+rN$$(
-Tn0;VX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\CptlQ2929X?NK[g&d=7Xn^TR_2D%7g<KPh!4DOS!4Mg!!6j]]!Gg2Lg&[AJrRq9n
-b^nKZg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\E3h-SbhIM[R.1sjoUlO\+o(hbEGiZk1T[3!5J6i!5SN3!8$Jt!HI%^joLphrT4-+
-fR`1rjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gYH.eSBlF!P!d/4%poFX[Bka9BSc!1%JbH/FK)B<_S:RbmXK/E,]'e2#LXYejeHa-I
-n)qLUg-U;~>
-#$LBV\D!1KYM'&MKoH#b!gJD+pt>nZKn[b)a8CVkU\<CAV>Q#I`IZ`og8ip3ir@lhL=5Yig'>fP
-mcqOUfg1,~>
-#$LBV\^d1YYN>nbNKjG)!h>7CpuVapNK)QPdeo()XS1cVY5F7Zd"1>1k,[VKli5YgLXYejeHa-I
-n)qLUg-U;~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gOfSS\BS!79XIH9q]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KOkKibKRqj.g7-e#ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YOlc]$N.L,Bk*tK;li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g];ud2GE@-1I&sE*DjRQ,Q#DP.N3&"WDl<T9#B+XIS?.*VHMOWEHnB8ori?BaDj#g/
-K7n03JZOF(WN6<8map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]@n%2QaW?hS_Df!NPF3$]T'(cZJ)UDNRRm\#E=kY`nI#DS,(b?SN2\5rn7X_NOl'g
-VPfElJ_G\/WS.R9s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]B0mIT>726VWR$KQ-&1Na-F04]]QklQ/DT'#F1^sdH7<kV"s-TV*($RroOKuQ,Kr7
-YHX;<J`_OGWTFENs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g]<!6C,?Q'm26;[CGYt?4;g;UhOdTEuGZh,I@!Hi?Is,UPDKDlUX:Tq:G`Sr-P$E63
-1lN5]GZ1MkXF[IQX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]@nLD/9!"Y6e\_iR:jsnC708k\AE?UR;ps4HC:$NTpCM&Mil]ig(:&CRC:i'\TO<V
-6*VG[R;16&g4@tXg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]B1?[/p8ak8*7@5Tl&Z>DkVV,_T[>"Tm,YZJ>&MgWh,<GPF:P0jq+X[TtogQ_gA(t
-7CsUqTlAn?k(2Zpjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZ)uX?<RHX=O9`s#g:^%QphoM.gQ\XE\]cXFl*tri?,tQM[`aUIG-_!'L7^#&()#
-XK8-cJZOF(WiQE9map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]%R?^g.^3og,Aq`!D?,cg($g1g9$$]7,!ufg=iF"?iJa[B>=>t!RFjGg&OhGg'35a
-9\S4F=b5:Xg8`j2ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&j2nk"t2:juNF!s%r^W%T)<M[u6/8k+J%&k-(muroO5uant3$g0FU=!)W[W#)hV?
-k2t?'J`_OGWoaNOs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\u[)<X?<RHX>bHUJ;$IeXJInXQ<8Z]2lqCCXK8:f9rY4n;OI?_'Ve*uV5^O`V6$bm
-X>d&YQqsfbT;7%>JZQ#U#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%S?%g.^3og.%O*U8V2>g<iFE^2Ka47G=>hg=jum@b08aBYjT"'[Kk7dFR#OdG!=!
-g-sKE_.D?Sb0Y^nJ_I9\#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&k25k"t2:k";DLX0Q$ak1r\ma`XYV8`ln3k2tOGBAr"4DTr"?'\ZgSh;[R#gudbO
-k"4Imb\H;&e_>Z;J`a,t#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g]<!38,(qV)/;o`p?smiM<+&cTXIE6u<?R='D.$aRPCd%I?%2XO&#WB7=.$(X=(#EL
-X;tGO=8o9%,?9;rJZQ#U#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]@nI6.]5D033^#6H?tJ!C3jeQg;RrUCFHRDML'Sf];9UqFeJTb&(G??DSb&EDL-V]
-g*L`bDuSGk/8TmkJ_I9\#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]B1<L/[.II41W=RJUs!CE.N-gk0S4$E@S]bP(A1-`NFQ=I&Zu)&)V>WFj&pmFFf"$
-jsPD)FoLM(/olO*J`a,t#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g]<!0HLma9lNL[)9Lkr.6Sqr@qXK7hGS;Wu?XGD[uXK7J=Nqf[WSVW[4X::SRLoII<
-P_c$7XD]VXJZOF(Y,hi=map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]@nFJXMV?_ZGtV4XK:.0aK2^Ng=jEF`j!P<g8qBig=j!:[.r>VaK32Vg'tm"XOl0"
-]<'92g5Ir-J_G\/Y1a*>s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]B19a[EQA1][5f_[C,/Ze$Zkqk2sprdCRfhk-_V<k2sIe^A-gle$[BujpfPB[Gp=F
-`jOI]k*.mNJ`_OGY3#rSs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gYH.l+=]ndmn#QMWr)j#Cp8e=?+'SWE!JHnmXF[ITX9Q9(f@>Z*nb^iAa+NjD_!p&E
-J,~>
-#$LBV\D!1KYM'-1E,][1n(IcYr,;Y%p=]S8-Z]1>!N3hdg4@t[g'6R:hV*_4o)%,GbCT*H^@9fA
-J,~>
-#$LBV\^d1YYN>uIGB\,Pn)aVpr-&.4p>uFM.<tgR!O9q$k(2Zsjp(/Og!tl,nb^iAa+NjD_!p&E
-J,~>
-#$LBV\^c7gYH.i,O,oh!X8o-qNrYUAX9+iOOFaKaXJ`-(]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KYM'*3[^O0Cg&TS![K+5=g&f1#[Xm.`g8EX/ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YYN>rJ^qe=bjoF68^];XQjoWiD^k(X!k,7>Gli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gQ)k+1D60gTr_W`bXC2$)"f8<%X&5&VX8nUd;$Cm>XD:\!JZOF(\uZ+Imap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1KQ.cA)MqZmArau;Lg3N[1"ju&XfOqbkg&SneB*F7Jg4s=TJ_G\/]%RAJs5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1YQ0&4=P31ngrbMY\k(*GI"l8>'jD;a1joEO&C^$'ck)X?#J`_OG]&j4_s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7g\Z?*KG@R_U4Y/]XP4YgU9)>V+V1khKKOm6HXAkOQ</@VQQ^9t0XK5!$HMX]PNG+ZF
-403OEQWf`WR>ld!JZQSe#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K\_7@?Q[RTA9fPg?\b+SU?2E7ldAbXLVgqFog1nC;C9?3&^V<Xgg=fhYS,1hJZ@p!-
-9A5Sl^N.*C_6\^HJ_Iil#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y\`O3RTS2Ii;*.TN_t<'kA,>=)h6Pu$Y_Q$:k&AJcE44nGb0!`7k2p-(U\a*^]SjqT
-:Ze18b';(kbe/MhJ`a]/#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\Z?ZQE*03CJ7u$c4KO9/8X?HI8Y:*7XH"2j:Aq7!Hqn1HXB:QHrN$'p<Ls,j#F/Dh
-XGpG%HM=KLDL/C$H`WW2XG:+RU4KCsXMCnA]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\_7pCNc<_+UP%:S9\QLP?,#%2?-8@[g9_u.A,Y*dSn!2og2OJorRq=uCWHG.#JG')
-g9PgYS+kVFMji@WSD(hjg8fF'c%4T"g;)DHir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y\`OcUQ?MEQXGc6';!,)n@`dcY@b%!&k.W$KB`7&uVJ(Y:k'"O:rT417EROjK#KV)G
-k.H#(U\EmZPG@9&V<6$:k-]VHfR`19k.p*`li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\u[6M+=A8%XFOucX?;>KSt9,MW_?cAKn-*\StE*cQqD.fXK7RcX??H_!Lld]X9XGh
-XK6#cDL2&Y%R?toIV4*u:TUXsSjm4hJZOF(_Q3sQmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]%SLQ-o!*hg7s;Sg.\YsaiSS8f3iidW1qg3ai`>k^g;i@g=j&Rg._J!!QALGg'=R*
-g=h+SMjsIp%T1d1T7`b;AD5bha]X&CJ_G\/_V,4Rs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&k?h.PrU%k,aL'k"rR?eC8`_j(<e0ZE)nUeCE^Db@?Xck2sR&k"u$=!RPHWjp//F
-k2qK&PG@m7%TVKMW/@NYC$+R;e6[gfJ`_OG_WD'gs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\uZ:3,:at/XFM]c6@h8uX9=heXA`m4X8kB]X9+GTFoJHE8tN+HrN$$-L]+:Z=HKVc
-4KNFHpoFa]>H4d+I;4U7rN$&p>,["RJZQ_i#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%RP7/2f$!g7pE%;km%cg'#-'g1c?@g&OhFg&eZgPlBA=?HChorRq9uXSpiXDn"HS
-9\PDopt?"\FP,=$SqjIZrRq<^En,`pJ_Iup#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&jCN00(W4k,^FB=KG?ujoieCk&-4XjoA6VjoW;.SGqXQA(0R:rT4-3[Jf4mFi!5&
-;!*t:puVjrHK=5NViJ9$rT4/oGi=59J`ai3#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\uZRG=DV!<XFOiYVQ=']XK6_cXAbD_X:IFpWf*s[VfP=NV.i"R'o)^h!'L1\!'L7^
-"$8Ul1&e6TJW]o4!IS_]X:'DlXH@9\S#WQkRWsCbJZQhl#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%RhNE/ADag7s/Gdb8lKg=i!Sg1e8!g(-m2f<O&`e<3t#d=k4e)QNej!)3=E!)3CG
-"%u<A55s7:UUU3U!M,)Fg'aI.g:2o3`7N_s_j>r.J_J)s#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&j[fG*-h,k,a<ohWB3sk2rG&k&/9=jpt;Nj1=C8i0muDh2G-+*4,Y,!)WUU!)W[W
-"&D`L6N6*JXMXqu!N)"WjpS&Jk/*-Tcf=0McCfaNJ`ar6#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\Z?HLEETBE3$hk3XK#Pg4Dh0f*]/6CX942>5)K6>#GQ78XK6%MLAn7S4oDA]4oMG`
-W[BS$X8sSIrN$$ID>pU@>Wcf'XH.f-X9!>GJZOF(`N09Tmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\_7^>O)`n-7PAr=g=LLA9T.WA-:47%g&n?K:TaTL#L/@Xg=h0!WrC]P:&N]F:&WcI
-fJ,Vig&WdBrRq:CMZ2<6FA.MEg9mRNg&[9?J_G\/`S(OUs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\`OQPQZqTS8hkbVk2Uhc:m0tb-q:'4jo_qd;n)_f#M>F!k2qOAZi9(e;Z,YW;Z5_Z
-j>94&joI/WrT4-XOoFJIH;K^ck.dkmjoLhTJ`_OG`T@Bjs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZS%9!>gTDXF[IlX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_K;@!?S@og4@tsg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`c.X!?\e%k(2[6jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZS%9!/lE0JZQek#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_K;@!3h%.J_J&r#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`c.X!4maDJ`ao5#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZSmQ!Ml^nX9#&rnZ2_anZ2bgVr"KVP;8k`XF[JNX9Q9(f@>Z*nb^iAa+NjD_!p&E
-J,~>
-#$LBV\D!1KJ_L.X!RTErg&]IOn_*uen_+#leDAm\\j4Mkg4@uUg'6R:hV*_4o)%,GbCT*H^@9fA
-J,~>
-#$LBV\^d1YJ`d!p!SlZ4joO/rn`Bi'n`Bl.i83St`'`1.k(2[mjp(/Og!tl,nb^iAa+NjD_!p&E
-J,~>
-#$LBV\^c7gJZSmQ!FCW]X8tkbnZ2^QnZ2b+Ibh(+8tLU8JZSdN#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_L.X!I1dGg&YF$n_*t:n_+#!TAA3%?-.ZOJ_L%U#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`d!p!IhQWjoJl@n`BgJn`Bk4W86S:@aotkJ`cmm#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g]<!3(2JP9b6`d.l4E[a+E]deqEN!J34HceIS30&LM4m^-9VD9a,D7ai4Cb:j8o0)A
-PcUZ`4FF6'+YZ$IXHFG\4K5>:4KML8QM[`uAJI=>XK8C:4D:[p5r+-F@AkJ'4HoTB-_*:`SY@iX
-4A2?KXFE?69!"@A4CY4iLceKuSue_k4F=0'0oTg?Tn0;$X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]@nI#7>FKe<SGlG9U+8aOA($uOO\nU9Y&m2`_96^Xit<L@*AH$,H!\b9RYFE?&>CO
-]@tVO9V'n\.QpJDg:/7q9\7l]9\O5C^AHV!J/V+4g=k,59SD!N;Eq-?I+9l/9Y1&R-cShVa3Hl.
-9OGusg7V,W?J<.f9RYCDXA!2%akG*^9Ush\5-fiMb^nK(g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]B1<78WHQ&>3=[k:n6\0Qr&E7Qf*Zr:rMMYcqm`"\(GCkA_-b@,I'P#:k[`g@Zdfi
-`TGs":o3=+/3m%Xk//?8:u^M';<Dg]ant38LE'-Hk2tZa:lOAq=$s8TK&JFF:rN1l-dbdkdb-sP
-:h8/>k,D1!AEM$2:k[`g[SU^<eE5P2:o*7*6+i.gf7E(?jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\u[)1IP$+5XC$gcF*2MHXG/1*SV!rE4KO]HXJdq"<gg%Z<h]Dl'/t-:Kk%3C057M/
-XBCUcDL/BjM>aLV8>,s`"DrLeR8<X[!'L4]%;UBnIqYpL<f^:^XD34ZX=095XJf0c@SNqa>-**f
-XH=Qa=fe]Z@Y86nQmA9)>)o\%H)t@AJ"2.BXGEq^]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%S>lT/rcAg3BdSP*D&og8Zs_a/.MD9\R$og=8KVD8P#HD9_t3'1S>BWI<L+4,)CO
-g2XOSMjrFFY5R&T>Kd$""H&`'_IWJr!)3@F%>US0U4h77D7+35g4u<qg*jOKg=C,THt(g:En[(?
-g:/K:ESB-GIAVPK_(Nj`EjXPZRbE$hTuEm[g5+Geir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&k2'W'.7Zk'sl&R[fb:k-Hu.d]V`p;!,];k2A_$F3WjpF4gBP'2"q[Z@qAP5)eWm
-k'+T&PG@8h\GbOj@+P>>"HfPCc"["9!)WXV%?IFLWf6)^F2)bWk)QD8js\/gk2CC&JnO5[Giklb
-k/&O\Gin.pKWg0nbV7Q/GeW=)U?6r1WmIr#k(r.(li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\uZ)uX?<RHX<7F(!DkoXX:@@oVIDYM19>_>XK8+\9E)!n;3q*\!'L7^"?`cE9r\,n
-#8fQc3a&OjM>aLV8>,s`"JSAe9:bm[!'L4]!&+=6#skYoLea;<XD34ZX:fb*4?P?R@YUtE>-(Af
-XK7k0GlFcT4B[`HX@f(c)*C#B=KGkRJZOR,#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%R?^g.^3og*lqo!G5%)g($g1dsXn`5MDHag=jca?iJa[B>=>t!)3CG"AIOT@b1P4
-#9QW58o`R0Y5R&T>Kd$""O1*'?cVur!)3@F!'C0R#u]L2X^f-"g4u<qg(Kf.9M@XNI&bo-EnXm@
-g=jH)R/YeM9Q@Jog0MhS+&#@#E8#T'J_Gh3#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&j2nk"t2:jsp@,!GbO2jpk5Mhh+a%6ft&-k2t::AcCfmD9;\;!)W[W"An6mBB&pQ
-#9Zi>:3YiL\GbOj@+P>>"P@&CACC;9!)WXV!'gHZ$!69O[V3eFk)QD8jq=@E:f'KdK!a[SGiiPb
-k2ssSU&O0b:j9\:k$lj&+])!1G34:GJ`_[K#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\u[)<X?<RHXC-gbXDi9'XFr"'N`iH.1oup@XK75;=.$(Z<hfJm#<-e,K4V-C>lC`<
->E,_^Ff\o+XDk8B8>*&'XK6G=@ed#=4KOC'XDN<cXDk8+=--C^XD33cE;HX^PZ4`cLm2A'XH$Jc
-Iqc!cE0+2'XFt,<A#u"@Suc.UXJ^3B?]"]^!EY,/XGj4b]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%S?%g.^3og3TjSg5_A\g8Hd\ZuOfe6JB%eg=iX7DSb&GD9_t3#=as3VL[C+FT'o-
-F0jTLQ.gJcg5an@>Kb`\g=hX"I/)D09\QY\g5;BRg5an#DRXE7g4u<SNr%HU]PH6TXh/t\g9bnS
-TnV4SNj`l[g8BG"IG2IeakCgAg=2A@H*."u!H,&kg5O_iir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&k25k"t2:k(0r&k*DL+k-6f+^3Je67HVR/k2s+cFNimoF4pHQ#>1NKYD;8PHi<(@
-H+i@tS`YC2k*G/l@+OJ+k2r%HKD=RC;!,:+k)uP&k*G/MFhr(Zk)QD&QMT_i`c:/'[`3p+k.Z*&
-WK$'&QG@\+k-0TGK]^E0eE2(ik22]kJ%,@<!Hbi&k)AF,li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g]<!3(06'@%5'j,74?T49F?F(mXJokqE&W<KT0,5DVk['N9VVBb#Wm)iAZ2\&104CU
-'W,(s6(k<S:-=N;XIqmBS?/fj;N1CP'RDlJVQ?e74?S\+68XBL@]ZA*4GN[5-(d:^@%B)CX@tC?
-XF`PsGc[>r4CkClM`aj==KJB(4@,X61H9ITX9+Y%H@`/VX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]@nI#4-*C,:Rfj[9MER]P>$Epg=CpNN^]\ra\5BSe'DT!@F"`'#YU=SJCW@[5]$GR
-'[h%r;p3n@@na5_g<3Gh`nK.sBX7Ee'Uh^?e(WE29MDkJ<'mQHI+lq_9W@jA--8hSH,i3Rg0d1d
-g8%D9R+fGO9RkUHYY8YIE8&`]9N''X5t@+;g&er+Rt9:Pg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]B1<75F,KD;l&<%:f,['Ro"f2k2D4pQ:\.>e5/tmhqDgAB%d%C#Z$mcLZ%<*6ur:h
-']"%2=4ZNfBi)M*k13X2dH9TMDS5c,'VeKRhr`s^:f+ph=@KM[K'(j.:p]u[-.PjhJC6hlk%7!/
-k,hHVU#sTr:kmoj\km3cG37Y-:fl6"6qa!JjoWRCUOhQdjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gXK2GRBBZDs4QNRETguAh!D%0\XGa.a]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KXP*]MK':ng9]Xn.bZ_:*!F1Y9g5FYhir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YXQBPbMWj1&:upa>f3bfF!F_:Fk)8@+li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gYH.l*4?R8Un#QMQq`Fp:4HSa-"bSloOfY&M49/XOX8l)p492;3X9#/uJZOd2#.j6S
-eVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KYM'-/9MC&in(IcQqb.&X9Xa-<"f=p[\D"n!9E95#g&Pa_9E<Pog&]USJ_H%9#3,[>
-g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YYN>uG:f*&/n)aVhqbR>_:r)8V"g:]k_WK2B:]Pk-joB2p:]TD*joO9!J`_mQ#4)<B
-eVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\Z?$B13K\"O$#FRXF[I(XSJq%]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\_7:45F'sV[S08Dg4@t/gA0G,ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y\`O-F6_3B%^edaVk(2ZGk5"-Dli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NVojX4T2>^9O`RSJZOF(s/ZF9map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\_7(+ZM`DV9`<ZG@=3X[J_G\/s4R\:s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\`Np=]_pml;#TMWAqPZsJ`_OGs5jOOs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\Z>g9NVojX4T;D`NZWFqXF[I(XT,@+]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\_7(+ZM`DV9`E`IZm_5kg4@t/gAfk2ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y\`Np=]_pml;#]SY^+,_*k(2ZGk5XQJli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\Z?$K2Kc+&O$#r3X9!B\JZOF(JZSjP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K\_7:@7$ZK[[S0m(g&[@rJ_G\/J_L+W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y\`O-S8=eo*^eeD;joLp8J`_OGJ`cso#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\Z>h%VLbh"XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7)(dXg,'g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Nq?hLXg?k(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uYt,.ZK"\JZOF(o;i/-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]%R5026qeeJ_G\/[email protected])Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&j(G34sh)J`_OGoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\uYsA;2p..JZOF(o;i/-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]%R43B<m*BJ_G\/[email protected])Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&j'FD7kG^J`_OGoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZ!b5$sHOX8tgLJZOF(JZS[K#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%R7]:3a8Ig&YAFJ_G\/J_KqR#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&j*r;LcR_joJg[J`_OGJ`cdj#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\uZ0gFEEYHXH+6KJZOF(JZS[K#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%RFbPEWK0g9i#rJ_G\/J_KqR#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&j:"S"%:Wk.`(>J`_OGJ`cdj#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g[&a:iJUsnRXF[JJX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K[+YPiUOh-Mg4@uQg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y[,qD*XF]Mbk(2[ijp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gVlTlIJZOF(KWGBhmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KVqM-CJ_G\/K\?Xis5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YVrduXJ`_OGK]WL)s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gWN60#BeB.^.AAX[X@k@@TgLqFVM$U:XElO@QTRj@XCa@KAZVt50pQi6G`jdC4>qbA
-XF[I]X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KWS.F)KK8k^.Et.Ng0d1ebZ.>Vd\f3]g7(3e^eA%fg4D^\J(iUm5J<:DRCGFQ9LP\-
-g4@tdg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YWTF9AN'-pu.G7-bk%-s0f32!ph6B2'k+b//b"uR0k(uW"L?@W=6HGZ]Tu0/k:e7^>
-k(2['jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZ+1?!W2dXI/um$*88sEa>09S:<ZrX:/N&K8j*(<MZ^W=faabX9h"jXFaE0XK6Pc
-ri?Kr:9:NZXK4scXE8Q8XF[I]X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]%RA6G'9k=g;3c3$/(T7OESRr`h?*$g'i=*VR(?^Cs^nDES=+cg'LI,g8/Pgg=hgS
-rn7au@bTO0g=fcSg67_Og4@tdg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]&j4MI!i9_k0*aO$0@_SR!d6BdAg%<jpZfAYJ#5,EnoflGNMa$jp=lHk,r[6k2r5&
-roOU6B]eGRk2p(&k*qikk(2['jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZELMi1T'X@\>.6E?1aG)JulX8kBXX9N*T</Fh6@fEG>4KOTHXDW?cVc%eIWiU>a
-ri?Kr:9:NZXK4sJ9:hi.XF[I]X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]%R[>Ycqo[g0Lqe<8"]#Q*=Tog&OhAg'2nfC9;QVI/_h19\Qmog5MKSe7b:rf@lLP
-rn7au@bTO0g=fc4?c^HBg4@tdg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]&jNQ]"2n*k$kp5=lmF@T"8G2joA6Qjp$C+E4:,!KDt!D;!,N:k*)S&heo0<j5uo#
-roOU6B]eGRk2p'ZACK.]k(2['jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZF:<E1N5XBnn,NNAsDXK4P`X8kBXX9N*g=`@T"@fEGL4KPJ^N`MUMN%S*UT<*0V
-XJ^?4:9:NZXK4ri+K0jmJZQ8\#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%R\>ChtuAg37@LZeEf+g=f7"g&OhAg'2o)EK5+>I/_h?9\S!5Zu*b8Z8ueSb1`,C
-g=2P/@bTO0g=fbC.Fj"'J_INc#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&jOUEcO.Zk'h>k^#n-Rk2oM>joA6Qjp$CEGF!N\KDt!R;!-\W^2qT^]010ge`NEj
-k22lXB]eGRk2p&f/)c'AJ`aB&#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\uZE6P)VDbXH/O-7'!.OXK4P`X8kBXX:ersTIO0*?)ap!8$&e7Amh^A8H+bf9<<8W
-XJ/1Q:9:NZXK4scS:#^cWf!U'XF[IaX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]%R[#]!=c;g9nN'=4tu#g=f7"g&OhAg(Jb5au+7HG1PBk=k_SoJU,u'>Q22L?eUd-
-g<Ed=@bTO0g=fcS`gr[Sf<<PPg4@thg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]&jN4`4S[]k.ejQ>NO[Dk2oM>joA6Qjq<6QeMhceIH'DA?KUC?Lk+XM@/e([AEKGN
-k1O(dB]eGRk2p(&d&*]&j1*ipk(2[+jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZWa:/NWFX<^P9=KH0WPCjg$S5("uV#.5$Ub#->>?e1Z:JOiOri@/'XK6ji:5_jd
-:,Ok'8OfLW:/5T+Q68ao20>pn!/#j(JZQGa#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K]%RmW@qIc>g+HlFE7omk\u-aA`FC*%d/2N)cSo1aF*$'0A7K>`rn8Deg=i2DA$BGe
-@m`Rm?!5Nl@q1;J^+!;s6^-6J!2b>$J_I]h#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y]&j`kBP]hRjtLI^G3+W1`NUV`ctF\<g\^+@gH/p-H$SPQC1qP'roP7uk2rTfBY%k&
-BLbL)@U@f2BP<Fga=C\47[rPl!3^t9J`aQ+#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\uZLDR[p4FXIP`JVQ?GZVkfcVWW&=dWr&k)Wg]HZWM?PrS!p#KX9P?!XJ;5QVYZ_d
-Trb&YR]3BerL*kdX?TgcJZOF(\uZ+Imap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]%RbJ_oL'Dg;UtIdb;j]eBl+Yf)EPef_aA0fYb__f$E((`P]jsg'5aSg<[[Sde^id
-bhCF]_q*PlrPJceg/)b=J_G\/]%RAJs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&jUbcI1Fqk0VE!hWEA6i7uW2ir74'jSS'HjNc08inNVXd*C2?jp'E!k1\,+hYPM&
-f]Lr6cJn!ErQYQ&k#?N^J`_OG]&j4_s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gUT=GgrC-c_f;nt$JZOF(\?#nGmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KUY5]TrE0,3f@g4tJ_G\/\Cq/Hs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YUZMPerE]J=fB*(4J`_OG\E4"]s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gUTFBf!2G+HJZOj4#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KUY>Xj!7$/LJ_H+;#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YUZMR0rR_,'J`_OGNTLH2s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gM6$\gJZOF(U9"R1map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KM:qr[J_G\/U=oh2s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YM<4enJ`_OGU?2[Gs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gM6$\cnuMn./8]s>JZQ5[#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KM:qrVo%F/#3/W:@J_IKb#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YM<4eio&^"64-G0WJ`a?%#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g]<!3(7Wh=B:op^14FsT8IQV@AEN="?4J/^VWB<InNiH#?:TF8m'r*lR3g?_44Ar8^
-Am8YN>A%#P;*:3EX9!]bri?3r4@lIKX:'tIJinNKXIMCIDGl%eJZR+t#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1K]@nI#=Hm-PB%kmh9VgCrT1k#POP,Ue9Zl)CekAu3[+B"cACp\3(!fQI8\<]l9PE/6
-Joc3_F+S:aB2$,?g&[b$rn7J!9O$-Gg'b/VUeII[g;Q`pN+ddrJ_JB&#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1Y]B1<7?(>GkCZa]7:p&mBW)/LiQfXK/:t=^ji_W^P^>j-.C?,0Q("uJ\9uc><:i>FX
-M0XW%H&6X&D,ACSjoM?AroO=8:gi;[jpSdpX\c$!k0Qq;PAYs6J`b5>#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7g\u[)/F"2DsXCm*cB7YMHXF;FrRX)!94KOoHXJ[Fl=d?(V=/>_p"?`ceI$Xc5!'L7^
-()hoDK1;:MQE48MXK6ecXK7XcXIrObqlC,h@l\6cO]SWR+HqAXJZR+t#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1K]%S>iOu8V#g4H-SJu##og7L"O_jT649\R<og=.mHE4suBDUA:7"AIP'T"b3X!)3CG
-(*TXuVHLh`^Y3_8g=i*Sg=j2Sg<49Sqq;BRIRo/d\8L$=.(b&aJ_JB&#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1Y]&k2$RQ-s:k)$5&M63_:k,9urc(X:^;!,u:k2/"jGK8jiFkcfU"An7CVTAc!!)W[W
-(*^(,Y?oL%al[i^k2rP'k2s[&k14P&qrS5bKhRG%_K=qd/&d)%J`b5>#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7g\uZ)uX?<RHX<7F(!CK!KX:@@oWbad[19>_>XK7hO9E)!n;3q*\"G]*%BW;!4!'L7^
-(-JT\U.1SHXK7=cXK6ecXK67h4?OsMqlC,hWB@7EA;%%c<Ki!8JZR+t#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1K]%R?^g.^3og*lqo!EDhmg($g1f8**o5MDHag=jEQ?iJa[B>=>t"KP3iK\-4W!)3CG
-(/3=Ubuqtog=icSg=i*[email protected];BRekFdkI](oRCV,/OJ_JB&#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1Y]&j2nk"t2:jsp@,!Er>!jpk5Mj,d)66ft&-k2sq)AcCfmD9;\;"LV'&MrXg!!)W[W
-(/X$ifj;s;k2s7&k2rP'k2qdd:f&s]qrS5bi_\c6KsBe&EQ*LkJ`b5>#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7g\u[)<X?<RHXBCUcXF4c4XGnd4N`iH92QVpBXK7MF<1U+_<M95j"F[AQ@#4f`!'L7^
-(-JT\U.1S'SZHRTXK6ecXK71cXK7>OqlC8lWB@7EJnD*W0pA]?JU)gJJZR8##.j6SeVDWDqpbql
-KCA!=nCg3Z~>
-#$LBV\D!1K]%S?%g.^3og2OLSg7Etlg9N]lZuOfs7,"tfg=j!ECW>)NCs)Y/"J4?$H*.)"!)3CG
-(/3=UbuqtFaP)BAg=i*Sg=iTRg=idPqq;[email protected]&UR?\eJ_JN*#3,[>g4n&Hqq;:u
-JaVg;nC^*X~>
-#$LBV\^d1Y]&k25k"t2:k'+W'k,4-<k.Ee<^3JeD8ERU2k2sIqEREq!En1'L"K1DEJ@>I>!)W[W
-(/X$ifj;rde)lXhk2rP'k2s(&k2s8(qrSAfi_\c6Y))5k6,i!KXJ1:.J`bAB#4)<BeVDWDqpbql
-KCA!=nCg3Z~>
-#$LBV\^c7g]<!3(,&oM`0m]Qs4?Sb+BKTKTXJK8dALN)1Outj/U74e<8X]FV,""IT>bnHf4<cn`
-Ag2mQK-Yq/8j%[+XD9OB@'$Gf4?QoFr2^Ef,@EuQ6#20:7mW??V`d:rXF[J#X9Q9(f@>Z*nb^iA
-a+NjD_!p&EJ,~>
-#$LBV\D!1K]@nI#/!!,a5F]o:9MDtKKM6GQg<k.=J2<qR\P,\9c,<s_>f-?k,#q<1FjSjX9Iif_
-Jh*cNVCnQ9?;.-Jg4qjPHJ7)W9MBWVr7V[d/:(HM;M_;G>>i)ee4rklg4@u*g'6R:hV*_4o)%,G
-bCT*H^@9fAJ,~>
-#$LBV\^d1Y]B1<7/XAu!6DW7X:f,'jMbn^fk1tJ_LGl3q_ba0Qf[",*@EnZ2,$If>He[]*:b>Mu
-M(PtbY;*%R@o08hk)M_iJ`c++:f)Ppr8nO%/qI;a=-'X`?rt>0hbmI*k(2[Bjp(/Og!tl,nb^iA
-a+NjD_!p&EJ,~>
-#$LBV\^c7gXK2GZ?Iu7ZRSMnE#+nqgXFW('JZOF(dB!P`map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KXP*]XGh:XM`+%c\#0Lf)g8$m]J_G\/dFnfas5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YXQBPnIb3]_c=l8##1[eEk,go+J`_OGdH1Z!s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gYH.l*4?QrHn#QMQr&asin>l[j.STH8!1WmK!*oE&#?ErYS?/ffT7O(pXO+$Q]'e2#
-LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KYM'-/9MB]Yn(IcQr(I*>nCdqZ2IZ42!6"e/!-S1m#Am.>`nK.nb(88tg<eOXir@lh
-L=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YYN>uG:f)Vsn)aVhr(mBInE'dk3+hdE!71R>!.4V*#BN^MdH9TGeUck6k0W5pli5Yg
-LXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g\Z?$K20H"%O$#m_XF[I(XSJq%]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\_7:?7$ZK[[S0hTg4@t/gA0G,ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y\`O-R8"Jf)^ee?gk(2ZGk5"-Dli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\Z>g9NVojX4T2>^>A\qmJZOF(s/ZF9map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K\_7(+ZM`DV9`<ZGF,GP&J_G\/s4R\:s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y\`Np=]_pml;#TMWH'3a@J`_OGs5jOOs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\Z>g9NVojX4T;D`Pp:'qXF[I(XT,@+]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K\_7(+ZM`DV9`E`I]e"tjg4@t/gAfk2ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y\`Np=]_pml;#]SYa=iU*k(2ZGk5XQJli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\Z?$B13K\"O$#K&X9!-CJZOF(JZSjP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1K\_7:45F'sV[S0<mg&["QJ_G\/J_L+W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Y\`O-G6_3B%^edf*joLQkJ`_OGJ`cso#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gXK2H"T_PSnVk0KZXK87unZ2ekSu[FDJZPZK#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KXP*^(bP9creB,h`g=k!,n_+&qak;7!J_HpR#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YXQBQ?f(eA4i7-98k2tL[n`Bo4eE)8DJ``cj#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gXK2GR-MXYI>"M;LXK5QcnZ2eW+.n+cJZPZK#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KXP*]N0_j?,Ea;t^g=gPSn_+&X-d%"oJ_HpR#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YXQBPc1\g);G[b.#k2pm&n`Bno.Fj"3J``cj#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7g];uR=RB3?RWM#cRQ_gdbUmI`:ri?d%Q`@-aQSk,%XK7nEU9(8ZV3dbPX9k\hTWG5n
-Q^gX>JZOF(UoXd3map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]@mhB_V3SUf#u(U^X:chd(datrn8%'^Y%8g^I,cYg=jNEc.^[^dD*d%g'Q*?bM(\#
-^VsI#J_G\/UtQ%4s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]B0[Yc0"!-imuN-b1u.AgWJ)DroOm=b2h^@a[XG'k2t$qf]M,7gre+FjpBebf&l,R
-b0XSIJ`_OGUuhmIs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g]<!iC-`ijdP^+?N;-0iu=&DsIXK7"O;/`Ot;&iGUXK5q^O0"]n;,L;SXJf2t<L^(%
-;,\g6JZOF(UoXd3map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]@o*@1>9c(]UC3aB5cJSDJ*cCg=iB:B8tWSB-_,Sg=h$6[G&DIB4l"hg=:(RCrP+[
-B500DJ_G\/UtQ%4s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]B1rU2!34D`hFo&Cj"k!FDPtWk2rgaCmF/!CaNtgk2qCX^ZN]lCi"(,k2:>tEmWs*
-Ci;,[J`_OGUuhmIs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\uZc3XK5BcX>HTO4f_AHXIhAOPY$do??N?N4T)8p=c]Yc8rB]nENDl_O+B]3JZP\1
-T7O(pXJDp%]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%S#qg=g;Sg-Ws9:"a'og;u_9]3VYLGEgh89`3TYEOFNS?E`(KOP408[\QrVUY=*g
-b(88tg8*F,ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&jl,k2pX&k!dh_;<;Q;k0uo``aZNpI@TH^;#KGiGJE;&A%:ZmR-&%Z^o^guXQJ;7
-eUck6k+q,Dli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\uZ9%XK5BcX?<Sc4f^^EX91SdN\:<6",j7^4T)8f=c]Yc8tN,-END/!=U&D=OK>NT
-T7O(pXJDp%]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%RNcg=g;Sg.^5S:"`5>g&k%&Zo\2*"0pS69`3TOEOFNS?HCidOP32'E!Cf1[bBG?
-b(88tg8*F,ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&jAsk2pX&k"t4&;<:XRjo\HB^-;O?"1mXW;#KG_GJE;&A(0S3R-%$?G6WeF_<0lg
-eUck6k+q,Dli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\uZfGLjL.jQnP&)0U%l,Lh@ftW+LL7FF^'?08]\0)377,S"r*"XC#/4QWf3$>G5/T
-Fr?(:X@Z-;XF[IOX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]%S'5XILT.^c]]^4hJOMXF_h:eUjEpPG6:&4Ke\;)7E\/`6_,Vg3@Yl^N-EWFN\X)
-Q6<9_g0J0=g4@tVg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]&joG[A>7Jb<OJ-5fLrk[>HEWiJFM@S#b/K5Ig^T)8KRFceD4%k'qX<b'CD&HIm>J
-Sg(T)k$htSk(2Znjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZgF?u:U:JmaV(@!\o8@"E<NXK6/EFKCa8?tB8<)/rtkLmqdpXCG\?XH$[rS?/;i
-Ee&;6N>m7rXF[IOX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]%S(JHA\\^UjBD]HCNWrHD?P"g=h=.PM3]rH@GkI)39)iXi5UNg4"D&g9c0P`nJL[
-OJA&oZQbrkg4@tVg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]&jpbJW[7(Xb"4-JYVABJZP3Ck2q\TS*%bBJVF*c)4#i)[a0Mpk(J?Kk.Q=sdH8o/
-R&lh?]d0G*k(2Znjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gKrb<-GCciHXJ`-(]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KL"ZR)Q\!kAg8EX/ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YL#rE?T7Q-Uk,7>Gli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gXK2GgJ,$)MRWs(LXK7V\nZ2neGc7^6Rt7YlXJ`-(]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KXP*]hU%m=H_jQq7g=j-an_+/iRFU$1`.?Wng8EX/ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YXQBQ)Wqb]]cCpr]k2sY:n`C#+U#G.\c[k50k,7>Gli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gXK2Gc0DMUR:2b'@XK5QcnZ2nc0;#>6:P#TuXJ`-(]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KXP*]c48@M7@uZJfg=gPSn_+/f4NcBpA:`Hcg8EX/ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YXQBQ$55=7FBpFt2k2pm&n`C#(5Lno?C4YMuk,7>Gli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g];uR-Gc[WZUl0bZEL3c.Q#V[Dri?cYEMon,E@5a^XK6hhU9'u,QZ7ZWX:1>5Mla"R
-EILKOXK4O8XF[INX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]@mh-R+fiHd'07HO2'E&]oT?jrn8$RO42h#O"uctg=i0[c.^:#^lPAlg'kWTYhIgT
-O.]b#g=f5Og4@tUg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]B0[CT]XpogUaGoQceIQa-X>5roOlfQf$rNQSk,<k2rV.f]L\Mb*T=2jp]7r]&r/,
-Q`4EDk2oKkk(2Zmjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g]<!uX0W_$1P`?YiG>,'4;g2OmXK-5WG?h,;G:IfqXK7";O0#!17sAEpXJ/[<?')$f
-GA8"fXK4[cJZOF(W2p37map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]@o6Y4ke4R]X8o.QXSRnBpX#qg=V@DQZ^p"QSk,7g=iAu[G&ei>*jZ8g<FB!G.6%A
-Q\HX*g=fHSJ_G\/W7hI8s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]B2)o5j$cp`kNaKT4[3=DkDG2k2_blT7#YFT/`ITk2rgE^ZO*8?_<"Uk1FXFI)4cb
-T8b&Fk2o_&J`_OGW9+<Ms4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7g\uZ9%XK5BcX?<Sc4f^^EX9q(kN]1Zd:2-f24T)8f=c]Yc8tN,-END/!BaQIpOK>NT
-T<,,DBn<@:XJi3)]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%RNcg=g;Sg.^5S:"`5>g'UO-Zpf\&@tiXj9`3TOEOFNS?HCidOP35(KaKkZ[bBG?
-b1bRCKn7s/g8N^0ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&jAsk2pX&k"t4&;<:XRjpFrI^.F<DBT2*9;#KG_GJE;&A(0S3R-%'@N=%jm_<0lg
-e`Q"oN.L,Bk,@DHli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\uZc3XK#!ZX?<Sc4f_#HXJS"ZO[4DFH^1\64T)8s=c]Yc8tN,-ENDKMIt)iQM6*[C
-T<,+Vr2]plV1G_!XKJW/]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1K]%S#qg=KcGg.^5S:"`Uog<rOG\5SumS@mS09`3T\EOFNS?HCidOP3["TqS$%XkM?*
-b1bQCr7V1pd=L#&g90-6ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1Y]&jl,k2U'nk"t4&;<;':k2&eo_H3Y7UrVW[;#KGlGJE;&A(0S3R-%PCWMu_D\)u[Q
-e`Q!jr8n%2gk"U=k-!hNli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7g\uZf[@U:<jJg-5@,($7e@TXY)XEe,]>_\MP,%^bT(i_<.M45u4X@>LWVc7,7?*%CB
->T[mcX??E^!@(TqXF[IUX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1K]%S'OI!72lV(8pe/=Y1)HuC=1g7!86FK3$$.tIWQ(m%!qXi3/Ug0%>-e7sAYG1q1g
-FXW4&g._Fu!A&&<g4@t\g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Y]&jobJpf>,Xt@B//u7HFJorHHk+[<VHF(\E/r0Gg(mm^-\'R*tk$;'Nhf+1!I-,p1
-HRb9Bk"u!<!A8DDk(2Ztjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7g\uZgJL5hU]Q\M')L6J^0L6msgXK7>7OK>.1L5>i1(lj?*R\Y\"XGDY5XIY*#Uo^DI
-O-Yp0V*k3_!cKQVJZOF(Y,hi=map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1K]%S(PWj9IJ^T,>uWk7!+WkYsXg=ig3\(]$*WiZ3R(pp<C_p>?lg8q@/g;g4nd+ZmI
-[D'-(d8g/!!f](SJ_G\/Y1a*>s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Y]&jph[(OVsb-]UK[)M1V[)p),k2s7^_<0@V['otr(r!AacJ,_Bk-_SYk0gWDgudG"
-^WF=Sh-0d>!gPaiJ`_OGY3#rSs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gKrb<9Nr?$[K:7@mJZPuT#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KL"ZR9[/J\ZVo+)>J_I6[#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YL#rEO^A[0pYg.g^J`a)s#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gpoFI9aK,A^aK,A^JZOF(VlU*6map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1Kpt>_0aP$WUaP$WUJ_G\/VqM@7s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YpuVRDaQ<JiaQ<JiJ`_OGVre3Ls4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gq5aU@EW3$?QXB`n"BIN/4!i[`!)!-i!*&Qk"C3<94F?\$!`UY5poFL8LA7hNE#+#+
-JZPcN#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1Kq:Yk9O8di6^j5q5"Dp[^8h\uR!+,QV!,M2["ElFl9Ut_.!bsU(pt>b/Wqb9KNZ<W(
-J_I$U#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Yq;q^MQi?+Jb(0KR"ER6k:,1Pd!+buh!-.Vm"FMq#:o*^F!cU-;puVUC[.rbaQ6(V>
-J``lm#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gq5aU8H2alGPZ7X`/4lI"V`_%nEhZ3oXI2^SK<0!+CJ0bjXFNr:?EC5L91u:dXJJQj
-J!t^&94Rt&!DH8fX:Lss97<mb@rY/!XJJ:cX??K`#?OQnXA=^H:]7@'=c]YM94b2"9<>4-JbZ;I
-HTZk\JZPcN#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1Kq:Yk/RJtn@]P@H"/6p=rdnJJJOj.7Lg;@9)VqR,cLL7OEg7hq]GM:c5?XMI>g<j8E
-Tu3?C?[_q-!FTF:g(2A6?_5u:IZRp>g<imRg._M"#B*tqg17BoAGt3jEOFN8?\$j?@+s=eU\NOD
-S4nLfJ_I$U#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Yq;q^BUAj9U`c1q>/7I(1hb`HmRFu,pk07FIYi_11O(?)hk,W$'IHK[[A7Xc`k1sQh
-Wm.=aA;'sE!G,sDjq$$RA>eR\KpZD\k1s2&k"u'>#BaS3k%VA:CAm9'GJE:^A;B;]A`i-4XSCoY
-V,2a*J``lm#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gq5aU+LAn7TRVVo(/>K73VkU8[1KL&SXC.Ti8ti!rI@W[*Ro#ZH=0.O,SXi3NRoQ#B
-+H*$SSY?%a0V(/(XI3.\SSN_N*d4)?X//1bR89o[>`bLWRVjLDR9#u^XBCUcWC)oOD.p#PH&VL!
-!'Gh6JZPcN#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1Kq:YjsWrC]Q`/+EH/C3!Je'?[`6#FYgg3Uf[?Hg\8T>sma`+@!0DVDUca2_<9`GET*
-.C%5ga3=P:0ZQZ:g;7aJa,$G9-C2\Ng!NdQ_.D?IFgoD.`/?Ck_JRKMg2XOSelBB:MM0^;R^2\A
-!).stJ_I$U#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Yq;q^1[/T1gcB%te/DK8fhq@/97<?n-k((n.A(TEVVp\Z/cYLtWFQUH2daDF`cZ7IO
-/%aS.db"K\0[`SUk0.qqdZ:E_.%\jgjkX)%b\H:qHbn-OcBC*5b]D@tk'+T&i`a@aOc/AaU:^0^
-!)S7/J``lm#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gq5aU%NVBLY6)UfcU+;`4X<*`r6QDc#4KPVHXJK#d6_(6ZDF6cPXDE9cXGrjR4Su2_
-4KPVoL&S.u4KLZHX?EV\)FIGoXH"Mm6S`A#E3--SJ?5hTO0#F;@]WLno;hpSJZOF(VlU*6map!E
-e+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KqUu#(FL(Yp##j")g<DOprn8F0<E19eg.^5S9\Rm4<E7&mg5K$38_Sukg=imUg._Ct
-"AIP'IB!5",>?fbg=f9Sd32M)a4dmO<E28;Q]BeRKVI2SEOFNSWI3E6^%9qX9S(oKg8EX/ir@lh
-L=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YqW7k@HG'"7#$9^Ek1McAroP9F>$<6'k"t4&;!-PU>$B>9k*&tP:?IY8k2s>,k"ts;
-"An7CKX1U>,>dN!k2oP&h'6*BdcS7s>$=7OTU+a&MlZ"&GJE;&Z\.CYa7JEn:k@b[k,7>Gli5Yg
-LXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gq5aU8H2"BD6)UfcU.5*_+[;fj0;,C/XK4OcVMq@J5HKNKV1Uk2Iqc!cPbP6AXIkjY
-X<]p0XEe`cXH?Sc4KPVIX//(XG]BgO<1]qQQ$?'*Wa1UcXBCV`X9)4B>kkB$OG!M5!'L1\!J6Gb
-XF[IUX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1Kq:Yk/RJ5D=;q'ISbujqu+]-S&43Q>Og=f6Se$@BK:thjtdAKXkTnM.R]?T&'g<%,/
-g*BAGg7!uSg:2%S9\S2pg!N[EQ]Kk9C<4f;]U*-^f64LSg2XP"g&blQFnjYk[\s)X!)3=E!N!;W
-g4@t\g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1Yq;q^BUA*dR=5W0&fj4R=+][=A5M"snk2oM&hRhRu<T^Q@gosT:Wf6*&`S'BMk1.WR
-js3dck+\+&k/)6&;!-n;jkWqlTU4faE7<Uba.R,.j*\Q&k'+T>joT=kHhc_(^p*e"!)WUU!Ns:j
-k(2Ztjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gq5aU8H2+HG6l.n=XB?E2riAn74@h,,Aeg)R'l'-V4?R_eSl.[V(5T&?4?QT:XDU-l
-PcUrL'g.MXGW\)iUhpirM\T]+(QPS@ENG-e4A(l`8N]1mXK5AC13]h$S1CK3X8u-Gri?2d'g.HS
-X8sPGJZOF(Y,hi=map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1Kq:Yk/RJ>J@<ujo5g2S3<rn:/.9O'\tJK(Ye)hu3S9MCZ(aCe1i*3@kd9MB6Gg5J^1
-]\;(7)bdTlQqU1kd#/j:YT%t4*jjXfOP7$@9O5>u>te%qg=g9i5F:*X`])?@g&Ye@rn7HN)bdO9
-g&Wa@J_G\/Y1a*>s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1Yq;q^BUA3jU>9?VIk'%tUroR"B:glS1L`Eh+*0/8i:f*\Edqqp0*k(40:f)/`k*/\O
-`ocD]*)O?2TMSI,gQEPV\K-<L+26m0Qfbta:h%J<@Sg"3k2pV46_EN'd5p.ZjoK6TroO;_*)O9H
-joI)TJ`_OGY3#rSs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gq5aUMA$)g5G]<AX!IeeYX9+>'TD5Jg?9s.DJZPuT#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1Kq:YkJI]_<)Q]Cdn!MG2Bg&eQ/anXQjGZ'+HJ_I6[#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1Yq;q^_KrsJ<TU,<6!ND+SjoW.FeG//,ITD$^J`a)s#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gpoFIQXfMRY.V&7T")KS<W;3LqU6PDR!L9C1XF[ITX9Q9(f@>Z*nb^iAa+NjD_!p&E
-J,~>
-#$LBV\D!1Kpt>_OXkEh?21G>S",T&pebRo"cF`i)!PH[.g4@t[g'6R:hV*_4o)%,GbCT*H^@9fA
-J,~>
-#$LBV\^d1YpuVReXl][N3/%(h"->](iVDU:fuEdK!QWiDk(2Zsjp(/Og!tl,nb^iAa+NjD_!p&E
-J,~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZSIE!L[BlX<aa7U9'lUXK%e\Uo^>]VQ?M^Vl#uZXK8%aS>E<gSXcdTS>`:_S,fR?
-XF[J=X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_K_L!Q09[g*G1fc.U+Xg=XEbd+Zgcdb;sceC)@_g=j]h`mNMoa2ZiW`mrK8`W4VA
-g4@uDg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`cRd!R65ljs8m4f]CN0k2aq;gud><hWEM=hqlc7k2t4AdG<sIda@40dGWjZd/`3X
-k(2[\jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZSLF!g$,Hq5c$,*''uO5-/]s9NIj2)MP81)NKSB8Z]"!,sd*`X?&);Af[(e)GEgM
-Q@Z,gXQuql]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_KbM!k2TAq:[:,,=pEK:>1\8?u=,R+fX1S+ge:P?/""U/lSS"g.=K^JL.n(+^e\1
-^4G!hg?[Gsir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`cUe!l8JUq;s-B,u!;_;Wa6UATQLr,I6Hq,JCKj@clg#0itL>k"S/'M'p6E,@tF?
-aFWK)k3M.6li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gKrbr54?S"mWbjj\6EEOd69L^<SsDnAX;O65JSTXSFf_[4:96mZXIW"cXAN8_XK5?b
-ri?KPDlfd&XK4OcSR._8XF[J=X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KL"[3/9MD&3f8<6q<8(?'<(t3`ahM$Sg)3_:UPPM)PhOj.A(k&1g;dRSg1GN7g=g;S
-rn7aJNS;c[g=f6Sa*>FOg4@uDg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YL#s&C:f+%Oj,m/7=lrnE=A[<*eB)(mjr%-QXH9<JSEAtYC$&^Sk0df&k%oIZk2pX'
-roOT^Q0-n*k2oM&dXKDkk(2[\jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gKrbr.XK4OcRSKrcEiamJVQ;n]XJ&/ZX9LnJ=_iCqK`8%`4KO*HX?NYcN*M*HXK5?b
-ri?ENDlfd&XK4-Z/V1!SXQcej]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KL"[3&g=f6S`+%HSOkQ]sdb7CKg<<aqg'1BYEJU38VuGB\9\Q:og.p;SZ?3*og=g;S
-rn7[HNS;c[g=e`13J#n8g?I;qir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YL#s&:k2oM&c=lA&RHC_>hW@Ysk1<u8jp"esGEA\UZ2Wkr;!+m:k#1:&]R-u;k2pX'
-roON\Q0-n*k2o!S4b;aHk3;"4li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gKrbr04?ORaWG4OXL9-#<XK4OcXJ&/ZX9Lng:KW!TK`8%o4KPAPH=j7Z@l-;(S?,YR
-XG:kADlfd&XK4CB9:Vr3XF[J=X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KL"[3(9M?\beqQjlWnOA#g=f6Sg<<aqg'1C)A8n,hVuGBk9\Rm$Rt9;HI6pUn`S,(>
-g8pI*NS;c[g=f')?cLWIg4@uDg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YL#s&<:f&J#if-c2[-"TIk2oM&k1<u8jp"fEC3HJ.Z2Wl,;!-PDUP\-pKLSd+d,o;f
-k-^YOQ0-n*k2o=OAC0:dk(2[\jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gKrbqMXG\:(UO'#C4KO0GXK4OcXJ&/ZX=QT8VZ;+%?EC5WC94L`<KF5Y6EI8T;63]\
-XFOu/Dlfd&XK4OcXAY@cPYnB1XF[JAX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KL"[26g9<*]cC<PA9\QCog=f6Sg<<aqg+6(Oe,Z)DGM:cDL>(@PCUMmF;qfs?BA.+5
-g7j7gNS;c[g=f6Sg1\4S]P#cGg4@uHg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YL#s%Fk.3/,fq[]l;!,!:k2oM&k1<u8jt'KkhuKXaIcfdkNooK#EPLYm=Q\bgD!#]W
-k,XE6Q0-n*k2oM&k&/9&`bj[ck(2[`jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gKrbu74C(KlShN8hNN>K'Uh267K/tYVqQ('`/n(etLTHV#4DLkpX<(BCXBmPKHoWoD
-0f_?SGG\V-5bG-)/j)6NS#g3<VLbh"XRE4p]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KL"[619QjZqaZW<kZJ&;Ed"+6YVFisTqUu=^4*oS;X4k'W9SV-tg)b(ag3>\\SOl"=
-5"J@9QdTtL;9@O^3_W42`7fb`dt-5(g@*`"ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YL#s)F:jc]2e3Hi,]]NBcgk\,$Y>.;iqW80t5(VgX[H>>&:laQ7jrSR*k'fL!VG0?Q
-5tk*HTA=ij<Rp6.4]"s@cfU$*hgsp@k3qF:li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZQSe!@a(\XF[J@X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_Iil!Ah08g4@uGg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`a]/!B.`Ek(2[_jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZS=A!1WmK!*n-W!2G+HJZS7?#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_KSH!6"e/!-QoI!7-5MJ_KMF#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`cF`!71R>!.3>[!8<"dJ`c@^#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gKWG6U@>sfZ!/^TS!E#<XX8n:[Fo[s%X9+6%S,KDh?'"?R!^Af*ri?0s>+5Gl!/^ZU
-!etljpoFIPqlBc_o;hqBrcS:>o;i"?G,b8<!Ka./XO=0S]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KK\?L\Ha31r!3Z4Q!GB@Cg&SMZQ2neng&eFC`VnKkG.$\j!`2Rprn7G#El7n1!3Z:S
-!ihR.pt>_Nqq;$Io@a2>rg!Q5o@a89QIkoc!OgC,g="[Zir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YK]W?tK"LX:!4Vjf!H$0TjoE-pScI"+joW#`d/E)-I)#%1!`W"-roO:;Gg?<N!4Vph
-!jeKJpuVRcqrRlYoB$%Srgj,IoB$+NT&]V.!PmNBk0iArli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gKWG3S55qY_X8T.!Ws#N)40,F]X9,G\VZ*[rWrT7!Wsl(g-us?'X/rD'X/rE$X8]1%
-L.caiX9,G`UA_1nX8]4"X8&ar4T)8]PZ7U_!'L4]!eNdjrN-"!"K\XcX/l6$!NUqQXT#7#XSo4"
-X9<9!EcPFaXT,@$XSo4!X93YuUoaQr#-=l+XK5<cJZR;$#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KK\?IY:]B&Lg"=sUgAfh)f`Fh!f`'S+fW`g'gAfeAg"P-3g">!3YqhE&A(]Mhg">$4
-f\+p0rn7FR?C1ZF!nk!+rRq;)g&B_)f_F/#9`3TF]5.B!!)3@F!i8nmrRqM/g"G*49A%qsg&]j)
-rS%;(!SQ3+fa$0`g4r7]OELQVs4IA*"5);Zf`'S6QT<FHg">!3f\"p3BYK&Odb4obs5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1YK]W<q;uYn\jlGM$k5XNAjT86=jSn9CjLO.Hk5XKYjlY[cjlGOc]/>tCC#nF=jlGRd
-jQ5I`roO9gA=rk`!p%,KroO:DjQ6C'roEk:!)WUU!QB'WjoA6VjoV\hXo7D^j9=Z-j\Ot!roO7B
-Z2Nhbj8nB)roFCGk2q[uR$`7"k5XNBjoa]+jQ-=&%A,c;k2k[ck2bUck&/7kk0iArli5YgLXYej
-eHa-In)qLUg-U;~>
-#$LBV\^c7gKWGie5-1i_=?SfgXK74D4\BgK'g5.fX<:7XR]NTE5!;`3IN)BP<hl`YXK4UcXHcFA
-CTL#d6p5kqX9!<bri?0%+HHH&$"lCpQ`P["4X,[WX8kB\X9"PbrN#u]rN$'p7Qg[O%<"C$/tlkl
-4_CdsTKO\%X;bk:4^G*q.SDp>XH6PcX?<ScKg%_UUE`Su7ZRJL$q-nmL)"Br,<i31;O2m8d]<Ya
-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KK\@*k:YOONE)'/jg=iZ,:0j'\)bs]<g)slM_qNhD:JPK?T-A2KDU7$1g=f<Sg:Ucf
-LtZ$'<_f+_g&[8$rn7Ei.CB*.$%ku]^Y5AV:+WLBg&OhEg&\g$rRq6FrRq=t=\ShK%?+%f3m<0p
-:4h3Rb"a\jg)G`@:3P<82.'+6g:)"Sg.^5SW(p0hcRi^'=LA(]$s(a/WZ-W:/5P!RBYK&Odb4ob
-s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YK]Ws.;s*6!G#D5+k2s*R;IZ-!*E$AGjre=`cK=8p;c7DWW$HL`FP>kRk2oS&k/V"1
-O60eC>>h6qjoLg@roO9&/&)#F$&VVmb3#^%;D,BQjoA6UjoNG@rT4)VrT416?;UX`%?sb"4kGN2
-;MjPuel"@(jr97W;LISU3+PpIk.u3&k"t4&Yu=W.g+R5>?,$=#$sVKKZQ5"X/lUopDTICkdcLc"
-s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gKWGbpL9.JSN2*./XH-VcXB'PH4Su3*:7A8@@&pAs:TQI:XAtIc3hqC=X/JXUUNC=5
-5,G>sI&sDhGQ"TQ>)o\cB6^288?>+PUQM8GX8kB\X8uLarN$!WrN$E1Km%44E-SIW32*E9qlDG5
-XK6/cXK7@cV_4RB4KOWCUM>=\Lg$OH=c6a"XJ8dcXK4gcXK4^bX'gdcXHB?1XO=0S]'e2#LXYej
-eHa-In)qLUg-U;~>
-#$LBV\D!1KK\@#cWnQ1UZ-LWeg9u.Tg23/09`*NhA&I$'H.gogAD0G]g2"=S8^=8`g!sEBcBF*n
-:XRmQS_DeYQi5VJEjXQSK:'rr>hW-%cF;$ng&OhEg&Z9$rRq7UrRq["W0W1lNgSPD7a0R[qq<\s
-g=h:Sg=ifSe2k\)9\QsicA&(IX`D_2E3Xh@g<XTSg=fTSg=fKSfm9dSg:5R^g="[Zir@lhL=5Yi
-g'>fPmcqOUfg1,~>
-#$LBV\^d1YK]Wl!Zf^E-]@tt6k.l?&k&[0W;#BB#B[5bMJE>q<C?A((k&JB&:"lk+jl'^jg7+2>
-;r-StVWR$-TDdm^GeW>&MP8bC@HLYFg;2G;joA6UjoKb@rT4*krT4N5ZC['<Q(d?k9%`9&qrTP.
-k2qZ&k2s:&h`]HN;!,T4g5W/q[X$QXG.N?]k1an&k2on&k2ob&jajo'k/6#+k0iArli5YgLXYej
-eHa-In)qLUg-U;~>
-#$LBV\^c7gKWGQ]5-1i^=@GY0XFk']X8kB[X9;:eXF"g`X:@@o4KPVaPH5rs:QqlW)ZE/4FcT\,
-XFOucXDrI_X9DdfXK5&Zr^@!lVaX$RSb]>e4T)8]PZ7I[#EqqP79#j[Oo29\4Su2_4KPVZRf9Au
-4JtKHX?<SG,=P_2XEcAr71bPiKrh@SQ)q&TUo^Yo6_-l$XNdgN]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KK\?gc:YOOMDc^"!g8BGug&OhDg&tp'g7+!!g($g19\S39]@nc:A@pRE+oYOMQ*tYc
-g7j8Sg5hU!g(&/1g=fn1='&MXe5o^da8+Eh9`3TF]5.5r#J+GI=)5oq\GY%\9`*NH9\S31_uA@"
-9[ltog.^50/QZl<g6t##<tMihWS6'?]\;(?d+[4$<QAHtg<J=Uir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YK]W[&;s*5uF^/05k-0U<joA6TjofACk+n1>jpk5M;!-n[`TAdXC;o>l,Q:pTS\TF2
-k,XF&k*M_=jplXMk2p2R>[1Rsi*9N+deW#*;#KGV`Gt_9#K1=]>]J88_YiNr;#BAX;!-nRcMlr9
-:u>@:k"t3V03iYUk+Xs:>S+`)ZKC:fa6)MggZIYR>1-r4k0<#mli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gKWJ+P5-1iU:Rc/JUnV"WRs^!m7[oNYXK8!_Ml!(HR[\M@V)G*J9SfH%V4Ub\X(HsQ
-OE$='Ngj(=XJ'6BU9(Gg;1PIDPZsWH?*%+sRpM#SXCt0'X8kB\X9"Pbq5cbiDk`k(J!X<-Rq&:r
-6(<+XXK%aJS#V]VS"!cFS3*XF2PYt%Wg$_aT2h>LGE-,nRu:XNXIVM=VQ?e02jF*=!E`KUXOsTY
-]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KK\BAV:YOOBAAsB\d*6OC`La-a=N.e0g=jVNYgLU0_o7t'd7)C5@BIgDdE67JfRfp<
-[Z@jE[)Hn#g<>,(c.^mnB;3c,]5ts1G1plR`H\W@g4W]/g&OhEg&\g$q:\#\N6TL]TtbTd`I?4g
-;oP-0g=XA5`RhbC`Pm)/`_+b.7F.rDf=Z1Pb%nr7QF)'4`NXX:g;ct$e(WH*7_AHL!H2q.g=Y*`
-ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YK]Z4n;s*5iC=&&!gt6ejd&+55?-pHRk2t-!]%tnWc-W,Mh+68ZB"$Dah:6MrjGC"c
-^mDhc^<grIk1GKOf]M>HD6)FR`HfhWIHG\!d!iRgk)3XGjoA6UjoNG@q;skoPhFT-Wl]J3d"U9;
-=4!VQk2al[d,W,kd*R6Ud8&WU8D:@aj2QB#eT&m]T>#tRd(4bak0d/IhWEmT8]CJe!HiR:k1Jf#
-li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gKWG3S55qVnJPCMsJ?5hN9l-o4VG1.kX?9]]9nf[M:/,]/KM?`_9ji0>L9.IoXK6#.
-=KIQd>"tcnXDUa,Eic?N9hg)<XHQ@QMl^Ve9m<\?Sh4(CX8kB\X9"PbqQ(@29hf_?9j=]f9hg;B
-XGoqnXK8,p9cTb+Ptau0XD:OnKM?_u9qJGNL9.IN9l[7DH;.]EX9Va"9oH*SN`u4Z!gFjGJZRM*
-#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KK\?IY:]B&XULB^8U>"=8@>NXkdU@%mg,sFb@Aqo6@ptDOVdZ"6@="8KWS6'ag=h-e
-E8%a>Ead;Jg5KHKOP8E9@:>h_g:C^$YhFe>@@#X$aZ4>=g&OhEg&\g$qUuV8@:>=K@<:/?@:?+g
-g9Y4Jg=jgN@3!AB]jY?Pg5'1JVdZ!<@EI69WS6'8@?9,jRUL@<g';G&@BeJ>ZuYrq!k^"AJ_Jc1
-#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YK]W<q;uYnhXCe>UX6/P_Aru0;hI^m/juds%B!UR]BkE[nY\'WXAq?RdZf^D6k2qM4
-G36S`G\5[lk*'ChR-*O_AnJ%)k/CqE]&nuaAtJ/Ie3%pQjoA6UjoNG@qW8IPAnIKdApNO`AnJ=1
-k.G;lk2t=qAfT:^a(Aqnk)X,lY\'VYB%5t_Zf^C`As_Y5ULnoQjp,p=B"@'d^3KG8!lcdTJ`bVI
-#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gKWG6UD2clD!e3n3k,\WH<2fbs!_YY6ri?1!A"(WC"0,@BTD5JhRp'b*X9!f[JZRJ)
-#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KK\?L\MQtR_!hs)>k1TmHC=N49!aeX*rn7G'IDa:_"5%COb4sZl`H$t5g&[joJ_J`0
-#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YK]W?tOh9$'!ifkVk2l`^E8^]W!b>-=roO:>K[.g("64BhebJ8.cZk`MjoMH6J`bSH
-#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZR8#!b>8CTr\?m<)e>AX9*<>>_0!#X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_JN*!e5!;U"TUrCMTR;g&d7LFFi/ig'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`bAB!et]OU#lI5EH.rPjoUffH\(>'jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOp6!f`/+JZPHE#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_H1=s0;X@J_H^L#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ``$U!kc.gJ``Qd#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOs7"EIaP=H\6:T<&7.map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H4>"HdeJDn1GQT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``'V"IXR_Fi/dmTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOs7"@/oeCj^f8T<&7.map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H4>"B!_'M4K4OT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``'V"BFFCOemWkTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOs7"@/oeCj^f8T<&7.map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H4>"B!_'M4K4OT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``'V"BFFCOemWkTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOs7"@/oeCj^f8T<&7.map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H4>"B!_'M4K4OT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``'V"BFFCOemWkTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOs7"@/oeCj^f8T<&7.map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H4>"B!_'M4K4OT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``'V"BFFCOemWkTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOs7#\%mu?Aknd?QXj#UT=[2map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H4>#^hi$GHffTGpe0sUY5q3s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``'V#_SV;I_+\(J16'3UZMdHs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOp6#BY$CXK8$:Aq@%YX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_H1=#Et:Og=j[uJUuOMg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ``$U#Fh-ik2t2ELk4]`jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOa1!MFF`XJ2d#]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_H"8!R$OTg7m:*ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_jP!S3Tgk+^uBli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(rN$!JJZQ#U#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/rRq7EJ_I9\#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGrT4*ZJ`a,t#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(s/Z:&G9-I[-p9&\?87J9;*7OIPVQ=AMD/P<4?BRFFu_?XXK6%gKnV3oU,4hl
-3H'JMi2d-omap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/s4RP-Q6l=[-quSOGWrL]B1u^Z]K^;fY<@<`9M*slQ:O;Wg=h0BWMht5bsFoo
-8<&2Si7\Cps5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGs5jCET-sEr-rDtbIR1^'Cf"]t`^=k1\Nto,:eg*7SkMRmk2qOeZEZ]RfLAM1
-9U(+ji8t70s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOp6"^kY`XK82r?4!9UEIM5UXJp2%poG?Y13o``VH9+cS5u=WS?/eSXK7F\J?5i4
->5bN04KPVHXK5fcXGpG8XPg/a]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_H1="aYE`g=jmPGR;QhOJ$j,g=MBZpt?US5FKr!dVlnS`bit.`nK-?g"NfJU>">.
-ErF]!9\S2og=gkSg9PdNg>LZhir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ``$U"b;&uk2tCsIL4W.Q`5GLk2M_(puWHg6_W@=hK@!'d<!rOdH9RgjlX9rX6/QY
-Gl?b3;!-n:k2q6&k.H"kk2>A+li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOs7'4luW@th![MMb8sR2p%"8?/bm4SYu^H#H*B6CpgKX:J6pR89o:AZVqBGtt6<
-N`uC_$9YDk4KPVlFBjlsJZRe2#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_H4>'7m6fI];%3Y-)EO_Bjr>>M%T_9_d<GRZ(:g<68GFg(.o1_.;8sJD/\*R:F_"
-ZuZ-!$;B1-9\S3HPBF:PJ_K&9#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ``'V'8X*,KsKiT\@?@sbpSO]@,pD3;#'/WU6Jm2=O^gZjpuCNb\H:DM!!fQU1iHH
-^3KV=$;fmI;!-nkRsVosJ`bnQ#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOp6&m89pI&q'a=+[NT4KPVKWN<0`poF[FDfTe`SkB!`*E/6)?A_pHXJI+B0o)ij
->-+fIX?<Sc4KPVl6S+:LXP^)`]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_H1=&o__WS_Ag9DPZ"?9\S2rf@nqPpt>q@N0''!a^+o"*GN1?GHZ%ng<hEg5-*DE
-En]63g.^5S9\S3H<B.F<g>CTgir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ``$U&pJFhV<3e[FKO]f;!-n>io]B"puVdTPaIb=e7/F>*H0!\ICXX:k1hP16F>mh
-Gin.Yk"t4&;!-nk>!'NNk25;*li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOs7'2agP7sqD&Oc`\1X?<Sc5H1`c4SYujH#KHB6D7/NXJSsbXGC:]XK5+pOVUKh
-N`rNc4KLZHX?<Sc@#1G7BWS:qT7O*)X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_H4>'5"Y]=e49Y\@?Cjg.^5S:Y4=S9_d<SRZ,Ng<6Sk"g='iSg9#^5g=g!7\/&<&
-ZuXmS9\N1og.^5SHE>5pKA,%cb(8:-g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ``'V'5YG"?DZf'_SU?8k"t4&<9!'&;#'/cU6OA2=P%9Bk211'k-fkWk2p:T_A6PA
-^3Jf&;!(U:k"t4&J[O%AMrs08eUclDjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOs7'm`YO3^9]$:JY#aGoVR$*GqcO*)DptX9q*HX)^P.MGd5ILAn7q7&6oC*)DMh
-*)AjL:JWgK>Ye.$XJ7=1:I/3dX:8oqXQ6Ge]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_H4>'q8cG8l45+A7TQ#RNniB,`:2a,@nRcg'UP>fo]7fY@qHZWW(Tm<m]R*,@n&i
-,@j_0A7S$\FC\p)g<V`SA5[L&g(B*kg>prlir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ``'V'r,MY:/[email protected]@U*[._-B[;&-#1QujpFsRjdB65\Sc/!Zi9).>MJ;P-#1&,
--#-L?C2-6#HYR;Ck1_srC0,`Djq<]*k2bY/li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOp6s-X@nR]N'JRA-dVRA?^JT<%sZ!3#aq$(@9`X.ZPqSXH#HX9P>uXJM>QV>?Sb
-SuefWRAR'crL!e`XAhWbJZRq6#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_H1=s2#8n_qN/J_Tpl[_U-cKb1Zd2!7^l!$,aX6fur+'a25jpg'5aRg=!jTde^fc
-aP,(Z_UI5krPA]`g1sg<J_K2=#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ``$Us32&/cK<R!bh;.2bhM%!e`HeS!9!_9$-pcWjjrSVd`g,;jp'Duk2"8*h>5>#
-e)oN2bhhLCrQGDuk&F\^J`c%U#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(q5aR"r($gcfW5++VLbi/X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/q:Yghr*'0Mf\-A'dt-65g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGq;q[&r*TN^f]E4<hgsqMjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(q5aRkr1F%jJZQA_#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/q:Yhor6#)nJ_IWf#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGq;q\1r71l0J`aK)#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(rN$!2JZQ#U#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/rRq7&J_I9\#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGrT4*9J`a,t#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(s/Z:%?QJpC-ntk)>oAZe83B>'PT<`)MATg#4<^f-Ftt4?XK6%NKnU=VU*D?S
-10oI4i2d-omap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/s4RP,GU<.=-pImfFs+0)>YJ80]Hh7GY9&,A9IecMQ9Zp8g=h0#WMgkkbq2(P
-5B_V3i7\Cps5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGs5jCDIjb$R-pe*uHm6;E@8L7H`[5Ze\KHR`:b:bkSjP&Kk2qOCZEYL0fIoKd
-6[XIIi8t70s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOs7'<45YA?2f&4?PZoDcCC4JZPl.4SYuqGtMJA6DIGNXJ8dc:7A8b4fk`7?YcaE
-N`uC_$9YDk4KPVlLoQG?JZRe2#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_H4>'A$#RJ(`Pr9MA'sN,"#>UY=A'9_d<ZRU1<g<6f1"g<ONS@`7!R:>+?pG_b#,
-ZuZ-!$;B1-9\S3HXOsk&J_K&9#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ``'V'B<"fL?7RG:f'p5P]2OWXQJTQ;#'/jU18`1=P@WBk1Oe&B[5c%;W[&@Iu`[R
-^3KV=$;fmI;!-nk[H+uJJ`bnQ#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOs7'54DICj`<HXK6Q7X<E+q5H1`c4SYu^H#HNB6CpgKX:J6pX?<S/E3-$CL/X\F
-N`uC_#s>;j4KPVl<]H.kXP^)`]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_H4>'8+ojM4N?og=hh3g+&iN:Y4=S9_d<GRZ(gg<68GFg(.o1g.^4fNnW*+WbKQ.
-ZuZ-!#u'(,9\S3HD+D$cg>CTgir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ``'V'8to5Oeq2:k2r5]jt3Xr<9!'&;#'/WU6KH2=O^gZjpuCNk"t36Q0.(PZZ"@U
-^3KV=#uKdH;!-nkE_F3!k25;*li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOs7';[lT-@DnF4?RP^X?<Sc5H1`c4SYu^H#IhA6CpgKX<(<*XDN;YS#i2&4=>`^
-N`rNc>c^&hX?<Sc?suKbVh(r-X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_H4>'@BTL0V-pl9MCDtg.^5S:Y4=S9_d<GRZ*Mg<68GFg)at@g5;D0`7i9Z9JN?s
-ZuXmSFP9FBg.^5SH@&`$dt-62g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ``'V'AZS`18X-6:f*D;k"t4&<9!'&;#'/WU6M42=O^gZjrSH]k)lKQcfW\):c,<:
-^3Jf&HKJ&dk"t4&JV%.AhgsqJjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOs7'0rLr5^]Y^XK5EbX?<Sc5H1`c4SYujH#KcB6DRSNXIrUcXHH_!XK4P`X;3q"
-N`rNc4KLZHX?<Sc@#1nD>HFo@Ob'UpX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_H4>'2d<4;4ZF5g=gASg.^5S:Y4=S9_d<SRZ,rg<7#C"g<4<Sg:;3Tg=f7"g(mB9
-ZuXmS9\N1og.^5SHE>i+F5#?'\:NApg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ``'V'34#P<MeiVk2p^&k"t4&<9!'&;#'/cU6Oe2=PIfBk14S&k/2D#k2oM>jq^eU
-^3Jf&;!(U:k"t4&J[OXQHKO@M_L^k1jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOs7"d2#3=ZEM^4:GVpD]sRg,%7H5+ZtqaX9pj;X,KfTRS5h7R/X0.:Sk.H+ZtH@
-+ZqV14?Pj0D`g.$XJ.1#4>^TMTb29qXQ6Ge]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_H4>"h@B'EC\a^9FQ3pN%1L*.sfc?.SRDLg'U5.fs,#?`*c8C_>`.0A^T52.SQg8
-.SN2c9MA79N(cp)g<DK@9L=6_bSH:kg>prlir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ``'V"iF59GY@2u:^hm2PUrfG/V2nX/5X7\jpFXAjh#3gcXfp\bPpWFC>@sW/5WWK
-/5Seo:f(-RPYb2Ak1DX]:e$3%fGBp+k2bY/li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(afGM7@Y(W@X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/ak?c$I"C#3g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGalWV5K7W1Fjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(q5aQnr&atVfW5+AWI_/2X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/q:Yg\r(I+=f\-ACf7DZ9g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGq;qZnr(mCMf]E4Yj+6@Qjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOp6!dl_6rN$$QFQTY*B9Mhe"e(=>Q=ibNX8o$pM?&t6X9,#OR"qaI]'e2#LXYej
-eHa-In)qLUg-U;~>
-#$LBV\D!1KJ_H1=!hMT,rRq:NPNLR"K=UR,"iIOa^4TYPg&TFtY5l?/g&fF#_2$_Kir@lhL=5Yi
-g'>fPmcqOUfg1,~>
-#$LBV\^d1YJ``$U!iA8>rT4-cSEAr7MSo#I"jXX+aGOEgjoF*6\,aYBjoX)CbD53ali5YgLXYej
-eHa-In)qLUg-U;~>
-#$LBV\^c7gJZOp6s)e1?!'KAE!Jd9<X9P1q?<&h`4Q`^KQ6TU?=HW6W!fpGSLTC]kmap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H1=s-*B7!)2M.!NX<5g'5N5GAKV"9]k%4^FaPOE4GPo!jurNLY;sls5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``$Us-rrK!)Ve>!O^DJjp'1RIW@m>;!-mDaY.shG/En6!l&kcLZSg,s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOp6s)e1?!'L7^)Ke/)+f_W6:HWj&RO=,":7F-nX'Hp0XAp[1riA_64Ae/@Wb4Ft
-UT?nZXJ/as02t&PXJfVk4FX@s;aEO*XIW3NAgN_DHot)lX?ibcD0r@_@Q\"pD_bHXBWJ59TLc/c
-9.-3H+b#KR#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_H1=s-*B7!)3CG)O3ui.bECoA5&?D__JK>@`:_qflemQg2&RSrn9u.9P6rMfRce<
-cIu@Gg<FHf4DRWMg=:XG9VC*:Bi@^3g;df!JM4^jSP3J1g/?GSMOW>LI8"n6NB_DVK\>)5b?N]S
-?S]TZ.A2aU#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ``$Us-rrK!)W[W)P']$/`Z!@C/CPbc8<4\B[B:4jaAbqk&NArroQhB:i&kfjGHcZ
-g?)Yok1F_:5B'Gak2D"j:oWSXDHBZJk0e'BLbZs4VGLmNk#UF&P,.6uKM[0SPsT[kN903aemRY&
-A2MYt/?+]m#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOp6s)e4@!I\_^X;*k!XFI:M;OOV,G-"Y1NLGrSDlfg&ri?Z8NNB4&Ff^oTXCm*c
-NEWDGr2_k)PcR!KV1l"P4KO5tVQ;n\;O=J%9rrYYXIN7d6)U_\R&jbOXGL;c/!$c^BWS;.8?AnT
-=0/JcNiWGrmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H1=s-*E8!M>/Hg(d<8g7d3NBYiDbQ.g"RZGa2?N7u]Zrn7p)ZeF,rPhNl(fn-$R
-ZZFhor7X+a]@os4d\tmR9\QI<e(RLKB>E5Y@G73/g;RgS;Uj?4^tO49g9,\S2mqA6K\G/'>M@f@
-DVEf<NnO]ss5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``$Us-ruL!N;%XjqU_Tk,RP&DTq72S`Xop]["<ePigh)roOc;^#nIGSE@sJjbg2&
-]m8a:r8osp`o^+[h6H,);!,&Yhr[bsD9D"(BBGtQk0S)&<oE%UbN=Jak-oj&3ksgXN999R@-6Ug
-FQV^^NogQ3s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOp6s)e4@!N/6_X::%L4CkLj(HafAC91Bori?7%5c[5Jri?H2NNB3TS?/fgX>g,@
-!^s+Pr2_,*XK4OcVdDPK.BJ55XK4Oa5-1iT9rqDO4?PNs5rq/`XK4,T49A0W4T;Di4KPWW8?Anm
-<KpFHNiWGrmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H1=s-*E8!Rt$Hg't5Z9RkaF*DB.!LY?OLrn7M+;V4ssrn7^#ZeF,@`nK.og.)'8
-!`n#Kr7WAhg=f6Se9FY\1tnpWg=f6Q:>4F?@G5Wb9M@k#;G'Z`g=e^h9EJST9`E`R9\S4D>M@f`
-CqOMqNnO]ss5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``$Us-ruL!T7&Yjpegs:kn)h*`,[.Nok>oroO@C<odE>roOQ5^#nHgdH9TIk">VL
-!a=__r8o5#k2oM&i."R"2s.E!k2oM$;Wd,fBBF>(:f'^:<_cMuk2nr.:]b1i;#]Sb;!-ok@-6V4
-ElN(=NogQ3s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOp6s)e1?!'L7^%:uWB5H1YfNi\jnXAkG_X9+&>@K!8t>E,_cM-m?cAZU>pXK6!7
-E-SIcAZS"qX?<SS9WWFfXG(/cX?<OhN3#uQXGpGcXDOb!VlO'^XE\]cXC\IWJ#m:6XK8'cri?3\
-7TcPeX8tSCPH4u"map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_H1=s-*B7!)3CG%=m0d:Y46@[+`Zag2">!g&e0KHi;YgF0jTSXa/XSJD-ZNg=h)2
-NgSPSJD*]Ng.^5?@+pr)g8TMSg.^1BZ.`r$g9YkSg5=6TeCeuMg6[iRg47m-U"Y-og=j_Srn7I[
-=E)^fg&Y*SPM-6#s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ``$Us-rrK!)W[W%>X*.<8utc^?3t5k&JB=joVbeK)Oh%H+iA&[t!Q&LZYRqk2qH]
-QD!C&LZVFqk"t3fA`fUEk-B[&k"t/e]B4'Fk.Q'&k)nG"i8o<uk+J%&k(i(NWof2?k2t6&roO<q
-?$>''joJMmPNE)8s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOp6s)e1?!'L7^%RrQCJZPrR>!,BVRQ<NVrN$#\M#OJI<B<3bXK7CD4G0`:IQT`U
-XK-;&4J?CKKnVR$XEcpJ9Qs&iULuWBX'@c89rtF]4?RtM3af%i@]ZYU4?T%54)$g.XK7"93_97O
-!H*/]X9+1mLQeeD]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_H1=s-*B7!)3CG%TlCuUtXPUE_K`j_b*RkrRq9DXT$pFCe@?cg=il,9W$OtTM/%i
-g=_K[9[&,\WMiCAg6kWq@@(4kc[n`gflTo[@G9GK9MCt^8pT.DI+m;@9ME=W98-'7g=iAs8mMAL
-!K3?Eg&e>oXHV?Bir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ``$Us-rrK!)W[W%UDn-Xled-GYhi0c;%01rT4,U[f5D\E_]E$k2s?R:p9$DWDHF/
-k2hn*:tLS!ZE[,^k+Y\=AtNO-g5/P1ja0h%BBJ?s:f+"$:4VKgKBD<h:f,Bu:Q/,Ok2rgC:1=.a
-!L'5VjoVq1[?K_Wli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOp6!d,u(rN$$DFMFm[Wi)b"NUNqMWB-sPX95N$3i`1\!C;I'X9Q9(f@>Z*nb^iA
-a+NjD_!p&EJ,~>
-#$LBV\D!1KJ_H1=!gPWorRq:<PJ>fSf[SDnZgZTLf1OQfg&p$X9%X'r!E5t\g'6R:hV*_4o)%,G
-bCT*H^@9fAJ,~>
-#$LBV\^d1YJ``$U!hD<,rT4-QSA41hjP\sC^$k(bj%eP-joa`':?2?9!EZUjjp(/Og!tl,nb^iA
-a+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(`2j&p5s^Y$X93K/6)FCY".MSBI#Y33]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/`7b<m;Gt$mg&mF7;UP<o"3"/9SW2>-ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OG`9%0-<`[**jo^uO<o*T6"41(LV2aUAli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(n>lVci2csZVXCMdWM"gDo;i/-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/nCdlhi7\4addGfif#[email protected])Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGnE'`*i8t($hX9M,iRWSBoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(nZ2bU<;rs"UPA`K");A1PO5FPPZ..S#+f@JJr:SGk,\YuA7T<DX9,A3CA4e0
-IBT^V]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/n_+#UC]<#gc`6rt",DB;]'\2P]P@#k#0D@ZV6D/nk1TojIt*%@g&flULA0C%
-T<HrQir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGn`BkkEW5)$g9^b?"-/,S`9l[fa)LV3#1SBtY.>n:k2lc(L5(NUjoXOsNVDQ8
-Vm#4eli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(nZ2b3G5eQDQVma`)Ie)I/T@emUmRjWXIQ&aR&ZgHV59QPXJ:u=rN&\]R&-X\
-X-f?WXJ/gMEuCW:TpVIRXK%YTU9(&ZTU;RWXJM;WSY<-dS!^4W?rVf1>-+g*R%(1UR&-1AXK8IU
-0s%IOR%gOHSZJnTYH.r>map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/n_+#*QN#S=^M!Q")LS*R3KDhId)!r[g;V@e_:ZrIdF#eRg<[@:rRsr__9pZa
-ftkS[g<OZ8Os%nFbe_HUg=O0Wc.^C^bJDT[g<ma[a3<8k`PL0[H>BFSEn]7!_8Y-Y_9p*?g=k2W
-52+`9_9UTIa4f6@YM'3?s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGn`Bk>T)RjQb&..?)M=lk4I,'kgrn=3k0Vf>bN.6th;-9*k1[berT6eubMD":
-jibs3k1Op_RNg<`f?;_,k2XY.g#gr8f#uk2k1n/2db*^EccbA2JT7rsGin/KbL#D0bMC@jk2ta0
-6K[F`bLtgsdcT[gYN?&Ts4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(nZ2b3G5eQDQVma`)GH[&OGp9?=&;ndXAW54:iLLrN/S`uXFir?riA;4;,BJt
-XE.38J?2h6XK6TA5upf]Q)nk":fa68+&u->WiB/t<?HOgKMkWbXEnccVa7DcD,=,aR3PO);iq![
-$TtMlJ/j*,,@IUS4Kkgj]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/n_+#*QN#S=^M!Q")IUS=\$=Z<De3b'g1YMUAWDs!ZEYX<g87qdrn9Q/An=f#
-g6-#[U=sOpg=hk@;Jfu\^"SEVASoSZ-Z!@4f[t+RCaY_+Ve9S"g7+#Sdo+oRMIgJ#_C]A2C:=,q
-$V]:.UEcML/:-%(9X!.Sir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGn`Bk>T)RjQb&..?)J.=Y_7SjhF_c$Dk&#?sCR1G9]XoJ[k-/*0roQDDChm";
-k*g(%X6+Q@k2r8k<c`%ra6&S$CNJ(%.<93HjPtAuE[ddGY\e0?k+e.&hcJt&P&"p?bV*aIE5;J8
-$W-!JX<jmj07i9J:p9!cli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(nZ2aeRJs8gW13df'q.KP<MHQiI?9%KXH"BYXI$"WUS:6WX:^[qXK7CfWN9f\
-H<ZJj9TN8:rN%_>P,rMIXH\g.8Wp/3T<(8U:me>V1p!!7N0%FgH<cP7R&k::OGcVr9STXC8#r_m
-4T;De8Y;kUT<,,\YH.r>map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/n_+"S_Z&6ie\qI@'uO$FCsLaET!tOsg9`91g:u?DcH]Pkg(Cu4g=iiVf@ktL
-Rrc'F@CC*`rRru(\_;q1g:Xo(>e&KSakBSAB#*-B6JB.YZ+#%BRru2[^tOis\$0&P@B/&,=kVN_
-9`E`N?-1Q+b1bRaYM'3?s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGn`Bjdc2Qi+iQqMc(!]uZEnTShVnoN?k.W=Rk/uglg"B[1jq5XQk2s=*j5u>t
-UNs\hB#&Q*rT5h8_rd,Xk/P6R@Dh4seE0ciCWkki7cqg$]>9#dUO0h$bN>.D_7F!tB!g^R?KL>3
-;#]S^@as7Ke`Q#:YN?&Ts4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(nZ2b3G583DH_d`fE3)%u<s)p5N`uC_"*\a'GlFcJPZ+ZbKk((_!H(+#<s"jm
-OSu6m6)Uf$H`Us`="KN94KPVKW'('\"$EZI/H/]VML%6`=KJT66iL-nTM1iVX?EVcX??K`"-6T?
-@B6I6]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/n_+#*QMK5=SC#uWNnR#&DZbFAZuZ-!".,(.RJtnD]P?0SWI=a!!K9eQDZ[jq
-\,G"m;UjEXS(`U8D`G8\9\S2seP,tr"&.FY3<!h%Y+%q"E8'#p<W6nCb@/BDg.p;Sg._M""1<-L
-H`Pj)ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGn`Bk>T)%LQUtb%*Q0(a=FT[<Z^3KV=".tpFU&O0Xa)L2'Z@r2=!L-O^FTTm3
-_>WL.<oE,'Uum\[FZ[M';!-n?iDBO9"&S-s48s@.\>)Z=G37q@>5iXNen3:kk#1:&k"u'>"2B&f
-JZIo;li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(nZ2b3G583L9M1.VI&rZ<M2>H<G=[kqXAu&`7&?udST[>\XJTEYM/e9F>)A)J
-Q(V69M-QK*OK2GnXA=\$*da;/SY@p'R95;[+fqVTIYi5s@oo_!=e_WnM2>]39M((]FKDO"0SuU,
-W+J#_poFKV?ad$?]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/n_+#*QMK5E?s]sjS_Cl"XfZ^!QWprug/ZL"<mfXT`g0T4g=(DGXcKL.EilHq
-]utAsX`_QJ\(PYJg17=X-C_k7aNZu[_JlW2.b`F*T<4EPIW*oUER)gKXfZuj@9p!tPM4Zk4KZua
-eU^67pt>a>H+)E2ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGn`Bk>T)%LYARi30VWQ$G\$p\GT4#M7k#L2>>MSB'd@OLVk21co\!OGTGdk/=
-a4>FC[sQCh_<#cmk%_B(.&>*Qe(I.,c$$RT/`u#LW4/@tKluM$GM1Vm\$pt:An&6;S*&e@5e#P2
-i.t"XpuVTNJ@=SEli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(nZ2b3G583AJWX;_ri??b?XK;(CgV/[X9!Tmri?3Z?XI[LX<hFbGH@mE?XJAc
-XI`d+N0dmrX']D=UgInlDLu5SQ="m<O'dB!ri?lM?ZN5Y?`U8hQ`Qrh?\YXULgP>,XJu2+"IlKo
-HYrPZ!eVMH[]B\Emap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/n_+#*QMK5:UUYQ7rn7UaG^.3]M0P'Zg&[Y3rn7IXG^,,Fg*M8oQeL0DG^-%<
-g;nM`Z+kONfQ_l!d!1>FMkt[(^3H%![WnK>rn8-CG`^X.GhLfY^Y6tXGcKJ+XE^#ag=H7J"N9$J
-S;R*q!i@9A[b:rFs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGn`Bk>T)%LNXMTIYroOI"It,i-Oai\qjoM3OroO<nIt*X\js>e4TB>:oIt+T_
-k0ng0]?5VrjF;mGgOG6iPHKDIaa^#H^ji@\roOuVJ!fAPJ*#h-b3%E-J$e?M[XXn2k2QAi"OH5m
-UltN8!j<uU[cRe[s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(nZ2bg?Fd-?X+>h4L@;2GUH*IdpoFOR5'cq)!Ha%'X9Q9(f@>Z*nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\D!1KJ_G\/n_+#mGIcE1fqbEnWpeXDcUjA>pt>eP:RV"3!L'Iig'6R:hV*_4o)%,GbCT*H
-^@9fAJ,~>
-#$LBV\^d1YJ`_OGn`Bl/IC\JCjfPY>[.!,Zg.e*`puVXe;kj'L!LpC&jp(/Og!tl,nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\^c7gJZOF(VlU!#B4lkbX95&,B9;ni!cr!sWiQE9map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/VqM7*JqBogg&oEJK"(O/!g8/#WnI[:s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGVre*BM2AJ)joa(hM8AuL!h+t:WoaNOs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(g8k@=HC"N2!LfRgX8n1VX9,)AVlZs(]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/g=cV=R_JaS!Q<$fg&SATg&fKee?%@.ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGg?&ISUWNJs!RB-&joE!jjoX21i2l&Fli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(g8k?R@$1Dh!Df-7X9!s5jK&>Dr2]sl0V,;H#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/g=cUAHFWt.!nh,%f%L/%ZfKg?9`3TGaZ[YFg'6R:hV*_4o)%,GbCT*H^@9fA
-J,~>
-#$LBV\^d1YJ`_OGg?&HSJAV<J!p+.@f&d":^#\;U;#KGWe3VK`jp(/Og!tl,nb^iAa+NjD_!p&E
-J,~>
-#$LBV\^c7gJZOF(g8k<QQMmm&X$*PcJW,&<I$(M3GB0^bXFkP\EhKL\Ee"(i#ao^gL9.7mEf^'u
-"KP'kEh<93%sr>oXIF72KSZRIQu\R7V#.4pWcE7]X9>8<IS665X9Q9(f@>Z*nb^iAa+NjD_!p&E
-J,~>
-#$LBV\D!1KJ_G\/g=cR@^AZb'fhL2SUTpK!S[[>,QBBhRg8:"JOiuIKOeVj/#f;_)WnPm`OgY&>
-"P?plOidUV&"A^0g;T3-W3"O3^lcEpd/2Muf9)?tg'#]`TO5^?g'6R:hV*_4o)%,GbCT*H^@9fA
-J,~>
-#$LBV\^d1YJ`_OGg?&ERaSk6=j\b1&XLkIGV8DBWT:"[$k-(/qR+CDrR&^/J#gJaEZf^,3R(rL[
-"QWs.R+2,t&#>TLk0TLWZ*rSXbF$J?g\^+7j-ZD:jojA)WFaJYjp(/Og!tl,nb^iAa+NjD_!p&E
-J,~>
-#$LBV\^c7gJZOF(g8k<QQMmm3W'IGcGoBg+='M_>EHY]hJ7Wml25,/0G%Z0'W)7_H*3*7eG$11/
-X;@p0<Hb"9X)W!">cO;EJ7DuD6o@1i3gBNC$EA8$XK8C(G%hkcXK2W;map!Ee+*=c#KMJckJ6T@
-6@]~>
-#$LBV\D!1KJ_G\/g=cR@^AZb4e5=rRR3?PrDKFHaOHk+CU4AM16d1dPQ%PR[eRt.o,M.%&Q#XS9
-g)&CJCR*&rfoM&VFk=VkUOINl<^T\U8\=lR$J1P(g=k.tQ%gI%XP*m<s5)Iaddm:h#Kq\dlFuc@
-6%A~>
-#$LBV\^d1YJ`_OGg?&ERaSk6Ji)]"&Td+e0FF*#-R%AffX,!9N7b=/mSr0?+iGG0;-0'?DSp/?S
-jqm)gELt_Cjd2.%HfNL6XG)27>=VXf9ud(m$KI^@k2tZISrFuBXQB`Qs4PqXe+*=c#KMJckJ6T@
-6@]~>
-#$LBV\^c7gJZOF(g8k<QQMmm/AqI+cS4o/GNE_*"C2-=Z5-1iT9rtF=C/STD6)UfcB4cbpX8kBZ
-X9!-bri?Bf2JQu'Aun1,ri?95Kj9R9PkhBd4KPVgNNB3SSZJms]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/g=cR@^AZb0Ju%,S`aHGoZ?*!>LPK,p:>4F?@G9G"LM2.j;UjFSJq9ctg&OhC
-g&[&$rn7Xf7#-P0J_EnLrn7O)W-#=\]D:.d9\S3AZeF,?`iRkuir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGg?&ERaSk6FM65q&d:L@;]R$k]NfIS7;Wd,fBBJ?HNbsL4<oE-&M28>6joA6S
-joLUAroOL'8</^GLuqWjroOB<Z$X*%`qea&;!-nc^#nHgdB)I7li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(g8k<QQMmm3X$*PcS4o/GNE_3.I!p:+6)^lJ9rr5PI9:$]8Y<)cUMG:ZXJJ;\
-X:8unXJ;k\5C7g)PcR'Kri?95Kj9R9PkhBh4KPVmLTIIESZJofUTgg(]'e2#LXYejeHa-In)qLU
-g-U;~>
-#$LBV\D!1KJ_G\/g=cR@^AZb4fhL2S`aHGoZ?*-NStDIc;q9U4@G6[$T5T24>fk^Rc\S1Hg<rss
-g'rn0g<\Kb:n=5J]@p'4rn7O)W-#=\]D:.h9\S3IX4l-,`nK.mc`l+-ir@lhL=5Yig'>fPmcqOU
-fg1,~>
-#$LBV\^d1YJ`_OGg?&ERaSk6Jj\b1&d:L@;]R%"mVPp62=Q/D\BBGGFW-*gV@FaN&g5i/ok1s2:
-jpdHMk1\t:<2HOg`TC+ZroOB<Z$X*%`qea*;!-nl[-$@RdH9TFg9B]Dli5YgLXYejeHa-In)qLU
-g-U;~>
-#$LBV\^c7gJZOF(g8k<QQMmm3X$*PcCb18oJMa-C@:NN"M-FI\9rr\K@ll]KXAi\>=0,qB@of/s
-X;6Rr@p5t8H=(/fKU3rmQ)plD<Erd.AG`G<WFI,^S?-(->p+!cX?8VLX9Q9(f@>Z*nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\D!1KJ_G\/g=cR@^AZb4fhL2SM)VCsUI*:iH[Tt>X`Str@G75rI7m/\g1u+bDVBSgI;R%$
-g(p`2I<+&qRs9@(VnXg1]\:h*CNO]7J,@q0f6o2u`S,TcFt&=&g.Y2Eg'6R:hV*_4o)%,GbCT*H
-^@9fAJ,~>
-#$LBV\^d1YJ`_OGg?&ERaSk6Jj\b1&OZKd5X@Cp4JV8<Z[sE^9BBH%?KMP>"k&?!,FQS=2KQGT<
-jqb@OKR)_BUORrEYf\YOa6)8QEI3(PLAU*Cie/q;d,oh2I4LHBk"nmYjp(/Og!tl,nb^iAa+NjD
-_!p&EJ,~>
-#$LBV\^c7gJZOF(g8k?RKVSOJ-*'D1XH/(,Kq=!rXGDRmXK7M;L01OYMhRaVWN;bHKqYTHKnYoh
-X9+K;U].>*MhR4nTnS2nXJpo2RZ!PmqlBdure1]SXJLW1QB/,#)j7G,#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1KJ_G\/[email protected];Hg9mp%WQD-hg9%?ag=j$8WGpSFZ)PjEf%S9GWQa)HWN!`/
-g&e^^cMlN.Yc5%abc.Sag=E7,_m.%aqq;&&ri$7Ng<ut,^9u[m,J(,5#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1YJ`_OGg?&HSYhK*=-08:dk.e4OZIH2<k-hS4k2sLcZZbKn]!Bhkio\dsZIe6tZEh^L
-joWB)gA^4F]!B*5f<V^4k2N\VcFV34qrRn>riumbk2!>VahQuB,fHqL#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7gJZOF(g8k@';2+tM!K<05X94Mf>?pTt!.auO!0ZZL!1Wmj!-e+;!K`8DX9Q9(f@>Z*
-nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/g=cV"AuP[^!O9-+g&na)FER$*!2BC5!4hFL!6+kX!1*<3!OoA<g'6R:hV*_4
-o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGg?&I6CpEs$!P?2?jo`AEH@5/C!3?$D!5n-b!7:Xi!2&rH!PuCOjp(/Og!tl,
-nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(`2j'7NK'b%X8nafN<#^=X8o-qN<#<=X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/`7b=;ZEhjFg&T(hZ2i/8g&TS!Z2h\6g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OG`9%0R]Y*%fjoEa*]E$UMjoF68]E$*Jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(]W;3`<)f`GXR`Fs]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/]\3IZC221Jg@Er%ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OG]]K<oE,aZbk47X=li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(]rV?u>*P8OqlBjl4>h\kqlC"5map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/^"NUuF1f0<qq;+p9LFBbqq;86s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OG^#fI6H,dkbqrRt2:e-*!qrS+Ks4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(^8qWh4t00YXK52kDuHa;4T;D^Q2XG\WiW:79U1F8#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1KJ_G\/^=imb:,H@Vg=g(FNW%Q29`E`G^&DCCf@nr1@(hBM#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1YJ`_OG^?,a";Dr-kk2pAiPl9_E;#]SWa8TZSj6#K]B#oej#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7gJZOF(^8q[;IoMr7XCdljBn-,`!'L7^$:C>R<N3$3JXfo.M6$ommap!Ee+*=c#KMJc
-kJ6T@6@]~>
-#$LBV\D!1KJ_G\/^=iq@Tk_Tpg4@,\Kq\M"!)3CG$<5$bCtI?lUW.>eM:r0ns5)Iaddm:h#Kq\d
-lFuc@6%A~>
-#$LBV\^d1YJ`_OG^?,dWWGp5?k(q:/N2lm>!)W[W$<ba&EoQ2;XO)74M<5$.s4PqXe+*=c#KMJc
-kJ6T@6@]~>
-#$LBV\^c7gJZOF(]rV6n>lC`+7mnkSri?)^ri?H>6pud2W#7uk4\pp9#.j6SeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\D!1KJ_G\/^"NLlFoC"r>$!YPrn7?Grn7^2=')EUeK@pp9k9+7#3,[>g4n&Hqq;:uJaVg;
-nC^*X~>
-#$LBV\^d1YJ`_OG^#f@-Hi<(/?X#ReroO2WroOQE>?eGri?DK1;/1sM#4)<BeVDWDqpbqlKCA!=
-nCg3Z~>
-#$LBV\^c7gJZOF(]rV6n>lLf-7\?GGHiC)H4T;DlLnph5WMrLTUn3OHXFQRqX9Q9(f@>Z*nb^iA
-a+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/^"NLlFoL(t=j##nS,V+A9`E`UXj><lf%+0@ccEBFg7l9?g'6R:hV*_4o)%,G
-bCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OG^#[email protected]?.IY9V#KKV;#]Se[bKP=iSn@fgXEdsk,ZO^jp(/Og!tl,nb^iA
-a+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(^8rH"0d0W"XG/o&7l%0=4V^,LX<B_i?)t&l90GV"XK3:GNN<>qmap!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/^=j]p5:LL(g8[qD>!Ufb9cHgFg+#fkFkGE]?VOM(g=dZoNS4Trs5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OG^?-Q/67d6@k-Iua?:3l+;&iHZjt0G-I,sG2A5QL@k2mk:NTLH2s4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(]r_46riH.#"0AQ)XT#:#XT#:!XT#:#X8u?nN3!5pmap!Ee+*=c#KMJckJ6T@
-6@]~>
-#$LBV\D!1KJ_G\/^=rP=rn@D*"5;G^gA]e*gA]e(gA]e*g&Z%qN7nKqs5)Iaddm:h#Kq\dlFuc@
-6%A~>
-#$LBV\^d1YJ`_OG^?5CUroX7B"6S_-k5OKBk5OK@k5OKBjoTU5jc/C,li5YgLXYejeHa-In)qLU
-g-U;~>
-#$LBV\^c7gJZOF(TWA0VUl;AZ]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/T\9FVd#?Z_ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGT]Q9lgl1A"li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(]rV:"2-0^X!i)ilmAp>bWr9"#UTC6iX9)E[Q2[ic?`*h(!iS4DUoXd3map!E
-e+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/^"NP#6Z)hV!m]NFmFhTgfDXD)cJ$SCg&c(X]`-UcH.2cH!nBt;UtQ%4s5)Ia
-ddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OG^#fC97s"[l!nl_imH+H)j8J*Ag?.)fjoTQna8Y3%J):1e!oZsPUuhmIs4PqX
-e+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(]rV6n>lC`*4K1R4X8u=brN$&aW]^6]!F1T_X9!lbr2]l\UoXd3map!Ee+*=c
-#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/^"NLlFoC"q9\*&-g&Z$$rRq<Kf1c.s!HbXHg&[t$r7V-EUtQ%4s5)Iaddm:h
-#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OG^#f@-Hi<(.:uYIAjoKM@rT4/[j&#^:!IMHXjoMQ@r8muUUuhmIs4PqXe+*=c
-#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(]rV6n>lC`G4K1QHXArbi4H-@o4?RbfX*$NeK<1L_1H_>3X?NXHrN$$)N;fmZ
-JS4n^!'I'Y#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/^"NLlFoC#99\*%og1u,C9X<BL9MC](fp#0(VV8s85toJUg/$<orRq9oZMrPY
-UP&Ku!)03B#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OG^#f@-Hi<(K:uYI:k&H'e:qYqo:f*\Djd].DYNF.Z6r;Ltk#:;:rT4--]Dgpn
-XGZr<!)TKR#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(]rV6n>lC`@EN4)]XI:SHXDrc(XK6JcF`XXcBRm0aPPqQaF/s<ZX8uRbri?0d
-=/c)!!'I'Y#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/^"NLlFoC#2OP#]Lg;>aog5r%^g=h^SP`jbSKVI1:])C=aOk>cog&Z<$rn7Fe
-DUn^>!)03B#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OG^#f@-Hi<(DQfORsk0>o;k*N-,k2r,&S=8U&MlYu\`;Sg"RH0_5joKh@roO:'
-FQ!,[!)TKR#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(]rV6n>kkB)RR!aOXA>8`XT(E^X9=qeXAtJXX8uRbri?0W@B0:-!'I'Y#.j6S
-eVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/^"NLlFnjYp_c"q:g18)"gAakGg'#9'g2+@og&Z<$rn7FUHeA;N!)03B#3,[>
-g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OG^#f@-Hhc_-c;rfak%W*>k5S9WjoinCk&SE6joKh@roO9jK&lmm!)TKR#4)<B
-eVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(]rV6n>kkB$RSNj`"+P$dXSm8@X9N?fXAtIcEql^:>`AZ`!J+n]X8kB]X9!c^
-WiQE9map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/^"NLlFnjYk_di]""JLP'g62H!s4R[1U=sFpg5u*`!HbXHg&[t$r7V-ErRq:E
[email protected]@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OG^#f@-Hhc_(c=m4>&?:]Ok*hg0S*&jlWoe??k*Yr+!IMHXjoMQ@r8muUrT4-Z
-LoTSAli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(]rV6n>kkB%<A7/HX:KnF4ER[*F?D[<XK8*e4HfK@!F1T_X9!lbr2]l\ri?0u
-5s;6L#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/^"NLlFnjYlCHQ&)g(1#R9U"/_P>"ZIg=jbV9Y'rP!HbXHg&[t$r7V-Ern7G%
-;GF1F#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OG^#f@-Hhc_)EBn19jq"Uk:n6Y/Rnuqbk2t9):rE(j!IMHXjoMQ@r8muUroO:=
-=&Q'\#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(]rV9o-t1l3!b!L9ri?-(NrH*]W(S?6X9+G<U8k:!]'e2#LXYejeHa-In)qLU
-g-U;~>
-#$LBV\D!1KJ_G\/^"NOm1OIm1!dc`/rn7Bn[/Sb\emBs,g&eZIc)TJ%ir@lhL=5Yig'>fPmcqOU
-fg1,~>
-#$LBV\^d1YJ`_OG^#fC.2M0]G!eN;AroO6+^Ad6riFFP>joW:bfrF0=li5YgLXYejeHa-In)qLU
-g-U;~>
-#$LBV\^c7gJZOF(]rV:7SY4`=!hc*`ri?*orN$($SY#h^!NDopX9Q9(f@>Z*nb^iAa+NjD_!p&E
-J,~>
-#$LBV\D!1KJ_G\/^"NP=a335k!mAX8rn7@trRq>+a3">7!S>_ug'6R:hV*_4o)%,GbCT*H^@9fA
-J,~>
-#$LBV\^d1YJ`_OG^#fCUdb!79!nYl[roO46rT41Cda\9Y!TVt7jp(/Og!tl,nb^iAa+NjD_!p&E
-J,~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(frP3oHfhC1<13<Y"c[bpMI/g7X8n^gGQ<crX8o0tGQ<<(X9Q9(f@>Z*nb^iA
-a+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/g"HIgSEAN+C;TPq"gaT4YBX.2g&T%iQiOMcg&TY%QiNnjg'6R:hV*_4o)%,G
-bCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGg#`=%V<6n@E6Rn8"hgSQ\:7cGjoE^+TE)^ujoF?=TE)(&jp(/Og!tl,nb^iA
-a+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(frP09jfAKAV=UbmO]ud#3iG=+X9Ft=E,]!EorJ=p5?Ml;GIX^Y]'e2#LXYej
-eHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/g"HF"jk9a?dIZ&r\9![@8_$]#g',8INfJ.kp"BSu:iMGIQFPWQir@lhL=5Yi
-g'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGg#`92jlQTUh=Kb5_KhG^:#T+7jorpbQBld7p#ZG8<Ha[cT=F"fli5YgLXYej
-eHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(frP09ri@#I4?OO`XHH(9EibHCN_iE9-S_]#)jRL"*16`,$Xl.n/$,UM4BA5Y
-4T;EUA#LkM4DLsm<]iKiX>*4.5)65'83BinS?-Ee9:)_BXK5lcXJ/]W=f8?24?OO`XC6mcN`r&Q
-4?S.qKGp(H;ii)#**4&NLH[gIHI&Ys]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/g"HF"rn89=9M?V`g:1<[OkRAhZt3[\0g=<),/)]?,JjB5$[YQX2VQSu9Pr)/
-9`Ea>Iap;_9S_?ID+mWlg-/\7:93*[>>/f[`nH,?@)(Dhg=gqRg<FG-ERWWi9M?V`g3]mSZuX9&
-9MD58W$8l[BsoC(,]4aHX%l>CRa9[lir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGg#`92roP,P:f&D!k/1P&RHDF3^2%?&1dU8A,ff%\--Q;M$\D2i3Tf1A:ik@Q
-;#]TNK]+n$:la\kF&5]-k!EEP;RGT)?r1ekdH6BaA]a(2k2q<&k1F]NGMhP9:f&@uk(9u&^3S4G
-:f+7UYp77tDnmf@-?LH]Zr9dWUX/',li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(g8k<pG5eQX5GY*2XJ&FXUi(:U8Oo/<RW3PQQVma`&5\aqXC6mcR51jFLnoo.
-X??H_9;jG5X?<S[NhiI4XEmR@Va7(TTWE$5XD)mSPtA#=UmtJYXAk+RLKLWBUnigJXC6[UM-cm<
-Ung,SX>X%MQ(_;t;0>I&7\?K@S^4AA]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/g=cRhQN#SQ:XIIig<=*Ed#4(@?!G.a`/g5<^M!Q"&7r]3g3]mS_EZamXO+.d
-g._J!9@Z#Cg.^5I[*[/mg7)O(do+M(bM%kmg4ks@]j9;bd)BkFg1mk=X)Qcgd*SlJg3]UAX`qsu
-d*PG>g-obu^!(GRAsHZD=j#+(a3WHDir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGg?&F'T)Rje<8?9:k1==lgln5i@UI=*cBk0ca_h%>&8TJOk(9u&bsUW9[bSE5
-k"u$=9Ar"]k"t3p^>.L>k+cPMhcJNJf&i0>k)H%ha(".,gsC,nk&@oe[!(S2gt]="k(9\i[slrG
-gtY`gk"0OAa4GKuCn5%b?IdiNda.%[li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(frP09ri?<_6ptIbS0%Yt"+.+@TDbhm4KL[DX9DFfXK4^crN#uRr^6fiX??H_
-)5og%X?<SX<^]>1XEnccVa6qHXK7LcX@teV6jKbP6q;s4X=F3;'ORr#6ptFaXC3tS<ihij6ps#9
-X??H_$<WBeQV!gN7mp4Ac`@>^map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/g"HF"rn7R]<`XP#`[:[c".\(Nao0op9\N2=g')'(g=fHSrRq68r`0)=g._J!
-):_U<g.^5FD,s\$g7+#Sdo+=ng=iuRg0mbU<X7;J<a)KVg,8k1'R8?;<`XP#g3Z1fD;*$F<`V`E
-g._J!$?3Fc^g5(9>#o7Oce8T_s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGg#`92roOEs>?c[@d4"uu"/P'geG\M2;!(UQjooPDk2o_&rT4)Gr`]GIk"u$=
-)<"TXk"t3mF'Dj8k+e.&hcJ?:k2sL'k%7Nj>6j7_>@+VtjuE?E'S#8X>?cX?k(6*-F6:ni>?ab_
-k"u$=$?j4$b$rl_?X%?jcfPGts4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(frP09ri?T/SXi'JW+(RRMg)-fOJ`#Y!f/CGriB\'8W'CHOBnEJ?EAcmSXj2j
-FEO.FA"G`[VDb67=.NtUVJp(ISNEWWL7L_7XHQkZSR/0OU8VRYXF+oVSRS["SXi'JX&s_EXK7:e
-SRF=PV`(*EXK#*N;2n/4?(%6uI]TVl5LZ\<]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/g"HF"rn7it`l:s2eU4L=Ya<p@\'t?1!j"A@rn:r+>d)T0[s#d2GhT$I`l<>Y
-PEa),IE5%2dRDKoDT7;gdZ/h2a%Od-WlA(Xg:MFG`d#p#cII?Gg7=/A`dHKU`l:s2fPm>,g=i]T
-`d9u"dm_:,g=Kr9B!YdUG/D7RT\A+^:t+,&ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGg#`92roO]0dEu%XiIeSd\t@qa_;>1R!k(1UroReB@Cb4V_0jYXIcdhldF!O-
-S".mRK[W]Sh+?A?FO>t.hNilXdSJYO[*`*$k/DVnd=0qDg#7Unk,+?id=UM#dEu%XjE@?Rk2s1(
-d=OdDhau5Sk2U9`CqX;uI*ButWTN?2<7Bt6li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(frP09ri?2t91t?FX9W-+?*'>b98EMJ!iJ\UriAXp91so=XGokGOK>O691thW
-XE.$-WbY7iKM-QkHV8lhKi(LDC.j_k@S;/PXK7XZ98\X#ENH6YXK6_@9;ARb91t>IUe=@,ri?u[
-98?<$MG$U+XIi-kH!tf,E(`iAXK83T9%0jG]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/g"HF"rn7Hb?XL5?g';n1G1sZ;?`X1[!n1Mgrn9na?XK_bg9Y-n\(]Q1?XLk-
-g6,fMf8!_CVdGhFS6r%-W+TJiL0qIEHs`Obg=j/G?`pV?O4r<Fg=i$'?dIG;?XL4pcX1%Jrn86S
-?`R_AY?tYKg<!]FR<t0LNaH.Pg=jnA?IRU4ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGg#`92roO;tAS&XUjp-EJI-/O^A[VO"!oIS/roQasAS&+.k.P>;_<0m\AS'<P
-k*fjmj,[cgY[sKiV.H`KZ#""4Nb-,jJn:p)k2sWoA[o<_QKI=mk2rFMA_Q9^AS&X=gLXrkroP)h
-A[H3`\7K6jk1!siTn8ejQ=XWkk2tGhA(0QEli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(frY4#^T7R4Q'GL@bH(c98Ysn;#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/g"QIr^Y/h9]tJC&bM!$<?.%-T#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGg#i=2^ZG[Pa2`DLbN8lS@bfGp#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(Q)k(B;cB3SX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/Q.c>?BkbPSg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGQ0&1UDf=!jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(_5mX(i2csVT'iZ\U5ktL#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/_:en*i7\4[aR7a_c*a;"#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OG_<(a@i8t'se*c?!fY4*B#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(_Q3co@/d5.RtCU?"&r3WP3o=OM-fbS"dMr$Ef_L,XSu&s>4\fqB`:j/T'`TZ
-EU'V0]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/_V,$lHN)V!`23Fd");PS\aA)OY'BNk"heQ*OL?_&g&Th*B)luDg&Qg*B)p$?
-g&R3!g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OG_WCm,Jc=d4c`[6/")r1i_sQRe\:4#2"itPCR(t?:joFNBD#ehPjoC>=D#i&P
-joCb5jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(_Q3cNJc;_ON*Q@`)GZK]-@;hqRtd?4XGWOAL9$JlTq$k(XI4X%rN%o3LRt6A
-VhU/3XI!+VHki\ESVEH3XJU`,S#hm;PD5a3XIFs3N1-iLM2&(4@;;*c=KJU#L5u87*f#K)Tra5@
-QBk%BUP=MpXK.)LS;OD-R>dVmS?/eSlDt3$map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/_V,$BV#K'KZ$$'")Ip@l0UpeM`2UW-g98N?WS+h]bf6Wtg;9YqrRs00X2rQ>
-e>]_,g:q[CSK$3Ta/Qf,g<ut"`S/#8\uEm,g;U&-ZGYDMY,U(-H\T;=E8'$nWO2ZY*il9>bhB@'
-^V<q*c`*nbg=`IL`in+&_Qh%_`nK-?lIlI%s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OG_WClUXo@G`]6jP>)JI(01Sj0qca1jXk.&gkZfT*2f[7%Jk00sErT=-e1t1+>
-i3U&Xk/qqjV&\Pmd^.'Xk2!AMd,rBc`O".Xk0UHX][#[%\$P/XJrRm_G37rCZbHG$*ji8[fB0_L
-aiRlOg9\-7k2ir$dCA>Pbe)32dH9RflK/<:s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(_Q3cNJc;_ON*Q@`)F::&OdE/D<FT""XA`\3@VU-5Q]32BXG9PWriB7>@UUm;
-XCG^GI&p#2XK6fM3)a9gQE4G&@T9+P)d6]NXJ8a(<Z[+!FC8QlXD`BcS4p#c?Xd;mXD_NV5C0E#
-9rtEYXBT.C;lQf]F];am@O4Yq87em(4R0!P]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/_V,$BV#K'KZ$$'")H,)=\A-bBCj^*?g1c(TI#"(A^p>Phg8e_.rn:M5I![oG
-g4"EnS_@Mkg=i.O7qm?h^=mj[Hu%'%,'&'Ig<XP^DC2L>PBqV1g5VNS`aINSG^OY1g5UH,:n$+V
-@bTO0g2hXhC"M!5P\PK0HnSh_>CbG]9^:=9ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OG_WClUXo@G`]6jP>)HPeY_TM#nEJ&>\k&6#sK8uTZb.TF4k-SiOroR@HK7Z7a
-k(SG:VWML;k2rQ&95fH*al\,+K5oVF,^=r^k1am.F==W\Rt63Ok*;Y&ct;G&IY3$Nk*:ON<28U%
-BBJ>Qk';T3Dr]nWS8a"MK/$pq@#*n,;!R0Ili5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(_lNp:;4[]f!NDsqX;.Kp4B.rS5B_L"4KO/[S?/Kb9V7_Kri?]g?EC5WC94LY
-M.p1CHp3iiS,KEZ4/8ldL9-knIQ*h!32`i?X@/kcV)bW67X]_`G&LK3<hug(@X`Y`TO)toMQ!VG
-3IZEUXI+Hc0;tsh0r1kGP#$m7JRtpaU["ob]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/_qG1?B?1#*!S>d!g(hq09P_c(:R7Z?9\Q?q`S/Vg@*6>srn7seGhUlEL>(=E
-Y(^tjSPQt.`VnL]9@)=>WS5=aTLQrT8(?6dg/cSSdRi/q=Iu1!Q&TaUD:%!^IA!*#bBKMMY1;7E
-8>)Vig;0GT4Oi)B51%s/\R_gZUk%1QcKa*fir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OG_r_$WCsr=F!TMr7jqZTL:iOqH<1^(];!+r7d,s'AA_#">roOg&IcfdlNTT>l
-\;bg6VGkQJd/E)t:YY#aZf]T5WCkS#9&Jc-k$-U&h+d%@?)OZ>Ss=JuF55o-KW1b>epaHp\DcSr
-9W>"/k00g(5N([e6/1JU_eQW$XbZ'$g?Rf)li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(_Q3cNJbcAOC8n:OH`T+(C'/[]K4Y"_")N?qKDqqUM-d9bH>`\_!Fo%,C'(/(
-S,KE#4KPVnL9+WpC+c'Y4KPVHX??K`"$EZ>4T9($Q#B90<iiB)=T3%LVlX]L>`GhS05>6qXB94P
-.&a4aHiC)MP#dHHK4X5I#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/_V,$BV"r^KL=Y(9S(^7/L'*aqVL\X!",WRuVuGBRY'A[SRu@7!!Ie\\L'#Y/
-`VnL&9\S3JWS2HKL-*E/9\S2og._M""&.FK9`BbP]o??QD;*]_E;kS+eCob6FL0]>4GJU8g2D_#
-1=Y$8SGq4G\S\NoVL[j`#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OG_WClUXnh)`NoK2aUuk2HN<>g8YD<)="-KI8Yl<bg\:3T&UQbZ=!JPCiN<7gG
-d/E)=;!-nmZfZUoNBYbP;!-n:k"u'>"&S-d;#ZF[aH^7pF6;V.G5dI8hr^#[HG/Ie5E1ZTk&lZC
-2;mV[V#KK[_fNA:YD;<'#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(_Q3cNJbcAW5tuN0MQE=KG'7)k?q,nMXA5cO8ZSqoO^CD-XK#`QG$p</>BY0m
-S>]G2G#=YVMl9$RXB'LZ)L@>kR@,L^SlKr;.BKRbEctuI9ie?d<hZKpG'6l\7<<WZM6(qZIf?D\
-;KcXfKr[jHN3'+!4+]_G7]H9d!gs7OnZ2r+map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/_V,$BV"r^S;IYr:YM.!6QBlUGH<@0Gg.p6c>hIca\9LoLg=Ue<Q?omhF-`,2
-`n"slQ=dujYgld&g23.1+e#Ym_SS.7aD@/`1YUK9OHtBq@;X`=D9URMQBl=4=H\tqY1f71T`3XW
-BU45iW7bNnZJ+#l9;POX=P!B'!l>5Kn_+3,s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OG_WClUXnh)h<bJ"R\`V:]St:5iJ6fM\k"ar)@H?S5_LGXkk2_/cSq4T7HCg^O
-dG]):SnuV0]&6bFk&[,S,GVk0c-82YdrM%*2Wj([R%B&<Aom+_F4]DpSt9rU?(.@7\E9GSWW)#l
-DOu\+Z/oM9]]S@A:Td`r?/b\C!mM"`n`C&As4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(_Q3cNJbcALLR<(:ri??eEH.bTG]A?6X9!p1ri?3^EH-O.X<hn,Lod\SEH.&@
-XIX?NQ^DcKVf@!`U2bX?JV\<5QuRq`P&ZIDri?r[EJ1E5FKDR,TWFi,EKdJ[EH-`7XFP;:ri?^'
-EIrt!X)W-9XK6hiQuSL5W;EXt:Gnj9X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/_V,$CU\WUGXMBpurn7UeOH@fBR#n0Cg&\%Rrn7I^OH?49g*MlCXP2CUOH?p)
-g;f;:^ql,6e<$*Pc&eU&UTKWn^lY\P\ra6mrn83TOJgfoPM4a$b1b($OLj/IOH?Krg7j[trn7t+
-OJJtVfoV;ug=i-[^lZ?nebe&%A4+T2g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OG_WClVXSLu\[EFrEroOI&R$cUiTU;n\joMWproO<sR$arRjs?F_[H?W-R$b\O
-k0fWab0-0\i0^5#fpJ_LXL=M>bF#a#`0e27roP&hR'>_?SEAtOf&kVPR)S3qR$b8Ck,XlEroOgB
-R'!d$jd;FFk2rS/bF$J?iVVa=Bh-eFjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(_5mWI\Z>q3Df8^Fb,bSRn#Q`)map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/_:em<\_728NK%hmb1ZiEn(J!*s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OG_<(`O\`O%PPa$:6b2r\Xn)ai?s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(JZSXJ"/pKjOg_=q]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/J_KnQ"4Wa,\@1)qir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGJ`cai"5ooJ_m\\3li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(WiQ5hPPqQ`O)OTj!K<Y=X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/WnIKi])C=`[Z0k3!O9e8g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGWoa?+`;Sg!^m+EP!P?mMjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(WiQ4pSGfMiRPOH8!Fq2_X9Ef#DNlqYXK2W;map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/WnIJ]`r4Tl_a!_G!IhKLg'*g)MnD;nXP*m<s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGWoa=ndJ`2.c9h*a!JS>]joqA@PK$"5XQB`Qs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(WiQ1_ri?3`@"1<<X:8rQUo\*7X*A$=XDqX>ri@61@!6mtXH-b>XK3sRU._&Y
-Q!e!bXE9#4KPcOHXCbk>]rVFLmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/WnIGHrn7I_H(dq2g'rg_d+WtpfpI'"g5gO#rn8L3H'XuRg9l4$g=eK&c!SKE
-]m4n9g6/4kW/@\1g4=P#^"N\Ms5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGWoa:XroO<uJ>uHFjpdB%[email protected]*LVIroP?IJ=`Ruk.cGJk2n^GfO`Im
-a+/]\k*rH<Z&uHVk(nQI^#fObs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(X/nLV9!#+_=GUW6XJfc[LfpH^=0%E>U9'GJN3'+Q=GUu4X-d%GB7m9J?\h@G
-XB::78?@OaAfYAbVdb76>,8m6#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/X4fbY?J=,NE34dCg=:hIX`;X7DV;HacJ#a4ZJ+$SDlo*?fYMR0K;R?rH*(Gn
-g2O0r>hZ/#JL#\bdsS!oEmVPS#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGX6)UpA*2puG.*>]k2D2q[WgDXFQL;,g#g+Z]B88*FgdYWjNMhVMQl5>J@9%:
-k'"2A@HOm@LaIh$hh/)?Gh]sp#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(X/lGKE3--'ri?MjXH>&9=@-V`=0$Cbri?H3N3'*SS#i]4X#^/](b)OKX?9.H
-XHQag,-7>.PuE]HL,)k54`S3;#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/X4d]ENS<)[rn7cSg:0+]E)_D"DV1):rn7^$ZJ+#@`S0%/fgu*](c9r?g.Ykn
-g:D6B/)&$N]kOioW]tHA9om$B#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGX6'PYQ0.4*roOVck/'3'G$0X>FQAj\roOQ7]B86fd,sJZj\5Ys(cUSRk"oX:
-k/;Fd0':SmaDS_;ZU8nZ;4##Z#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(WiQgqXK56cXIh>NQ:QpqLm4u>MamZH.U7q6XBpdcXI-(aI#sG>X?<S2%%XIh
-OG,0cSP,5HN`qE:NKAm]XK%5T_Q3sQmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/WnJ(Zg=g,Sg;u\8^0InNXLm2#YZ^qY.WhuMg39aSg;)EPT!l)$g.^4j&B<F+
-[\u(;a'ZMoZuWK^ZaQmLg=W^X_V,4Rs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGWoapjk2pI&k0ul_a^Mcr[`.BH\R,6s.XSeik'ji&k0)n$VSL!Hk"t39&CKWG
-^p5r^dU^F:^3RD*]tgttk2a20_WD'gs4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(WiQgqXK8F':fSTaXFjDI;i@`Y!d4LD.qL4tJ#o_[:f(8pWE2nm@t>VMRjai/
->YnBAFC?DG-[mP<ISip@OK>2WJASAl]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/WnJ(Zg=k1tAo&iag8AUrBsHCG"-rl>.tKTWU"\4HAnGu7eo,/4I\S-^`&#Ee
-FCo;:PC"jV0q^DITP%kO\(]..UVb^hir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGWoapjk2t]HCiUu#k-/`>Dn>)n".fGR.u62fWoiGpCi"7UicT'RKrcT$cSj25
-HYd[ORt<;q1oNCbWGQHj_<0JPXMX*(li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(WiQY%SZJogQ_9kBXK7nXSc5\kR&0e`/"DrmU9(GoQ^=PMXJD2LVkTNPXIuSp
-VO*pHTUhFGQ_g%JXI5EHXK4cgVo#M>]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/WnIngaP,@p^rsaAg=jK\`r=Zm^s`59/&oB?c.^n#^qe@Og<dXNeBYkSg<8.&
-d_NuGb/_<F^sTsLg;:YHg=fPAe&'fCir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGWoab#e)ofJbLY(mk2t"5dJi8/bME0[/()P`g#hGSbKJ]'k1e)&i7Z<,k1A\V
-hTOEte^DXrbM:;#k0;)uk2ofchnnL[li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(WiQ5fOi4=$IDDog]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/WnIKh\A[)$T"s%air@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGWoa?)_SkR:VnhF!li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(JZR.u!JQNiX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/J_JE'!N<?]g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGJ`b8?!OBDqjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(PcOpNX?Z*R!IAeVX9)ZSK)VhQ:*5kpX9XGkIVu6gW]o:@#.j6SeVDWDqpbql
-KCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/PhH18g/.1j!Lf,?g&cFOV#K'L@jf(`g'=U/T8VFWfM:;W#3,[>g4n&Hqq;:u
-JaVg;nC^*X~>
-#$LBV\^d1YJ`_OGPi`$Ik#Lg2!Mc%PjoTreXo@GaBdq6sjp/2KW0?B+j&=gs#4)<BeVDWDqpbql
-KCA!=nCg3Z~>
-#$LBV\^c7gJZOF(PcOpKX??K`+HAQh@B67f4DV!A9lW:AXK4'&4Gp574-Oe_X/g"u4Jr+Z!GI#^
-X8u1bri?Tb4CbFn=)FBgRB2'PHu/e`!'K,>#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/PhH14g._M"+LFgbI+ctB9ShAg@ZO3Og=eVC9X!0q9=g?ug"D0T9[j!p!J@0G
-g&Yg$rn7j_9Rb[KDi2J,_:kf:SV[:!!)28'#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGPi`$Dk"u'>+ML["K&tic:lj_1B9uGik2nlb:q5Z@:W/c<jlMP":u;36!K4&X
-joK;@roO]u:ke#nFct$HbiZ-aVNCf>!)VP7#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(PcP^4XCSE6M-d9B(6qauXF4lc.<hjdSZI'TrN$K;:ii%LCON:c;4"AcBRp&_
-'2b*tXG(,bKO_*Q0j(MfXHJ$mKDqqQ@>EaA#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/PhHt(g4.i1Y'A[**5-"=g7F,S1mcp'`nHf?rRqa.AWjotLn<>SB><0SK;8D!
-'5#&6g8TMSW.*I=5&]/)g:Er`VZ,9MHE?#X#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGPi`g;k(`$\\:3SP*lr0[k,4:&2kT5DdH7*frT4TACRWJ?O/M.&D9:r&Mlcm>
-'5YhRk-B[&Z%_>d6?VFFk/=74YQ!YbJ[OCt#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(O/rOZS#i]MEH_>_#s>:OXK5'cXE\^_X8uaAri?)^ri?9IENH6TJGlPX;4"Ac
-5rq+j,-77mUA(_i=c_IA#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/O4jeH`S0%NO-]e!#u'&Hg=foRg6dp!g&ZPPrn7?Grn7OBO4r<?U]&mTB#*-S
-;b9YV/)%p1c1fomEOF]X#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGO6-XYd,sK&Q_+3=#uKb\k2p7&k+J%=joL'jroO2WroOBVQfdFgXSq8iCs(o&
-=A;Ug/`tANf_=M/GJE%t#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(O/s4?Ff_ZoM-m?cN`rMHXK5'cXE\]cI]TVZL]4@]>)o\c?\tkcBRp&_$W37l
-XDN<cXF@7?:%kXg4T)8]EK'"\#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/O4kJ7PhOibXa&RRZuXkog=foRg6doST\A+HX8^fZEjXQSGcocSK;8D!$YI3.
-g5;ESg7[0<@eSLU9`3TFO0[m$#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGO6.=KSEAt6[t!Q&^3Jd:k2p7&k+J%&WTN>p[/T1oGeW>&J%+S&Mlcm>$Z*uJ
-k)lM&k,ILhBD1Hf;#KGVQb2AA#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(NiY-\4?R>ZN''4+UN[i(PU'81T2[pjXJ.."Eic@;>!+p+XK5\X0l="n:*hiH
-XK68$4E.B#,u"'7!'L4]!i$]HjfAZtmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/NnQCT9MC/oZ:mr4cBfuF]In$Sb%j\0g<MQ@OP8F6E_K03g=g^/5)\.K@kU9B
-g=hEX9TIhA/n"G-!)3@F!m`'Ajk9pus5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGNoi6h:f*,5]MMFLfq0dd`\;GqeT"ELk1M[]R-*PbGYh5Kk2q(Q6B^KnBei8W
-k2qh':mL0^0kU1B!)WXV!nnoUjlQd5s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(JZR.u!K^F^X8u@$jK&Qsmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/J_JE'!OctGg&Z&+jOsgts5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGJ`b8?!PimWjoKOBjQ6[4s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(JZR.u!M?+bX9"fgjK&Qsmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/J_JE'!Qr[cg&].@jOsgts5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGJ`b8?!S,m%joNfcjQ6[4s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~>
-#$LBV\^d1YJ`_OGJ``ro#4)<BeVDWDqpbqlKCA!=nCg3Z~>
-#$LBV\^c7gJZOF(R]HOV:&1k9V2LP=NJjm=Mi4")S;Wo=RZ!f4MjLNHP`(HhXK7J@WL/U;T`'cK
-V8TG>]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/Rb@eX@en_'dBL7:Z`r09Ycu!u`j!J:_m%;.YeSoG]<JNXg=j!>f>4]8bPeXF
-dDX`Cir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGRcXXnBDL[8h7CSf]Xm7d]"6/KdCR`fc+;HY]#j*s`k&b-k2sIjilepbfDW8\
-h8JF[li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(S#c[R=?H>[.@_h;X@57PD-^FKQ\HW;XFD@PP[-DQXDp'gK<2.P25PXBOcU\k
->r7AUX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/S([qRDbBiZ.E+,&g/q&%MKO&Z^oAi_g7]t$]QHp%g5nX+VV9a;6dhJR\@*i/
-F[E1Jg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGS)sdhF\hhq.F:"7k$:gFOaMOub-W\*k,KrE`dCVFk*SVHYNFtb7bsmk_SIaM
-HptK^jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(XK3(Z4?R>YX(a[Y0!%]>7QcF,VPQEMX;O]FDg?8GE3-.:7''1PXHc_cX@[/T
-XK5icri?K^@]ZXnXK4OcP&cZ&X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP+>S9MC/nfnE*n3ndqK=\PjLe'Ukag)4=PNL>`mNnW45<n_-$g:_4Sg0BE*
-g=gnSrn7a[I+m:Jg=f6S\WF;=g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGXQC1g:f*/5jc!#453?Bf?;RujhVD$'jr%ciPbOD9Q0.5`>NT\Ek/_H&k$a:K
-k2q9&roOTpKBD;mk2oM&_jJ9Yjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(XK2q\XK4XbW'IGcIB8PeTr^BUX8kBXX9M@T;flqtG5eQR4KOTHX@o+cN`qWH
-XK5icri?E\@]ZXnXK4?O,/UDc]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+2Wg=fBRePY&STA$e?c.Ykjg&OhAg'1ugBp4L;QN#SK9\Qmog0_kRZuW`n
-g=gnSrn7[YI+m:Jg=f##/Ag*Fir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC%kk2o\&iDo%&Vrkiaf]H$0joA6Qjp#G-DjuuYT)Rj_;!,N:k%2s&]m7S:
-k2q9&roONnKBD;mk2o6C0#H`Tli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK2qQ4?OCXXF!&lEibC)XK4P`X8kBXX9M@[email protected]]FC2)MB/i"4
-O/ucFXH6hE@]ZXnXK4LV=I5c#X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP+2H9M?GVg71i1OkR<_g=f7"g&OhAg'2!)HtnV%QN#SZ9\S*5PBkj8K1AU)
-[G#u.g9u:,I+m:Jg=f3CE50Z9g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGXQC%\:f&4lk+kgMRHDA.k2oM>joA6Qjp#GEK5[!AT)Rjn;!-eWRt'P^MG$c;
-^ZL-Tk.lMRKBD;mk2oIjG08LVjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(XK2ppXGn'qWG&B74KOZHXK4P`X8kBXX=R&7X9ig2;QQsKC94Lp:QVZZ4KPW\
-6`a^OXH$J=@]ZXnXK4OcXC-jcQp@:bX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP+1Yg9VjNf7_l39\R!og=f7"g&OhAg+6[Og'`kRB\M14LYCIdA[^=H9\S4J
-<SDf#g9bn#I+m:Jg=f6Sg3TjS_,8=qg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGXQC$ik.Mnrj,<'^;!,W:k2oM>joA6Qjt(,kjp[KrD<BuZNooK8C;Auo;!-oq
->3:FDk.Z,IKBD;mk2oM&k('o&bZ<98jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(XK3+r4Bc0$WB!('O/u2>Rr168N''*bqQ('i3`rJ=K<1n34DLqrX<(cNXCsUV
-Kfh@X3]fGcFfT7>4Jf-43BTDbPcSO>T#du;]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+Ar9QPQ,f1AY0[G#4a`Jd?\YtR\bqUu=j8T3=`VV9Ek9S_=#g)bRog4W!j
-WD#lW8kViNPhCgc9[VRm85)]L]@qoaaN3'>ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC53:jIYDi_<6G^ZK?,d$.5']221$qW81+9m,U*YNFY;:laZ:jrT*9k)2o0
-Z;=7l:/=\^SE5c-:u(3<9MeP\`TE+,e&^YUli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(Q)sk^f;o!0OiOO-]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/Q.l/e!8#iV!CF<:g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGQ0/#'!92Vm!CaoHjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(QE1(^r'(0^S#ch*map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/QJ)>cr(mB1S(\)+s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGQKA2%r)E`<S)sq@s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(RB-CbP,nl!map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/RG%YgP1g-"s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGRH=M)P3)u7s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(R]HO>48Gs'SRm#HBk=?EAS$OrMIh[HKOp73AU^_^G\(HAXK6;NVL`<CPPo%m
-S]%T6]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/Rb@e99DR9ea+0N1Kn.k.J:OQOYCNh1W.;@lJ=kQLR"0^fg=hL9e"_H*])@-Z
-a2H[9ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGRcXXN:\j,udYFIWN/-NTLPN+r\VI]WZ%p0;LT'@tTSJ<1k2qk_hQ2LP`VkPl
-d_t8Pli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK3)6R@0nQXJM>QS#i0US=-CYN+kBLX=9o*1SnDWV-JY*A;?O)R&lQ*S=k'l
-VQ>eMAs]U#CJ(Ri/tSUdK7caO`2j0Smap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/XP+?;_SX^Sg<mdS`S/AX`kpB^Z%YjHg*t??5gadkdWD@`J#gCH_:lR``QFKF
-e(V-7K"p$nLgJZD3loB'VP[V"`7bFTs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGXQC2Sc->),k2";,d,rd1dEU_6]8TP]jsf%[7,362h0Q9.L:#/fbN?i.d++aj
-hWDL]M94oBO(7.e4k%kCYHMED`9%9is4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(XK2qB:/4okW`W"k-EL0";,2'/X8kBXX9M@;B6eE8G5eQR4KN"HXFOucX?:HH
-XK5icri?K^@]ZXnXK4OcH%VL&X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP+25@q0H0fPb800\U;)An-i"g&OhAg'1uGK:.[[QN#SK9\Olog7j8Sg.[Nn
-g=gnSrn7a[I+m:Jg=f6SRARg=g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGXQC%HBk_bOjE>6O1Zi[ACh]16joA6Qjp#F`MP??&T)Rj_;!*D:k,XF&k"qA:
-k2q9&roOTpKBD;mk2oM&U9DeZjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(XK2qoP*.`%WCN,7OK=R6VlW#[X8kBXX9M@^9QG&kG5eQ_4KO`KUJIM`JlROj
-XK5icXJ__G@]ZXnXK4<B+2Y)`]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+2n\[b,YeloVp[bA5neCmUqg&OhAg'1us@$$>/QN#SX9\R*tc=G&NV/*).
-g=gnSg=49FI+m:Jg=eth.)O[Bir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC&/_o#%(iEjF>^uiL>hr[c7joA6Qjp#G9AXJ^LT)Rjl;!,`?g1f(!Y&UdJ
-k2q9&k2=drKBD;mk2o63.`1<Pli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK2q><`U?AXGg1\@'#JlXK4P`X8kBXX9M@fGW]naG5eQK4KPV_E+,iL>5hP8
-GcY>/XH$J=@]ZXnXK4OcFG?7&X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP+21D/C]Og9PR4H.ocGg=f7"g&OhAg'2!)R8&X%QN#SD9\S37NdKL6ErKng
-R+cnfg9bn#I+m:Jg=f6SPH)O=g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGXQC%DF)rhik.>\UJEF^jk2oM>joA6Qjp#GETi%&AT)RjX;!-nYQ@\2\GlDas
-T]Uj5k.Z,IKBD;mk2oM&S$UDYjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(XK3+.MKBVsWC2W$9!!A/VjT61U5CX_qQ)9F4b]sZDkgKnMJ7[DXIhnSXHtVu
-TS,4\:2Gf.>)lmGMG^IJ0T(`^Loc^WR`MQ7]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+@pYEKs:elJuX?J:oOeA=AjcEBC8qV!OK:8uqpN6cOJYD&h,g<!C>g;#kT
-bG[h4@u7CNEjKqmY@cM34g2%uXP10-`5pX:ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC4,\XOYYiENk'A*0Unhp"F9fssAZqW9Bc;R5F7PhLAm\W!]Rk1!Vek0$$#
-f!.cVBT]imH+eX:\SUEZ5e4F<[cYFOcH,,Pli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK2Sn??CO<Wr?<4R][email protected]!Rd)qQ($o??*'3OK>Ef?@VpT#'m;OI9p6B
-qHaD^XFOV`WN;3[?3He":bnfeX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP*ipGE\M_f`$(&_qKulbG9?f]m"[HqUu:qGECOl\(]DWGG4uh#+=3!Sp,Cf
-qKE1Fg7ie8f%RV3G6Gn=AO"J]g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGXQB]2I@I%*jSjQ8c/t.:f<'J5aF/JeqW8.3I@00;_<0a*IB*8.#,:8BVgX!1
-qL&UUk,NiXio\)UI0@pZC.$[qjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(QE1(cr.>!-f;o!PUW9G?]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/QJ)>ir1sCtf@g7?cc=`Dir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGQKA2,r3$+3fB**Qg;i=[li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(QE1(ar+,kMS#ch*map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/QJ)>fr."d2S(\)+s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGQKA2)r.k?BS)sq@s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(RB-CIP,nl!map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/RG%YGP1g-"s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGRH=L]P3)u7s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(R]HO&3r,j&Ps8HR76diO5<j%eGX$DRDa/f25@ppt><b>nXK5,\UM2rJLAa=:
-Q,Ka.]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/Rb@do9)70d]hie(=&@T#:f*)(R8B7(N)6=S:k79RFAPesg=g"4c@o)qWVoWn
-]u8V/ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGRcXX-:AO#taAdHI>ZBhD<)f(DTi@]IPZ4cr</9VuH;mk4k2p;Ug5T(=Zi*i'
-a2I*Eli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK3),F*!\LXI"!LHE;RWHul0dN.F+eX=:2C6Bub3R8Kr_H>]`EWiW3^X/gnJ
-S#iVsKW;,TKOCm]40,DDWMs3[`2j0Smap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/XP+?0P*3T6g:rf6RbFFCSW_IUZ(t(hg*t]^<5"WU_IqHNRu>okf\4tMf\*03
-`7iggW7]hXVg@(L9%hlif%,&H`7bFTs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGXQC2GR[VC]k/s-]UZSPkV4-9']<+p*jsfD&=NI+sb\Z:uUQab7jQ>N!jQ3UY
-cfX8;Z/k'0Z%1us:Z^\6io5Eq`9%9is4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(XK2q5F`gHZWD7SY19>=6Cirq\X8kBXX9M@<ApJ<7G5eQR4KNXHXD30bX$(KH
-XK5icri?K^@]ZXnXK4O_?^.5%X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP+2%Pa#\0f41&05MCuAM3N&[g&OhAg'1uIJshRZQN#SK9\P\og4u<SfM7No
-g=gnSrn7a[I+m:Jg=f6MGe;/;g'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGXQC%7S=F9Qib=pQ6KXFZOdp^rjoA6Qjp#FaM5$6%T)Rj_;!+7:k)QD&jAMA:
-k2q9&roOTpKBD;mk2oLuJ&U!Wjp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(XK2r'ChtMuWDIDISZIrTXK4P`X8kBXX9M@f7<!0bG5eQ_4KOuQQ;aNZGXcKt
-XK5icXJ(W.@]ZXnXK4?G+Mt2a]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+3*Lkmh:f4Khpa4e%@g=f7"g&OhAg'2!)=,r6$QN#SX9\RC%^1tsIQs#5$
-g=gnSg<?n'I+m:Jg=etn.DjdCir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC&@OH;?Yj(sg=dcSDgk2oM>joA6Qjp#GE>aCVAT)Rjl;!-&FaD]boTO*^<
-k2q9&k1@;QKBD;mk2o69/&LEQli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK2q/I!I0>XHS$Z:ood\XK4P`X8kBXX=R&7O!\dgEic@?6*..jChBcM9mh>6
-@'!dlXH$J=@]ZXnXK4OcNHLDcWh?E6X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP+1rSXD=bg:EiGA_OY3g=f7"g&OhAg+6[O[P3Z*OkSO<;VKiEM1OC7@@`sW
-HJ3_Hg9bn#I+m:Jg=f6SZBVoRf?;gfg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGXQC%.VP6$.k/=-oCZ`KUk2oM>joA6Qjt(,k^bV.FRHEYh=6AXhObi/^Au;H"
-J`_Qkk.Z,IKBD;mk2oM&]Uct&j4<;4jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(XK3+>A6^("W$Ptb>-)0gTnO_PQXh=QqQ('q/8_IJDldV_A6>/sX<'L*XFMO+
-P@,bK3)4!^>*`9$A8&'.,@k=ELocR9QcQ64]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+A/Irus(eLuE%EnYn+c)<2$^jdneqUu=t3/ZE[N7rr7IrN.$g)`rAg7p3K
-\p6&\87R-`EkZIAItZOe/:W.>XP0r[^rY46ir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC4AL3k/>iA-.BGijWHfWd*Eb(_R+qW8164-AYuPidmYL3CZ;jrR@]k,^4j
-`IKe"9PK6!H-(5aL5Y3408>3S[cY4&b/i]Lli5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK2T"KTD=ZX8[b[UTBE-VNun*TS.uPqQ(%"KT<.,SueuGKU)M;#*Q'hP_=^]
-qLf*AXHeHlWiVfjKES*P3_uZpX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP*j'VmX+Gg&@lWcJ#P$d_;WubGV8;qUu;&VmP1$aP,:EVnN&_#.`IA];MRJ
-qPOS8g:aD^f\4FFVZb?"8n?Gmg'6R:hV*_4o)%,GbCT*H^@9fAJ,~>
-#$LBV\^d1YJ`_OGXQB]>YeS,njo2Ilg#foNhT2qJf!)BaqW8.>YeK8Ne)o_qYfH_)#/fTc`NZSq
-qQL4Kk/X^1jQ=qiYQW_C:28\-jp(/Og!tl,nb^iAa+NjD_!p&EJ,~>
-#$LBV\^c7gJZOF(QE1(`r*05=f;nsk`iKBUmap!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/QJ)>fr,i!sf@g4b`nCXVs5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGQKA2(r-SL-fB*'u`o[Kks4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(QE1(dr/1Q<S#ch*map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/QJ)>jr3674S(\)+s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGQKA2-r42mGS)sq@s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(RB-C0cE%"er2]m>rN$$pI/U,IR#(^B!fU-)ri?-NTDbhmF]FP&X8m>>X8m>?
-X9,A$>PtQ,]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/RG%Y(cIr8]r7V.6rRq:uSc.7C^o[Lg!jZX1rn7CJao0opP\df-g&R<6g&R<7
-g&flBFSshsir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGRH=L<cK5+qr8n!JrT4.7VZ#WXbI.<2!kWHGroO6_eG\M2S8l@DjoCkJjoCkK
-joXO^HMln0li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(S#c[c=??8Z/<qVIX>_f5OZYa3Uj",.XDK86MEFS6XB@,3Eic?0/Ycr)L4gj8
-4=lJnJS4q_!H!2_X9,A+NrH*]VG*``X9,/S8,fRjTLf$_!h<bBri?-Y?2^i*GB!P_!iqMBr2^+6
-map!Ee+*=c#KMJckJ6T@6@]~>
-#$LBV\D!1KJ_G\/S([qgDbBiZ/A3i8g."3X\4fS>d$HDNg57PXY=r?Xg2T,>OP8Df3R371WMhID
-9K9B4UP&O!!K3HHg&flK[/Sb\dpUH"g&fR'>5m4Vb$=o!!lfYQrn7CWG5^+qQ]D(!!nk.Pr7VA7
-s5)Iaddm:h#Kq\dlFuc@6%A~>
-#$LBV\^d1YJ`_OGS)se)F\_bp/B9YIk"7l"_GF'Vgn-?nk)qL#\PQo#k'&pWR-*O64P>TIZ`u8^
-:clAQXGZu=!Ks8XjoXRi^Ad6rhIbF>joX8H?N0'feRAF=!mu[kroO6mI/W1.TU,T>!p.Bkr8n4L
-s4PqXe+*=c#KMJckJ6T@6@]~>
-#$LBV\^c7gJZOF(XK3)#9hgJGXGKYG=KGkX>>:inQB46(X:.d"L3[]r>cb#b?*$0fX9h"jXDV1%
-XK5icri?Ta@]ZXnXK4OcXC-jcNEc@_!HrM^X8u[brN$#jT`(qmTh#'_!'L1\!HWA^X9"\arN$$O
-B)J_14T)8b]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+?$@UcLog9"gnDq]K.FCNPL^:-f2g'hD&WgSgNFkYQRG1oXhg'LI,g5L!Y
-g=gnSrn7j^I+m:Jg=f6Sg3TjSZ?6'!!L8fGg&ZH$rRq9VbPg,qbZau!!)3=E!Kr]Hg&]$$rRq:J
-K)F=&9`3TKir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC2;B4n^9k-nu9Fln4PH=tpnaMC^JjpYj=Z_E\rHfjJ%I-+9)jp=lHk*1))
-k2q9&roO]sKBD;mk2oM&k('o&]R'P=!M,YWjoKt@rT4,gf)=_3fO"O=!)WUU!LfPXjoN\@rT4-_
-M>ZK9;#KG[li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK2q>S!ugFW'm,E<31fqNLNB9X8kBXX9M@F?[$F.G5eQR4KO9GXAtIcT1ONH
-XK5icri?Wb@]ZXnXK4I64J\pWPZap`X9!rbrN$$?G5\KC@>Ff_!MN$^X8u+brN$$@FT/?CSPu?`
-X9+>eWr9"!4T)8b]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+20`5G^-eQ9]-C>,[7ZG]lEg&OhAg'1uUGaFANQN#SK9\QLng2+@Sb$:Wo
-g=gnSrn7m_I+m:Jg=f,o:!hGE]Pu@!g&\($rRq:6Q2TD;H`R,!!R+aGg&Ya#rRq:8PlBA<a(`p"
-g&eR(fDXD'9`3TKir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC%Ccd,hTiEOXSE9=JT]['m_joA6Qjp#FnJ"MsmT)Rj_;!,-:k&SE&eR>J:
-k2q9&roO`tKBD;mk2oC?;;C-m`cp>>joMZ@rT4-JT)IdPJ[PI=!SC`WjoK5@rT4-LSGqXPdVmn>
-joW/Dj8J*?;#KG[li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK2qs7Re;pW`hk]PcU!KXK4P`X8kBXX9M@f7<!0bG5eQ_4KP2ULfgOUGV)B*
-XK5icXI=Kj@]ZXnXK4Bn.fQLNR9-3`X9"8brN$$KCAk47E-M8^!MN$^X8uRbrN$$@FT/?CTN.W`
-X9+SgW;Wdt4T)8b]'e2#LXYejeHa-In)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+2s=BH`sfQ((r]@sc4g=f7"g&OhAg'2!)=,r6$QN#SX9\R[+X`2_BQoS7o
-g=gnSg;BG\I+m:Jg=f)L2?);2_J[^!g&\I$rRq:FLAfg,O-fh!!R+aGg&Z<$rRq:8PlBA<bA56!
-g&ej*ec"2%9`3TKir@lhL=5Yig'>fPmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC&4?!SZ5jEY$:`ob-[k2oM>joA6Qjp#GE>aCVAT)Rjl;!->L[W^NiTKQR-
-k2q9&k0Bg0KBD;mk2o<n3<&%Ac#h_>joN)@rT4-[NW%u?QD"3=!SC`WjoKhArT4-LSGqXPeoB4=
-joWJFiVhm=;#KG[li5YgLXYejeHa-In)qLUg-U;~>
-#$LBV\^c7gJZOF(XK2ptU6I+*X,3RF5cg)LXK4P`X8kBXX=Hu6V@RTtAZVu!;66j9@<\fS5GFmB
-8ZZ?UXH$J=@]ZXnXK4OcVIYRcNEc@_!HrM^X8u[brN$#jT`(qmTh#'_!'L1\!HWA^X9"\arN$$O
-B)J_14T)8b]'e2#LXYJa]a(lrn)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+1^cFc!afr`QF;;/Ntg=f7"g&OhAg+-UNdh@\:JD/_lBA2'sH^<C>:sRA*
-?.sY+g9bn#I+m:Jg=f6SdXSISZ?6'!!L8fGg&ZH$rRq9VbPg,qbZau!!)3=E!Kr]Hg&]$$rRq:J
-K)F=&9`3TKir@lhL=5>`^^%8umcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC$nfu>u0jL<gq<T_/?k2oM>joA6Qjst&jh@u3XM!!jAD<BuDJtM2f<S?'P
[email protected],IKBD;mk2oM&hM/Q&]R'P=!M,YWjoKt@rT4,gf)=_3fO"O=!)WUU!LfPXjoN\@rT4-_
-M>ZK9;#KG[li5YgLXYJa]a(lrn)qLUg-U;~>
-#$LBV\^c7gJZOF(XK3+M5"mD6W#%W]C90uKS8]6nN'8"CqQ('i*)s":DleIQ5#\'PX;sF)XD&G6
-L-$59,;DA<>+SYV5(BYf(-Xo,LocS?rN$$CErE'??]"`_!D&m^X9#"brN#u]r2]p?FT/?BQr![^
-!J4q]X8kB\X9Q9(f@>Z*U%s<En)qLUg-U;~>
-#$LBV\D!1KJ_G\/XP+AC:LGu*eK%F]L>#o]`Jkh1Z;2E<qUu=j,APqEN7t"%:MIoLg)Wl@g4^JA
-WCn=//3ZiqEli#k:SHLA)c'6\XP0t%rRq:;Oo<u7Gcq#!!F*bGg&]E$rRq6Fr7V17PlBA;_.ET!
-!Mk>Fg&OhEg'6R:hV*_4TD=$AmcqOUfg1,~>
-#$LBV\^d1YJ`_OGXQC4V;e7k<i?(usNTO\"d$5WO]2K_OqW81,-#i!_Pif#F;f:+ajrI:\k)CB[
-ZVM]B00rN)H.6b2;l\uc*E,lh[cY5KrT4-ORJl7KJ%,C=!FXLWjoO+@rT4)Vr8n$KSGqXOb\I+=
-!Nh4VjoA6Ujp(/Og!tl,U%s<En)qLUg-U;~>
-#$LBV\^c7gJZOF(XK2T+WiE,#XT#7"XT,:'XK/A%X8]-pXT,:*XK/D'XK&;$rN$4(XK8J&WiPur
-#HOr,WiE/%X8T'uX9!<arN$$/LAn7UVHK2`X9,"kV#IFsQYT+jX9"AbrN$'U9m$B9!I8S]X9!'b
-ri?1$E\.-i"hO-ReVCX/dKTI0_!p&EJ,~>
-#$LBV\D!1KJ_G\/XP*^.fDaD&gA]\0g"P*1g=b*2g&BV"g'ZNbf\5$3g=k01f_sM.f\5'3f@S^P
-f*C!_f[na/g=cGV"52CiQMoM<IB!5"!n2/&rn7FqB@-Y3!l'Oprn7C\E;eJlXC7@mg&[Y$rRq:-
-TDmOGfTA/kg'-L9hV*^ppsoWFlFuc@6%A~>
-#$LBV\^d1YJ`_OGXQBQFj8S*>k5OBHjlYXak2bRajo4<:jpL51jQ>Rck2t^ajSe3FjQ>Ucj5]7t
-is4].jQ#:_k2lR%"6J[4T)IdPK<tR>!oA.AroO:3D;5'P!m6R1roO6rGQ$Y*[:c$/joM3@rT4-@
-W;bo\jI&+-jot)Ng!tkepsK?AkJ6T@6@]~>
-#$LBV\^c7gJZOF(QE1(^r&asXf;nt/r2]mTrN$$tNr?$[T9]AV!gn.iri?-_V#@@rMKYHfX8n+T
-X8n+UX9,DFHMjiK]'e2#LUR6[rWi>Ko]O$Zg-U;~>
-#$LBV\D!1KJ_G\/QJ)>br(I*)f@g5,r7V.QrRq;$[/J\Zb.[c-!l:/,rn7C_ci)Q!Y*Hs)g&S8Q
-g&S8Rg&folRf(kDir@lhL:@3[rWi>Jo]j0[fg1,~>
-#$LBV\^d1YJ`_OGQKA2%r(mB3fB*(Br8n!grT4.<^A[0pe]@^[email protected]\p79\=LqEjoDmg
-joDmhjoXV7U\s6Yli5YgLUR6[rWi>Ko]O$Zg-U;~>
-#$LBV\^c7gJZOF(JZPiP#J0?TeVC*km/5B=P+hU4_!p&EJ,~>
-#$LBV\D!1KJ_G\/J_I*W#NGd?g4lZsn,1lEOe_[9^@9fAJ,~>
-#$LBV\^d1YJ`_OGJ``ro#ODECeVC*km/5B=P+hU4_!p&EJ,~>
-#$LBV\^c7gJZOF(JZPiP#eKHUeVC*Or7Cqu#e>u'p?06\g-U;~>
-#$LBV\D!1KJ_G\/J_I*W#ibm@g4lZYr7q;*#eQ),pZfK^fg1,~>
-#$LBV\^d1YJ`_OGJ``ro#j_NDeVC*Or7Cqu#e>u'p?06\g-U;~>
-#$LBV\^c7gJZOF(JZPiP'Y<_aeVC*:lgNBSd@?c@p?06\g-U;~>
-#$LBV\D!1KJ_G\/J_I*W']T/Lg4lZFm.&f`eXW5JpZfK^fg1,~>
-#$LBV\^d1YJ`_OGJ``ro'^PePeVC*:lgNBSd@?c@p?06\g-U;~>
-#$LBV\^c7gJZOF(JZPiP'Y<_aeVC*:ansrF`.kY4p?06\g-U;~>
-#$LBV\D!1KJ_G\/J_I*W']T/Lg4lZFc2?STaG%.@pZfK^fg1,~>
-#$LBV\^d1YJ`_OGJ``ro'^PePeVC*:ansrF`.kY4p?06\g-U;~>
-#$LBV\^c7gJZOF(JZPiP'Y<_aeVC*:^?k7;Q(Pb'p?06\g-U;~>
-#$LBV\D!1KJ_G\/J_I*W']T/Lg4lZF_sQpHQ(Z"2pZfK^fg1,~>
-#$LBV\^d1YJ`_OGJ``ro'^PePeVC*:^?k7;Q(Pb'p?06\g-U;~>
-#$LBV\^c7gJZOF(JZPiP'Y<_aeVC*:^!c\[N46L6p?06\g-U;~>
-#$LBV\D!1KJ_G\/J_I*W']T/Lg4lZF_UeLfMnHpDpZfK^fg1,~>
-#$LBV\^d1YJ`_OGJ``ro'^PePeVC*:^!c\[N46L6p?06\g-U;~>
-#$LBV\^c7gJZOF(JZPiP"hO-ReVC+&]`R5HT)QD,p?06\g-U;~>
-#$LBV\D!1KJ_G\/J_I*W"lfR=g4l[-_?/eLTDl\2pZfK^fg1,~>
-#$LBV\^d1YJ`_OGJ``ro"mc3AeVC+&]`R5HT)QD,p?06\g-U;~>
-#$LBV\^c7mJ\$EDJ\%hl"i]o]eVC+&]`Pp(Zi7WAp?06\g-U;~>
-#$LBV\D!1OJ`;7?J`<Zg"mH!Cg4l[,_?#G$rk\j5lFuc@6%A~>
-#$LBV\^d1[Ja7mQJa9<$"n2KEeVC+&]`Pp(Zi7WAp?06\g-U;~>
-#$LBV\^cVbJaS*WJaTH("4u(Y_#E<oi7%Ya"oIJunCg3Z~>
-#$LBV\D!M5JcC<$JcDYJ"5_ad_>`Krimdqf"oIT!nC^*X~>
-#$LBV\^dM:JcC<$JcDYJ"524[_#E<oi7%Ya"oIJunCg3Z~>
-"^19U\^f#Wf7DP)f;@1"eH*#Gp[eUK_!p&EJ,~>
-"^19U\D#JahLXO7hPT00g&\PMp\"aP^@9fAJ,~>
-"^19U\^f)Yfn%h-fr!I&eH*#Gp[eUK_!p&EJ,~>
-"'P'S\Ui:^eUc89eH<VVg-U;~>
-"'P'S\:N@bg4@tCg&o(Yfg1,~>
-"'P'S\Ui:^eUc89eH<VVg-U;~>
-"Bk0T\[-jBJVSf3V2#&Wo@3rYnCg3Z~>
-"Bk0T\@$mAJVAZ/V1eoUo@a;\nC^*X~>
-"Bk0T\[-jBJVSf3V2#&Wo@3rYnCg3Z~>
-"^19U\ZptdVuis:`duTidt,u\dfHr+q5=>0nFP04_!p&EJ,~>
-"^19U\?gtcWr^/ZJ^T+tJ^V3Z!P-VRWr^',o@a;\nC^*X~>
-"^19U\ZptdVuis:`duTidt,u\dfHr+q5=>0nFP04_!p&EJ,~>
-"\,r'Q*H8E]`lU<igB'-Jan<]JapMF#3_c/s8V!!r4N-jo^gT8S@G1AJ,~>
-"\?50Qa;SH_?J9GigK31Jb"B_Jb$SH#3hc2s8V*(r5&Kqp@Hu?T=ppKJ,~>
-"]3XiYHa#_]`lU<igB'-Jan<]JapMF#3_c/s8V!!r4N-jo^gT8[ahZ6J,~>
-"Y=h;>Hs+c]a2?fkP"SDR-X0keUc8%e\BW?]n=c4iqE',_#D"Jiq2im"(#V5&:a~>
-"YbLUA[@9n_?e&tl1anHR-jBog4@t/g:u>I^k()9jnJK3`;[USjS&3!")2jY&qB~>
-"[ff-U9TXU]a2?fkP"SDR-X0keUc8%e\BW?]n=c4iqE',_#D"Jiq2im"/W>h,_,~>
-&MS*3=0[[s]uo74nDDcgR-X0keUc8%e\BWD]n=c4e^`UJs5(l2iq2im"(?4P(Ou~>
-&N"lT@^Cs/_Tq0@o&JGrR-jBog4@t/g:u>N^k()9g=kWYs5;/=jS&3!")NI!)Lq~>
-&Oj7;U9TWi]uo74nDDcgR-X0keUc8%e\BWD]n=c4e^`UJs5(l2iq2im"/`]11k5~>
-&MS*3=0[Xmh!k!pf%&<CR-X0keUc8%e\BW:]n=c4rm_5(i:ZHji:QWk"(?4P(Ou~>
-&N"lT@^Cp)hXU@$gY1ARR-jBog4@t/g:u>D^k()9rn7S2jS%rqiqDut")NI!)Lq~>
-&Oj7;U9TTch!k!pf%&<CR-X0keUc8%e\BW:]n=c4rm_5(i:ZHji:QWk"/`]11k5~>
-#r$7+=0[LMLRbsSeH;G2lgB>SJ^o>%^XWG"[email protected]"feH96#=;QJ~>
-#rI$L@^CcZL7GpTg&mt7mI5\\J_G\/^Y/e*J_'hug'"^4LXc%hg&l/@Af?1~>
-#t;D3U9THCLRbsSeH;G2lgB>SJ^o>%^XWG"[email protected]"feH;\\W\f5~>
-&MS*3=0[[sZCHo>`mN>/R-X0keUc8%e\BWD]n=c4e^`'cQ&M<@iq2im"(?4P(Ou~>
-&N"lT@^Cs/[[iABb1>:=R-jBog4@t/g:u>N^k()9g=k)uQ&D9DjS&3!")NI!)Lq~>
-&Oj7;U9TWiZCHo>`mN>/R-X0keUc8%e\BWD]n=c4e^`'cQ&M<@iq2im"/`]11k5~>
-"Yah'=0[\_]a2'=Kq5fIR-X0keUc8%e\BWD]n=c4e[_3)T=;MIiq2im"(?4P(Ou~>
-"Z1UH@^Csk_?d`GKV#lLR-jBog4@t/g:u>N^k()9g:Nl/TY/.YjS&3!")NI!)Lq~>
-"\#u/U9TXU]a2'=Kq5fIR-X0keUc8%e\BWD]n=c4e[_3)T=;MIiq2im"/`]11k5~>
-"Yah'=0[\]]`tj6Nej(gl%-m+a+;:G`s8r'deo8gS[A@/!TNbCeH96#=;QJ~>
-"Z1UH@^Csi_?RK>NeWqgl@I-0bCRjOb6PG+f)1YiT"+a9!T`tGg&l/@Af?1~>
-"\#u/U9TXS]`tj6Nej(gl%-m+a+;:G`s8r'deo8gS[A@/!TNbCeH;\\W\f5~>
-"Yah'=0[\[]`b^9R-:H!K7SZ+K=up;dK-&Lqn3$io^gT8@<,HdJ,~>
-"Z1UH@^Csg_?@BDR-LN!JUrB'J\?U:f$U8'qn`Bpp@Hu?Ck$%8J,~>
-"\#u/U9TXQ]`b^9R-:H!K7SZ+K=up;dK-&Lqn3$io^gT8VRribJ,~>
-"Yah'=0\Rrp&X^]Ja\0YJa^8?!VuB`p&Y'_o@3qOE`a-.~>
-"Z1UH@^Dg(pAsg^JaS*WJaU2=!VuB`pAt0bo@a:_IqBUL~>
-"\#u/U9UNhp&X^]Ja\0YJa^8?!VuB`p&Y'_o@3r?];d]<~>
-"Yah'=2isGkCMfIkGIDBj7Ce'@<,HdJ,~>
-"Z1UH@`dJXl@J5OlDEhHk4@:/Ck$%8J,~>
-"\#u/U;bo=kCMfIkGIDBj7Ce'VRribJ,~>
-">+@t?X*>7!FD:I^k':P^oP6OVeGj6"*.mG4Fd~>
-">Y.?DJ&]\!GS0W^4F"L^8nsKWcRrO"+P>p5C`~>
-"@fN#Z)%2m!N!5U^k':P^oP6O^9.1-"1bh-;1J~>
-"<q2^@VPXY!GAron:C([n>l$Zc$K/*"(PdnVLS~>
-">"/)EHh5.!Hc#+n:C([n>l$Zd>%FG"*/B?VLS~>
-"@n9T[(#kC!OL=-n:C([n>l$ZiP,*!"1>LLVLS~>
-"#h>U:&%fk;5JitJ_G\/X4dTcAGB7/9eV%oJ,~>
-"%+Iq>52\1?E&M/J_>V-X4[NfEVO,J=uV$0J,~>
-"*$Y@RJ<c_UV_T9J_G\/X4dU%Z1t=$R:q<OJ,~>
-s"sg$)YY$J1P%lD6@hJ(630"`p_O#pVYgCD~>
-"%5L-+86ZR1k@rD6%M>&5liqdp_j6!VYgCD~>
-")i0L3qkH24b5qN6@hJ(630A2pbW(MVYgCD~>
-%%EndData
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/lib/et/doc/src/megaco_filter.gif b/lib/et/doc/src/megaco_filter.gif
deleted file mode 100644
index bd03929b4c..0000000000
--- a/lib/et/doc/src/megaco_filter.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/megaco_filter.png b/lib/et/doc/src/megaco_filter.png
new file mode 100644
index 0000000000..cdea3a147e
--- /dev/null
+++ b/lib/et/doc/src/megaco_filter.png
Binary files differ
diff --git a/lib/et/doc/src/megaco_filter.ps b/lib/et/doc/src/megaco_filter.ps
deleted file mode 100644
index 19a1fc6bd1..0000000000
--- a/lib/et/doc/src/megaco_filter.ps
+++ /dev/null
@@ -1,1733 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner
-%%Title: /home/hakan/picts/megaco_filter.ps
-%%CreationDate: Mon Oct 14 17:46:21 2002
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 469 306
-%%EndComments
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-10 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.173228 14.173228 translate
-% Translate to begin of first scanline
-0.000000 290.927657 translate
-453.947466 -290.927657 scale
-% Image geometry
-543 348 8
-% Transformation matrix
-[ 543 0 0 348 0 0 ]
-% Strings to hold RGB-samples per scanline
-/rstr 543 string def
-/gstr 543 string def
-/bstr 543 string def
-{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
-true 3
-%%BeginData: 99787 ASCII Bytes
-colorimage
-!AQV60nB=U!.b-$!:0^c3<Coq0n9~>
-r'Z)9JH16$JH5$:r'Z&~>
-"DW"!C3+q+JH16$JH5$:r,[A~>
-r]0uYnc&U&JcC<$JcE7[!56GQrr<*T3B;T~>
-r^?bdnc&U'JcC<$JcE7[!5?MRrrE$dJ,~>
-rcA)>nc&U&JcC<$JcE7[!56GQrr<+8F)uj~>
-s"OQTs8VWG!53s6J^o>%\CCSma56ja!WXr0J,~>
-s$Qngs8VWC!5=$8J_#D'\CLYoa4gR]!WYVVJ,~>
-s)S5As8VWG!53s6J^o>%\CCSma56ja!W[:VJ,~>
-!]^8\n(n&XJ^o>%J^q9\!56A.!lY."J,~>
-!^m%gn(IcUJ_#D'J_%?^!5?G+!l=q*J,~>
-!cnAAn(n&XJ^o>%J^q9\!56A.!lY.\J,~>
-!\j]Tn(n&XJ^sYJ!6(hc!6'N>S(.MP`SL[8!',Q~>
-!^m%gn(IcUJ_'_L!QrigecEqAJ_$@B!5?G+!l=q*J,~>
-!cnAAn(n&XJ^sYJ!6(hc!6'N>S(.MP`SL[8!-<Y~>
-!<E/fh>k6dec1lieHNpfe\-<VrfmH5!J>a&eH3F2HiB90eH(;LnC7Q8]n+_AeH!;GhY3Q5hZ',E
-hZ',Dh>s\XJ,~>
-!<E/fg&Sjaf)LlgedTEhf"Q]`R?<W_eq&CUed9'AI@64[f%,D'nC@W6^4FkCec<GIg@q$.gAdT>
-gAdT=g&\>VJ,~>
-!<E/fh>k6dec1lieHNpfe\-<VrfmH5!J>a&eH3F2HiB90eH(;LnC7Q8]n+_AeH!;GhY3Q5hZ',E
-hZ',Dh>s\XJ,~>
-!<E/thZ',ChZ',Eh>k7]eH*Y&iRItJ^$sPQ`P(Qes-2Bj&]K+(eVedneWc<KeUr5!e]#5.eI@F`
-`RU3;e^];!e^_XPo[O#MHc:Qd[abAkkMGs'p>5b<s5*^ErS@RV!.Y~>
-!<E/tf)M08f)M0:ec<GVdK.4niR.bD[d_]G_RAaXs,l0d&]0+-dZ&[pcB47;dXcttd_`H!dLD1a
-`m0^/daE\tdaH"@o[3fLID19\[aG/ikLTBqp=B21s47.:rRM"P!.Y~>
-!<E/thZ',ChZ',Eh>k7]eH*Y&iRItJ^$sPQ`P(Qes-2Bj&]K+(eVedneWc<KeUr5!e]#5.eI@F`
-`RU3;e^];!e^_XPo[O#MHc:Qd[abAkkMGs'p>5b<s5*^ErS@RV!.Y~>
-!<E/uhYiuChYiuDh>k7]eH(;LiRIs]HgoPdK6tSf"cJVqeUr5GeHLSPe^];!Zdf)/Hi)=sK6u/!
-K7!4?!L/Lne[F!.^$"8HSG(h6SGh:FX8mb~>
-!<E/uf);$8f);$9ec<GVdf4mWdf4mfdf4m;dKPJmdaE\tqpPLqs3gpuZdSl)qpPLqs3gpuo?mZ)
-M1O*`dK%#Ef(YU+f(YU2ecDoRJ,~>
-!<E/uhYiuChYiuDh>k7]eH(;LiRIs]HgoPdK6tSf"cJVqeUr5GeHLSPe^];!Zdf)/Hi)=sK6u/!
-K7!4?!L/Lne[F!.^$"8HSG(h6SGh:FX8mb~>
-!<E/uhY`oDhY`oCh>k7deHX!NH\8]UV#G]@`VS*mXG_FPMp9eRMgLA`rmh%,"hfP8[+1uOHiM%o
-MgL)`e^]S9]n:[=eYN1ks2>,!H[CCYqUHs`HbIt[XFo&UHe$ZcMgL)`eZ=,:eXV!*eXWGc`J](q
-[+3]bMl_j8eHER4^"&YPHO.lKHe$Z!He"qkHiM%nMgL)`e^]S9XGbV]Hi)@nM\<^UHaL/4HaM>R
-`J](q[+3^GPl5qCe]!c"H],kneZ=[UH]-/!XG_F`XSC<GSGmj@c%CAneUr5!V#G`@`=7`PK='1Z
-Mi4Zpe\-=CJ^q6[!57RPpRLp5q4.B>!NZ9O~>
-!<E/uf)1s9f)1s8ec<G]dK[RNI>+uTU&KH?_YV[gY).RTM9=8LM1(5`rmLh+"hKD=ZI5HGIK..n
-OaVqhdaF,7\qP^@d\6Ygs2"o$JUN6\qU-aZICdkTV1m?KJ^Vu`OaVqhd].`4d[>O#d[?fW_NB8#
-ZI70\NMVX5dKI.0]$d#GI0duHJ^VttJ^U7kIK..mOaVqhdaF,7V2`oSJc!mqN=r[RJZcG8J[3_P
-_NB8#ZI71<Oo9\Bd`.E#I>tthd]SFTI>Q+pY).R`Y5$EFRJqU?b(5,ldXcttU&KK?_@;WUKsK.T
-NK'cod^FS8J^V$U!5@XIpR1^*q3h03!NlEQ~>
-!<E/uhY`oDhY`oCh>k7deHX!NH\8]UV#G]@`VS*mXG_FPMp9eRMgLA`rmh%,"hfP8[+1uOHiM%o
-MgL)`e^]S9]n:[=eYN1ks2>,!H[CCYqUHs`HbIt[XFo&UHe$ZcMgL)`eZ=,:eXV!*eXWGc`J](q
-[+3]bMl_j8eHER4^"&YPHO.lKHe$Z!He"qkHiM%nMgL)`e^]S9XGbV]Hi)@nM\<^UHaL/4HaM>R
-`J](q[+3^GPl5qCe]!c"H],kneZ=[UH]-/!XG_F`XSC<GSGmj@c%CAneUr5!V#G`@`=7`PK='1Z
-Mi4Zpe\-=CJ^q6[!57RPpRLp5q4.B>!NZ9O~>
-!<E/teb>U4eH!;\bmMFBK>!Lr`Pm1N^&#u1UjJ$,[%t[BH^)4.H`YK:K6rNHH\9S^H[EHFK7gk%
-Hc=6^H]+D@K?_A^HbI[^HaLJn^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifVP^CBo
-K6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO/q\M/S9oU@S9on5`IifV
-P^CBoK7h.fK6tkVXM(ufMp8&EMmTje`N4EN]p*lFq9:##H[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^
-H]+]E`I",+c*tpt^$!oGSGC\8SFkA/SGUh;X8mb~>
-!<E/tdeB1.dK%#Zc3h^FKt<Ot`l<RX_YVP7V1"3+[]7?II?hO3IB(T<JUNBKI>,tdJUPDTJVC\#
-IE'Q`I>OYGL!I\hIDX9dIC?ku^A?,&[XFRhcAACCJUu+hJVC\#IE&jHWm6<HWm61(b(58XQ$pZt
-JUNBOrQZU\IE'RPJUPD\JUu+lJUu+dJUPDTJVC\#IE'Q`I>OfGM2D,T/qJG1Tm_?KTm_X?b(58X
-Q$pZpJVCtdKmh7\Y.h>mM9_rGM6aRi`i=HP^6O,Hq9C)%JUPD\JUu+lJUu+dJUPDTJVC\#IE'Q`
-I>OfG`dOP3cF;(!^?<oERJG82RInr)RJYD5XoNt~>
-!<E/teb>U4eH!;\bmMFBK>!Lr`Pm1N^&#u1UjJ$,[%t[BH^)4.H`YK:K6rNHH\9S^H[EHFK7gk%
-Hc=6^H]+D@K?_A^HbI[^HaLJn^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifVP^CBo
-K6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO/q\M/S9oU@S9on5`IifV
-P^CBoK7h.fK6tkVXM(ufMp8&EMmTje`N4EN]p*lFq9:##H[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^
-H]+]E`I",+c*tpt^$!oGSGC\8SFkA/SGUh;X8mb~>
-!<E/sebPa5eH!;\bmCIuSB\-^XNcBEq98tnHc>s..t`2fc,G$^c-:lf`Q`aVc-:lfc)c8^c)c8n
-c%CA^c$Of^c%CAfc&6q=^%]bsK6tkVHc=6^Hd/X=SB\-^XNc*V`I!6%]mJ#*H^r?^H`YJEHi)%g
-P^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%nK7!=:(k[1Sc$OfVc$Of^XF$J^XF%%MH^r@*K7!UB
-#K=B/K?]$q`Vn$cK6tS^`I!74bnu([c-:lfc-:lfc-:lfc)c8^c)c8nc%CBAblN0UJ^([K!57RG
-!1`l8!1`]3qjdQ6!NZ9O~>
-!<E/sdeT=/dK%#Zc3^Y%TusNdY0MTLq9B%qIDYs..uA\ocGk9hcH^uh`m0-dcH^ulcE;Shb-$/q
-c@LD`c@LPlc@LPlcA?t?_Y;@UJKr=OIDX9\J^1EHTusNdY0MH\`dNQ/_L9S0IA+fdIBLkHIEMK5
-!L8*4cMrIqcMrIqcMrIqcMrG'cE;Shb-$/qc@LDdpWaV,IEKidIEKidJ^1EHTusNdY-NJHcH_,l
-rltbc^4D!`Kmgi:c3B,R`m2SPM>5BrJcF$qJcF$qJcF$qJIBc+IA+fdIBLkHIEMQ7!I^5acF;(!
-^?<oERJG82RInr)RJYD5XoNt~>
-!<E/sebPa5eH!;\bmCIuSB\-^XNcBEq98tnHc>s..t`2fc,G$^c-:lf`Q`aVc-:lfc)c8^c)c8n
-c%CA^c$Of^c%CAfc&6q=^%]bsK6tkVHc=6^Hd/X=SB\-^XNc*V`I!6%]mJ#*H^r?^H`YJEHi)%g
-P^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%nK7!=:(k[1Sc$OfVc$Of^XF$J^XF%%MH^r@*K7!UB
-#K=B/K?]$q`Vn$cK6tS^`I!74bnu([c-:lfc-:lfc-:lfc)c8^c)c8nc%CBAblN0UJ^([K!57RG
-!1`l8!1`]3qjdQ6!NZ9O~>
-!<E/rebbm6eH!;\blFR;HNU(gK7!F=s*O[gs*Oais*Odj$\NfNc%CAfc%CAfV#5QQUs4O=c-:lf
-c-:lfc-=4lH[C[aq998:H`W`qc-:lfc(t8a$`)%*K<1<%K<1!UV#5QAUs4O=qoo/+HiD8#K6tkf
-K6tkfK6tkfK6tk=r-JOAc%CB:bmT/Nc-:lfc-:lfc(t8as.g0PUs7/:Hd06VK8Y)/c$Og8c2W.i
-c2W.cbn#GRc-:lfc-:lfc-:lfc(t8a"/O1oHi;1iH^'*+\'4odr7(e\q4%Gup=0/5q:,J8p!rl.
-r7(hL!.Y~>
-!<E/rdefI0dK%#Zc2a^=I06=kJV!XBs*agj!J,[ucMr=mcMrIqcMrIqcMrFrcDCGe';a!*J^2Pl
-J^2PlJ^2QXQ$n(?^A6%]SUIZ3NR#h#J^1+iI1)msOb'ZtR>%Z#cDCGe"/X:oJc!^nQ$rYWs+13q
-s+13qs+13qs+(3rV>P`DV9XXCp<N\hs3CXqs3CXq!R@P>IK-,SIA+s3Kmh7XKn553L!G*pr6>=o
-IK%OlIJD+fJcF$qJcF$qJcF$qJH=&mr-\[Dc@LQFc2i?YJ^1aM!5ABZ!4quo!4qmP!1EZ2!1EN.
-q3h0/!NlEQ~>
-!<E/rebbm6eH!;\blFR;HNU(gK7!F=s*O[gs*Oais*Odj$\NfNc%CAfc%CAfV#5QQUs4O=c-:lf
-c-:lfc-=4lH[C[aq998:H`W`qc-:lfc(t8a$`)%*K<1<%K<1!UV#5QAUs4O=qoo/+HiD8#K6tkf
-K6tkfK6tkfK6tk=r-JOAc%CB:bmT/Nc-:lfc-:lfc(t8as.g0PUs7/:Hd06VK8Y)/c$Og8c2W.i
-c2W.cbn#GRc-:lfc-:lfc-:lfc(t8a"/O1oHi;1iH^'*+\'4odr7(e\q4%Gup=0/5q:,J8p!rl.
-r7(hL!.Y~>
-!<E/qebu$7eH!;\blXtnSG^V4K7!F=!eYj5rQQ+1Hc=7KH\9SfK6tkfK6tkfK6tkEH^t#Y$%mTL
-c%CAfc%CBAblbq\H\;.=%)%"GK<3>BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?(8Q;rc-:lf
-c-:lfc-:lfc-:lfc)c8^r657pHhP\nK6tkfK6tkfK6tkEH^t&Z&Zg>Lc-:T^c&6qnc%CYnK6t<1
-bm&fI`QcAKKD<\'K6tkfK6tkfK6tkfK6tkEH^t#Y!J>aublYk2S:SqoblGHTeb>U-eGu-8eGu-5
-eb>U4eH)`OJ,~>
-!<E/qdf#U1dK%#Zc2t.sU&<49JbdRmKmg]6c5)7b`m2SPM9aCtJ^2PlJ^2PlJ^1EHU&<49JcF$q
-JcF$qJc3jr`h@g7q9BD[I>rfXcH^ulcE;Shr6>\DI>t)'I>srGY'm#AcMrImc5*+%`m2k\J^2Pl
-J^2PlJ^2PlJ^1EHU&<49JbIChJcF$qJcF$qJHO3#IA-Vb&[$PMcH:]dcAdCtc@pttKmg]6c3B,R
-`m2SPM>5BrJcF$qJcF$qJcF$qJHO3#IA-Sas+10p!lfY^J^1aM!5ABZpR1a'!1EZ2!1EQ/pR2!.
-!NlEQ~>
-!<E/qebu$7eH!;\blXtnSG^V4K7!F=!eYj5rQQ+1Hc=7KH\9SfK6tkfK6tkfK6tkEH^t#Y$%mTL
-c%CAfc%CBAblbq\H\;.=%)%"GK<3>BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?(8Q;rc-:lf
-c-:lfc-:lfc-:lfc)c8^r657pHhP\nK6tkfK6tkfK6tkEH^t&Z&Zg>Lc-:T^c&6qnc%CYnK6t<1
-bm&fI`QcAKKD<\'K6tkfK6tkfK6tkfK6tkEH^t#Y!J>aublYk2S:SqoblGHTeb>U-eGu-8eGu-5
-eb>U4eH)`OJ,~>
-!<E/pec208eH!;[bmB#LUpR51c%CAMqTUjuH\8E5XMq8fPeE<.XNf"BHd0ffHd0ffHaLbEH_e$M
-[*=5Mc-:lfc-:lf[*>DR]sN-Eprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51c%CB?
-boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWnGK6tkfK6tkfK6tkfK6sE$XL,rn
-H_cRHHd.IqXK6bq]rZR5XM(^SXF$2FP^BM,bnu([c-:lfc-:lfc-:lf[)IZEUpR51c%CBBblY8!
-]n+G;blGHTeb>U-eGu-8eGu-5ebu$<ebu$:eH)`OJ,~>
-!<E/pcMs1*c2bTVapZ4CIAOBTZHA#P[`83e1obtXY-t@IWdU/DQ$oLOb(5,db(5,db)(PT_M*E7
-[]ZpYJUttdJUttdM1)hPTsDD<I>RaA,DCPo`lcGTJ]budIAOBTZHBV(IC?_8IC@;<Kmff+Y-Q3$
-Jc!S1\p^a(b(5,db(5,db(5,db)(PT_M*E7[]ZpYJV!gCs,$Wqs+13ms+13ms+)H<`eAi;[]ZpQ
-I=7fGI=97pIB';qID2_0Ks%ka_Q&$L\s7]?pr`Vfs2t@ms2t@ms2kb,IC@"HIAOBTZH@`LrlP;F
-IC=^L\&n]br6G&%p<EZ'q9Au*p<NW%s3CS.rQYGH!.Y~>
-!<E/pec208eH!;[bmB#LUpR51c%CAMqTUjuH\8E5XMq8fPeE<.XNf"BHd0ffHd0ffHaLbEH_e$M
-[*=5Mc-:lfc-:lf[*>DR]sN-Eprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51c%CB?
-boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWnGK6tkfK6tkfK6tkfK6sE$XL,rn
-H_cRHHd.IqXK6bq]rZR5XM(^SXF$2FP^BM,bnu([c-:lfc-:lfc-:lf[)IZEUpR51c%CBBblY8!
-]n+G;blGHTeb>U-eGu-8eGu-5ebu$<ebu$:eH)`OJ,~>
-!<E/feH!;[bmMFSH[CCHc*W+M^&#t]XG_FPMoErBK6r6Prll^@Hd0ffHd0gBK6t;NP^@b0XNcBE
-c-:lfc-<VJHbGYrH[D!rprrl9H^+NS&VGGTc,GooH\8EEc$Of^c$Og:bm;:QH[CCHc%CB>c2W_%
-bnu([c-:lfc-:lfc-<VJHbIC_H[CCHc%CBBblNHDqop^FHd0ffHd0ffHd0gSP^@b0XNdi!K=$8X
-c*W+MS>:M%c)chMH],kfXFkkPXS9sVK6tkfK6tkfK6tkf["E_=`KY^rK<3=MHiD:iMh0-]blGHT
-eH!;YS,g7reb>U,ec20<ec20;eH)`OJ,~>
-!<E/fc2bTUapQ"NJUN6Tb-HSL])'PWWel.PM8%-/KmeZTrlY7ls2t@ms2l=eJUtDLQ%=@;Y0)<H
-b0#9db0%#@J\%+tI=[ZtprWZ3I?FNOs+13m)8_YiI>+iH`dN9Xb'e]Xb0%SdJUN6Tb(5-?b5[J$
-b5[%mb5[%mb5[%mapbS,J\&^`JUN6Tb(5-Cb5[%ib5[%mb5[%mb5[%mas"WeJUN6Tb-$;LZA!kP
-[Y9.#Tm`?OWel.PM8%-/KmeZTpWEMes2t@ms2t@ms2kbUJUtDLQ%=@;Y0)<HrlY8#J]bFD!5ABV
-!4M]g!4MUHpQbEss-<Q.s-<N-!NlEQ~>
-!<E/feH!;[bmMFSH[CCHc*W+M^&#t]XG_FPMoErBK6r6Prll^@Hd0ffHd0gBK6t;NP^@b0XNcBE
-c-:lfc-<VJHbGYrH[D!rprrl9H^+NS&VGGTc,GooH\8EEc$Of^c$Og:bm;:QH[CCHc%CB>c2W_%
-bnu([c-:lfc-:lfc-<VJHbIC_H[CCHc%CBBblNHDqop^FHd0ffHd0ffHd0gSP^@b0XNdi!K=$8X
-c*W+MS>:M%c)chMH],kfXFkkPXS9sVK6tkfK6tkfK6tkf["E_=`KY^rK<3=MHiD:iMh0-]blGHT
-eH!;YS,g7reb>U,ec20<ec20;eH)`OJ,~>
-!<E/feH!;Qc2)be^!4guHN:b0blYk:XMrEbH\:V.qKi4Uk03t/K>iDd[`nfc`74mi!.Y~>
-!<E/fc2bTKb5-Md]$8CoI/pk/ao]G2V8gXZ`dNR+b5-Md]&q-:We&$<b-oFm^;S:tXoNt~>
-!<E/feH!;Qc2)be^!4guHN:b0blYk:XMrEbH\:V.qKi4Uk03t/K>iDd[`nfc`74mi!.Y~>
-!<E/fblGG.`<+#lUrpX\[$7AfMgLu7`;udJJ]5%9!56=q!NZ9O~>
-!<E/faoK/,`WF/oTut@Z[ZRSiNI@M@`W;dIJ]>+;!5?Co!NlEQ~>
-!<E/fblGG.`<+#lUrpX\[$7AfMgLu7`;udJJ]5%9!56=q!NZ9O~>
-!<E/fblGG.`Q,q$]p+.rK;=(;J]7E'!56=q!NZ9O~>
-!<E/faoK/,`lH(&^6*tpKqX(;J]@K)!5?Co!NlEQ~>
-!<E/fblGG.`Q,q$]p+.rK;=(;J]7E'!56=q!NZ9O~>
-!<E/fblGG.`IZ!Z`ONke]u8.rX8mb~>
-!<E/faoK/,`du-\`jj"g^;S.pXoNt~>
-!<E/fblGG.`IZ!Z`ONke]u8.rX8mb~>
-!!%S&JV/N+JV3$9!!%N~>
-!!%S$JUrB'JUum5!!%N~>
-!!%S&JV/N+JV3$9!!%N~>
-!<E0!joD3.s+13$s+14<rro4uk2s>WJ,~>
-!<E0!joD*+s+13$s+14<rro+rk2s5TJ,~>
-!<E0!joD3.s+13$s+14<rro4uk2s>WJ,~>
-!<E0!joD3.s+13$s+14=rs"+Os5rIW!.Y~>
-!<E0!joD*+s+13$s+14=rs"%Js5rIT!.Y~>
-!<E0!joD3.s+13$s+14=rs"+Os5rIW!.Y~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:A!!:[N!:889!<1OK!!:[N!;tCI!:/25!9Mc2!:SJ6!!^sR!7fU"!.i[OeV)KQ
-K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IF!!:jS!:8G>!<1^P!!:jS!;tRN!:/A:!9Mr7!:SY;!!_-W!8?-,!.ijTg4\2[
-JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:A!!:[N!:889!<1OK!!:[N!;tCI!:/25!9Mc2!:SJ6!!^sR!7fU"!.i[OeV)KQ
-K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!;b7G!:889!<1OK!;Y1F!:889!<1OK!9Vi3!:SJ<!;b7G!<:UL!.i[OeV)KQ
-K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!;bFL!:8G>!<1^P!;Y@K!:8G>!<1^P!9W#8!:SYA!;bFL!<:dQ!.ijTg4\2[
-JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!;b7G!:889!<1OK!;Y1F!:889!<1OK!9Vi3!:SJ<!;b7G!<:UL!.i[OeV)KQ
-K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTuo%!a?rmh#Ks4.&J
-rmgrIs4.,L"4[AOeboLJec,UNeGoU?ec,XJec,UOeGoU"r;clJr;clJrr</O!!(RJ!.i[OeX+hd
-K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<1^P!"7K\!8?-,!87DQg=lK*o%O*Drn@APs4[DO
-rn@;Ns4[JQ"53_TgAM$OgA_-Sg&M-DgA_0OgA_-Tg&M-,r;clOr;clOrr</T!!(aO!.ijTg6^On
-JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTuo%!a?rmh#Ks4.&J
-rmgrIs4.,L"4[AOeboLJec,UNeGoU?ec,XJec,UOeGoU"r;clJr;clJrr</O!!(RJ!.i[OeX+hd
-K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)T?rW)oI
-rrE)Lrr<;S!!(R"!!(RG!<:UL!!(RK!!:[N!;"b@!<(IJ!"[T[!7fU"!7fU"!7fU"!7goGs4.,L
-J^o>%R+;4h"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Ern@AP#20%Wg&M-,rW!/V!!(a,!!)TDrW)oN
-rrE)Qrr<;X!!(a,!!(aL!<:dQ!!(aP!!:jS!;"qE!<(XO!"[c`!8?-,!8?-,!8?-,!8@8Ls4[JQ
-J_G\/R+hRk"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)T?rW)oI
-rrE)Lrr<;S!!(R"!!(RG!<:UL!!(RK!!:[N!;"b@!<(IJ!"[T[!7fU"!7fU"!7fU"!7goGs4.,L
-J^o>%R+;4h"f21\k.LbF~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ebT7WeGoU"!!(R"!!(OL!7fU"!:\P<!<:UL!<:UL
-!;tCI!!(RK!<:UL!;tCI!<:UL!;"b=!#!f^!7_&Le^XX"e^XX"e^XX"ec#RKec#Q"eUc89ec17*
-V#TT>]`<Q~>
-!<E0!joV7Vs8(II!"@Q]!87DQg&M-,g&M-EgA1d\g&M-,!!(a,!!(^Q!8?-,!:\_A!<:dQ!<:dQ
-!;tRN!!(aP!<:dQ!;tRN!<:dQ!;"qB!#!uc!87DQg=cN,g=cN,g=cN,gAV*PgAV)'g4@tCgAc^-
-U&X9;\c@6~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ebT7WeGoU"!!(R"!!(OL!7fU"!:\P<!<:UL!<:UL
-!;tCI!!(RK!<:UL!;tCI!<:UL!;"b=!#!f^!7_&Le^XX"e^XX"e^XX"ec#RKec#Q"eUc89ec17*
-V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo@<j@rmh#K$Io+VeGoU"eGoU"qZ-*8rVurKqZ-ZHqu?fK
-!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<>T!!(R"!!(R"qZ$]J!!)rIrW%N"J^p+;s+:KNs5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!CpT!8@;Mo@j3Ern@AP$JGI[g&M-,g&M-,qZ-*=rVurPqZ-ZMqu?fP
-!!*#PrrDuNrrE)QrrDZErrE#Orr<>Y!!(a,!!(a,qZ$]O!!)rNrW%N'J_HIEs+(?Is5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo@<j@rmh#K$Io+VeGoU"eGoU"qZ-*8rVurKqZ-ZHqu?fK
-!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<>T!!(R"!!(R"qZ$]J!!)rIrW%N"J^p+;s+:KNs5rIW!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Ln(%F<rmh#K%+P=XeGoU"eGoU"!!)K<rrE&Krr<,N!!)rI
-rrE)Lrr<,N!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<DV!!(R"!!(R"!!)rIrrDrHrW%N"J^p.<s+:KN
-s5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!V'V!87DQn(RdArn@AP%,([]g&M-,g&M-,!!)KArrE&Prr<,S!!)rN
-rrE)Qrr<,S!!*#PrrDuNrrE)QrrDZErrE#Orr<D[!!(a,!!(a,!!)rNrrDrMrW%N'J_HLFs+(?I
-s5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Ln(%F<rmh#K%+P=XeGoU"eGoU"!!)K<rrE&Krr<,N!!)rI
-rrE)Lrr<,N!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<DV!!(R"!!(R"!!)rIrrDrHrW%N"J^p.<s+:KN
-s5rIW!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)W@rrE&K
-rr<V\!!(R"!!(OL!7fU"!7_&Lrmh#Ks4.,L#1W\Re^XX"o@<j@rRLoJ#LreSe^XX"ec#RKec,UN
-eGoUKec,XLec,W#eUc8<ec17*V#TT>]`<Q~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Ern@AP#20%Wg&M-,rW!/V!!(a,!!)WErrE&P
-rr<Va!!(a,!!(^Q!8?-,!87DQrn@APs4[JQ#20%Wg=cN,o@j3ErS%8O#MK.Xg=cN,gAV*PgA_-S
-g&M-PgA_0QgA_/(g4@tFgAc^-U&X9;\c@6~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)W@rrE&K
-rr<V\!!(R"!!(OL!7fU"!7_&Lrmh#Ks4.,L#1W\Re^XX"o@<j@rRLoJ#LreSe^XX"ec#RKec,UN
-eGoUKec,XLec,W#eUc8<ec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTun^[O;rmgrIrmguJ
-!7h#JrRLiHs4.,Ls4.,Lo@<j@rRLoJ!n@8Nrmh#Ks4.&Js4.,LrRLiHJ^o>%Qdu+g"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<1^P!"7K\!8?-,!87DQg=lK*n_3m@rn@;Nrn@>O
-!8@AOrS%2Ms4[JQs4[JQo@j3ErS%8O!nmVSrn@APs4[DOs4[JQrS%2MJ_G\/QeMIj"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTun^[O;rmgrIrmguJ
-!7h#JrRLiHs4.,Ls4.,Lo@<j@rRLoJ!n@8Nrmh#Ks4.&Js4.,LrRLiHJ^o>%Qdu+g"f21\k.LbF~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joV7Vs+/mTg4@t/g@EttJH_bIk2s5TJ,~>
-!<E0!joV@Ys+/^OeUc8%eah8jK*A(Nk2s>WJ,~>
-!<E0!joD3.eUc8%eUc9=eHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g4@uGg'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eUc9=eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eUl?>K*Kl%s5rIW!.Y~>
-!<E0!joD*+g4@t/g4J&HJHji%s5rIT!.Y~>
-!<E0!joD3.eUc8%eUl?>K*Kl%s5rIW!.Y~>
-!<E0!joV@/eU_IdC4U,TCAucPK*VG,V#TT>]`<Q~>
-!<E0!joV71g4=g+JUrB-Jc=BlJHu5/U&X9;\c@6~>
-!<E0!joV@/eU`X0Mh-eAMuM8qK*VG,V#TT>]`<Q~>
-!<E0!joV@/eU_IdC4U,UC&m]$ec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!joV71g4=g+JUrB.JH5`LgAca#_>o/`_Z0W?g7eQ/k.1PC~>
-!<E0!joV@/eU`X0Mh-eBMZEeVec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KDW=_s+C0]s8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc!:bs+1$`s8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKDW=_s+C0]s8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc!:cs+,au_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KD`F_s8R`K^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc*Cbs8RZI_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKD`F_s8R`K^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMX8o@#!;rqs!.h5&XI60imf(c:KD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g&Tk*!;tRL!.ijTg6p[ps8LaPJc*CbrrUo*Jc*Cbrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:joFQB!;u!X!.j9`k*bB3s8LRKKD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!joqR2eS8j#qZ-Srq>gPsq>gMrrW)hsquHbuquHAjquHYrq>^MsrW)r!rVur"q>^MsquH#`
-!!)u!!!*#"!!)u!!!%SOJZP<As6fm:s+C9`s8W,Ls+C6_s8N;RV#TT>]`<Q~>
-!<E0!joqI4g4=h/qZ-TKq>gQLq>gNKrW)iLquHcNquHBCquHZKq>^NLrW)rOrVurPq>^NLquH$9
-!!)uO!!*#P!!)uO!!%T(J_HRHs8W)Ps+1-cs8W,Qs+1*bs8N;WU&X9;\c@6~>
-!<E0!joqR2eVf@JqZ-TWq>gQXq>gNWrW)iXquHcZquHBOquHZWq>^NXrW)r[rVur\q>^NXquH$E
-!!)u[!!*#\!!)u[!!%T4J``E`s8W)Ks+C9`s8W,Ls+C6_s8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!)u!#lq'.!3E7%XK2F"X8i7rX8i7tX8i7iX8i7rX8i8!X9/I(
-X8r1"!!*#"!!)u!!!*#"!!)5a!!)u!!!*#"!!)u!!!%SOJZP<As6fm:s+C9`s8W)Ks+C9`s8N;R
-V#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!)uO#lr]5!8?-,g=cQ)g&M-Kg&M-Mg&M-Bg&M-Kg&M-Og&h?/
-g&V')!!*#P!!)uO!!*#P!!)6:!!)uO!!*#P!!)uO!!%T(J_HRHs8W)Ps+1-cs8W)Ps+1-cs8N;W
-U&X9;\c@6~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!)u[#ls,M!9WDDk2l[Ajo>DWjo>DYjo>DNjo>DWjo>D[joYVG
-joG>A!!*#\!!)u[!!*#\!!)6F!!)u[!!*#\!!)u[!!%T4J``E`s8W)Ks+C9`s8W)Ks+C9`s8N;R
-V#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!!)u!#lq'.!3E7%XK2F#X9&C'!;`bs!;iht!:[&i!;W\r!<&u$
-!3E7%r2]kuri?)"rN#u!ri?)"poOJqo;holrN#u!ri?)"rN#u!JZOF(R]QPWrmh%$rk8@3rRLq#
-rOr72#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V')!!*#P!!)uO#lr]5!8?-,g=cQ*g&_9.!;bCL!;kIM!:\\B!;Y=K!<(UR
-!8?-,r7V,Nrn7>PrRq5Orn7>PptG`Jo@a0ErRq5Orn7>PrRq5OJ_G\/RbIfArn@C'rke^8rS%:&
-rPJU7#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!!)u[#ls,M!9WDDk2l[BjoPPF!;bgX!;kmY!:]+N!;YaW!<)$^
-!9WDDr8mtZroO1\rT4([roO1\pu_SVoB$#QrT4([roO1\rT4([J`_OGRcaYMrmh%$rk8@3rRLq#
-rOr72#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!s#F(!;`bs!;`bu!3?1sX8i7tX8i7iX8i7rX9/I(X8r1"!!*#"
-!!)u!!s#F(!;rnu!;NYq!:m5i!<&u!!<&u!!.h5&XI?6jmf(c:KDrRas8:FIKDrRars%#Ls5rIW
-!.Y~>
-!<E0!jp.U6g4=h/g&V')!!*#P!s%'/!;bCL!;bCN!87GLg&M-Mg&M-Bg&M-Kg&h?/g&V')!!*#P
-!!)uO!s%'/!;tON!;P:J!:nkB!<(UO!<(UO!.ijTg7$aqs8LaPJc<Ods8:UNJc<Odrs%2Ns5rIT
-!.Y~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!s%KG!;bgX!;bgZ!9O:Xjo>DYjo>DNjo>DWjoYVGjoG>A!!*#\
-!!)u[!s%KG!;tsZ!;P^V!:o:N!<)$[!<)$[!.j9`k*kH4s8LRKKDrRas8:FIKDrRars%#Ls5rIW
-!.Y~>
-!<E0!jp.^4eS8j#X8r1"!!*#"r;c\q!!)nt!!*#"!!)nt!!)nt!!)Mi!!)hrr;cbs!!*#"!!)u!
-r;cbs!!)5a!!)u!!!*#"!!)u!!!%SOJZP<As6fm:s+C?bs8VuHs+C<as8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V')!!*#Pr;c]J!!)oM!!*#P!!)oM!!)oM!!)NB!!)iKr;ccL!!*#P!!)uO
-r;ccL!!)6:!!)uO!!*#P!!)uO!!%T(J_HRHs8W)Ps+13es8VuMs+10ds8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG>A!!*#\r;c]V!!)oY!!*#\!!)oY!!)oY!!)NN!!)iWr;ccX!!*#\!!)u[
-r;ccX!!)6F!!)u[!!*#\!!)u[!!%T4J``E`s8W)Ks+C?bs8VuHs+C<as8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!s#F(!;`bs!;ikq!;iht!;iht!<&u!!;3Dn!<&u!!<0&%!3E7%
-qlBi!X8r1"!s#F(!;rnu!<&u!!:?if!<&u!!<0&"!<&u!!.h5&XI?6jmf(c:KE&Xbs8(:GKE&Xb
-rs%#Ls5rIW!.Y~>
-!<E0!jp.U6g4=h/g&V')!!*#P!s%'/!;bCL!;kLJ!;kIM!;kIM!<(UO!;5%G!<(UO!<1[S!8?-,
-qq;)Og&V')!s%'/!;tON!<(UO!:AJ?!<(UO!<1[P!<(UO!.ijTg7$aqs8LaPJcEUes8(ILJcEUe
-rs%2Ns5rIT!.Y~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!s%KG!;bgX!;kpV!;kmY!;kmY!<)$[!;5IS!<)$[!<2*_!9WDD
-qrRq[joG>A!s%KG!;tsZ!<)$[!:AnK!<)$[!<2*\!<)$[!.j9`k*kH4s8LRKKE&Xbs8(:GKE&Xb
-rs%#Ls5rIW!.Y~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!!)u!!!)qu!!)qu!!)qu!!)qu!!)nt!!)u!!!)\n!!)u!!!*#"
-!!)u!!!)u!!W];%r2]kurN#u!ri?)"rN#u!mAp9frN#u!ri?)"rN#u!JZOF(R]QPWrmh%$!knX6
-q:5Lts1SI4#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V')!!*#P!!)uO!!)rN!!)rN!!)rN!!)rN!!)oM!!)uO!!)]G!!)uO!!*#P
-!!)uO!!)uO!W^pSr7V,NrRq5Orn7>PrRq5OmFhO?rRq5Orn7>PrRq5OJ_G\/RbIfArn@C'!lG!;
-q:bk"s2+g9#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\
-!!)u[!!)u[!W_?_r8mtZrT4([roO1\rT4([mH+BKrT4([roO1\rT4([J`_OGRcaYMrmh%$!knX6
-q:5Lts1SI4#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!)u!!!)qu!!)qu!!)qu!!)qu!!)nt!!)u!!!)\n!!)u!!!*#"
-!!)u!!!)qu!!)nt!!)u!!!*#"!!)u!!!)u!rrDYl!!)u!!!*#"!!)u!!!%SOJZP<As6fm:s+:Bd
-s8VlEs+:Wks8UWFs5rIW!.Y~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!)uO!!)rN!!)rN!!)rN!!)rN!!)oM!!)uO!!)]G!!)uO!!*#P
-!!)uO!!)rN!!)oM!!)uO!!*#P!!)uO!!)uOrrDZE!!)uO!!*#P!!)uO!!%T(J_HRHs8W)Ps+(6g
-s8VlJs+(Kns8UfHs5rIT!.Y~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\
-!!)u[!!)rZ!!)oY!!)u[!!*#\!!)u[!!)u[rrDZQ!!)u[!!*#\!!)u[!!%T4J``E`s8W)Ks+:Bd
-s8VlEs+:Wks8UWFs5rIW!.Y~>
-!<E0!joqR2eS8j#qZ-Srq>gMrquHbur;Zi!r;cl!quHbuq#L/jq#LGrq>gGp!!)quq>^Msq#LAp
-rrDVkr;cbsr;_DMJZP9@s6fm:s+C@Oon*Ras8UWFs5rIW!.Y~>
-!<E0!joqI4g4=h/qZ-TKq>gNKquHcNr;ZiOr;clOquHcNq#L0Cq#LHKq>gHI!!)rNq>^NLq#LBI
-rrDWDr;ccLr;_E&J_HOGs8W)Ps+14MommFds8UfHs5rIT!.Y~>
-!<E0!joqR2eVf@JqZ-TWq>gNWquHcZr;Zi[r;cl[quHcZq#L0Oq#LHWq>gHU!!)rZq>^NXq#LBU
-rrDWPr;ccXr;_E2J``B_s8W)Ks+C@Oon*Ras8UWFs5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:K)krCKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJH5`AJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKK)krCKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KCJmFeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJai[Dg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKCJmFeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KCf*LKE(u%V#TT>]`<Q~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJb/mJJcGc(U&X9;\c@6~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKCf*LKE(u%V#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXGX(Z!.h5(XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g5=Sa!.ijVgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k)/:$!.j9bk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!joqR2eS8j#quHVqrW)ktqZ-Vsq>^MsquEau!!':*rW)/`!W];%r2fnuJZOL*s6fm:s+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!joqI4g4=h/quHWJrW)lMqZ-WLq>^NLquEbN!!':XrW)09!W^pSr7_/NJ_Gb1s8W)Ps+14M
-p=fOts8N;WU&X9;\c@6~>
-!<E0!joqR2eVf@JquHWVrW)lYqZ-WXq>^NXquEbZ!!':drW)0E!W_?_r9""ZJ`_UIs8W)Ks+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i7pX8i7tX8i8!X8i8"X8i8!X8i8"X8i7!X8i7(X8i7aX9&C'!<&u#!3?0O
-XFmVSmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Ig&M-Mg&M-Og&M-Pg&M-Og&M-Pg&M,Og&M,Vg&M-:g&_9.!<(UQ!87F(
-g4S,Zs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DUjo>DYjo>D[jo>D\jo>D[jo>D\jo>C[jo>Cbjo>DFjoPPF!<)$]!9O94
-k(Dgrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i7qX9&C'!;rnu!<&u!!<0&"!<&u!!<0&"!;NYq!48j*!<'#!!<9/#!<'"t
-!<0)"!!',"!;rqr!;3Gn!<9/#!;rqt!<0)"!!',"!;`bs!<'"u!<9/"!;*>o!3?1tX8i6OXFmVS
-mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Jg&_9.!;tON!<(UO!<1[P!<(UO!<1[P!;P:J!4:JX!<(XO!<:dQ!<(XM
-!<1^P!!(aP!;tRK!;5(G!<:dQ!;tRM!<1^P!!(aP!;bCL!<(XN!<:dP!;+tH!87GMg&M,(g4S,Z
-s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DVjoPPF!;tsZ!<)$[!<2*\!<)$[!<2*\!;P^V!4:nd!<)'[!<;3]!<)'Y
-!<2-\!!)0\!;u!W!;5LS!<;3]!;u!Y!<2-\!!)0\!;bgX!<)'Z!<;3\!;,CT!9O:Yjo>C4k(Dgr
-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i7qX9&C'!;rnu!<&u!!<0&%!3E7%r2]kupoOJqZ`F-,q5ai%X8o?'!3E7%
-rN#u!riH,"ri?)"ri?)"rN#u!oW/2rX8o?'!<0&"!<0&"!<0)"!<0&"!;iht!;rnu!<&u!!;*Aj
-!;rnu!.h5(XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Jg&_9.!;tON!<(UO!<1[S!8?-,r7V,NptG`JZe>BZq:Z)Sg&Tj\!8?-,
-rRq5Orn@APrn7>Prn7>PrRq5Oo\'HKg&Tj\!<1[P!<1[P!<1^P!<1[P!;kIM!;tON!<(UO!;,"C
-!;tON!.ijVgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>DVjoPPF!;tsZ!<)$[!<2*_!9WDDr8mtZpu_SVZfV5fq;qq_joFQ+!9WDD
-rT4([roX4\roO1\roO1\rT4([o]?;WjoFQ+!<2*\!<2*\!<2-\!<2*\!;kmY!;tsZ!<)$[!;,FO
-!;tsZ!.j9bk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i7rX8i8"X8i8!XS`(sXSi.sX8i7!X8i7rXT&:oX8i8"X8i8!X8i8"X8i7h
-XT&:tX8i7uX9/I(X8r1"!!)qu!!)qu!!)u!!!)Vl!W];%qlBbtJZOL*s6fm:s+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Kg&M-Pg&M-OgACsLgAM$Lg&M,Og&M-KgA_0Hg&M-Pg&M-Og&M-Pg&M-A
-gA_0Mg&M-Ng&h?/g&V')!!)rN!!)rN!!)uO!!)WE!W^pSqq;#MJ_Gb1s8W)Ps+14Mp=fOts8N;W
-U&X9;\c@6~>
-!<E0!johL1eVf@bjo>DWjo>D\jo>D[k555Xk5>;Xjo>C[jo>DWk5PGTjo>D\jo>D[jo>D\jo>DM
-k5PGYjo>DZjoYVGjoG>A!!)rZ!!)rZ!!)u[!!)WQ!W_?_qrRkYJ`_UIs8W)Ks+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X8i8"XS`(sX8i8!X8i8"X9/I(X8r1"!!)u!!!'.&!!)hr!!)hrquH_t
-!!)u!!!)u!r;cGj!!)ksq>gPs!!)qu!!)qu!!)nt!s#F(!;!;i!;rnu!.h5(XT._fec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Og&M-PgACsLg&M-Og&M-Pg&h?/g&V')!!)uO!!'.T!!)iK!!)iKquH`M
-!!)uO!!)uOr;cHC!!)lLq>gQL!!)rN!!)rN!!)oM!s%'/!;"qB!;tON!.ijVgAh3PgAca(s7Y1H
-JcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>D[jo>D\k555Xjo>D[jo>D\joYVGjoG>A!!)u[!!'.`!!)iW!!)iWquH`Y
-!!)u[!!)u[r;cHO!!)lXq>gQX!!)rZ!!)rZ!!)oY!s%KG!;#@N!;tsZ!.j9bk5YJ\ec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!'.&!!)hr!!)ks
-!!)u!!!*#"!!)u!!!)hr!!)Ym!!)ks!!)hr!!)qu!!)qu!!)nt!s#F(!:m2m!3?1tX8i6OXFmVS
-mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!'.T!!)iK!!)lL
-!!)uO!!*#P!!)uO!!)iK!!)ZF!!)lL!!)iK!!)rN!!)rN!!)oM!s%'/!:nhF!87GMg&M,(g4S,Z
-s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!'.`!!)iW!!)lX
-!!)u[!!*#\!!)u[!!)iW!!)ZR!!)lX!!)iW!!)rZ!!)rZ!!)oY!s%KG!:o7R!9O:Yjo>C4k(Dgr
-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!)u!rrBC,!!*#"
-!!)u!!!)ks!!*#"rrE&"!!)u!!!*#"!!)u!!!)Ym!!)hr!!)u!"9>O)!!*#"!!)nt!!)ksrrDSj
-!W];%qlBbtJZOL*s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!)uOrrBCZ!!*#P
-!!)uO!!)lL!!*#PrrE&P!!)uO!!*#P!!)uO!!)ZF!!)iK!!)uO"9@00!!*#P!!)oM!!)lLrrDTC
-!W^pSqq;#MJ_Gb1s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)u[rrBCf!!*#\
-!!)u[!!)lX!!*#\rrE&\!!)u[!!*#\!!)u[!!)ZR!!)iW!!)u["9@TH!!*#\!!)oY!!)lXrrDTO
-!W_?_qrRkYJ`_UIs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!joqR2eS8j#q#CDrr;Zi!r;Zi!qZ-Vsq>^Msq#LAprrB@+rW)nur;c_rrW!&%!!',"!<9/"
-!<9.u!;*Ak!;`eq!<0&#!3H/"r2ferqlBbtnZ2clX8r4#quD;LKrk=Brmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!joqI4g4=h/q#CEKr;ZiOr;ZiOqZ-WLq>^NLq#LBIrrB@YrW)oNr;c`KrW!&S!!(aP!<:dP
-!<:dN!;,"D!;bFJ!<1[Q!8@DPr7_&Kqq;#Mn_+$Eg&V**quD<%L"cS,rn@C's8VfHs+14M#25dN
-k2s5TJ,~>
-!<E0!joqR2eVf@Jq#CEWr;Zi[r;Zi[qZ-WXq>^NXq#LBUrrB@erW)oZr;c`WrW!&_!!)0\!<;3\
-!<;3Z!;,FP!;bjV!<2*]!9X7\r9!nWqrRkYn`BlQjoGABquD<1L$&F8rmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johL1eS8iMXLYD4!:Hog!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g:>o;!:JP@!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k.0US!:JtL!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXLYD4!:Hog!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g:>o;!:JP@!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k.0US!:JtL!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXLbM3!:m5i!.h5&XQchdmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g:H#:!:nkB!.ijTg?I>ks8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k.9^R!:o:N!.j9`k3;%.s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSMnsXSW"qXSi.uXSr5!XSr3`X8i7EX8i7rX8i6OXF[J0XT._fec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!jp%O5g4=h/gA1dLgA:mJgAM$NgAV*OgAV)9g&M,sg&M-Kg&M,(g4@u7gAh3PgAca(s7Y1H
-JcG`Sg7eQ/k.1PC~>
-!<E0!jp%X3eVf@Jk5#&Xk5,/Vk5>;Zk5GA[k5G@Ejo>D*jo>DWjo>C4k(2[Ok5YJ\ec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!!*#"!!)u!!!*#"rrE&"rrA4`!!(6E!!)hr!!%SOJZR_0
-s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!!*#P!!)uO!!*#PrrE&PrrA59!!(6s!!)iK!!%T(J_Ju7
-s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!!*#\!!)u[!!*#\rrE&\rrA5E!!(7*!!)iW!!%T4J`bhO
-s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!s#F(!;ii%!3E7%X8o@$!<'#!!33."!!95%!<0(u!<'"s
-!;iks!<0)!!<0)!!<9/!!<0)!!<9/"!;<Ml!<'"s!.h5&XPp8\mf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!s%'/!;kIS!8?-,g&Tk+!<(XO!34cP!!:jS!<1^N!<(XL
-!;kLL!<1^O!<1^O!<:dO!<1^O!<:dP!;>.E!<(XL!.ijTg>Uccs8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!s%KG!;km_!9WDDjoFQC!<)'[!352\!!;9_!<2-Z!<)'X
-!;kpX!<2-[!<2-[!<;3[!<2-[!<;3\!;>RQ!<)'X!.j9`k2GJ&s8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8juX9/I(X8r4#!!)u!!s#F(!;ii(!3E7%X8o=%X8r4#rrB+$!!*#"rrE&"!!)u!
-!!)u!!!)hr!!*#"!!*#"!!)qu!s#F(!<&u!!<0&"!<&u!!;*>m!;W\r!.h5&XPU&Ymf(c:KE(uF
-ec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&h?/g&V**!!)uO!s%'/!;kIV!8?-,g&Th,g&V**rrB+R!!*#PrrE&P!!)uO
-!!)uO!!)iK!!*#P!!*#P!!)rN!s%'/!<(UO!<1[P!<(UO!;+tF!;Y=K!.ijTg>:Q`s8LaPJcGcD
-gAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjoYVGjoGAB!!)u[!s%KG!;kmb!9WDDjoFNDjoGABrrB+^!!*#\rrE&\!!)u[
-!!)u[!!)iW!!*#\!!*#\!!)rZ!s%KG!<)$[!<2*\!<)$[!;,CR!;YaW!.j9`k2,8#s8LRKKE(uF
-ec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juXSi.tX8i8"X8i8"X8i7tX9em.X8o?'!3E7%VQ9atr2]kuq5aPrrN#u!qQ'Ys
-r2^2)XK2E'X8o?'!;`bs!<0&"!<&u!!;*>m!;W\r!.h5&XPU&Ymf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=hSgAM$Mg&M-Pg&M-Pg&M-Mg'Ic5g&Tj\!8?-,VV2"Mr7V,Nq:YfKrRq5OqUtoL
-r7VGWg=cP\g&Tj\!;bCL!<1[P!<(UO!;+tF!;Y=K!.ijTg>:Q`s8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@bk5>;Yjo>D\jo>D\jo>DYjp;%MjoFQ+!9WDDVWIjYr8mtZq;qYWrT4([qW7bX
-r8n:ck2l[+joFQ+!;bgX!<2*\!<)$[!;,CR!;YaW!.j9`k2,8#s8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8juX9/I(X8r4#r;cet!!)nt#lq'.!3E7%XK2E!X8i7uX8i8!XS`(sX8i7sXSMqs
-X9J[+X8o?'!<0(t!<&u$!3E7%o;holq5aPrJZOF(hQ6bFrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&h?/g&V**r;cfM!!)oM#lr]5!8?-,g=cP(g&M-Ng&M-OgACsLg&M-LgA1gL
-g'.Q2g&Tj\!<1^M!<(UR!8?-,o@a0Eq:YfKJ_G\/hV/#0rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjoYVGjoGABr;cfY!!)oY#ls,M!9WDDk2lZ@jo>DZjo>D[k555Xjo>DXk5#)X
-jothJjoFQ+!<2-Y!<)$^!9WDDoB$#Qq;qYWJ`_OGhWFk<rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i7sX8i8"X8i8"X8i7tX9/I(X8r1"!!&mt!!)qu!!*#"!!)u!!!)u!!!)ks
-!!)eq"9>M'X8r7$!!)u!!!)u!!s#F(!;!8l!;W\r!.h5&XPU&Ymf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=hSg&M-Lg&M-Pg&M-Pg&M-Mg&h?/g&V')!!&nM!!)rN!!*#P!!)uO!!)uO!!)lL
-!!)fJ"9@-Ug&V-+!!)uO!!)uO!s%'/!;"nE!;Y=K!.ijTg>:Q`s8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@bjo>DXjo>D\jo>D\jo>DYjoYVGjoG>A!!&nY!!)rZ!!*#\!!)u[!!)u[!!)lX
-!!)fV"9@QajoGDC!!)u[!!)u[!s%KG!;#=Q!;YaW!.j9`k2,8#s8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8juX8i7sX8i8!X8i8"X8i8!X8i8"X8i7uX8i8!XT&:$X8i8"XT&;"X8i8"XT&;!
-X8i8"X8i8!X8i8!X8i8"XT&8%X8i8"X8i8"XT&:uXT&:kX8i8"X8i8!X8i8"X8i6OXF[J4XT._f
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Lg&M-Og&M-Pg&M-Og&M-Pg&M-Ng&M-OgA_/Rg&M-PgA_0Pg&M-PgA_0O
-g&M-Pg&M-Og&M-Og&M-PgA_-Sg&M-Pg&M-PgA_0NgA_0Dg&M-Pg&M-Og&M-Pg&M,(g4@u;gAh3P
-gAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>DXjo>D[jo>D\jo>D[jo>D\jo>DZjo>D[k5PF^jo>D\k5PG\jo>D\k5PG[
-jo>D\jo>D[jo>D[jo>D\k5PD_jo>D\jo>D\k5PGZk5PGPjo>D\jo>D[jo>D\jo>C4k(2[Sk5YJ\
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%X3eS8j#XSi.tXSr4uX8i8"XSi.uXSr5!XSr5!XT&:#XSr2#X8r4#rW!#$!!)u!rW)hs
-r;cetrr<,%!!)u!rW!#$!!)qu!!)PjrW)hsrW%MNJZRh3s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp%O5g4=h/gAM$MgAV*Ng&M-PgAM$NgAV*OgAV*OgA_/QgAV'Qg&V**rW!#R!!)uOrW)iL
-r;cfMrr<,S!!)uOrW!#R!!)rN!!)QCrW)iLrW%N'J_K):s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp%X3eVf@Jk5>;Yk5GAZjo>D\k5>;Zk5GA[k5GA[k5PF]k5G>]joGABrW!#^!!)u[rW)iX
-r;cfYrr<,_!!)u[rW!#^!!)rZ!!)QOrW)iXrW%N3J`bqRs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXSf."!7._H!.h5&XMh4?mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+gAKY)!70@!!.ijTg;M_Fs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k5=?A!70d-!.j9`k/?E^s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXSo4#!7%YG!.h5&XMh4?mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+gAT_*!7'9u!.ijTg;M_Fs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k5FEB!7'^,!.j9`k/?E^s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXSi.FXSi.tXS;dHXF[J$XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+gAM#tgAM$Mg@tZ!g4@u+gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k5>;+k5>;Yk4eq-k(2[Ck5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSMqrXSi-MXS&Xp!9^H_!;iks!.h5&XNmpImf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!jp%O5g4=h/gA1gKgAM#&g@a/"!9`)8!;kLL!.ijTg<SFPs8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!jp%X3eVf@Jk5#)Wk5>:2k4Rj:!9`MD!;kpX!.j9`k0E,hs8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!jq+?=eS8j#X8o?'!3E7%XK2F#X8i6OXS/^q!9L9^!;W\r!.h5&XNmpImf(c:KE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!jq+6?g4=h/g&Tj\!8?-,g=cQ*g&M,(g@j5#!9Mo7!;Y=K!.ijTg<SFPs8LaPJcGcDgAca(
-rs%2Ns5rIT!.Y~>
-!<E0!jq+?=eVf@JjoFQ+!9WDDk2l[Bjo>C4k4[p;!9N>C!;YaW!.j9`k0E,hs8LRKKE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!jq"9<eS8j#X8o?'!3E7%X8r.!!!)u!rrACerVuu#!<0(u!<0)"!!',"!<'"s!<'#!!<9/#
-!<'"t!;`bs!;W\r!;`er!<'#!!<9/#!.h5&XQ$>]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jq"0>g4=h/g&Tj\!8?-,g&V$(!!)uOrrAD>rVuuQ!<1^N!<1^P!!(aP!<(XL!<(XO!<:dQ
-!<(XM!;bCL!;Y=K!;bFK!<(XO!<:dQ!.ijTg>^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jq"9<eVf@JjoFQ+!9WDDjoG;@!!)u[rrADJrVuu]!<2-Z!<2-\!!)0\!<)'X!<)'[!<;3]
-!<)'Y!;bgX!;YaW!;bjW!<)'[!<;3]!.j9`k2PP's8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i8!XT&9fX8i8"XT&;#X8i8!X8i8"XT&;"X8i8!X8i7rX9\g-
-!3E7%XK2F#X8i7tX8i7rX8i7tX8i8"X8i8!X9AU*!3E7%JZOF(j/i:Krmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M-OgA_/?g&M-PgA_0Qg&M-Og&M-PgA_0Pg&M-Og&M-Kg'@]4
-!8?-,g=cQ*g&M-Mg&M-Kg&M-Mg&M-Pg&M-Og'%K1!8?-,J_G\/j4aP5rn@C's8VfHs+14M#25dN
-k2s5TJ,~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>D[k5PFKjo>D\k5PG]jo>D[jo>D\k5PG\jo>D[jo>DWjp1tL
-!9WDDk2l[Bjo>DYjo>DWjo>DYjo>D\jo>D[jokbI!9WDDJ`_OGj6$CArmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX8i7uX9&C'!;ii"!3E7%rN#u!rN#u!q5jSrr2]kuqlBbt
-r2]kuq5aPrr2]kur2]kuriH,"JZOF(hlQkGrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g&M-Ng&_9.!;kIP!8?-,rRq5OrRq5Oq:biKr7V,Nqq;#M
-r7V,Nq:YfKr7V,Nr7V,Nrn@APJ_G\/hqJ,1rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjo>DZjoPPF!;km\!9WDDrT4([rT4([q<%\Wr8mtZqrRkY
-r8mtZq;qYWr8mtZr8mtZroX4\J`_OGhrat=rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX8i7sX8i7tX9/I(X8r4#!!)u!!!)hr!!)nt!!)nt!!)qu
-!!)hr!!)quq>gMr!!%SOJZR_0s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g&M-Lg&M-Mg&h?/g&V**!!)uO!!)iK!!)oM!!)oM!!)rN
-!!)iK!!)rNq>gNK!!%T(J_Ju7s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjo>DXjo>DYjoYVGjoGAB!!)u[!!)iW!!)oY!!)oY!!)rZ
-!!)iW!!)rZq>gNW!!%T4J`bhOs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX8i7sX8i7tX9/I(X8r4#!!)u!!!)hr!!)nt!!)nt!!)qu
-!!)hr!!)qu!!)eq!!%SOJZR_0s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g&M-Lg&M-Mg&h?/g&V**!!)uO!!)iK!!)oM!!)oM!!)rN
-!!)iK!!)rN!!)fJ!!%T(J_Ju7s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjo>DXjo>DYjoYVGjoGAB!!)u[!!)iW!!)oY!!)oY!!)rZ
-!!)iW!!)rZ!!)fV!!%T4J`bhOs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i7uX8i8!X8i7uXT&9fX8i8!X9/I(X8r4#!!*#"!!)u!!!)u!!!*#"!!)u!
-!!)ks!!)u!!!)nt!!)hr!!)nt!!)u!!!*#"!!%SOJZR_0s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Ng&M-Og&M-NgA_/?g&M-Og&h?/g&V**!!*#P!!)uO!!)uO!!*#P!!)uO
-!!)lL!!)uO!!)oM!!)iK!!)oM!!)uO!!*#P!!%T(J_Ju7s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>DZjo>D[jo>DZk5PFKjo>D[joYVGjoGAB!!*#\!!)u[!!)u[!!*#\!!)u[
-!!)lX!!)u[!!)oY!!)iW!!)oY!!)u[!!*#\!!%T4J`bhOs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juXS`(sXSi.rXT&9eXSi.tXSi.uXSr5"XSr4uXSr4uXSi.rXSi.sXS`(sXS`(r
-XSi.uXSi-MXF[J2XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSgACsLgAM$KgA_/>gAM$MgAM$NgAV*PgAV*NgAV*NgAM$KgAM$LgACsLgACsK
-gAM$NgAM#&g4@u9gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bk555Xk5>;Wk5PFJk5>;Yk5>;Zk5GA\k5GAZk5GAZk5>;Wk5>;Xk555Xk555W
-k5>;Zk5>:2k(2[Qk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMX8o@#!;rqs!;rqs!;rqs!:m2k!;`eq!:m2k!;NYq!:m2k!;`ep!;*Ak!;rqs
-!;!;j!:m2k!;`eq!<'"r!;rqt!;`es!;rqs!.h68XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g&Tk*!;tRL!;tRL!;tRL!:nhD!;bFJ!:nhD!;P:J!:nhD!;bFI!;,"D!;tRL
-!;"qC!:nhD!;bFJ!<(XK!;tRM!;bFL!;tRL!.ikfgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:joFQB!;u!X!;u!X!;u!X!:o7P!;bjV!:o7P!;P^V!:o7P!;bjU!;,FP!;u!X
-!;#@O!:o7P!;bjV!<)'W!;u!Y!;bjX!;u!X!.j:rk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%X3eS8j#XSMnsXSr5!XSr2"XSMnsXSr5"XSr5"XSMqjXSMqrXSr2#X8p>C!!)u!!!*#"
-!!)u!!!*#"!!)u!!!*#"!!)u!!!)YmrrDqt!!)u!!!)YmrrDkr!W];%o;qrlqQ'YsnZ2]jrN#u!
-ri?)"rN#u!orJ,nrN#u!oW8&mqlBbtrN#u!ri?)"rN#u!rN#u!poFMsX8r4#!!)u!!!%SOl)apQ
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp%O5g4=h/gA1dLgAV*OgAV'PgA1dLgAV*PgAV*PgA1gCgA1gKgAV'Qg&T4J!!)uO!!*#P
-!!)uO!!*#P!!)uO!!*#P!!)uO!!)ZFrrDrM!!)uO!!)ZFrrDlK!W^pSo@j3EqUtoLn_*sCrRq5O
-rn7>PrRq5Op"BBGrRq5Oo\0<Fqq;#MrRq5Orn7>PrRq5OrRq5Opt>cLg&V**!!)uO!!%T(l.Z1;
-rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp%X3eVf@Jk5#&Xk5GA[k5G>\k5#&Xk5GA\k5GA\k5#)Ok5#)Wk5G>]joEKb!!)u[!!*#\
-!!)u[!!*#\!!)u[!!*#\!!)u[!!)ZRrrDrY!!)u[!!)ZRrrDlW!W_?_oB-&QqW7bXn`BfOrT4([
-roO1\rT4([p#Z5SrT4([o]H/RqrRkYrT4([roO1\rT4([rT4([puVVXjoGAB!!)u[!!%T4l/r$G
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!"9>O)!!*#"!!*#""ota+!3E7%p8eQ#XK2E'
-X8o?'!<0)"!6D5A!<&u!!<0&"!<&u!!<0&"!<&u!!<0&"!<&u!!;3Dp!3?1tX8i8!X8i7nX9&C'
-!;W\t!3?1mX9&C'!;`bs!:6ce!;W\r!;3Dn!<&u!!;3Dp!3?1tX8i8!X8i7rX8i8"X8i7pX9&C'
-!<&u!!<&u!!.h69XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO"9@00!!*#P!!*#P"p!B2!8?-,p=]fQg=cP\
-g&Tj\!<1^P!6Ejo!<(UO!<1[P!<(UO!<1[P!<(UO!<1[P!<(UO!;5%I!87GMg&M-Og&M-Gg&_9.
-!;Y=M!87GFg&_9.!;bCL!:8D>!;Y=K!;5%G!<(UO!;5%I!87GMg&M-Og&M-Kg&M-Pg&M-Ig&_9.
-!<(UO!<(UO!.ikggAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u["9@TH!!*#\!!*#\"p!fJ!9WDDp>uY]k2l[+
-joFQ+!<2-\!6F:&!<)$[!<2*\!<)$[!<2*\!<)$[!<2*\!<)$[!;5IU!9O:Yjo>D[jo>DSjoPPF
-!;YaY!9O:RjoPPF!;bgX!:8hJ!;YaW!;5IS!<)$[!;5IU!9O:Yjo>D[jo>DWjo>D\jo>DUjoPPF
-!<)$[!<)$[!.j:sk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!#QUs-!3?1%X8r7$"ota+!3E7%p8eQ#XK2E'
-X8o?'!<&u!!;rqu!6VAC!<0&"!<&u!!<0&"!<&u!!;W\r!;!8l!;iht!<&u!!;!8l!;`c!!3E7%
-nuMfkqQ'Ysm&U0eq5aProrJ,nrN#u!o;holqlBbtrN#u!qQ'YsrN#u!poFPtXK2EsX8i6OXQchd
-mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO#QWT4!87G,g&V-+"p!B2!8?-,p=]fQg=cP\
-g&Tj\!<(UO!;tRN!6X!q!<1[P!<(UO!<1[P!<(UO!;Y=K!;"nE!;kIM!<(UO!;"nE!;bCO!8?-,
-o%F'DqUtoLm+MF>q:YfKp"BBGrRq5Oo@a0Eqq;#MrRq5OqUtoLrRq5Opt>fMg=cQ%g&M,(g?I>k
-s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u[#QX#L!9O:DjoGDC"p!fJ!9WDDp>uY]k2l[+
-joFQ+!<)$[!;u!Z!6XF(!<2*\!<)$[!<2*\!<)$[!;YaW!;#=Q!;kmY!<)$[!;#=Q!;bg[!9WDD
-o&]oPqW7bXm,e9Jq;qYWp#Z5SrT4([oB$#QqrRkYrT4([qW7bXrT4([puVYYk2l[=jo>C4k3;%.
-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX9/I(X8r1"!!*#"!!)u!!s#F(!<&u&!3?1%X8r.!!!)Mi!!)qu!!)bprrC6D
-!!)u!!!)u!!!*#"!!)u!!!)ks!!)Sk!!)nt!!)u!!!)Vl!!)ks!s#F(!:m2k!;`eq!:m5j!;iks
-!;*>m!<&u!!;!8l!;iht!<&u!!;`bs!<&u"!3H/"r2]u#XK2EtX8i6OXQZbcmf(c:KE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&h?/g&V')!!*#P!!)uO!s%'/!<(UT!87G,g&V$(!!)NB!!)rN!!)cIrrC6r
-!!)uO!!)uO!!*#P!!)uO!!)lL!!)TD!!)oM!!)uO!!)WE!!)lL!s%'/!:nhD!;bFJ!:nkC!;kLL
-!;+tF!<(UO!;"nE!;kIM!<(UO!;bCL!<(UP!8@DPr7V5Qg=cQ&g&M,(g?@8js8LaPJcGcDgAca(
-rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjoYVGjoG>A!!*#\!!)u[!s%KG!<)$`!9O:DjoG;@!!)NN!!)rZ!!)cUrrC7)
-!!)u[!!)u[!!*#\!!)u[!!)lX!!)TP!!)oY!!)u[!!)WQ!!)lX!s%KG!:o7P!;bjV!:o:O!;kpX
-!;,CR!<)$[!;#=Q!;kmY!<)$[!;bgX!<)$\!9X7\r8n(]k2l[>jo>C4k31t-s8LRKKE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juXSi.sX8i8"X8i8!XSi.tX9AU*X8o=%qlBbtn>lTiqlK_r`2iq=r2]kurN#u!
-ri?)"rN#u!qlBbtr2fbqr2]kuqlBbtrN#u!riGtsr2]kuqlBbtri?)"nuMfkp8e5on>lTiq5aPr
-orJ,nrN#u!o;holqlBbtrN#u!qQ'YsrN-#!ri?)"ri?)"ri?)"qQ'YsJZS%9s6fm:s+C@Op=91q
-s8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSgAM$Lg&M-Pg&M-OgAM$Mg'%K1g&Th,qq;#MnCdjBqqCuK`7b1kr7V,NrRq5O
-rn7>PrRq5Oqq;#Mr7_#Jr7V,Nqq;#MrRq5Orn@5Lr7V,Nqq;#Mrn7>Po%F'Dp=]KHnCdjBq:YfK
-p"BBGrRq5Oo@a0Eqq;#MrRq5OqUtoLrS%8Orn7>Prn7>Prn7>PqUtoLJ_K;@s8W)Ps+14Mp=fOt
-s8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bk5>;Xjo>D\jo>D[k5>;YjokbIjoFNDqrRkYnE']Nqr[hW`9%%"r8mtZrT4([
-roO1\rT4([qrRkYr9!kVr8mtZqrRkYrT4([roX(Xr8mtZqrRkYroO1\o&]oPp>u>TnE']Nq;qYW
-p#Z5SrT4([oB$#QqrRkYrT4([qW7bXrT=+[roO1\roO1\roO1\qW7bXJ`c.Xs8W)Ks+C@Op=91q
-s8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX9/I(X8r.!!W];%r2]u#XK2F#X9AU*X8o=%qlBbtn>lTipT+>p`iK.?qlBbt
-rN#u!ri?)"rN#u!r2]kun>lTiqlBbtrN#u!o;holqlBbtri?)"nuMfkp8e5on>lTiq5aProrJ,n
-rN#u!o;holqlBbtrN#u!qlBbtr2]kurN#u!ri?)"ri?)"qlBbtJZS"8s6fm:s+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johC3g4=hSg&h?/g&V$(!W^pSr7V5Qg=cQ*g'%K1g&Th,qq;#MnCdjBpY#TI`nCCmqq;#M
-rRq5Orn7>PrRq5Or7V,NnCdjBqq;#MrRq5Oo@a0Eqq;#Mrn7>Po%F'Dp=]KHnCdjBq:YfKp"BBG
-rRq5Oo@a0Eqq;#MrRq5Oqq;#Mr7V,NrRq5Orn7>Prn7>Pqq;#MJ_K8?s8W)Ps+14Mp=fOts8N;W
-U&X9;\c@6~>
-!<E0!johL1eVf@bjoYVGjoG;@!W_?_r8n(]k2l[BjokbIjoFNDqrRkYnE']NpZ;GU`o[7$qrRkY
-rT4([roO1\rT4([r8mtZnE']NqrRkYrT4([oB$#QqrRkYroO1\o&]oPp>u>TnE']Nq;qYWp#Z5S
-rT4([oB$#QqrRkYrT4([qrRkYr8mtZrT4([roO1\roO1\qrRkYJ`c+Ws8W)Ks+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X8i8!X9&C'!;rnu!<&u$!3E7%riH,"qlBbtn>lTir2]kurN#u!a/f7@
-qQ'YsrN#u!ri?)"rN#u!rN#u!n#QKhqlBbtrN#u!o;holqlKYpo;holp8e5on>lTiq5aProrJ,n
-rN#u!o;holqlBbtrN#u!qlBbtr2]kurN#u!riGtsrN#u!JZRt7s6fm:s+C@Op=91qs8N;RV#TT>
-]`<Q~>
-!<E0!johC3g4=hSg&M-Og&M-Og&_9.!;tON!<(UR!8?-,rn@APqq;#MnCdjBr7V,NrRq5Oa4^Ln
-qUtoLrRq5Orn7>PrRq5OrRq5On(IaAqq;#MrRq5Oo@a0EqqCoIo@a0Ep=]KHnCdjBq:YfKp"BBG
-rRq5Oo@a0Eqq;#MrRq5Oqq;#Mr7V,NrRq5Orn@5LrRq5OJ_K5>s8W)Ps+14Mp=fOts8N;WU&X9;
-\c@6~>
-!<E0!johL1eVf@bjo>D[jo>D[joPPF!;tsZ!<)$^!9WDDroX4\qrRkYnE']Nr8mtZrT4([a6!@%
-qW7bXrT4([roO1\rT4([rT4([n)aTMqrRkYrT4([oB$#Qqr[bUoB$#Qp>u>TnE']Nq;qYWp#Z5S
-rT4([oB$#QqrRkYrT4([qrRkYr8mtZrT4([roX(XrT4([J`c(Vs8W)Ks+C@Op=91qs8N;RV#TT>
-]`<Q~>
-!<E0!johL1eS8juX8i8!X8i7uX8i7tX8i8!X9/I(X8r7$rrDqt!!)Mi!!)qurrE&"!!)qurrCBH
-!!)u!!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!)Vl!!)nt!!)u!!!)Vl!!)bp!!)Sk!!)nt!!)u!
-!!)qurrDtu!!)u!!!*#"!!)u!!!)qurrDtu!!)u!!!)qurrDns!!)nt!!)u!!!)nt!!)nt!!*#"
-!!)ks!!)u!!!)u!!!%SOl)apQrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&M-Ng&M-Mg&M-Og&h?/g&V-+rrDrM!!)NB!!)rNrrE&P!!)rNrrCC!
-!!)uO!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!)WE!!)oM!!)uO!!)WE!!)cI!!)TD!!)oM!!)uO
-!!)rNrrDuN!!)uO!!*#P!!)uO!!)rNrrDuN!!)uO!!)rNrrDoL!!)oM!!)uO!!)oM!!)oM!!*#P
-!!)lL!!)uO!!)uO!!%T(l.Z1;rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D[jo>DZjo>DYjo>D[joYVGjoGDCrrDrY!!)NN!!)rZrrE&\!!)rZrrCC-
-!!)u[!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)WQ!!)oY!!)u[!!)WQ!!)cU!!)TP!!)oY!!)u[
-!!)rZrrDuZ!!)u[!!*#\!!)u[!!)rZrrDuZ!!)u[!!)rZrrDoX!!)oY!!)u[!!)oY!!)oY!!*#\
-!!)lX!!)u[!!)u[!!%T4l/r$Grmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp%X3eS8j#XSMqpX8i7uXSMnsXSr5!X8i8!XS`(jXS`(tX8r=&rW)hsrrCBHqZ-Srr;cbs
-r;cetqZ-;jquHYrr;cJkquHSprW)VmquHYrr;c_rrrDqtr;cbsr;c_rrrDqtr;c_rrrDtuquHYr
-r;c\q!!)ksrW)errW)r!qZ)2Kl)apQrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp%O5g4=h/gA1gIg&M-NgA1dLgAV*Og&M-OgACsCgACsMg&V3-rW)iLrrCC!qZ-TKr;ccL
-r;cfMqZ-<CquHZKr;cKDquHTIrW)WFquHZKr;c`KrrDrMr;ccLr;c`KrrDrMr;c`KrrDuNquHZK
-r;c]J!!)lLrW)fKrW)rOqZ)3$l.Z1;rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp%X3eVf@Jk5#)Ujo>DZk5#&Xk5GA[jo>D[k555Ok555YjoGJErW)iXrrCC-qZ-TWr;ccX
-r;cfYqZ-<OquHZWr;cKPquHTUrW)WRquHZWr;c`WrrDrYr;ccXr;c`WrrDrYr;c`WrrDuZquHZW
-r;c]V!!)lXrW)fWrW)r[qZ)30l/r$Grmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jJXS;dHXF[I(XMV(=mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=h(g@tZ!g4@t/g;;SDs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@7k4eq-k(2ZGk/-9\s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMX8o@#!;rqs!;rqs!;rqs!:m2k!;`eq!:m2k!;NYq!:m2k!;`ep!;*Ak!;rqs
-!;!;j!:m2k!;`eq!;`es!;rqs!;rqr!;rnu!.h66XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g&Tk*!;tRL!;tRL!;tRL!:nhD!;bFJ!:nhD!;P:J!:nhD!;bFI!;,"D!;tRL
-!;"qC!:nhD!;bFJ!;bFL!;tRL!;tRK!;tON!.ikdgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:joFQB!;u!X!;u!X!;u!X!:o7P!;bjV!:o7P!;P^V!:o7P!;bjU!;,FP!;u!X
-!;#@O!:o7P!;bjV!;bjX!;u!X!;u!W!;tsZ!.j:pk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%X3eS8j#XSMnsXSW"qXSr4rXSr2%X8o?'q>g5jq>gMrrVuu#!6D5A!<&u!!<0&"!<&u!
-!<0&"!<&u!!<0&"!<&u!!;*Am!;iht!<&u!!;*Am!;W\t!3?1lXT&:sX8i7jX8i8!X8i8"X8i8!
-X8i7nX8i8!X8i7mXT&:tX8i8!X8i7uX9&C'!<&u!!<&u!!<&u!!;W_r!.h66XT._fec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!jp%O5g4=h/gA1dLgA:mJgAV*KgAV'Sg&Tj\q>g6Cq>gNKrVuuQ!6Ejo!<(UO!<1[P!<(UO
-!<1[P!<(UO!<1[P!<(UO!;,"F!;kIM!<(UO!;,"F!;Y=M!87GEgA_0Lg&M-Cg&M-Og&M-Pg&M-O
-g&M-Gg&M-Og&M-FgA_0Mg&M-Og&M-Ng&_9.!<(UO!<(UO!<(UO!;Y@K!.ikdgAh3PgAca(s7Y1H
-JcG`Sg7eQ/k.1PC~>
-!<E0!jp%X3eVf@Jk5#&Xk5,/Vk5GAWk5G>_joFQ+q>g6Oq>gNWrVuu]!6F:&!<)$[!<2*\!<)$[
-!<2*\!<)$[!<2*\!<)$[!;,FR!;kmY!<)$[!;,FR!;YaY!9O:Qk5PGXjo>DOjo>D[jo>D\jo>D[
-jo>DSjo>D[jo>DRk5PGYjo>D[jo>DZjoPPF!<)$[!<)$[!<)$[!;YdW!.j:pk5YJ\ec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!jq+?=eS8j#X8o?'!3E7%XK2F#X8i7tX8i7tX8i8"XT&;"X8i8!X8i7oX9em.X8o?'!3E7%
-riH,"aK,@ArN#u!ri?)"rN#u!ri?)"rN#u!ri?)"rN#u!orJ2pX8r.!!!)u!!!)\n!W];%q5aVt
-X8qmo!W];%qQ'Ysm&U0eq5aProrJ,nrN#u!orJ2pX8r.!!!)u!!!)qu!W];%rN#u!rN#u!rN#u!
-qQ'_uX8mgQk,eUNrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jq+6?g4=h/g&Tj\!8?-,g=cQ*g&M-Mg&M-Mg&M-PgA_0Pg&M-Og&M-Hg'Ic5g&Tj\!8?-,
-rn@APaP$UorRq5Orn7>PrRq5Orn7>PrRq5Orn7>PrRq5Op"BHIg&V$(!!)uO!!)]G!W^pSq:YlM
-g&Ud!!W^pSqUtoLm+MF>q:YfKp"BBGrRq5Op"BHIg&V$(!!)uO!!)rN!W^pSrRq5OrRq5OrRq5O
-qUtuNg&Q]Xk1]k8rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jq+?=eVf@JjoFQ+!9WDDk2l[Bjo>DYjo>DYjo>D\k5PG\jo>D[jo>DTjp;%MjoFQ+!9WDD
-roX4\aQ<I&rT4([roO1\rT4([roO1\rT4([roO1\rT4([p#Z;UjoG;@!!)u[!!)]S!W_?_q;q_Y
-joG&9!W_?_qW7bXm,e9Jq;qYWp#Z5SrT4([p#Z;UjoG;@!!)u[!!)rZ!W_?_rT4([rT4([rT4([
-qW7hZjoBtpk2u^Drmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jq+?=eS8j#X8o?'!3E7%XK2F#X8i7uX9&C'!<&u!!;rnu!<0&"!<&u!!;<K#!3E7%XK2E'
-X8r4#!!)qurrC3C!!*#"!!)u!!!*#"!!)u!!!)hr!!)Vl!!)nt!!)u!!!)Vl!!)ks!s#F(!:m2k
-!;`bs!:6ce!;W\r!;3Dn!<&u!!;!8l!;iht!<&u!!<&u$!3E7%rN#u!rN#u!rN#u!poFGqJZS"8
-s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jq+6?g4=h/g&Tj\!8?-,g=cQ*g&M-Ng&_9.!<(UO!;tON!<1[P!<(UO!;>+Q!8?-,g=cP\
-g&V**!!)rNrrC3q!!*#P!!)uO!!*#P!!)uO!!)iK!!)WE!!)oM!!)uO!!)WE!!)lL!s%'/!:nhD
-!;bCL!:8D>!;Y=K!;5%G!<(UO!;"nE!;kIM!<(UO!<(UR!8?-,rRq5OrRq5OrRq5Opt>]JJ_K8?
-s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jq+?=eVf@JjoFQ+!9WDDk2l[Bjo>DZjoPPF!<)$[!;tsZ!<2*\!<)$[!;>O]!9WDDk2l[+
-joGAB!!)rZrrC4(!!*#\!!)u[!!*#\!!)u[!!)iW!!)WQ!!)oY!!)u[!!)WQ!!)lX!s%KG!:o7P
-!;bgX!:8hJ!;YaW!;5IS!<)$[!;#=Q!;kmY!<)$[!<)$^!9WDDrT4([rT4([rT4([puVPVJ`c+W
-s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i7uX8i8!X8i7uX9&C'!<&u!!;NVt!3E7%nZ2]jr2]kupT4ApbH([DrN#u!
-rN#u!ri?)"rN#u!qQ'YsnuMfkqlBbtrN#u!o;holqQ'c!XK2EmX8i7sXSi.iXSr4sXSr4lX8i8!
-X8i7lX8i7tX8i8!X8i8!X9/I(X8r1"r;cbsr;c_r!!%SOk,eUNrmh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!johC3g4=hQg&M-Ng&M-Og&M-Ng&_9.!<(UO!;P7M!8?-,n_*sCr7V,NpY,WIbLuprrRq5O
-rRq5Orn7>PrRq5OqUtoLo%F'Dqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-LgAM$BgAV*LgAV*Eg&M-O
-g&M-Eg&M-Mg&M-Og&M-Og&h?/g&V')r;ccLr;c`K!!%T(k1]k8rn@C's8VfHs+14M#25dNk2s5T
-J,~>
-!<E0!johL1eVf@`jo>DZjo>D[jo>DZjoPPF!<)$[!;P[Y!9WDDn`BfOr8mtZpZDJUbN8d)rT4([
-rT4([roO1\rT4([qW7bXo&]oPqrRkYrT4([oB$#QqW7k[k2l[7jo>DXk5>;Nk5GAXk5GAQjo>D[
-jo>DQjo>DYjo>D[jo>D[joYVGjoG>Ar;ccXr;c`W!!%T4k2u^Drmh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!johL1eS8jsX8i7uX8i8"X8i7uX8i8"X8i8"X8i7qXSi.hX8i7tXSi.;X8i7uX8i8!X8i8"
-X8i8!X8i7tX8i7uXSW"qX8i7tX8i8!X8i8"XSW"qX8i7tX8i8"X8i7kX8i7oX8i7iX8i7rX8i7n
-X8i8!X8i7lX8i7tX8i8!X8i8"X8i8"X8i8!X8i8!X8i7rX8i7uX8i6OXQHVamf(c:KE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hQg&M-Ng&M-Pg&M-Ng&M-Pg&M-Pg&M-JgAM$Ag&M-MgAM#ig&M-Ng&M-Og&M-P
-g&M-Og&M-Mg&M-NgA:mJg&M-Mg&M-Og&M-PgA:mJg&M-Mg&M-Pg&M-Dg&M-Hg&M-Bg&M-Kg&M-G
-g&M-Og&M-Eg&M-Mg&M-Og&M-Pg&M-Pg&M-Og&M-Og&M-Kg&M-Ng&M,(g?.,hs8LaPJcGcDgAca(
-rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@`jo>DZjo>D\jo>DZjo>D\jo>D\jo>DVk5>;Mjo>DYk5>:ujo>DZjo>D[jo>D\
-jo>D[jo>DYjo>DZk5,/Vjo>DYjo>D[jo>D\k5,/Vjo>DYjo>D\jo>DPjo>DTjo>DNjo>DWjo>DS
-jo>D[jo>DQjo>DYjo>D[jo>D\jo>D\jo>D[jo>D[jo>DWjo>DZjo>C4k2th+s8LRKKE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jsX8i7uXSi.rXS`(tX8i7qX9/I(X8qdl!!)bp!!($?!!)nt!!)u!!!*#"!!)u!
-!!)qu!!)Mi!!)nt!!)u!!!)Vl!!)nt!!*#"!!)Sk!!)_o!!)Mi!!)hr!!)\n!!)u!!!)Vl!!)nt
-!!)u!!!*#"!!*#"!!)u!!!)u!!!)hr!!)qu!!%SOk,eUNrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hQg&M-NgAM$KgACsMg&M-Jg&h?/g&UZs!!)cI!!($m!!)oM!!)uO!!*#P!!)uO
-!!)rN!!)NB!!)oM!!)uO!!)WE!!)oM!!*#P!!)TD!!)`H!!)NB!!)iK!!)]G!!)uO!!)WE!!)oM
-!!)uO!!*#P!!*#P!!)uO!!)uO!!)iK!!)rN!!%T(k1]k8rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@`jo>DZk5>;Wk555Yjo>DVjoYVGjoFr6!!)cU!!(%$!!)oY!!)u[!!*#\!!)u[
-!!)rZ!!)NN!!)oY!!)u[!!)WQ!!)oY!!*#\!!)TP!!)`T!!)NN!!)iW!!)]S!!)u[!!)WQ!!)oY
-!!)u[!!*#\!!*#\!!)u[!!)u[!!)iW!!)rZ!!%T4k2u^Drmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8jsX8i7uX8i8"X8i8!X8i7uX9/I(X8r$s!!)u!!!)Vl!!)qu!!)u!!!('@!!)ks
-!!)u!!!*#"!!)u!!!)u!!!)Jh!!)nt!!)u!!!)Vl!!)ntqZ-5h!!)_o!!)Mi!!)hr!!)\n!!)u!
-!!)Vl!!)nt!!)u!!!*#"qZ-Vs!!)u!!!)hr!!)qu!!%SOk,eUNrmh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!johC3g4=hQg&M-Ng&M-Pg&M-Og&M-Ng&h?/g&Up%!!)uO!!)WE!!)rN!!)uO!!('n!!)lL
-!!)uO!!*#P!!)uO!!)uO!!)KA!!)oM!!)uO!!)WE!!)oMqZ-6A!!)`H!!)NB!!)iK!!)]G!!)uO
-!!)WE!!)oM!!)uO!!*#PqZ-WL!!)uO!!)iK!!)rN!!%T(k1]k8rn@C's8VfHs+14M#25dNk2s5T
-J,~>
-!<E0!johL1eVf@`jo>DZjo>D\jo>D[jo>DZjoYVGjoG2=!!)u[!!)WQ!!)rZ!!)u[!!((%!!)lX
-!!)u[!!*#\!!)u[!!)u[!!)KM!!)oY!!)u[!!)WQ!!)oYqZ-6M!!)`T!!)NN!!)iW!!)]S!!)u[
-!!)WQ!!)oY!!)u[!!*#\qZ-WX!!)u[!!)iW!!)rZ!!%T4k2u^Drmh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!johL1eS8jsX8i7uX8i8!X8i8"X8i7uX8i8"X8i8!X8i8"X8i8!X8i7lX8i7uXT&;"X8i7u
-XT&:HX8i8!X8i8"X8i8!X8i8"X8i8!X8i8"X8i8!X8i7lX8i7tX8i8!X8i7lX8i7pX8i7kX8i7t
-X8i8!X8i7uXT&:uX8i8!X8i8"X8i8!X8i7uXT&:uX8i8!X8i7uXT&:sX8i7tX8i8!X8i7sX8i8!
-X8i8!X8i8"X8i8!X8i7uX8i6OXQHVamf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hQg&M-Ng&M-Og&M-Pg&M-Ng&M-Pg&M-Og&M-Pg&M-Og&M-Eg&M-NgA_0Pg&M-N
-gA_0!g&M-Og&M-Pg&M-Og&M-Pg&M-Og&M-Pg&M-Og&M-Eg&M-Mg&M-Og&M-Eg&M-Ig&M-Dg&M-M
-g&M-Og&M-NgA_0Ng&M-Og&M-Pg&M-Og&M-NgA_0Ng&M-Og&M-NgA_0Lg&M-Mg&M-Og&M-Lg&M-O
-g&M-Og&M-Pg&M-Og&M-Ng&M,(g?.,hs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@`jo>DZjo>D[jo>D\jo>DZjo>D\jo>D[jo>D\jo>D[jo>DQjo>DZk5PG\jo>DZ
-k5PG-jo>D[jo>D\jo>D[jo>D\jo>D[jo>D\jo>D[jo>DQjo>DYjo>D[jo>DQjo>DUjo>DPjo>DY
-jo>D[jo>DZk5PGZjo>D[jo>D\jo>D[jo>DZk5PGZjo>D[jo>DZk5PGXjo>DYjo>D[jo>DXjo>D[
-jo>D[jo>D\jo>D[jo>DZjo>C4k2th+s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juXS`(uXSr4uX8r=&r;Zi!r;chur;chuq>g2iquH_t!<B5#!;ikt!7.bD!<'"t
-!;rqs!<'"r!;3Gk!;rqs!;*Aj!;`er!;3Gk!;rqs!;ikt!;ikr!;rqs!;ikt!;ikr!;ikt!;rqr
-!;rqs!;`er!<'"t!;rqs!<'"s!.h68XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSgACsNgAV*Ng&V3-r;ZiOr;ciNr;ciNq>g3BquH`M!<CjQ!;kLM!70Br!<(XM
-!;tRL!<(XK!;5(D!;tRL!;,"C!;bFK!;5(D!;tRL!;kLM!;kLK!;tRL!;kLM!;kLK!;kLM!;tRK
-!;tRL!;bFK!<(XM!;tRL!<(XL!.ikfgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bk555Zk5GAZjoGJEr;Zi[r;ciZr;ciZq>g3NquH`Y!<D9]!;kpY!70g)!<)'Y
-!;u!X!<)'W!;5LP!;u!X!;,FO!;bjW!;5LP!;u!X!;kpY!;kpW!;u!X!;kpY!;kpW!;kpY!;u!W
-!;u!X!;bjW!<)'Y!;u!X!<)'X!.j:rk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jJXS;dHXF[I(XMV(=mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=h(g@tZ!g4@t/g;;SDs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@7k4eq-k(2ZGk/-9\s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtXSr2#X8r7$r;churW)u"rW)u"q>gPsq>^MsrW)u"rW)u"q>gMrrVuu#!.h5&
-XF[J$XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hRgAV'Qg&V-+r;ciNrW)uPrW)uPq>gQLq>^NLrW)uPrW)uPq>gNKrVuuQ!.ijT
-g4@u+gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@ak5G>]joGDCr;ciZrW)u\rW)u\q>gQXq>^NXrW)u\rW)u\q>gNWrVuu]!.j9`
-k(2[Ck5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i8"XT&;#X8i8!X8i8"XT&;"X8i8"X9J[+X8o?'!<0&"!<&u%!3E7%!<0&"
-!<0&+!3E7%XK2E'X8r7$rr@VOJZOF(d]EK:rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-PgA_0Qg&M-Og&M-PgA_0Pg&M-Pg'.Q2g&Tj\!<1[P!<(US!8?-,!<1[P
-!<1[Y!8?-,g=cP\g&V-+rr@W(J_G\/db=a$rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D\k5PG]jo>D[jo>D\k5PG\jo>D\jothJjoFQ+!<2*\!<)$_!9WDD!<2*\
-!<2*e!9WDDk2l[+joGDCrr@W4J`_OGdcUT0rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!W];%qlC&'XK2E'!3E7%ri?;(XK2E'X8r7$!!)u!#QUs-!3?1%X8r7$
-#lq'.!3E7%XK2F#X8i7uXT&9OXF[I(XP']Tmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp.U6g4=h/g&V')!W^pSqq;;Ug=cP\!8?-,rn7PVg=cP\g&V-+!!)uO#QWT4!87G,g&V-+
-#lr]5!8?-,g=cQ*g&M-NgA_/(g4@t/g=b3[s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jp.^4eVf@JjoG>A!W_?_qrS.ak2l[+!9WDDroOCbk2l[+joGDC!!)u[#QX#L!9O:DjoGDC
-#ls,M!9WDDk2l[Bjo>DZk5PF4k(2ZGk1Snss8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3?1%X8r.!!!)nt!s#F(!<&u&!3?1%X8r.!!!)qu!!)bp
-rr@VOJZOF(frY5Armh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!87G,g&V$(!!)oM!s%'/!<(UT!87G,g&V$(!!)rN!!)cI
-rr@W(J_G\/g"QK+rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9O:DjoG;@!!)oY!s%KG!<)$`!9O:DjoG;@!!)rZ!!)cU
-rr@W4J`_OGg#i>7rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3E7%X8r.!!!)ntr;cet"TYX*!3?1tX8i7tXSi-MXF[I(
-XO4-Lmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!8?-,g&V$(!!)oMr;cfM"T[91!87GMg&M-MgAM#&g4@t/
-g<nXSs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9WDDjoG;@!!)oYr;cfY"T[]I!9O:Yjo>DYk5>:2k(2ZG
-k0`>ks8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3E7%X8r.!!!)nt!s#F(!<&u&!3E7%X8r.!!!)bp!!%SO
-JZOF(d]EK:rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!8?-,g&V$(!!)oM!s%'/!<(UT!8?-,g&V$(!!)cI!!%T(
-J_G\/db=a$rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9WDDjoG;@!!)oY!s%KG!<)$`!9WDDjoG;@!!)cU!!%T4
-J`_OGdcUT0rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r*u!!)nt!s#F(!<0)"!;iht!;iht!<&u$!3E7%riH,"qlBbtr2]kurN#u!
-JZOF(JZR;$s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V!'!!)oM!s%'/!<1^P!;kIM!;kIM!<(UR!8?-,rn@APqq;#Mr7V,NrRq5O
-J_G\/J_JQ+s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG8?!!)oY!s%KG!<2-\!;kmY!;kmY!<)$^!9WDDroX4\qrRkYr8mtZrT4([
-J`_OGJ`bDCs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!!*#"!!*#"rrDqt!!)nt!!)u!!s#F(!<0)"!;iht!;rqu
-!<0&"!;rqu!.h5&XF[J+XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!!*#P!!*#PrrDrM!!)oM!!)uO!s%'/!<1^P!;kIM!;tRN
-!<1[P!;tRN!.ijTg4@u2gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!!*#\!!*#\rrDrY!!)oY!!)u[!s%KG!<2-\!;kmY!;u!Z
-!<2*\!;u!Z!.j9`k(2[Jk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jtXSi.tXSi.uXSr5!X8i8!XS`(tXSMnsXSr5!X8i8!XS`(tX8r=&rW)hsrr@VO
-JZOF(frY5Armh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hRgAM$MgAM$NgAV*Og&M-OgACsMgA1dLgAV*Og&M-OgACsMg&V3-rW)iLrr@W(
-J_G\/g"QK+rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@ak5>;Yk5>;Zk5GA[jo>D[k555Yk5#&Xk5GA[jo>D[k555YjoGJErW)iXrr@W4
-J`_OGg#i>7rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,X8i7gX8i6OXF[I(XR*%gmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g_g&M-@g&M,(g4@t/g?dPns8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?njo>DLjo>C4k(2ZGk3V71s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!joqR2eS8j#qZ,o_rW(QOrrDMh!!%SOJZOF(l`C-Srmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!joqI4g4=h/qZ,p8rW(R(rrDNA!!%T(J_G\/le;C=rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!joqR2eVf@JqZ,pDrW(R4rrDNM!!%T4J`_OGlfS6Irmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r4#!!)8b!!(ZQ!W];%n#QKhJZOF(JZS1=s6fm:s+C@Op=91qs8N;RV#TT>
-]`<Q~>
-!<E0!jp.U6g4=h/g&V**!!)9;!!([*!W^pSn(IaAJ_G\/J_KGDs8W)Ps+14Mp=fOts8N;WU&X9;
-\c@6~>
-!<E0!jp.^4eVf@JjoGAB!!)9G!!([6!W_?_n)aTMJ`_OGJ`c:\s8W)Ks+C@Op=91qs8N;RV#TT>
-]`<Q~>
-!<E0!jp.^4eS8j#X8r4#!!)qurW)r!rr<&#rW)er!!)u!rW)u"rW(rZ!!)Jh!!%SOJZOF(l`C-S
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V**!!)rNrW)rOrr<&QrW)fK!!)uOrW)uPrW(s3!!)KA!!%T(J_G\/le;C=
-rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoGAB!!)rZrW)r[rr<&]rW)fW!!)u[rW)u\rW(s?!!)KM!!%T4J`_OGlfS6I
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!*#"!!*#"rrE&"!!)nt!!)qu!!)u!!!)\nq>g/h!!)Jh!!%SO
-JZOF(l`C-Srmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!*#P!!*#PrrE&P!!)oM!!)rN!!)uO!!)]Gq>g0A!!)KA!!%T(
-J_G\/le;C=rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!*#\!!*#\rrE&\!!)oY!!)rZ!!)u[!!)]Sq>g0M!!)KM!!%T4
-J`_OGlfS6Irmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r7$!!)u!!!)qu!s#F(!;rnu!;rnu!;rnu!<&u!!9(!Z!:[&i!.h5&XF[J<
-XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V-+!!)uO!!)rN!s%'/!;tON!;tON!;tON!<(UO!9)W3!:\\B!.ijTg4@uC
-gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoGDC!!)u[!!)rZ!s%KG!;tsZ!;tsZ!;tsZ!<)$[!9*&?!:]+N!.j9`k(2[[
-k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%X3eS8j#XSi.sXSMqsX8i7uX8i7uX8i7tX9/I(X8qmoq>g/h!!)Jh!!%SOJZOF(l`C-S
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp%O5g4=h/gAM$LgA1gLg&M-Ng&M-Ng&M-Mg&h?/g&Ud!q>g0A!!)KA!!%T(J_G\/le;C=
-rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp%X3eVf@Jk5>;Xk5#)Xjo>DZjo>DZjo>DYjoYVGjoG&9q>g0M!!)KM!!%T4J`_OGlfS6I
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r7$!!)u!!!)hr!!)qu!!)qu!!)nt!s#F(!8spY!:Quh!.h5&XF[J=XT._f
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V-+!!)uO!!)iK!!)rN!!)rN!!)oM!s%'/!8uQ2!:SVA!.ijTg4@uDgAh3P
-gAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoGDC!!)u[!!)iW!!)rZ!!)rZ!!)oY!s%KG!8uu>!:T%M!.j9`k(2[\k5YJ\
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!)u!"9>O)!!*#"!!)nt!!)ksrrCrX!!)Jh!!%SOJZOF(l`C-S
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!)uO"9@00!!*#P!!)oM!!)lLrrCs1!!)KA!!%T(J_G\/le;C=
-rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!)u["9@TH!!*#\!!)oY!!)lXrrCs=!!)KM!!%T4J`_OGlfS6I
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!joqR2eS8j#rW)nu!!)u!r;chu!<B5#!;rqr!;iht!9($W!:d,j!.h5&XF[J=XT._fec1:%
-s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!joqI4g4=h/rW)oN!!)uOr;ciN!<CjQ!;tRK!;kIM!9)Z0!:ebC!.ijTg4@uDgAh3PgAca(
-s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!joqR2eVf@JrW)oZ!!)u[r;ciZ!<D9]!;u!W!;kmY!9*)<!:f1O!.j9`k(2[\k5YJ\ec1:%
-s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jdX8i7gX8i7DX8i6OXF[I(XQutfmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hBg&M-@g&M,rg&M,(g4@t/g?[Jms8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@Qjo>DLjo>D)jo>C4k(2ZGk3M10s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jdX8i7gX8i7CX8i6OXF[I(XR*%gmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hBg&M-@g&M,qg&M,(g4@t/g?dPns8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@Qjo>DLjo>D(jo>C4k(2ZGk3V71s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jeXSi.iXSi-MXF[I(XL5/0mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hCgAM$BgAM#&g4@t/g9oZ7s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@Rk5>;Nk5>:2k(2ZGk-a@Os8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXN.CB!.h5&XN%@Amf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g;hnI!.ijTg;_kHs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k/ZTa!.j9`k/QQ`s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,XSr2#X8qUg!!)2`!!(0C!!%SOJZQhls6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g_gAV'Qg&UKn!!)39!!(0q!!%T(J_J)ss8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?nk5G>]joFc1!!)3E!!(1(!!%T4J`ar6s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8j-X8i8"XT&:eX8i7`X8i7CX8i6OXF[IlXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g`g&M-PgA_0>g&M-9g&M,qg&M,(g4@tsgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?ojo>D\k5PGJjo>DEjo>D(jo>C4k(2[6k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8j.X8i7uX8i8"XSi.uXT&8#XSr4uXS`(qXSr4uXSr2"XSr5"XS`(CX8i6OXF[Il
-XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=gag&M-Ng&M-PgAM$NgA_-QgAV*NgACsJgAV*NgAV'PgAV*PgACrqg&M,(g4@ts
-gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?pjo>DZjo>D\k5>;Zk5PD]k5GAZk555Vk5GAZk5G>\k5GA\k555(jo>C4k(2[6
-k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8j.X8i7rX8i8!X8i8"XT&;"X8i8!X8i7rX8i8"X8i8!X8i8"X8i8!X8i7jXSMqU
-X8i6OXF[IlXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=gag&M-Kg&M-Og&M-PgA_0Pg&M-Og&M-Kg&M-Pg&M-Og&M-Pg&M-Og&M-CgA1g.
-g&M,(g4@tsgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?pjo>DWjo>D[jo>D\k5PG\jo>D[jo>DWjo>D\jo>D[jo>D\jo>D[jo>DOk5#):
-jo>C4k(2[6k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8j.X8i7sX8i7tX9/I(X8r4#!!)u!!!)ks!!)qu!!)u!!W];%r2]kuhlQ\To;hol
-JZOF(`2s",rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=gag&M-Lg&M-Mg&h?/g&V**!!)uO!!)lL!!)rN!!)uO!W^pSr7V,NhqIr-o@a0E
-J_G\/`7k7krn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf?pjo>DXjo>DYjoYVGjoGAB!!)u[!!)lX!!)rZ!!)u[!W_?_r8mtZhrae9oB$#Q
-J`_OG`9.+"rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8j.X8i7sX8i7tX9/I(X8r4#!!)u!!!)ksq>gGp!!)nt!!)Pjq>fKU!!%SOJZQhl
-s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=gag&M-Lg&M-Mg&h?/g&V**!!)uO!!)lLq>gHI!!)oM!!)QCq>fL.!!%T(J_J)s
-s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?pjo>DXjo>DYjoYVGjoGAB!!)u[!!)lXq>gHU!!)oY!!)QOq>fL:!!%T4J`ar6
-s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8j.X8i7sX8i7tX9/I(X8r4#!!)u!!!)ks!!)bp!W];%r2]kub,bRCJZOF(`N9+-
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=gag&M-Lg&M-Mg&h?/g&V**!!)uO!!)lL!!)cI!W^pSr7V,Nb1ZgqJ_G\/`S1@l
-rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf?pjo>DXjo>DYjoYVGjoGAB!!)u[!!)lX!!)cU!W_?_r8mtZb2r[(J`_OG`TI4#
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8j-X8i8!X9/I(X8r4#!!*#"!!)u!!!)u!!!*#"!!)u!!!)u!!!*#"!!*#"!!)u!
-!!*#"!!(<G!!%SOJZQhls6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g`g&M-Og&h?/g&V**!!*#P!!)uO!!)uO!!*#P!!)uO!!)uO!!*#P!!*#P!!)uO
-!!*#P!!(<u!!%T(J_J)ss8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?ojo>D[joYVGjoGAB!!*#\!!)u[!!)u[!!*#\!!)u[!!)u[!!*#\!!*#\!!)u[
-!!*#\!!(=,!!%T4J`ar6s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8j,XSi.tXSi.uXSr5"XSr4uXSr4sXSi.uXSr2"XSr4uXSr4EX8i6OXF[IlXT._f
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g_gAM$MgAM$NgAV*PgAV*NgAV*LgAM$NgAV'PgAV*NgAV)sg&M,(g4@tsgAh3P
-gAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?nk5>;Yk5>;Zk5GA\k5GAZk5GAXk5>;Zk5G>\k5GAZk5GA*jo>C4k(2[6k5YJ\
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXN7IC!.h5&XMq:@mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g;qtJ!.ijTg;VeGs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k/cZb!.j9`k/HK_s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXN.CB!.h5&XN%@Amf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g;hnI!.ijTg;_kHs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k/ZTa!.j9`k/QQ`s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXN7IC!91*[!/[cW!.h6/XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g;qtJ!92`4!/]D0!.ik]gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k/cZb!93/@!/]h<!.j:ik5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXR<1h!!0/$i2cnYkcFa`"KVU)X8nin!!)Gg!!%SOhQ6bFrmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!johC3g4=g+g@!\o!!1dRi7\/2kh?"9"PNk0g&R_u!!)H@!!%T(hV/#0rn@C's8VfHs+14M
-#25dNk2s5TJ,~>
-!<E0!johL1eVf?:k3hC2!!23^i8t">kiVjE"Qf^HjoD"8!!)HL!!%T4hWFk<rmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXRE4j!<0)"!6;/@!<0)"!<9,#!1p7l!:Hog!.h6.XT._fec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!johC3g4=g+g@*_q!<1^P!6<dn!<1^P!<:aQ!1qmE!:JP@!.ik\gAh3PgAca(s7Y1HJcG`S
-g7eQ/k.1PC~>
-!<E0!johL1eVf?:k3qF4!<2-\!6=4%!<2-\!<;0]!1r<Q!:JtL!.j:hk5YJ\ec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!johL1eS8iMXRE4j!<&u!!;rqt!<'#!!<9/#!<9/"!<9/"!<0)!!;`er!!0/$rN,turN#u!
-r2^#$XK2E'rW)ktr;churr<&#rW)ktrW!#$!!)u!rW(rZrrE)#rrE#!r;cbsr;cetquH8g!!%SO
-hQ6bFrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=g+g@*_q!<(UO!;tRM!<(XO!<:dQ!<:dP!<:dP!<1^O!;bFK!!1dRrS%5NrRq5O
-r7V8Rg=cP\rW)lMr;ciNrr<&QrW)lMrW!#R!!)uOrW(s3rrE)QrrE#Or;ccLr;cfMquH9@!!%T(
-hV/#0rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf?:k3qF4!<)$[!;u!Y!<)'[!<;3]!<;3\!<;3\!<2-[!;bjW!!23^rT=(ZrT4([
-r8n+^k2l[+rW)lYr;ciZrr<&]rW)lYrW!#^!!)u[rW(s?rrE)]rrE#[r;ccXr;cfYquH9L!!%T4
-hWFk<rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXRE4j!;NVq!<0&"!<&u)!3?1%X8o?'!<&u!!;iht!;iht!<0)"!<0&"!<0&"
-!<0&"!;W_r!<0&"!<0&"!<&u!!<0)"!<0&"!<0&"!<0)"!<&u!!<0&"!;3Gi!;3E!!3?1%X8o?'
-!<&u!!<0&"!<&u!!<&u!!:Hog!.h6.XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g@*_q!;P7J!<1[P!<(UW!87G,g&Tj\!<(UO!;kIM!;kIM!<1^P!<1[P!<1[P
-!<1[P!;Y@K!<1[P!<1[P!<(UO!<1^P!<1[P!<1[P!<1^P!<(UO!<1[P!;5(B!;5%O!87G,g&Tj\
-!<(UO!<1[P!<(UO!<(UO!:JP@!.ik\gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k3qF4!;P[V!<2*\!<)$c!9O:DjoFQ+!<)$[!;kmY!;kmY!<2-\!<2*\!<2*\
-!<2*\!;YdW!<2*\!<2*\!<)$[!<2-\!<2*\!<2*\!<2-\!<)$[!<2*\!;5LN!;5I[!9O:DjoFQ+
-!<)$[!<2*\!<)$[!<)$[!:JtL!.j:hk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXR<1g!<&u!!;rnu!<0)"!;iht!<&u!!;iht!;rnu!;ro#!3E7%r2]u#XK2Et
-X8i8!X8i7rX8i8"X8i8!X9/I(X8r1"!!*#"!!)qu!!)&\rrDtu!!)nt!W];%qlBbtri?)"n#QKh
-JZR\/s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g@!\n!<(UO!;tON!<1^P!;kIM!<(UO!;kIM!;tON!;tOQ!8?-,r7V5Qg=cQ&
-g&M-Og&M-Kg&M-Pg&M-Og&h?/g&V')!!*#P!!)rN!!)'5rrDuN!!)oM!W^pSqq;#Mrn7>Pn(IaA
-J_Jr6s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k3hC1!<)$[!;tsZ!<2-\!;kmY!<)$[!;kmY!;tsZ!;ts]!9WDDr8n(]k2l[>
-jo>D[jo>DWjo>D\jo>D[joYVGjoG>A!!*#\!!)rZ!!)'ArrDuZ!!)oY!W_?_qrRkYroO1\n)aTM
-J`beNs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXQlke!<0(r!<0&"!;W\u!3E7%qQ'Ysr2]kuq5jDms/Z2#q5aPrrN#u!rN,ns
-ri?)"rN$)$XK2F"X8i8"XSMqjXSMqiX8i7tX8i7tX9&C'!;iht!<0&"!:Hog!.h6.XT._fec1:%
-s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g?RAl!<1^K!<1[P!;Y=N!8?-,qUtoLr7V,Nq:bZFs4RGQq:YfKrRq5OrS%/L
-rn7>PrRq>Rg=cQ)g&M-PgA1gCgA1gBg&M-Mg&M-Mg&_9.!;kIM!<1[P!:JP@!.ik\gAh3PgAca(
-s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k3D(/!<2-W!<2*\!;YaZ!9WDDqW7bXr8mtZq<%MRs5j:]q;qYWrT4([rT="X
-roO1\rT41^k2l[Ajo>D\k5#)Ok5#)Njo>DYjo>DYjoPPF!;kmY!<2*\!:JtL!.j:hk5YJ\ec1:%
-s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXRE4j!<&u!!<0&"!;NVq!;W\u!3E7%qQ'Ysr2]kuq5aPrq5aPrq5aPrrN#u!
-ri?)"rN#u!ri?)"rN$)$XK2F"X8i8"X8i7VX8i7tX8i7tX9&C'!;iht!<0&"!:Hog!.h6.XT._f
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g@*_q!<(UO!<1[P!;P7J!;Y=N!8?-,qUtoLr7V,Nq:YfKq:YfKq:YfKrRq5O
-rn7>PrRq5Orn7>PrRq>Rg=cQ)g&M-Pg&M-/g&M-Mg&M-Mg&_9.!;kIM!<1[P!:JP@!.ik\gAh3P
-gAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k3qF4!<)$[!<2*\!;P[V!;YaZ!9WDDqW7bXr8mtZq;qYWq;qYWq;qYWrT4([
-roO1\rT4([roO1\rT41^k2l[Ajo>D\jo>D;jo>DYjo>DYjoPPF!;kmY!<2*\!:JtL!.j:hk5YJ\
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXRE7j!<0&"!<&u!!<&u!!<0&"!;NYq!;W\r!;iht!<&u!!<0&"!<&u!!<0&"
-!<&u$!3E7%rN#u!ri?)"riH,"ri?)"rN#u!ri?)"riH,"rN#u!rN#u!j/`4\qQ'YsrN#u!ri?)"
-rN#u!rN#u!ri?)"nuMfkJZR_0s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g@*bq!<1[P!<(UO!<(UO!<1[P!;P:J!;Y=K!;kIM!<(UO!<1[P!<(UO!<1[P
-!<(UR!8?-,rRq5Orn7>Prn@APrn7>PrRq5Orn7>Prn@APrRq5OrRq5Oj4XJ5qUtoLrRq5Orn7>P
-rRq5OrRq5Orn7>Po%F'DJ_Ju7s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k3qI4!<2*\!<)$[!<)$[!<2*\!;P^V!;YaW!;kmY!<)$[!<2*\!<)$[!<2*\
-!<)$^!9WDDrT4([roO1\roX4\roO1\rT4([roO1\roX4\rT4([rT4([j5p=AqW7bXrT4([roO1\
-rT4([rT4([roO1\o&]oPJ`bhOs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXRE4k!3H/"qlK_rriH%uqQ0\sqlK\qr2fhsr2fhsr2fhss/c2"s/c2"riH)!
-"0;J&XSr5"XSr5!XSr2#X8r1"r;blZr;c_rr;cbsr;c_rrW)Ji!!%SOhQ6bFrmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!johC3g4=g+g@*_r!8@DPqqCuKrn@;NqV(rLqqCrJr7_)Lr7_)Lr7_)Ls4[GPs4[GPrn@>O
-"53_TgAV*PgAV*OgAV'Qg&V')r;bm3r;c`Kr;ccLr;c`KrW)KB!!%T(hV/#0rn@C's8VfHs+14M
-#25dNk2s5TJ,~>
-!<E0!johL1eVf?:k3qF5!9X7\qr[hWroX.ZqW@eXqr[eVr9!qXr9!qXr9!qXs5s:\s5s:\roX1[
-"6KR`k5GA\k5GA[k5G>]joG>Ar;bm?r;c`Wr;ccXr;c`WrW)KN!!%T4hWFk<rmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXG<kW!33+#!.h6.XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g5"A^!34`Q!.ik\gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(i(!!35/]!.j:hk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXGEqX!2ut!!.h6/XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g5+G_!3"TO!.ik]gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(r."!3##[!.j:ik5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXGj7Z!.h5)XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g5Oba!.ijWgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k)AI$!.j9ck5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[GRX8pbO!!%SO]<)&#rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=g+g4@rYg&TXV!!%T(]A!;brn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf?:k(2XqjoEon!!%T4]B9.nrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXJW)u!!0/$i2cnYeZ8`NJZQGas6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g8<U'!!1dRi7\/2e_1!'J_I]hs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k,.;?!!23^i8t">e`Hi3J`aQ+s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXJ`-"!<0)"!4/a,!.h5_XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g8EX)!<1^P!41AZ!.ik8gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k,7>A!<2-\!41ef!.j:Dk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXJ`-"!<&u!!;rqt!<'#!!<9/#!<9/"!<9/"!<0)!!;`er!!0/$rN,tur2fer
-nuMfkJZQGas6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g8EX)!<(UO!;tRM!<(XO!<:dQ!<:dP!<:dP!<1^O!;bFK!!1dRrS%5Nr7_&K
-o%F'DJ_I]hs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k,7>A!<)$[!;u!Y!<)'[!<;3]!<;3\!<;3\!<2-[!;bjW!!23^rT=(Zr9!nW
-o&]oPJ`aQ+s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXJ`-"!;NVq!<0&"!<&u)!3?1%X8o?'!<&u!!;iht!;iht!<0)"!<0&"!<0&"
-!<0&"!<&u!!:m2k!.h5_XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g8EX)!;P7J!<1[P!<(UW!87G,g&Tj\!<(UO!;kIM!;kIM!<1^P!<1[P!<1[P
-!<1[P!<(UO!:nhD!.ik8gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k,7>A!;P[V!<2*\!<)$c!9O:DjoFQ+!<)$[!;kmY!;kmY!<2-\!<2*\!<2*\
-!<2*\!<)$[!:o7P!.j:Dk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXJW)t!<&u!!;rnu!<0)"!;iht!<&u!!;iht!;rnu!;ro#!3E7%r2]u#XK2Ei
-X8i6OXLYG4mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g8<U&!<(UO!;tON!<1^P!;kIM!<(UO!;kIM!;tON!;tOQ!8?-,r7V5Qg=cPp
-g&M,(g:>r;s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,.;>!<)$[!;tsZ!<2-\!;kmY!<)$[!;kmY!;tsZ!;ts]!9WDDr8n(]k2l[3
-jo>C4k.0XSs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJ2cr!<0(r!<0&"!;W\u!3E7%qQ'Ysr2]kuq5jDmriH%unZ2]jJZQGas6fm:
-s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g7m:$!<1^K!<1[P!;Y=N!8?-,qUtoLr7V,Nq:bZFrn@;Nn_*sCJ_I]hs8W)P
-s+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k+^u<!<2-W!<2*\!;YaZ!9WDDqW7bXr8mtZq<%MRroX.Zn`BfOJ`aQ+s8W)K
-s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXJ`-"!<&u!!<0&"!;NVq!;W\u!3E7%qQ'Ysr2]kuq5aProW/#mnuMfkJZQGa
-s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g8EX)!<(UO!<1[P!;P7J!;Y=N!8?-,qUtoLr7V,Nq:YfKo\'9Fo%F'DJ_I]h
-s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k,7>A!<)$[!<2*\!;P[V!;YaZ!9WDDqW7bXr8mtZq;qYWo]?,Ro&]oPJ`aQ+
-s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXJ`0"!<0&"!<&u!!<&u!!<0&"!;NYq!;W\r!;iht!<&u!!<0&"!<&u$!3E7%
-rN#u!nuMfkJZQGas6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g8E[)!<1[P!<(UO!<(UO!<1[P!;P:J!;Y=K!;kIM!<(UO!<1[P!<(UR!8?-,
-rRq5Oo%F'DJ_I]hs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k,7AA!<2*\!<)$[!<)$[!<2*\!;P^V!;YaW!;kmY!<)$[!<2*\!<)$^!9WDD
-rT4([o&]oPJ`aQ+s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXJ`-#!3H/"qlK_rriH%uqQ0\sqlK\qr2fhsr2fhsriH"tnZ2]jJZQGas6fm:
-s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g8EX*!8@DPqqCuKrn@;NqV(rLqqCrJr7_)Lr7_)Lrn@8Mn_*sCJ_I]hs8W)P
-s+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k,7>B!9X7\qr[hWroX.ZqW@eXqr[eVr9!qXr9!qXroX+Yn`BfOJ`aQ+s8W)K
-s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXF[J%X8i6OXLbM5mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@u,g&M,(g:H#<s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2[Djo>C4k.9^Ts8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[J$X8i6OXLkS6mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@u+g&M,(g:Q)=s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2[Cjo>C4k.BdUs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I^XT&9OXOjQRmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@tegA_/(g=P'Ys8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2[(k5PF4k1Abqs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[J2XSr5!XSr4eXS`(oX8i8"XSMqjXSMq*X8i7`XSr4sXSr4]XT._fec1:%
-s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@u9gAV*OgAV*>gACsHg&M-PgA1gCgA1fXg&M-9gAV*LgAV*6gAh3PgAca(
-s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2[Qk5GA[k5GAJk555Tjo>D\k5#)Ok5#(djo>DEk5GAXk5GABk5YJ\ec1:%
-s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[J1XT&;"XT&:cX8i7pX8i8"X9J[+X8o?'!;<Ju!3E7%XK2E1X8i7^X8i7r
-X8i7^XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@u8gA_0PgA_0<g&M-Ig&M-Pg'.Q2g&Tj\!;>+N!8?-,g=cP8g&M-7g&M-K
-g&M-7gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2[Pk5PG\k5PGHjo>DUjo>D\jothJjoFQ+!;>OZ!9WDDk2lZPjo>DCjo>DW
-jo>DCk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[J1X9/I(!3H/"riH)!!iuA%rN,tu!NZ;!X8i7tXSr2#X8r7$"ota+!3E7%
-riH%urN$P1XK2E'X8o?'!!'+%!!'+%rW)u"rW(rZrVuu#!<0(u!<0)"!!',"!<'"s!<'#!!<9/#
-!<'"t!;`bs!;W\r!;`er!<'#!!<9/#!;W_rmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@u8g&h?/!8@DPrn@>O!nmVSrS%5N!SRPOg&M-MgAV'Qg&V-+"p!B2!8?-,
-rn@;NrRqe_g=cP\g&Tj\!!(a,!!(a,rW)uPrW(s3rVuuQ!<1^N!<1^P!!(aP!<(XL!<(XO!<:dQ
-!<(XM!;bCL!;Y=K!;bFK!<(XO!<:dQ!;Y@Ks8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2[PjoYVG!9X7\roX1[!p0I_rT=(Z!TjC[jo>DYk5G>]joGDC"p!fJ!9WDD
-roX.ZrT4Xkk2l[+joFQ+!!)0D!!)0DrW)u\rW(s?rVuu]!<2-Z!<2-\!!)0\!<)'X!<)'[!<;3]
-!<)'Y!;bgX!;YaW!;bjW!<)'[!<;3]!;YdWs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[J1X9em.!3?1%!3E7%riH,"rN#u!riH,"r2]kur2]kuriH,"qlBbtr2]ku
-rN#u!qlBbtqlC&'X8o?'!3E7%rN#u!orRuiorJ,nriH,"s/Z2#rN#u!riH,"ri?)"rN#u!q5ai%
-X8o?'!3E7%rN#u!qlBbtq5aPrqlBbtri?)"rN$/&X8o?'!;`esmf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=g+g4@u8g'Ic5!87G,!8?-,rn@APrRq5Orn@APr7V,Nr7V,Nrn@APqq;#Mr7V,N
-rRq5Oqq;#Mqq;;Ug&Tj\!8?-,rRq5Op"K6Bp"BBGrn@APs4RGQrRq5Orn@APrn7>PrRq5Oq:Z)S
-g&Tj\!8?-,rRq5Oqq;#Mq:YfKqq;#Mrn7>PrRqDTg&Tj\!;bFLs8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf?:k(2[Pjp;%M!9O:D!9WDDroX4\rT4([roX4\r8mtZr8mtZroX4\qrRkYr8mtZ
-rT4([qrRkYqrS.ajoFQ+!9WDDrT4([p#c)Np#Z5SroX4\s5j:]rT4([roX4\roO1\rT4([q;qq_
-joFQ+!9WDDrT4([qrRkYq;qYWqrRkYroO1\rT47`joFQ+!;bjXs8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8iMXF[J1X9\g-X8o?'!3?1uX8i8"X8i7uX8i7uX8i8!X8i7uX8i7tX8i8!X8i7t
-X8i7uX8i7tXT&:tX8i8!X8i7\X8i7uX9&C'!;ii"!3E7%rN#u!rN#u!q5jSrr2]kuqlBbtr2]ku
-q5aPrr2]kur2]kuriH,"p8n;^rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=g+g4@u8g'@]4g&Tj\!87GNg&M-Pg&M-Ng&M-Ng&M-Og&M-Ng&M-Mg&M-Og&M-M
-g&M-Ng&M-MgA_0Mg&M-Og&M-5g&M-Ng&_9.!;kIP!8?-,rRq5OrRq5Oq:biKr7V,Nqq;#Mr7V,N
-q:YfKr7V,Nr7V,Nrn@APp=fQHrn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf?:k(2[Pjp1tLjoFQ+!9O:Zjo>D\jo>DZjo>DZjo>D[jo>DZjo>DYjo>D[jo>DY
-jo>DZjo>DYk5PGYjo>D[jo>DAjo>DZjoPPF!;km\!9WDDrT4([rT4([q<%\Wr8mtZqrRkYr8mtZ
-q;qYWr8mtZr8mtZroX4\p?)DTrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXF[J1X9\g-X8o?'!3?1uX8i8"X8i7oX8i8!X8i7uX8i7tX8i8!X8i7tX8i7u
-X8i7tX8i7rX9/I(X8qmoq>g5j!!)ks!!)nt!s#F(!<&u!!<&u!!;W\r!;iht!;iht!;rnu!;W\r
-!;rqp!<0&"!;3Gnmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@u8g'@]4g&Tj\!87GNg&M-Pg&M-Hg&M-Og&M-Ng&M-Mg&M-Og&M-Mg&M-N
-g&M-Mg&M-Kg&h?/g&Ud!q>g6C!!)lL!!)oM!s%'/!<(UO!<(UO!;Y=K!;kIM!;kIM!;tON!;Y=K
-!;tRI!<1[P!;5(Gs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2[Pjp1tLjoFQ+!9O:Zjo>D\jo>DTjo>D[jo>DZjo>DYjo>D[jo>DYjo>DZ
-jo>DYjo>DWjoYVGjoG&9q>g6O!!)lX!!)oY!s%KG!<)$[!<)$[!;YaW!;kmY!;kmY!;tsZ!;YaW
-!;u!U!<2*\!;5LSs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[J1X8i7uX9&C'!;rnu!<0&"!;<Jo!<&u!!;rnu!;iht!<&u!!;iht!;rnu
-!;iht!;W\u!3E7%iiE+[qQ'YsqlBl"XK2F#X8i8!X8i7rX8i7tX8i7tX8i7uX8i7rX8i7uX8i7q
-X8i7nXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@u8g&M-Ng&_9.!;tON!<1[P!;>+H!<(UO!;tON!;kIM!<(UO!;kIM!;tON
-!;kIM!;Y=N!8?-,in=A4qUtoLqq;,Pg=cQ*g&M-Og&M-Kg&M-Mg&M-Mg&M-Ng&M-Kg&M-Ng&M-J
-g&M-GgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2[Pjo>DZjoPPF!;tsZ!<2*\!;>OT!<)$[!;tsZ!;kmY!<)$[!;kmY!;tsZ
-!;kmY!;YaZ!9WDDioU4@qW7bXqrRt\k2l[Bjo>D[jo>DWjo>DYjo>DYjo>DZjo>DWjo>DZjo>DV
-jo>DSk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[J1X8i7uX9/I(X8r7$rrE#!!!)u!!!)qu!!)qu!!*#"rrDqt!!)qu!!)u!
-!!)nt!!)nt!!)eqrrCuY!!)u!!s#F(!<&u!!<0&"!<&u!!<&u!!<0&"!<&u!!;`bs!<&u!!;iht
-!;W\r!;iht!<&u!!<0&"!;3Gnmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@u8g&M-Ng&h?/g&V-+rrE#O!!)uO!!)rN!!)rN!!*#PrrDrM!!)rN!!)uO
-!!)oM!!)oM!!)fJrrD!2!!)uO!s%'/!<(UO!<1[P!<(UO!<(UO!<1[P!<(UO!;bCL!<(UO!;kIM
-!;Y=K!;kIM!<(UO!<1[P!;5(Gs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2[Pjo>DZjoYVGjoGDCrrE#[!!)u[!!)rZ!!)rZ!!*#\rrDrY!!)rZ!!)u[
-!!)oY!!)oY!!)fVrrD!>!!)u[!s%KG!<)$[!<2*\!<)$[!<)$[!<2*\!<)$[!;bgX!<)$[!;kmY
-!;YaW!;kmY!<)$[!<2*\!;5LSs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[J2XSr5!XSr5"XSr2#X8r1"r;cetquH\srW!#$!!*#"quH\sr;cbsquH_t
-r;cYp!!(oXr;cetr;churW)u"rW)nurW)nur;c_rr;cbsquH\squHYrr;chur;cSns6fm:s+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g4@u9gAV*OgAV*PgAV'Qg&V')r;cfMquH]LrW!#R!!*#PquH]Lr;ccLquH`M
-r;cZI!!(p1r;cfMr;ciNrW)uPrW)oNrW)oNr;c`Kr;ccLquH]LquHZKr;ciNr;cTGs8W)Ps+14M
-p=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k(2[Qk5GA[k5GA\k5G>]joG>Ar;cfYquH]XrW!#^!!*#\quH]Xr;ccXquH`Y
-r;cZU!!(p=r;cfYr;ciZrW)u\rW)oZrW)oZr;c`Wr;ccXquH]XquHZWr;ciZr;cTSs8W)Ks+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXF[J#X8i76X8i6OXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@u*g&M,dg&M,(gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2[Bjo>Cpjo>C4k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[J$X8i75X8i6OXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@u+g&M,cg&M,(gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2[Cjo>Cojo>C4k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[J(XSi.4XSi-NXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@u/gAM#bgAM#'gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2[Gk5>:nk5>:3k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJW'!!.h5&XQQ\bmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g8<R(!.ijTg?72is8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,.8@!.j9`k3(n,s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJDot!.h5&XQchdmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g8*F&!.ijTg?I>ks8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k+q,>!.j9`k3;%.s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJW'!!.h5&XQQ\bmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g8<R(!.ijTg?72is8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,.8@!.j9`k3(n,s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJW'!!.h5&XQQ\bmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g8<R(!.ijTg?72is8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,.8@!.j9`k3(n,s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJDot!.h5&XQchdmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g8*F&!.ijTg?I>ks8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k+q,>!.j9`k3;%.s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJMuu!.h5&XQZbcmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g83L'!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,%2?!.j9`k31t-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXJW'!!.h5&XQQ\bmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g8<R(!.ijTg?72is8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k,.8@!.j9`k3(n,s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j-X8i6OXF[I(XOjQRmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g`g&M,(g4@t/g=P'Ys8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?ojo>C4k(2ZGk1Abqs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,X8i6OXF[I(XOsWSmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g_g&M,(g4@t/g=Y-Zs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?njo>C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,X8i6OXF[I(XOsWSmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g_g&M,(g4@t/g=Y-Zs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?njo>C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,X8i6OXF[I(XOsWSmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g_g&M,(g4@t/g=Y-Zs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?njo>C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,X8i6OXF[I(XOsWSmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g_g&M,(g4@t/g=Y-Zs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?njo>C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j+X8i6OXF[I(XP']Tmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g^g&M,(g4@t/g=b3[s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?mjo>C4k(2ZGk1Snss8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,X8i6OXF[I(XOsWSmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g_g&M,(g4@t/g=Y-Zs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?njo>C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,X8i6OXF[I(XOsWSmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g_g&M,(g4@t/g=Y-Zs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?njo>C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,X8i6OXF[I(XOsWSmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g_g&M,(g4@t/g=Y-Zs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?njo>C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8j,X8i6OXF[I(XOsWSmf(c:KE(uDKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g_g&M,(g4@t/g=Y-Zs8LaPJcGcBJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?njo>C4k(2ZGk1Jhrs8LRKKE(uDKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8j,X8i6OXF[I(XOsWSmf(c:K)krCKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g_g&M,(g4@t/g=Y-Zs8LaPJH5`AJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?njo>C4k(2ZGk1Jhrs8LRKK)krCKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8j-X8i6OXF[I(XOjQRmf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g`g&M,(g4@t/g=P'Ys8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?ojo>C4k(2ZGk1Abqs8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i6OXF[I(XH0I_mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M,(g4@t/g5jtfs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>C4k(2ZGk)\[)s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i6OXF[I(XH9O`mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M,(g4@t/g5t%gs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i6OXF[I(XH9O`mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M,(g4@t/g5t%gs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i6OXF[I(XH9O`mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M,(g4@t/g5t%gs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i6OXF[I(XH9O`mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M,(g4@t/g5t%gs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jsX8i6OXF[I(XHBUamf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hQg&M,(g4@t/g6(+hs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@`jo>C4k(2ZGk)ng+s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i6OXF[I(XH9O`mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M,(g4@t/g5t%gs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i6OXF[I(XH9O`mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M,(g4@t/g5t%gs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i6OXF[I(XH9O`mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M,(g4@t/g5t%gs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i6OXF[I(XH9O`mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M,(g4@t/g5t%gs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i6OXF[I(XH9O`mf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M,(g4@t/g5t%gs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i6OXF[I(XH0I_mf(c:KCJmFeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M,(g4@t/g5jtfs8LaPJai[Dg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>C4k(2ZGk)\[)s8LRKKCJmFeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:K)iUWrs=>Xs4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJH3RZrs=8Vs4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKK)iUWrs=>Xs4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:K*&ads7k.EK*f6ks4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJHE^gs7k=JJI03ns4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKK*&ads7k.EK*f6ks4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE&Xbs7t4FK*f6ks4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcEUes7tCKJI03ns4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE&Xbs7t4FK*f6ks4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KE&Xbs8(:GKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJcEUes8(ILJcEUers%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKE&Xbs8(:GKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KDrRas81@HKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc<Ods81OMJcEUers%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKDrRas81@HKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KDrRas8:FIKDrRars%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc<Ods8:UNJc<Odrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKDrRas8:FIKDrRars%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KDiL`s8CLJKDrRars%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc3Ics8C[OJc<Odrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKDiL`s8CLJKDrRars%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KDiL`s8LRKKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc3Ics8LaPJc3Icrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKDiL`s8LRKKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KD`F_s8UXLKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc*Cbs8UgQJc3Icrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKD`F_s8UXLKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc*CbrrUo*Jc*Cbrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KDW=^s8IZK^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc!:as8ITI_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKDW=^s8IZK^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJc!:cs+,au_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XGa1[mf(c:KDN:]KDW@^rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g5F\bs8LaPJbm7`Jc!=ars%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk)8C%s8LRKKDN:]KDW@^rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMmXaeWmYUB2ec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+s+13$s,$dTgAca#_>o/`_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:s+13$s,$dTec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!jo_F0eS9['JaS*WM!k8ms+Bh@#1]OLk2s>WJ,~>
-!<E0!jo_=2g4=hTJcC<$M#[J.s+0\>#25dNk2s5TJ,~>
-!<E0!jo_F0eVf"YJcC<$M#[J)s+Bh@#1]OLk2s>WJ,~>
-!<E0!joD3.eUc8%eUl<OKCAgEeYN6-k.LbF~>
-!<E0!joD*+g4@t/g4J#YJa`UCg7eQ/k.1PC~>
-!<E0!joD3.eUc8%eUl<OKCAgEeYN6-k.LbF~>
-!<E0!joD3.eUc8%eUc9=eHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g4@uGg'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eUc9=eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eUc9=eHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g4@uGg'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eUc9=eHMcKk2s>WJ,~>
-!<E0!joM:.JV/N+JV/Z/ldZ07s5rIW!.Y~>
-!<E0!joM10JUrB'JUrN+le2N9s5rIT!.Y~>
-!<E0!joM:.JV/N+JV/Z/ldZ07s5rIW!.Y~>
-!<E0!joM:.JV/N+JV/]0!<;B8"f21\k.LbF~>
-!<E0!joM10JUrB'JUrQ,!<;B="ektYk.1PC~>
-!<E0!joM:.JV/N+JV/]0!<;B8"f21\k.LbF~>
-!<E0!jo_F0K7id/!WTias+13$s/H#"^&S-)^&S,ueHMcKk2s>WJ,~>
-!<E0!jo_=2JV!F0!WU#fs+13$s/H#"_Z0Z._Z0Z%g'+2Mk2s5TJ,~>
-!<E0!jo_F0K7id/!WTias+13$s/H#"^&S-)^&S,ueHMcKk2s>WJ,~>
-!<E0!jo_F0K7ij1s8N+P]n-37s+13MrrIbcrVuT)s8VE8"f21\k.LbF~>
-!<E0!jo_=2JV!L2s8N+N_L_`<s+13MrrI\frVuT.s8VE="ektYk.1PC~>
-!<E0!jo_F0K7ij1s8N+P]n-37s+13MrrIbcrVuT)s8VE8"f21\k.LbF~>
-!<Bh3S-%5nKD3(Ys8R]Q^&S+`eUc8%eZIC%K)iU^s7j;-s6J2=S@tG_!!%N~>
-!<B_0R0))nJbR%\s8RWO_Z0Xeg4@t/g9'*/JH3Ras7jJ2s6JABRC\fS!!%N~>
-!<Bh3S-%5nKD3(Ys8R]Q^&S+`eUc8%eZIC%K)iU^s7j;-s6J2=S@tG_!!%N~>
-!!)uB".[noKDE4Zrrpr*K>%<bJ^o>%J^pmQs+:Hfs8UX"rVu`-s8VE8"e<iN]po(Q~>
-!!)u?".@koJbd1]rrq,-J\qHeJ_G\/J_I6[s+(<is8Ug,rVu`2s8VE="e!NE\sWPK~>
-!!)uB".[noKDE4Zrrpr*K>%<bJ^o>%J^pmQs+:Hfs8UX"rVu`-s8VE8"e<iN]po(Q~>
-!<CCD]`XeTK7j'7rVulIs+:Bds8RZ#J^o>%Xk!H(!knX6rRLlHr4W.1ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!^8rVulNs+(6gs8RZ(J_G\/XkNf+!lG!;rS%5Mr5/L6le2N1b.>0P!.Y~>
-!<CCD]`XeTK7j'7rVulIs+:Bds8RZ#J^o>%Xk!H(!knX6rRLlHr4W.1ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7j-9rVufGs+:Bds8RZ#J^o>%Xk!H(!knX6qpkZFrk8@3ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!d:rVufLs+(6gs8RZ(J_G\/XkNf+!lG!;qqD#Krke^8le2N1b.>0P!.Y~>
-!<CCD]`XeTK7j-9rVufGs+:Bds8RZ#J^o>%Xk!H(!knX6qpkZFrk8@3ldZ0/c+Uf\!.Y~>
-!<CCD]`jqVK7gkNrVu`Es+:Bds8RZ#J^o>%Xk!H(!knX6q:5HD!knX6ldZ0/c+Uf\!.Y~>
-!<C:A\cnMUJUt\TrVu`Js+(6gs8RZ(J_G\/XkNf+!lG!;q:bfI!lG!;le2N1b.>0P!.Y~>
-!<CCD]`jqVK7gkNrVu`Es+:Bds8RZ#J^o>%Xk!H(!knX6q:5HD!knX6ldZ0/c+Uf\!.Y~>
-!<CCD]`FYRqh+[os+:Bds8RZ#J^o>%Xk!H(!knX6pso=qs8VE8"e<iN]po(Q~>
-!<C:A\cJ5QqgnOrs+(6gs8RZ(J_G\/XkNf+!lG!;ptG[ts8VE="e!NE\sWPK~>
-!<CCD]`FYRqh+[os+:Bds8RZ#J^o>%Xk!H(!knX6pso=qs8VE8"e<iN]po(Q~>
-!<CCD]`jqVK7gkNrIasss+:Bds8RZ#J^o>%Xk!H(!knX6q:5Fr!knX6ldZ0/c+Uf\!.Y~>
-!<C:A\cnMUJUt\TrIOh!s+(6gs8RZ(J_G\/XkNf+!lG!;q:bdu!lG!;le2N1b.>0P!.Y~>
-!<CCD]`jqVK7gkNrIasss+:Bds8RZ#J^o>%Xk!H(!knX6q:5Fr!knX6ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7j-9rIb$us+:Bds8RZ#J^o>%Xk!H(!knX6qpkXtrk8@3ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!d:rIOn#s+(6gs8RZ(J_G\/XkNf+!lG!;qqD""rke^8le2N1b.>0P!.Y~>
-!<CCD]`XeTK7j-9rIb$us+:Bds8RZ#J^o>%Xk!H(!knX6qpkXtrk8@3ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7j'7rIb+"s+:Bds8RZ#J^o>%Xk!H(!knX6rRLk!r4W.1ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!^8rIOt%s+(6gs8RZ(J_G\/XkNf+!lG!;rS%4$r5/L6le2N1b.>0P!.Y~>
-!<CCD]`XeTK7j'7rIb+"s+:Bds8RZ#J^o>%Xk!H(!knX6rRLk!r4W.1ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7j!5rIY:(K7gl;s+/^OeUc8Qec17)^&S,_ebt-s^&S,ueHMJf]tKp9J,~>
-!<C:A\c\ASJV!X6rIG.+JUt]<s+/mTg4@t[gAc^,_Z0YigAQU!_Z0Z%g'*ne]"4:0J,~>
-!<CCD]`XeTK7j!5rIY:(K7gl;s+/^OeUc8Qec17)^&S,_ebt-s^&S,ueHMJf]tKp9J,~>
-!<CCD]`XeTK7ip3r.>'as8RZ#J^o>%Xk!H(!knX6rIamYs8VE8"e<iN]po(Q~>
-!<C:A\c\ASJV!R4r.+pds8RZ(J_G\/XkNf+!lG!;rIOa\s8VE="e!NE\sWPK~>
-!<CCD]`XeTK7ip3r.>'as8RZ#J^o>%Xk!H(!knX6rIamYs8VE8"e<iN]po(Q~>
-!<CCD]`XeTK7ij1rdt9cs8RY&JV/N+X+LPgs8R_(p:^M+ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!L2rdb-fs8RY$JUrB'X+:Djs8RY$p;6k0le2N1b.>0P!.Y~>
-!<CCD]`XeTK7ij1rdt9cs8RY&JV/N+X+LPgs8R_(p:^M+ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7id/!e\2dJV/N+JV0tT!knVdoY(;)ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!F0!eJ5gJUrB'JUshP!lFtgoYUY.le2N1b.>0P!.Y~>
-!<CCD]`XeTK7id/!e\2dJV/N+JV0tT!knVdoY(;)ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7eaTJcC<$L]?\j"e<iN]po(Q~>
-!<C:A\c\ASJUrCPJcC<$L]?\o"e!NE\sWPK~>
-!<CCD]`XeTK7eaTJcC<$L]?\j"e<iN]po(Q~>
-!<CCD]`O_SK7X&Rs+13)s6J2=SB\a\S,e'~>
-!<C:A\cS;RJV!iPs+13)s6JABREE+PR/ha~>
-!<CCD]`O_SK7X&Rs+13)s6J2=SB\a\S,e'~>
-!<CCD]`=RReUc8%eUc9=eHMJf]tKp9J,~>
-!<C:A\cA.Lg4@t/g4@uGg'*ne]"4:0J,~>
-!<CCD]`=RReUc8%eUc9=eHMJf]tKp9J,~>
-!<CCC^%%VDUk,=mUlM5N^%.Znc2PBWS,e'~>
-!<C:@]()2>Tn/ngToPfH](26hb5SsQR/ha~>
-!<CCC^%%VDUk,=mUlM5N^%.Znc2PBWS,e'~>
-!\j]"rOqgI!53s`JcC<$NrSXork/B'!&9!~>
-!^m%2rOVUC!4ma]JcC<$NrSXlrji0!!(;>~>
-!bq_[rOqgI!53s`JcC<$NrSXork/B'!-<Y~>
-!\j]"n%A^kJ`_OGJ``!T!6suG!h96NJ,~>
-!^m%2n%&LeJ`_OGJ``!T!6XcA!gs$VJ,~>
-!cn@dn%A^kJ`_OGJ``!T!6suG!h973J,~>
-s#C,\S=K,_!1\W&J`_OGNog>dn\+sm!WY58J,~>
-s$QngR@3TV!1AE#J`_OGNog>an[eag!WYVVJ,~>
-s)S5AS=K,_!1\W&J`_OGNog>dn\+sm!W[:_J,~>
-">Mnk!!)MYJ\?WJJ\@&VnXTUZs"OL6J,~>
-r^?bdn<nj=J\$EDNOnYJrrE$dJ,~>
-rcA)>n=5'CJ\?WJNP4kPrrE%>J,~>
-rAaj4JH16$JH16$li7#?r]'s5J,~>
-r'Z)9JH16$JH5$:r'Z&~>
-r,[DhJH16$JH5$:r,[A~>
-%%EndData
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/lib/et/doc/src/megaco_tracer.gif b/lib/et/doc/src/megaco_tracer.gif
deleted file mode 100644
index cc4f747f03..0000000000
--- a/lib/et/doc/src/megaco_tracer.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/megaco_tracer.png b/lib/et/doc/src/megaco_tracer.png
new file mode 100644
index 0000000000..b4b65a9f47
--- /dev/null
+++ b/lib/et/doc/src/megaco_tracer.png
Binary files differ
diff --git a/lib/et/doc/src/megaco_tracer.ps b/lib/et/doc/src/megaco_tracer.ps
deleted file mode 100644
index da1e1b6ba0..0000000000
--- a/lib/et/doc/src/megaco_tracer.ps
+++ /dev/null
@@ -1,2508 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner
-%%Title: /home/hakan/picts/megaco_tracer.ps
-%%CreationDate: Mon Oct 14 17:35:19 2002
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 443 516
-%%EndComments
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-10 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.173228 14.173228 translate
-% Translate to begin of first scanline
-0.000000 501.599409 translate
-428.031496 -501.599409 scale
-% Image geometry
-512 600 8
-% Transformation matrix
-[ 512 0 0 600 0 0 ]
-% Strings to hold RGB-samples per scanline
-/rstr 512 string def
-/gstr 512 string def
-/bstr 512 string def
-{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
-true 3
-%%BeginData: 143198 ASCII Bytes
-colorimage
-">Mns0fadbJH16$MZ<c<1&a1`~>
-r'Z)9JH16$MZEZCJ,~>
-rc8*TF+F=B!.b-.!;png~>
-"?A1s!!)Qh!53s`JcC<$fDbiaa8c/>!\l\qJ,~>
-r^?bdnc&U'JcC<$JcF@%!5?MRrrE$dJ,~>
-rcA)>nc&U&JcC<$JcF@%!56GQrrE%>J,~>
-">Mn:s8VWG!53s6J^o>%f@9l7a56ja!WY58J,~>
-s$Qngs8VWC!5=$8J_#D'f@Br9a4gR]!WYVVJ,~>
-s)S5As8VWG!53s6J^o>%f@9l7a56ja!W[:VJ,~>
-!]^8\n(n&XJ^o>%J^rB&!56A.!lY."J,~>
-!^m%gn(IcUJ_#D'J_&H(!5?G+!l=q*J,~>
-!cnAAn(n&XJ^o>%J^rB&!56A.!lY.\J,~>
-!\j]Tn(n&XJ^qcj!6(hc!6'N>n'qEO`SL[8!',Q~>
-!^m%gn(IcUJ_%il!QrigecEqAJ_'>A!5?G+!l=q*J,~>
-!bq`8n(n&XJ^qcj!6(hc!6'N>n'qEO`SL[8!-<Y~>
-!<E/fh>k6HeH(;L`75%1Ut*/*HiB90eH(;LYLN]fH[GaVs4%.&HgoPdUqMW8!57RPpRLp5s.'&E
-s.'#D!NZ9O~>
-!<E/fg&SjEf)L<>edTEhf"Q]`R?<W_eq&CUed9'AI@64[f%,D'nC@W6^5:D@^?=5ERJ#;6RJkk>
-RJbb>XoNt~>
-!<E/fh>k6HeH(;L`75%1Ut*/*HiB90eH(;LYLN]fH[GaVs4%.&HgoPdUqMW8!57RPpRLp5s.'&E
-s.'#D!NZ9O~>
-!<E/thZ',ChZ',Eh>k7dec0srMuM6.UjIaFeH*Y&eCFGC!/(-u!J>a^eI9ELe^_X/K6r6@c./'U
-HNBA]r-JI&^&-=l`I"uBMgNFnPa'_KK6u/!`P&V.%?#SPeWc<KeUr5!e]#5oeH3+)`JW1G^$"8H
-SG(h<SH%IESGh:FX8mb~>
-!<E/tf)M08f)M0:ec<G]df4^qNW.?-Tm_XGdK.4neC">Jr-\R!qU5CpkL'dQL!nDhR>$'CS]]BG
-qgAO.dXh@F!K"PfdLj?I[aL.``m0^/daE\tdaH"@ZdK;BIE'QpOj_[/J^Vu`[e.uL[XGlIdK%#E
-f(YU+f);$:f);$8ecDoRJ,~>
-!<E/thZ',ChZ',Eh>k7dec0srMuM6.UjIaFeH*Y&eCFGC!/(-u!J>a^eI9ELe^_X/K6r6@c./'U
-HNBA]r-JI&^&-=l`I"uBMgNFnPa'_KK6u/!`P&V.%?#SPeWc<KeUr5!e]#5oeH3+)`JW1G^$"8H
-SG(h<SH%IESGh:FX8mb~>
-!<E/uhYiuChYiuDh>k7dec'n!c.1?sH\9o"!J>aKec1!o^&$7[K6ue3)l0"S`IiN=]qg"-c,IB0
-H[EH>`RT<^]tL4gKDX1&Mj2cBK7!LG"bV0PeUr4TeH(;Lqpbk&He$Z!Hh5bgP`(FL!57RPpRLs6
-pRM3=!NZ9O~>
-!<E/uf);$8f);$9ec<G]df+Xub0n^lI>-8#s+/\J!J,[t\cBJ@df4m]dMo$Rd`-idV7NLOL!%9D
-\p]"<]#)mHJ\&FdI>RjL"c8MmdXcuHdf4mudf4m)df4mqdf4mudf4midK,ViMUDL=kLTBqp=Au+
-rRM"P!.Y~>
-!<E/uhYiuChYiuDh>k7dec'n!c.1?sH\9o"!J>aKec1!o^&$7[K6ue3)l0"S`IiN=]qg"-c,IB0
-H[EH>`RT<^]tL4gKDX1&Mj2cBK7!LG"bV0PeUr4TeH(;Lqpbk&He$Z!Hh5bgP`(FL!57RPpRLs6
-pRM3=!NZ9O~>
-!<E/uhY`oDhY`oCh>k7deJ!:^HaM>BH\6t$e]!GnK='1Z`K^=J'\10eH[C[ie^^aZH[C[qeZ=[U
-Mlcg+!2TU@*lX%qXGb&^H[C[ie^^aZH[C[qe]!GnK='1ZMi4Zpo[WtgqUPV((T`PFK6u.fP^@b8
-`RWLsMnOai[+3^GPl5t.eHLlEeWbE^rm_(GH^t)cs*O^ps*Oaqs*O[o"MK/qeXZVc#gJ!Ke^];!
-eYN1ks2>D)H\8]UeVf?eMq*H,qpk_)'"rpE['YI4[+3^GMgL)`e^_X'rHf7/`KY^rMoF5sXG_FP
-Mp9eRMgLA`psfA7rd+pqK6u/!K6u.Erd4[a%?#Rc[+3]bMl_ie]mIGNeH!;GhY3Q5hYE]>h>s\X
-J,~>
-!<E/uf)1s9f)1s8ec<G]dM%%_IBq;<JUrO'd__,pKsK.T_NFeF'[k!`JUNNldaG:TI=6spd]SFT
-M6?a(!29C?*l<nrV2`KWJUNNldaG:TI=6spd__,pKsK.TNK'coo[3bkIJVClN>JFNdXctt`fYh#
-NP<ihNK(N'J[3_P_NFeFrmCt0]$cjlY5ZiNV1"p6dK+oIrR1^srmLgpr6b_ZICdjprd>'pJUu7t
-JUu7CrdFg`%$>slZI70\NMVW_JV!^Hs,@Z"Kn6D8Kn6PXd__,pKsK.T_NFeF'[k!`JUNNldaG:T
-I=6spd]SFTM6?X%!1Eh7#g.^LdaE\td\6Ygs2#5-I>+uTdZ'6_NRG7`\r4u:^?=)ARJ#/,RJbV:
-XoNt~>
-!<E/uhY`oDhY`oCh>k7deJ!:^HaM>BH\6t$e]!GnK='1Z`K^=J'\10eH[C[ie^^aZH[C[qeZ=[U
-Mlcg+!2TU@*lX%qXGb&^H[C[ie^^aZH[C[qe]!GnK='1ZMi4Zpo[WtgqUPV((T`PFK6u.fP^@b8
-`RWLsMnOai[+3^GPl5t.eHLlEeWbE^rm_(GH^t)cs*O^ps*Oaqs*O[o"MK/qeXZVc#gJ!Ke^];!
-eYN1ks2>D)H\8]UeVf?eMq*H,qpk_)'"rpE['YI4[+3^GMgL)`e^_X'rHf7/`KY^rMoF5sXG_FP
-Mp9eRMgLA`psfA7rd+pqK6u/!K6u.Erd4[a%?#Rc[+3]bMl_ie]mIGNeH!;GhY3Q5hYE]>h>s\X
-J,~>
-!<E/teb>U4eH!;[bq4:4H^)dNP_4V5`IifVP^CBoK7h.fK6tkVXM(ufMp8&EMmTje`N4EN]p*lF
-r66G)H[EHNK6rNP]r\oSH]-.EH],8<UrC<*K>!Lr`Qa$^Mkp!is*O^XrlldBH]+]EK6tkVXM(uf
-Mp9M!H]+D@K?_YnK>l)fHd0gSHd0f^Hc?!/!kir5rltIirQY@hs31V@H].gH,+O#!c,G$V^!21V
-c-:lfc,G$V]u>VV]p*l_c%CA$Us4gMqopaGH]+D@H]+D@K?_AfK>!Lr`Qa$f`Qa$^c+U3l[!R_U
-UjJ$,[%t[BH^)4.H`[%f+2rSR^!21Vc-:lfc,G$V]u>VV]p*l_c%CA$Us6l*S;YVl^$!oGSGC\8
-SFkA/SGUh;X8mb~>
-!<E/tdeB1.dK%#Yc7OI8I?i*SR>$@?b(58XQ$pZpJVCtdKmh7\Y.h>mM9_rGM6aRi`i=HP^6O,H
-r6?M+JUPD\JUNBO^952YI>Q7GI>P8<WlE24Kt<Ot`m0-`M5Bji!J,[t\gbeIc@LD#V9XXCcG$Hq
-[XF"Xc@LD#Tm_X?b(58`c@p\lcGkFXc@(,\rltS^I>.[G!J,[tcMrFucH;u3Oo3KKTmar+`drQT
-c@LPlc@LPl`drQT`driTQ$pZtJUNBOcA@DTc7XZrNM1cKNM1cScH:]l\s7]`b(58`c@p\l^952Y
-I>Q7GI>P8<WlD&eQ+iN3Wqjp^`drQTc@LPlc@LPl`drQT`driTQ$pZtJUNBOcGk:+Mp;=:kL'?u
-q9f82o[<W)qpGMJ!.Y~>
-!<E/teb>U4eH!;[bq4:4H^)dNP_4V5`IifVP^CBoK7h.fK6tkVXM(ufMp8&EMmTje`N4EN]p*lF
-r66G)H[EHNK6rNP]r\oSH]-.EH],8<UrC<*K>!Lr`Qa$^Mkp!is*O^XrlldBH]+]EK6tkVXM(uf
-Mp9M!H]+D@K?_YnK>l)fHd0gSHd0f^Hc?!/!kir5rltIirQY@hs31V@H].gH,+O#!c,G$V^!21V
-c-:lfc,G$V]u>VV]p*l_c%CA$Us4gMqopaGH]+D@H]+D@K?_AfK>!Lr`Qa$f`Qa$^c+U3l[!R_U
-UjJ$,[%t[BH^)4.H`[%f+2rSR^!21Vc-:lfc,G$V]u>VV]p*l_c%CA$Us6l*S;YVl^$!oGSGC\8
-SFkA/SGUh;X8mb~>
-!<E/sebPa5eH!;[bnk`&P^CZ5["F"UXF$J^XF%%MH^r@*K7!UB#K=B/K?]$q`Vn$cK6tS^`I!77
-blr`Hc-:lfrQPSd]n:s^K6tT9bmCIuSB\-^XNcBEqoo5=H[CDCc22hj^!4fSHiD7jK7!UB)o]LC
-K?_YnHc=6VHd/X=SB]<2Hd0g:Pg.I"Hi;1j`Hut2c2W.hc2;nhMoGV=!L.s1bnu([c-:lfc-:lf
-c-:lfc)c8^c)c8nc%CB:bnu([`Q`aV`Q`aVc)c8^c)c8nXF$J^c%CBBbm25$K7hF$Hc>s.#(q9A
-c,G$^prsY.Hd0ffHd0ffHd0ffHd/X=SB\-^XNcBErQP@iP`*cd^$!oGSGC\8SFkA/SGUh;X8mb~>
-!<E/sdeT=/dK%#Yc51o*Ob(Z3ZA""XY'm"dY'mIYI@\[/KmisG#K"3+L!GC#_YqaaM1*Ch`dN^@
-cMrIqc2rQFb5TZk_S1STc@p\`rQYbQIA+fdIBLkHIEMK5"/UEoM>YX!Jc'p&^<Y#TIEKj\JV!gG
-)oB=?L!ItpIE'Q`J^1QLS^,N7IEp-@Q-RO#IJqFmb'e^;c2iKErQYCorI"^'_Yh[[Q$rYWs+13q
-s+13qs+13qs+(R'Y'm"dY'mIuJUP]8c5;+\b0GQdb0GQhcE;Shb-$/qZ@/:hc@p]Gc3M5#JVDC'
-IDYs.#)RcJcGk9hps/njs3CXqs3CXqs3CXq$dPo'TusNdY0MTHb5TZeI?f`9!5@XE!1EZ2!1EK-
-qjI?0!NlEQ~>
-!<E/sebPa5eH!;[bnk`&P^CZ5["F"UXF$J^XF%%MH^r@*K7!UB#K=B/K?]$q`Vn$cK6tS^`I!77
-blr`Hc-:lfrQPSd]n:s^K6tT9bmCIuSB\-^XNcBEqoo5=H[CDCc22hj^!4fSHiD7jK7!UB)o]LC
-K?_YnHc=6VHd/X=SB]<2Hd0g:Pg.I"Hi;1j`Hut2c2W.hc2;nhMoGV=!L.s1bnu([c-:lfc-:lf
-c-:lfc)c8^c)c8nc%CB:bnu([`Q`aV`Q`aVc)c8^c)c8nXF$J^c%CBBbm25$K7hF$Hc>s.#(q9A
-c,G$^prsY.Hd0ffHd0ffHd0ffHd/X=SB\-^XNcBErQP@iP`*cd^$!oGSGC\8SFkA/SGUh;X8mb~>
-!<E/rebbm6eH!;[bmJfnXF$aic%CYnV#5T>U^qgJc-:lfc+Sa^MgL*$H[G\8s*Oais*OXf&;,>S
-c%CAfc+Sa^MgL*$H[G\8!2TO>"/O1oHi)%i`P&t(r6>7gqTT%nHiD85K6tkVK7f)/K?_YnHd0ff
-Hd/@5Us7/:Hd0g"XNf":Hc?!/!kir5rltIirQY@hs0MdFqTT&*HiD8#K6tkfK6tkfK6tkfK6tk=
-r-JOAc%CB:bmT/Nc-:lfc-:lfc(t8as.g0PUs7/:Hd06VK8Y)/c$Og8c2W.ic2W.cbn#GRc-:lf
-c-:lfc-:lfc(t8a"/O1oHi;1iH^'H5!58<\!582u!58*V!1`l8!1``4q4.B5!NZ9O~>
-!<E/rdefI0dK%#Yc3eurY'm<ub(YPpV>PcAV%8!JcH_,lcFS^\NI?N+I=;%=!J,[ucMr=icMrIq
-cMrIqc3V"8JW5)3c@(-=c2a^=I06=kJV!^D!6Y;Xr6>=oIJV7hJc<spJKN1KKn553L!ItpJ^2Pl
-J^1*?U!Cr;IEp-#Y0P=@IE)93!lBA>rltOqIJqIkJcE:]_YVOYQ$rYWs+13qs+13qs+13qs+(3r
-V>P`DV9XXCp<N\hs3CXqs3CXq!R@P>IK-,SIA+s3Kmh7XKn553L!G*pr6>=oIK%OlIJD+fJcF$q
-JcF$qJcF$qJH=&mr-\[Dc@LQFc2i?YMp;=:r6bSVq3_5op<ir/q9f82p!WZ(r6bVK!.Y~>
-!<E/rebbm6eH!;[bmJfnXF$aic%CYnV#5T>U^qgJc-:lfc+Sa^MgL*$H[G\8s*Oais*OXf&;,>S
-c%CAfc+Sa^MgL*$H[G\8!2TO>"/O1oHi)%i`P&t(r6>7gqTT%nHiD85K6tkVK7f)/K?_YnHd0ff
-Hd/@5Us7/:Hd0g"XNf":Hc?!/!kir5rltIirQY@hs0MdFqTT&*HiD8#K6tkfK6tkfK6tkfK6tk=
-r-JOAc%CB:bmT/Nc-:lfc-:lfc(t8as.g0PUs7/:Hd06VK8Y)/c$Og8c2W.ic2W.cbn#GRc-:lf
-c-:lfc-:lfc(t8a"/O1oHi;1iH^'H5!58<\!582u!58*V!1`l8!1``4q4.B5!NZ9O~>
-!<E/qebu$7eH!;[bm\rp`Hurrc%CYnXF$K9bn7%(SB]<*Hd.Iqc-:lnc%CAVrQPP!Hc=7KH\;4?
-&VGGTc%CAfc&6qnc%CYnK6t<1blXtnSG^V4K7!16s*OUe!J>auboq^dc&6qnc%CYnc%CAfc%CAf
-XF$J^c$Of^c$RFSc'3RVrlkM?H^t)[s*O^hs*OLb(8Q;rc-:lfc-:lfc-:lfc-:lfc)c8^r657p
-HhP\nK6tkfK6tkfK6tkEH^t&Z&Zg>Lc-:T^c&6qnc%CYnK6t<1bm&fI`QcAKKD<\'K6tkfK6tkf
-K6tkfK6tkEH^t#Y!J>aublYk2S;YVl^&6FTSG(J5SGC\8SG(M-SGgt=X8mb~>
-!<E/qdf#U1dK%#Yc4#,t`dN9#c@pttY'm#Bc4R4-REis+IEmh'b0G]pc@p\\rQYV(IE'RPI>RjH
-s+13qs+13q$&sMYc@pttKmg]6c2t.sU&<49Jb%(eJURC?s+10ps+)9;NIf6tKn[gtJUu+lJUu+L
-I@8C'JUPhdIE'RXQ$o\3c2s\fRJtJ4JURLBs+0pi(86/rcH^ulcH^ulcH^ulcH^ulcE;Shr6G=n
-p<N\hs3CXqs3CXq"4"&tU&E7KY'l_`b(4udNIf6tKn[g+ID5[*#)RcJcGk9hps/njs3CXqs3CXq
-s3CXq"4"&tU&<49Jc<pr`dOP=c2bTVdeB1'dK#^2dK#^/deB1.dK-KNJ,~>
-!<E/qebu$7eH!;[bm\rp`Hurrc%CYnXF$K9bn7%(SB]<*Hd.Iqc-:lnc%CAVrQPP!Hc=7KH\;4?
-&VGGTc%CAfc&6qnc%CYnK6t<1blXtnSG^V4K7!16s*OUe!J>auboq^dc&6qnc%CYnc%CAfc%CAf
-XF$J^c$Of^c$RFSc'3RVrlkM?H^t)[s*O^hs*OLb(8Q;rc-:lfc-:lfc-:lfc-:lfc)c8^r657p
-HhP\nK6tkfK6tkfK6tkEH^t&Z&Zg>Lc-:T^c&6qnc%CYnK6t<1bm&fI`QcAKKD<\'K6tkfK6tkf
-K6tkfK6tkEH^t#Y!J>aublYk2S;YVl^&6FTSG(J5SGC\8SG(M-SGgt=X8mb~>
-!<E/pec208eH!;[bq4:<c&6qMc%CYnc%CA=[&gXRH[DQHH[F"qH`X;qHbHM-K<2bf`N4EN]p*lF
-qop48HaM%MHd0fnH`X;qHbHM-K<2bf`Qa$^UpR51c%CB6c2W.g[/\AOK7!UB)hWL^MgMP,H[EHN
-K6tkfK6tk^H[DQHH[F#EMuLs,]mG+%[%r&$`W"-^Hi;4hHhYc*]mI-2c%CAfc%CAfc%CAfc%CAM
-`IiN5[&gXZK7!UB!K2U-bq=Wqc-:lfc-:lfc-:lfUpR51`Hus-MgKfqMgMP,H[EH-H\8E5XMq8f
-PeE<.XSC$WK6tkfK6tkfK6tkfK6suEK6sE$XL-6)HiD7k[!TKEblGHTeb>U-eGu-8eGu-5ebu$<
-ebu$:eH)`OJ,~>
-!<E/pcMs1*c2bTUat8%8b)(PLb(YPl`eAi;[]ZpQI=7fGI=97pIB';qID2_0Ks%ka_Q&$L\s7]?
-qoU";[email protected]]c,lIB';qID2_0Ks%ka_T%:XV7*P4b(5-7aoR'Ar3?FEb(5-Cb5[#1b)(PHWdT<0
-b(5,db(5,d_L6j+M1'fpZAJS'#ekk<TsCA?J\qE/!J,[tb5[%earS'AY0+n<J]c,dJ]c,dJ]c,l
-IC@"HIAOBTZH@`LrlY7tqo\qis2t@ms2t@m,g+,\IAOBTZGM$<To"2Gb)(PHWdT<0WdTT([]73E
-I?hC/IAQ_]s+13ms+13ms+13m%#KD@_M*E7[]ZpYJV!gC!j6s[Mol%6r6G&%p<EZ'q9Au*p<NW%
-s3CS.rQYGH!.Y~>
-!<E/pec208eH!;[bq4:<c&6qMc%CYnc%CA=[&gXRH[DQHH[F"qH`X;qHbHM-K<2bf`N4EN]p*lF
-qop48HaM%MHd0fnH`X;qHbHM-K<2bf`Qa$^UpR51c%CB6c2W.g[/\AOK7!UB)hWL^MgMP,H[EHN
-K6tkfK6tk^H[DQHH[F#EMuLs,]mG+%[%r&$`W"-^Hi;4hHhYc*]mI-2c%CAfc%CAfc%CAfc%CAM
-`IiN5[&gXZK7!UB!K2U-bq=Wqc-:lfc-:lfc-:lfUpR51`Hus-MgKfqMgMP,H[EH-H\8E5XMq8f
-PeE<.XSC$WK6tkfK6tkfK6tkfK6suEK6sE$XL-6)HiD7k[!TKEblGHTeb>U-eGu-8eGu-5ebu$<
-ebu$:eH)`OJ,~>
-!<E/feH!;[bq+4;c+U4'c%CYnc,GooH\8EEXFl/4K6tkMK6s,aH^r?^MgKf/`QbK:H\8Erboa<F
-HbG&Yc-<VJH^pmYSB\-nH[C[ic,GooH\8EEK7!16qKi=Xc%CBBbo;:^c*W+MS>:M%c%CAfc%CAf
-c)cPM["E_MS>?,.#/ugZH\7j-rQY@hrQY@hp<EVqs32C5Hd0ffHd0ffHd0gBK6t;NP^@b0XNcBE
-rlkIrHi)&>K6tkfK6tkfK6tkf`KY^rK<3>!K7gO`Hd/pMH^pmYSB\-nH[C[ic)cPEK<4gl(k[1[
-c%CAfc%CAfc*W+M]u?4_H\8EEK7!UBs,2cZ!58<\!582u!58*VpRLp,s.'&<s.'#;!NZ9O~>
-!<E/fc2bTUat.t7b.=Umb(YPlb/0EpI>+iHY(;;4Kn7CTKmfMcI@86XM1'f/^<3:+I>+]tardp?
-J\$D`b0%/HI@['[REDOdI=6sdb/0EpI>+iHJV!C7!.k#q"1lX+Jc<glJJlV=KmfMcI@86/J]c,d
-J]c-<JVCC`J]aCSrQ5>YQ%=@;RDSpF!J,[tb5[%db5[J$b5[%mb5[%mb5[%mapbS,J\&^`JUN6T
-b(5-Cb5[%ib5[%mb5[%mb5[%mas"WeJUN6Tb-$;LZA!kP[Y9.#Tm`?OWel.PM8%-/KmeZTpWEMe
-s2t@ms2t@ms2kbUJUtDLQ%=@;Y0)<HrlY8#MTPq5r6>;Nq3:rgp<NDtp!3T&rQbG.r6>>G!.Y~>
-!<E/feH!;[bq+4;c+U4'c%CYnc,GooH\8EEXFl/4K6tkMK6s,aH^r?^MgKf/`QbK:H\8Erboa<F
-HbG&Yc-<VJH^pmYSB\-nH[C[ic,GooH\8EEK7!16qKi=Xc%CBBbo;:^c*W+MS>:M%c%CAfc%CAf
-c)cPM["E_MS>?,.#/ugZH\7j-rQY@hrQY@hp<EVqs32C5Hd0ffHd0ffHd0gBK6t;NP^@b0XNcBE
-rlkIrHi)&>K6tkfK6tkfK6tkf`KY^rK<3>!K7gO`Hd/pMH^pmYSB\-nH[C[ic)cPEK<4gl(k[1[
-c%CAfc%CAfc*W+M]u?4_H\8EEK7!UBs,2cZ!58<\!582u!58*VpRLp,s.'&<s.'#;!NZ9O~>
-!<E/feH!;EblN0DOj+#UK?]%^hou5AK<3&:!IKIac2)be^#mQ@XFnKLblGGqeH)`OJ,~>
-!<E/fc2bT@ao]S2Kp'R^`dNQ`Kt?0a!lBMb`l\A&I>-t/qL&@Tk/mb*J\m;e!5?Cs!NlEQ~>
-!<E/feH!;EblN0DOj+#UK?]%^hou5AK<3&:!IKIac2)be^#mQ@XFnKLblGGqeH)`OJ,~>
-!<E/fblGHB`<N]6Uo]K$S<h,"[$7AfMgLu$KAFKI]qifi#.0VjXG_Fqa2J(T]ns].]u8.rX8mb~>
-!<E/faoK0@`Wil6WiD&,TpE\([ZRSiNI@M/J_e<H^7i]h#.BYoWf;G#a2S.R^59i0^;S.pXoNt~>
-!<E/fblGHB`<N]6Uo]K$S<h,"[$7AfMgLu$KAFKI]qifi#.0VjXG_Fqa2J(T]ns].]u8.rX8mb~>
-!<E/fblGHB`<Er>K6r6HQ,O$BP_4=8UrC$SUr<MNP_4=8Uk-M/`;mTiblOmGJ,~>
-!<E/faoK0@`Wa)=JUN6GQ,X*DOb%q7TuOgXUrESPOb%q7Tn15-`W3`kaoSXFJ,~>
-!<E/fblGHB`<Er>K6r6HQ,O$BP_4=8UrC$SUr<MNP_4=8Uk-M/`;mTiblOmGJ,~>
-!<E/fblGG.`IZ!Z`Ri'/]u8.rX8mb~>
-!<E/faoK/,`du-\`n/31^;S.pXoNt~>
-!<E/fblGG.`IZ!Z`Ri'/]u8.rX8mb~>
-!!%S&JV/N+K7a.(J,~>
-!!%S$JUrB'K7O"&J,~>
-!!%S&JV/N+K7a.(J,~>
-!<E0!joD3.s+13$s,I$^V#TT>]`<Q~>
-!<E0!joD*+s+13$s,I$^U&X9;\c@6~>
-!<E0!joD3.s+13$s,I$^V#TT>]`<Q~>
-!<E0!joD3.s+13$s,R*`K;AP0k.LbF~>
-!<E0!joD*+s+13$s,R*`JYE,+k.1PC~>
-!<E0!joD3.s+13$s,R*`K;AP0k.LbF~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:A!!:[N!:A>:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK
-!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IF!!:jS!:AM?!<(XM!7T[#!;Y@K!!:jS!:eeC!9W#2!!_-W!8?-,!9W#8!<1^P
-!;Y@K!.ijTg?@8jJH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:A!!:[N!:A>:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK
-!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!;b7G!:A>:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3
-!<1OK!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!;bFL!:AM?!<(XO!7KU$!<:dQ!;bFL!!:jS!:eeC!9W#8!;bFL!<:dQ!9W#8
-!<1^P!;Y@K!.ijTg?@8jJH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!;b7G!:A>:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3
-!<1OK!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<:UL!!LgP!7fWu!<:UL!<:UL!<:UL!<:UJ!<:UL
-!!:[N!;+hA!;k=F!<:UL!!LgP!7fWu!<1OI!<:UJ!<:UJ!<:UL!!:[N!;+hA!<(IJ!!CaO!7h#J
-s4.&Js4.,L!n@8No[WsArmh#Ks4.&Js4.,L"k<SQeGoT#eUc9=ec17*V#TT>]`<Q~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<:dQ!!M!U!8?0*!<:dQ!<:dQ!<:dQ!<:dO!<:dQ
-!!:jS!;,"F!;kLK!<:dQ!!M!U!8?0*!<1^N!<:dO!<:dO!<:dQ!!:jS!;,"F!<(XO!!CpT!8@AO
-s4[DOs4[JQ!nmVSo\0<Frn@APs4[DOs4[JQ"kiqVg&M,(g4@uGgAc^-U&X9;\c@6~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<:UL!!LgP!7fWu!<:UL!<:UL!<:UL!<:UJ!<:UL
-!!:[N!;+hA!;k=F!<:UL!!LgP!7fWu!<1OI!<:UJ!<:UJ!<:UL!!:[N!;+hA!<(IJ!!CaO!7h#J
-s4.&Js4.,L!n@8No[WsArmh#Ks4.&Js4.,L"k<SQeGoT#eUc9=ec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@s4.,L*7Y#heGoU"eGoU"!!(R"!!(R"!!(OL
-!7fU"!7guIo[WsAr71fIs4.,L+OpGleGoU"!!(R"!!(OL!7fU"!7fU"!7fU"!7fU"!7guIo[WsA
-rRLoJ&(LX[e^XX"e^XX"e^XX"ebfF>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(N
-k2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Es4[JQ*81Amg&M-,g&M-,!!(a,!!(a,!!(^Q
-!8?-,!8@>No\0<Fr7_/Ns4[JQ+PHeqg&M-,!!(a,!!(^Q!8?-,!8?-,!8?-,!8?-,!8@>No\0<F
-rS%8O&)%!`g=cN,g=cN,g=cN,gACsCgA_0PgA_-[g&M-,g&M-,!!(aP!!:jS!.ijTg@*bqJH_bI
-k2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@s4.,L*7Y#heGoU"eGoU"!!(R"!!(R"!!(OL
-!7fU"!7guIo[WsAr71fIs4.,L+OpGleGoU"!!(R"!!(OL!7fU"!7fU"!7fU"!7fU"!7guIo[WsA
-rRLoJ&(LX[e^XX"e^XX"e^XX"ebfF>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(N
-k2s>WJ,~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ec,XLec,UheGoU"!!(R"!!(R"!!(OL!7_&Le^XX"
-e^XX"ec#R>ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^
-eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%n(%Gj"f21\k.LbF~>
-!<E0!joV7Vs8(II!"@Q]!87DQg&M-,g&M-EgA_0QgA_-mg&M-,!!(a,!!(a,!!(^Q!87DQg=cN,
-g=cN,gAV*CgA_0NgA_0QgA_-`g&M-,!!(^Q!8?-,!87DQqqD&Ms4[JQs4[JQ!8@DPo%O!A'&!<c
-g&M-,g&M-,g&M-,g&M-,rW)NCq>_)\!!(a,!!(^Q!87DQg=cN,J_G\/n(Rem"ektYk.1PC~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ec,XLec,UheGoU"!!(R"!!(R"!!(OL!7_&Le^XX"
-e^XX"ec#R>ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^
-eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%n(%Gj"f21\k.LbF~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo$n!Ge^XZMeGoU"qZ-ZHrr<;S!!(OL!7fWs!!:[N!:eV>
-!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J
-eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^s5>s+:KNs5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!CpT!8@;Mo%F?Lg=cP\g&M-,qZ-ZMrr<;X!!(^Q!8?0(!!:jS!:eeC
-!;tRN!<:dQ!!_-W!87DQgA:jOg&M-MgA_0QgA_0QgA_-Sg&M-CgA_0OgA_-Yg&M-,g&M-,gA:jO
-g&M-CgA_0PgA_-QgA:jVg&M-,!!(a,!!%T(J_KSHs+(?Is5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo$n!Ge^XZMeGoU"qZ-ZHrr<;S!!(OL!7fWs!!:[N!:eV>
-!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J
-eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^s5>s+:KNs5rIW!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Lma_79s4.,L!n@8Nqpk]H$.T"UeGoU"eGoUIec,X>ec,XI
-ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI
-!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[OeaM&gK*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!!V'V!87DQmb7U>s4[JQ!nmVSqqD&M$/,@Zg&M-,g&M-NgA_0CgA_0N
-gA_0QgA_-Yg&M-,!!(^Q!;tRN!;kLM!<:dQ!<:dQ!!:jS!:eeC!<(XO!".E[!8?-,!8?-,!;tRN
-!:eeC!<1^P!!:jS!;tRN!!_-W!8?-,!.ijTg@*bqJH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Lma_79s4.,L!n@8Nqpk]H$.T"UeGoU"eGoUIec,X>ec,XI
-ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI
-!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[OeaM&gK*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"n^[X>rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L
-!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ
-#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(Nk2s>W
-J,~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,n_4!Crn@AP#20%Wg=cN,rn@APs4[JQrn@APs4[JQ
-!nmVSnCmmBs4[DOs4[JQ(tnrig&M-,!!(a,!!(^Q!8?-,!8?-,!8@DPs4[JQ!nmVSn_4!CrS%8O
-#MK.Xg=cN,gAV*PgA_-Sg&M-CgA_0PgA_-[g&M-,g&M-,!!(aP!!:jS!.ijTg@*bqJH_bIk2s5T
-J,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"n^[X>rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L
-!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ
-#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(Nk2s>W
-J,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:\P=!<1OK!<:UJ!<(IJ!<:UL!<(IH!<:UL!:SJ:!<:UJ
-!<:UL!!LgP!7fWu!<1OI!<(IJ!<:UJ!<:UL!:eV>!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK
-!<:UJ!<:UL!!UmQ!7_&LJ^o>%ma_>i"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:\_B!<1^P!<:dO!<(XO!<:dQ!<(XM!<:dQ!:SY?!<:dO
-!<:dQ!!M!U!8?0*!<1^N!<(XO!<:dO!<:dQ!:eeC!<(XO!!:jS!<1^P!<:dO!<:dQ!:eeC!<1^P
-!<:dO!<:dQ!!V'V!87DQJ_G\/mb7\l"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:\P=!<1OK!<:UJ!<(IJ!<:UL!<(IH!<:UL!:SJ:!<:UJ
-!<:UL!!LgP!7fWu!<1OI!<(IJ!<:UJ!<:UL!:eV>!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK
-!<:UJ!<:UL!!UmQ!7_&LJ^o>%ma_>i"f21\k.LbF~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/n'gA_/(g4@uDgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/n'gA_/(g4@uDgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/n'gA_/(g4@uDgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+,fRK7SZ9K*A(Nk2s>WJ,~>
-!<E0!joV7Vs+,`PJUrB5JH_bIk2s5TJ,~>
-!<E0!joV@Ys+,fRK7SZ9K*A(Nk2s>WJ,~>
-!<E0!joM:XJV/N+JV/u8"f21\k.LbF~>
-!<E0!joM1UJUrB'JUri4"ektYk.1PC~>
-!<E0!joM:XJV/N+JV/u8"f21\k.LbF~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.e`#'V!;=tC!;P+E!!:[N!;k=H!9_o4!.i[Oea_/nV#TT>]`<Q~>
-!<E0!joD*+g>Uc`!;>.H!;P:J!!:jS!;kLM!9`)9!.ijTg@<l#U&X9;\c@6~>
-!<E0!joD3.e`#'V!;=tC!;P+E!!:[N!;k=H!9_o4!.i[Oea_/nV#TT>]`<Q~>
-!<E0!joD3.e`#'Y!<:UL!;G%D!;4nB!;k=H!9_o4!.i[Oea_/nV#TT>]`<Q~>
-!<E0!joD*+g>Ucc!<:dQ!;G4I!;5(G!;kLM!9`)9!.ijTg@<l#U&X9;\c@6~>
-!<E0!joD3.e`#'Y!<:UL!;G%D!;4nB!;k=H!9_o4!.i[Oea_/nV#TT>]`<Q~>
-!<E0!joD4Keb9%=eb]?&ec,XKec,XLeboLJeboLJeboLJec,UNeGoUHec,XIeboLJec,XKec,XL
-eboLJec,W#eUc9@eHMcKk2s>WJ,~>
-!<E0!joD+Hg@kRBgA:l+gA_0PgA_0QgAM$OgAM$OgAM$OgA_-Sg&M-MgA_0NgAM$OgA_0PgA_0Q
-gAM$OgA_/(g4@uJg'+2Mk2s5TJ,~>
-!<E0!joD4Keb9%=eb]?&ec,XKec,XLeboLJeboLJeboLJec,UNeGoUHec,XIeboLJec,XKec,XL
-eboLJec,W#eUc9@eHMcKk2s>WJ,~>
-!<E0!joD4KebB(DKDF't!//o&!<1OK!#X5d!7fU"!7fU"!7fU"!7fU"!7_&LeGoUHec,XJec,XL
-ec,UNeGoUKec,UUeGoU"eGoU"!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD+Hg@tUIJbe%"!/0)+!<1^P!#XDi!8?-,!8?-,!8?-,!8?-,!87DQg&M-MgA_0OgA_0Q
-gA_-Sg&M-PgA_-Zg&M-,g&M-,!!%T(J_KYJ"ektYk.1PC~>
-!<E0!joD4KebB(DKDF't!//o&!<1OK!#X5d!7fU"!7fU"!7fU"!7fU"!7_&LeGoUHec,XJec,XL
-ec,UNeGoUKec,UUeGoU"eGoU"!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XJec,UOeGoU"r;ciIr;clJquHcIr;`_FrrE&Krr<DV!!(R"!!(R"
-!!)oHrr<5Q!!(OL!;k=H!<(IJ!<:UL!<:UL!"IHY!7fU"!7fU"!7_&LJ^o>%n^Rf=s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_-Tg&M-,r;ciNr;clOquHcNr;`_KrrE&Prr<D[!!(a,!!(a,
-!!)oMrr<5V!!(^Q!;kLM!<(XO!<:dQ!<:dQ!"IW^!8?-,!8?-,!87DQJ_G\/n_+/?s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,UOeGoU"r;ciIr;clJquHcIr;`_FrrE&Krr<DV!!(R"!!(R"
-!!)oHrr<5Q!!(OL!;k=H!<(IJ!<:UL!<:UL!"IHY!7fU"!7fU"!7_&LJ^o>%n^Rf=s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJebT:Gec,UReGoU"eGoUJec,UReGoU"eGoTIec,XKec,ULeb]@H
-ec,XKebfCNeGoU"!!)oHrrE#JqZ-ZHrr<2P!!(R"qZ$]J!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0OgA1gLgA_-Wg&M-,g&M-OgA_-Wg&M-,g&M,NgA_0PgA_-QgA:mM
-gA_0PgACpSg&M-,!!)oMrrE#OqZ-ZMrr<2U!!(a,qZ$]O!!%T(J_KYJ"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XJebT:Gec,UReGoU"eGoUJec,UReGoU"eGoTIec,XKec,ULeb]@H
-ec,XKebfCNeGoU"!!)oHrrE#JqZ-ZHrr<2P!!(R"qZ$]J!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tebfCIec#RKec,XLec,UReGoU"eGoUKec,XLec,XLec,WIec,XKec,UN
-eGoUHec,XLec,XLec,UQeGoU"!!)oHrrE#JrrDoGrW)rJrrDuIrr@W#J^s;@"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gACpNgAV*PgA_0QgA_-Wg&M-,g&M-PgA_0QgA_0QgA_/NgA_0PgA_-S
-g&M-MgA_0QgA_0QgA_-Vg&M-,!!)oMrrE#OrrDoLrW)rOrrDuNrr@W(J_KYJ"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tebfCIec#RKec,XLec,UReGoU"eGoUKec,XLec,XLec,WIec,XKec,UN
-eGoUHec,XLec,XLec,UQeGoU"!!)oHrrE#JrrDoGrW)rJrrDuIrr@W#J^s;@"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKeb]=Heb]@GeGoUKeb]?Eec,XLec,XLec,XLec,XLec,UL
-ec#RKec,UQeGoU"!!)oHrrE#JrrE)LrrE&KrW)rJrrE)Lrr<,N!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0PgA:jMgA:mLg&M-PgA:lJgA_0QgA_0QgA_0QgA_0QgA_-Q
-gAV*PgA_-Vg&M-,!!)oMrrE#OrrE)QrrE&PrW)rOrrE)Qrr<,S!!%T(J_KYJ"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKeb]=Heb]@GeGoUKeb]?Eec,XLec,XLec,XLec,XLec,UL
-ec#RKec,UQeGoU"!!)oHrrE#JrrE)LrrE&KrW)rJrrE)Lrr<,N!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XIec,XHec,XKec,WEebfFGeboLHec,XLec#OKeboIL
-eGoUHeb]=HeboLGeGoUIeboLJec,W#eUc9@eHMcKk2s>WJ,~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0PgA_0NgA_0MgA_0PgA_/JgACsLgAM$MgA_0QgAV'PgAM!Q
-g&M-MgA:jMgAM$Lg&M-NgAM$OgA_/(g4@uJg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XIec,XHec,XKec,WEebfFGeboLHec,XLec#OKeboIL
-eGoUHeb]=HeboLGeGoUIeboLJec,W#eUc9@eHMcKk2s>WJ,~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XLec,UUeGoU"eGoU"!!)uJrrE)Lrr@W#J^o>%e("Vt
-s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0PgA_0QgA_-Zg&M-,g&M-,!!)uOrrE)Qrr@W(J_G\/e(Ou!
-s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XLec,UUeGoU"eGoU"!!)uJrrE)Lrr@W#J^o>%e("Vt
-s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,XJeboLIeboLJebfFIeboK!eUc8%e^DtOV#TT>]`<Q~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0OgAM$NgAM$OgACsNgAM#&g4@t/g="[YU&X9;\c@6~>
-!<E0!joD4Kec5[Gec19tec,XJec,XJeboLIeboLJebfFIeboK!eUc8%e^DtOV#TT>]`<Q~>
-!<E0!joD4Kec5[EK7VR(eUc8JeHMcKk2s>WJ,~>
-!<E0!joD+HgAh3JJUuO+g4@tTg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[EK7VR(eUc8JeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XJeboLIeboK!e_em\V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0OgAM$NgAM#&g>CTfU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XJeboLIeboK!e_em\V#TT>]`<Q~>
-!<E0!joD3.eUc8feboLIec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tpgAM$NgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8feboLIec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD4Keb4Xkec,XKec,UNeGoUIec,XAeb]@,ebK2reZ77#!<1OK!<:UL!!^sR!7fU"!.i\Y
-eHMcKk2s>WJ,~>
-!<E0!joD+Hg@g*ngA_0PgA_-Sg&M-NgA_0FgA:m1gA(`"g8is-!<1^P!<:dQ!!_-W!8?-,!.ik^
-g'+2Mk2s5TJ,~>
-!<E0!joD4Keb4Xkec,XKec,UNeGoUIec,XAeb]@,ebK2reZ77#!<1OK!<:UL!!^sR!7fU"!.i\Y
-eHMcKk2s>WJ,~>
-!<E0!joD4Keb=[rs7t4F!<1OK!;Y1F!;+hA!8Q-)!.i\!ec,XKec,XLec,UReGoU"eGoT#e_ns]
-V#TT>]`<Q~>
-!<E0!joD+Hg@p-us7tCK!<1^P!;Y@K!;,"F!8Q<.!.ik&gA_0PgA_0QgA_-Wg&M-,g&M,(g>LZg
-U&X9;\c@6~>
-!<E0!joD4Keb=[rs7t4F!<1OK!;Y1F!;+hA!8Q-)!.i\!ec,XKec,XLec,UReGoU"eGoT#e_ns]
-V#TT>]`<Q~>
-!<E0!joD4Kec19uXT/=rec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#Jrr</O!!(RJ!<:RM!7h&K
-!7h&Kp!s'BrRLiHJ^q!TrrE#Jr;ciIr;_E!hphn+s5rIW!.Y~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-\g&M-,g&M-,!!(a,r;c]JrrE#Orr</T!!(aO!<:aR!8@DP
-!8@DPp"KEGrS%2MJ_I?^rrE#Or;ciNr;_E&hqA7-s5rIT!.Y~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#Jrr</O!!(RJ!<:RM!7h&K
-!7h&Kp!s'BrRLiHJ^q!TrrE#Jr;ciIr;_E!hphn+s5rIW!.Y~>
-!<E0!joD4Kec19uXT/=rec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IE!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;kLM!<(XJ!<:dQ!".E[!8?-,
-!8?-,!;>.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IE!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD4Kec19uXT/=rebT7WeGoU"!!(R"!!(OL!7fU"!;k=E!!(RK!<:UL!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%J^sbM"f21\k.LbF~>
-!<E0!joD+HgAca#0`V1KgA1d\g&M-,!!(a,!!(^Q!8?-,!;kLJ!!(aP!<:dQ!<:dQ!"7K\!8?-,
-!8?-,!8@;MrS%8Orn@APs4[JQJ_G\/J_L+W"ektYk.1PC~>
-!<E0!joD4Kec19u@fQK(ebT7WeGoU"!!(R"!!(OL!7fU"!;k=E!!(RK!<:UL!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%J^sbM"f21\k.LbF~>
-!<E0!joD4Kec19uXT/=rec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<(IJ!<1OK!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-[g&M-,!!(a,!!(aM!;kLM!<(XO!<1^P!<:dQ!".E[!8?-,
-!8?-,!;>.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<(IJ!<1OK!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD4Kec19uXT/=rec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<(IJ!<1OK!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%J^sbM"f21\k.LbF~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-]g&M-,!!(a,!!(^Q!;G4I!<(XO!<1^P!<:dQ!"7K\!8?-,
-!8?-,!8@;MrS%8Orn@APs4[JQJ_G\/J_L+W"ektYk.1PC~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<(IJ!<1OK!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%J^sbM"f21\k.LbF~>
-!<E0!joD4Kec19uXT/=rec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IJ!<1OK!<:UL!".6V
-!7fU"!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;kLM!<(XO!<1^P!<:dQ!".E[
-!8?-,!8?-,!;>.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IJ!<1OK!<:UL!".6V
-!7fU"!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD4Kec19uXT/=rec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#JrrE#Jr;clJrrE)LrrE)L
-rrDcCrrE#Jr;bI"JV1dkJ^rr6"f21\k.LbF~>
-!<E0!joD+HgAca#0`V1KgA_0PgA_-\g&M-,g&M-,!!(a,r;c]JrrE#OrrE#Or;clOrrE)QrrE)Q
-rrDcHrrE#Or;bI'JUtXgJ_K;@"ektYk.1PC~>
-!<E0!joD4Kec19u@fQK(ec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#JrrE#Jr;clJrrE)LrrE)L
-rrDcCrrE#Jr;bI"JV1dkJ^rr6"f21\k.LbF~>
-!<E0!joD4Kec19ss+/]#eU`@iK)kq&e`YHdV#TT>]`<Q~>
-!<E0!joD+HgAca!s+/l(g4=glJH5_$g?7/nU&X9;\c@6~>
-!<E0!joD4Kec19ss+/]#eU`@iK)kq&e`YHdV#TT>]`<Q~>
-!<E0!joD3.e`YK_K7U_r^#B!Be`YHdV#TT>]`<Q~>
-!<E0!joD*+g?72iJUt\u_VtNGg?7/nU&X9;\c@6~>
-!<E0!joD3.e`YK_K7U_r^#B!Be`YHdV#TT>]`<Q~>
-!<E0!joD3.e`YK_K7U_r^#]1pKE(t&e`YHdV#TT>]`<Q~>
-!<E0!joD*+g?72iJUt\u_W:^uJcGb$g?7/nU&X9;\c@6~>
-!<E0!joD3.e`YK_K7U_r^#]1pKE(t&e`YHdV#TT>]`<Q~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD4Keb9%=ec,XKec,UNeGoUIec,XAec,XKec,XFec,WYec18Q^#Qg+s7OnCKE(Vps+C@O
-J^rr6"f21\k.LbF~>
-!<E0!joD+Hg@kRBgA_0PgA_-Sg&M-NgA_0FgA_0PgA_0KgA_/^gAc_T_W/N5s7P(HJcGDss+14M
-J_K;@"ektYk.1PC~>
-!<E0!joD4Keb9%=ec,XKec,UNeGoUIec,XAec,XKec,XFec,WYec18Q^#Qg+s7OnCKE(Vps+C@O
-J^rr6"f21\k.LbF~>
-!<E0!joD4KebB(DKDF't!<1OK!;Y1F!;+hA!<1OK!;Y1F!4UMYK7U_r^&S-*eH(=&p!s(ps8RZ#
-kLBa3s5rIW!.Y~>
-!<E0!joD+Hg@tUIJbe%"!<1^P!;Y@K!;,"F!<1^P!;Y@K!4U\^JUt\u_Z0Z/g&Zd)p"KFss8RZ(
-kLp*5s5rIT!.Y~>
-!<E0!joD4KebB(DKDF't!<1OK!;Y1F!;+hA!<1OK!;Y1F!4UMYK7U_r^&S-*eH(=&p!s(ps8RZ#
-kLBa3s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE&Krr<__!!(OL!7fU"!7fU"
-!7_&LeGoUKeboLJec,XLec,XLec,UQeGoU"!!(a's+>m9j1YKmp!j(qs7OqBKE(t&e`YHdV#TT>
-]`<Q~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-\g&M-,g&M-,!!(a,r;c]JrrE&Prr<_d!!(^Q!8?-,!8?-,
-!87DQg&M-PgAM$OgA_0QgA_0QgA_-Vg&M-,!!(a,s+,a<j21irp"BFts7P+GJcGb$g?7/nU&X9;
-\c@6~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE&Krr<__!!(OL!7fU"!7fU"
-!7_&LeGoUKeboLJec,XLec,XLec,UQeGoU"!!(a's+>m9j1YKmp!j(qs7OqBKE(t&e`YHdV#TT>
-]`<Q~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<1OK!!(RK!".6V!7_&L
-eGoU"ec#O`eGoU"!!(R"!!(OL!7fU"!7fU"!7h&K!n@8NgXZ=VJ\C*Ws8V_D!<;YCs8RZ#kLBa3
-s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;kLM!<1^P!!(aP!".E[!87DQ
-g&M-,gAV'eg&M-,!!(a,!!(^Q!8?-,!8?-,!8@DP!nmVSgY2[YJ\pHas8V_B!<;YAs8RZ(kLp*5
-s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<1OK!!(RK!".6V!7_&L
-eGoU"ec#O`eGoU"!!(R"!!(OL!7fU"!7fU"!7h&K!n@8NgXZ=VJ\C*Ws8V_D!<;YCs8RZ#kLBa3
-s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tebT7WeGoU"!!(R"!!(OL!7fU"!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>m9j1PHmjFdL4J^rr6"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA1d\g&M-,!!(a,!!(^Q!8?-,!;kLM!<1^P!!h3X!8?-,!8@AOrn@AP
-s4[JQ(tnrig=cN,g=cN,g&M-,!!(a,!!(a,!!(d-s+,a<j2(frjFR@2J_K;@"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tebT7WeGoU"!!(R"!!(OL!7fU"!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>m9j1PHmjFdL4J^rr6"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>n&_uG;<kLBa3s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-[g&M-,!!(a,!!(aM!;kLM!<1^P!!h3X!8?-,!8@AOrn@AP
-s4[JQ(tnrig=cN,g=cN,g&M-,!!(a,!!(a,!!(d-s+,b$_uG;AkLp*5s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>n&_uG;<kLBa3s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<1OK!%l_$!7fU"!7_&LeGoU"
-eGoU"eGoU"!!(R"!!(R"!!(OL!7_&Le^XX"e^XX"gXQ:VJcEUeJ^rr6"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-]g&M-,!!(a,!!(^Q!;G4I!<1^P!%ln)!8?-,!87DQg&M-,
-g&M-,g&M-,!!(a,!!(a,!!(^Q!87DQg=cN,g=cN,gY)XYJcEUeJ_K;@"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<1OK!%l_$!7fU"!7_&LeGoU"
-eGoU"eGoU"!!(R"!!(R"!!(OL!7_&Le^XX"e^XX"gXQ:VJcEUeJ^rr6"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;b7G!$B_k!7fU"!7fU"!7_&L
-e^XX"eGoU"eGoU"!!(R"!!*#KrrE)LrrE&KrrE)Lrr@W#J^o>%"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;bFL!$Bnp!8?-,!8?-,!87DQ
-g=cN,g&M-,g&M-,!!(a,!!*#PrrE)QrrE&PrrE)Qrr@W(J_G\/"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;b7G!$B_k!7fU"!7fU"!7_&L
-e^XX"eGoU"eGoU"!!(R"!!*#KrrE)LrrE&KrrE)Lrr@W#J^o>%"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;cZDquHcIrrE)Lrr<,N!!*#Kr;clJ
-rrE)Lr;cfHrrE)LrrE&KrrE)Lrr@W#J^o>%"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-\g&M-,g&M-,!!(a,r;cZIquHcNrrE)Qrr<,S!!*#Pr;clO
-rrE)Qr;cfMrrE)QrrE&PrrE)Qrr@W(J_G\/"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;cZDquHcIrrE)Lrr<,N!!*#Kr;clJ
-rrE)Lr;cfHrrE)LrrE&KrrE)Lrr@W#J^o>%"f21\k.LbF~>
-!<E0!joD4Kec5[EK7VR(eUc8JeHMcKk2s>WJ,~>
-!<E0!joD+HgAh3JJUuO+g4@tTg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[EK7VR(eUc8JeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^mbKDX1&V#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<TlJc".)U&X9;\c@6~>
-!<E0!joD3.eUc8%eY^mbKDX1&V#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^mcK)krKeHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g8<TmJH5`Ig'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eY^mcK)krKeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eY^msKDN7]KDN:]s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jbm4`Jbm7`s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDN7]KDN:]s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDW=_s+C0]s8VuH"f21\k.LbF~>
-!<E0!joD*+g4@t/g8<U(Jc!:bs+1$`s8VuM"ektYk.1PC~>
-!<E0!joD3.eUc8%eY^msKDW=_s+C0]s8VuH"f21\k.LbF~>
-!<E0!joD3.eUc8%eY^msKDW=`s+>t$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g8<U(Jc!:cs+,au_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eY^msKDW=`s+>t$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eY^msKD`F_s8R`K^&S-0eHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g8<U(Jc*Cbs8RZI_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eY^msKD`F_s8R`K^&S-0eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eY^msKD`F_rrU`'KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc*CbrrUo*Jc*Cbs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKD`F_rrU`'KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDiL`s8UXLKD`F_s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc3Ics8UgQJc*Cbs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDiL`s8UXLKD`F_s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDiL`s8LRKKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc3Ics8LaPJc3Ics81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDiL`s8LRKKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDrRas8CLJKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc<Ods8C[OJc3Ics81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDrRas8CLJKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDrRas8:FIKDrRas81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc<Ods8:UNJc<Ods81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDrRas8:FIKDrRas81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE&Xbs81@HKDrRas81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcEUes81OMJc<Ods81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE&Xbs81@HKDrRas81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE&Xbs8(:GKE&Xbs81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcEUes8(ILJcEUes81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE&Xbs8(:GKE&Xbs81=MV#TT>]`<Q~>
-!<E0!joD4>eH#X+eH#XIeH#WVeH#X+eH#XIeH#XIec,TWec5[IeH#XCeH#X%eH#XIec5ZpeH#X=
-ec5[Jec5Zkec17'^&S-.ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+;g&M-0g&M-Ng&M,[g&M-0g&M-Ng&M-NgAV)\gA_0Ng&M-Hg&M-*g&M-NgA_/ug&M-B
-gA_0OgA_/pgAc^*_Z0Z3gAca(_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4>eGoU+eGoUIeGoTVeGoU+eGoUIeGoUIec#QWec,XIeGoUCeGoU%eGoUIec,WpeGoU=
-ec,XJec,Wkec17'^&S-.ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4>eH#X+eH#XIeH#WVeH#X+eH#XIeH#XJeH#XKeH#WXeH#WaeH#WpeH#X<eH#XIeH#Wk
-ec17'^&S--ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+;g&M-0g&M-Ng&M,[g&M-0g&M-Ng&M-Og&M-Pg&M,]g&M,fg&M,ug&M-Ag&M-Ng&M,p
-gAc^*_Z0Z2gAc^*_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4>eGoU+eGoUIeGoTVeGoU+eGoUIeGoUJeGoUKeGoTXeGoTaeGoTpeGoU<eGoUIeGoTk
-ec17'^&S--ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4Jec5XPec42"s8CLHs8LRKs8UUTs4./"s8UXLs8LRKrrUaNs7t4Ds8UXJs2*=drrgmP
-ec5[Jec#OIec5[LeHl3*s4./Lec5[Kec5XNec5[Fec#OJec#LMec41Mr;QiKs8W)Krr;uJs8W)K
-!WU^Ls5VW3s4./Lrm_&Lec,UKec5[IeH#XJec5[Lec5XMec5Tus8W,L"96pOs8LRKs8CIKs4.&I
-!nI>NqUPWG!S.5Kec5[Jec,U,ec5[Jec5[LeH>j%s8W)KrVuoJ!WU^Ls8UXLs8:CIs8:CIs8CLJ
-s8LOLs4.,Kf@BnRs8VbE!knX6qpbkGs5rIW!.Y~>
-!<E0!joD+GgA_-Ug&Th,!<(XM!<1^P!<:aY!87G,!!(^Q!<1^P!!:jS!;Y@I!<:dO!5dIi!!M!U
-g&M-OgAM$NgA_0Qg'@]4!87DQg&M-PgA_-Sg&M-KgAM$OgAM!Rg&Tj\qu?fP!!*#PrW)rOrrE&P
-!<CjQ!9;c8!87DQrn7AQgAV*PgA_0Ng&M-OgA_0QgA_-Rg&V**rrE)Q!s%$T!<1^P!<(UP!8@>N
-!nmVSqV(rL!SRPPgA_0OgAV*1gA_0OgA_0Qg&h?/!!*#Pr;clO!<CjQ!<:dQ!;tON!;tON!<(XO
-!<1[Q!8@DPf@p7Us8VbC!lG!;qq;4Is5rIT!.Y~>
-!<E0!joD4Jec,UPeH","!<(IH!<1OK!<:RT!7_)"!!(OL!<1OK!!:[N!;Y1D!<:UJ!5d:d!!LgP
-eGoUJeboLIec,XLeHc0*!7_&LeGoUKec,UNeGoUFeboLJeboIMeH".Mqu?fK!!*#KrW)rJrrE&K
-!<C[L!9;T3!7_&Lrm_#Lec#RKec,XIeGoUJec,XLec,UMeH#QurrE)L!s$jO!<1OK!<(FK!7guI
-!n@8NqUPTG!S%2Kec,XJec#R,ec,XJec,XLeH5g%!!*#Kr;clJ!<C[L!<:UL!;t@I!;t@I!<(IJ
-!<1LL!7h&Kf@BnRs8VbE!knX6qpbkGs5rIW!.Y~>
-!<E0!joD4KeH>j%ec5Tu!<<#J!<<#J$3/Q+s4./"s4./JeH#XKeH>j%ec5Ep!<;uI!<9mc"96p%
-s8CIJs8CIJs8CISs4,["ec42"ec5Tu!<<&K"96p%s7k+Es8:CIs8LOXs4./"s4,["e^a]Mec5Qt
-"96p%s8LOKs52?/s4,["rm_#KrRD#Me^a]ueH#XIeHc-)ec42"ec5Tu!<<&K"96p%s8CIJs8CIJ
-s8CIMs4,["qUG`Kec42"rRCoJrm_,Ne^a]YeIV]1ec41Ms4,["e^a]Mec5X!!<;uI!<<#J"96p%
-s8CIJs8:CIs8LONs4,["rm_#KeCFSO!<;YCs8VuH"f21\k.LbF~>
-!<E0!joD+Hg&h?/g&V**!!)uO!!)uO#lr]5!87G,!87GOg&M-Pg&h?/g&Up%!!)rN!!'jh!s%'/
-!<(UO!<(UO!<(UX!8?-,g&Th,g&V**!!*#P!s%'/!;P7J!;tON!<1[]!87G,!8?-,g=cP\g&V')
-!s%'/!<1[P!8lK4!8?-,rn7>PrRq>Rg=cQ*g&M-Ng'7W3g&Th,g&V**!!*#P!s%'/!<(UO!<(UO
-!<(UR!8?-,qUu&Pg&Th,rRq5Orn7GSg=cPcg(+2;g&Tj\!8?-,g=cP\g&V-+!!)rN!!)uO!s%'/
-!<(UO!;tON!<1[S!8?-,rn7>PeCsqR!<;YAs8VuM"ektYk.1PC~>
-!<E0!joD4KeH5g%eH#Qu!!)uJ!!)uJ#lrN+!7_)"!7_)JeGoUKeH5g%eH#Bp!!)rI!!'jc!s$m%
-!<(FJ!<(FJ!<(FS!7fU"eH","eH#Qu!!*#K!s$m%!;P(E!;t@I!<1LX!7_)"!7fU"e^XZMeH#Nt
-!s$m%!<1LK!8l</!7fU"rm^uKrRCuMe^XZueGoUIeHZ*)eH","eH#Qu!!*#K!s$m%!<(FJ!<(FJ
-!<(FM!7fU"qUG]KeH","rRClJrm_)Ne^XZYeIMZ1eH".M!7fU"e^XZMeH#U!!!)rI!!)uJ!s$m%
-!<(FJ!;t@I!<1LN!7fU"rm^uKeCFSO!<;YCs8VuH"f21\k.LbF~>
-!<E0!joD4KeHQ!'ec41Mrr;rI!<<#Jrr<#K#636Rec41Mrr;uJ"96p%s7k+Es8:CIs2!4hs4,["
-e^a[!rRCoJrRLoIs4%>Rec42"e^a[!rm_,Ne^a]peH#XIeH#XKeI)?,s4./"ec41Ms8LRKs8LRJ
-s8CIJs52?/s4,["rm_#KrRLoIr7(fIr7)&Pe^a]Ms4./JeH#XKeHQ!'ec41Mrr;rI!<<#J"96p%
-s8(7Ks4./"s8CIJs8LONs4,["iRIr.r7),Re^a]Mec41Ms8LOKs8:CIs8CIMs4,["rRCoJr7(fI
-rmh#JrRCoJeCFSOo"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+Hg'%K1g&Tj\rW)oN!!)uOrW)uP"p!?Wg&Tj\rW)rO!s%'/!;P7J!;tON!5[@m!8?-,
-g=lN+rRq5OrS%5Ns4RYWg&Th,g=lN+rn7GSg=cQ%g&M-Ng&M-Pg'Ri6!87G,g&Tj\!<1^P!<1^O
-!<(UO!8lK4!8?-,rn7>PrS%5Nr7V,Nr7VAUg=cP\!87GOg&M-Pg'%K1g&Tj\rW)oN!!)uO!s%'/
-!;bCP!87G,!<(UO!<1[S!8?-,iS"83r7VGWg=cP\g&Tj\!<1[P!;tON!<(UR!8?-,rRq5Or7V,N
-rn@>OrRq5OeCsqRo"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4KeHGs'eH".MrW)oI!!)uJrW)uK"p!0ReH".MrW)rJ!s$m%!;P(E!;t@I!5[1h!7fU"
-e^aX!rRClJrRLlIs4%;ReH","e^aX!rm_)Ne^XZpeGoUIeGoUKeHu<,!7_)"eH".M!<1OK!<1OJ
-!<(FJ!8l</!7fU"rm^uKrRLlIr7(cIr7)#Pe^XZM!7_)JeGoUKeHGs'eH".MrW)oI!!)uJ!s$m%
-!;b4K!7_)"!<(FJ!<1LN!7fU"iRIo.r7))Re^XZMeH".M!<1LK!;t@I!<(FM!7fU"rRClJr7(cI
-rmguJrRClJeCFSOo"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4KeHl3*ec42"e^a]ueJ%u5ec42"e^a]Mec42"e^a]Mec5X!"96p%s7k+Ns4,["e^a]M
-ec3S<#liH*s4./"ec5Tu'E?V5s4./"ec41Ms4./"ec41Ms8LONs4,["psffQe^a]Mec41Ms8UX"
-rr3,Os4,["r7)#Oe^a]Mec5X!!<:s,"96p%s8LOKs8CIMs4,["rRCoJr7)&Pe^a]Ms4./JeH#XK
-eHl3*ec42"e^a]ueH#XJeH>j%ec5Kr"TR$Pec5Tu!<<&K"96p%s5DK=s4,["e^a]Mec41Ms4,["
-rm_5Qe^a]Mec5Tu"96p%s8CIJs8:CIs8LONs4,["rm_#KeCFSOnGiC9"f21\k.LbF~>
-!<E0!joD+Hg'@]4g&Th,g=cQ*g(OJ?g&Th,g=cP\g&Th,g=cP\g&V-+!s%'/!;P7S!8?-,g=cP\
-g&T(F#QWT4!87G,g&V**'*-b?!87G,g&Tj\!87G,g&Tj\!<1[S!8?-,pt?,Vg=cP\g&Tj\!!(a,
-rW!)T!8?-,r7V>Tg=cP\g&V-+!!(p1!s%'/!<1[P!<(UR!8?-,rRq5Or7VAUg=cP\!87GOg&M-P
-g'@]4g&Th,g=cQ*g&M-Og&h?/g&V!'"9@-Ug&V**!!*#P!s%'/!9)WB!8?-,g=cP\g&Tj\!8?-,
-rn7PVg=cP\g&V**!s%'/!<(UO!;tON!<1[S!8?-,rn7>PeCsqRnGiC>"ektYk.1PC~>
-!<E0!joD4KeHc0*eH","e^XZueIqr5eH","e^XZMeH","e^XZMeH#U!!s$m%!;P(N!7fU"e^XZM
-eH!P<#QWE*!7_)"eH#Qu'*-S5!7_)"eH".M!7_)"eH".M!<1LN!7fU"psfcQe^XZMeH".M!!(R"
-rW!)O!7fU"r7(uOe^XZMeH#U!!!(p,!s$m%!<1LK!<(FM!7fU"rRClJr7)#Pe^XZM!7_)JeGoUK
-eHc0*eH","e^XZueGoUJeH5g%eH#Hr"9?sPeH#Qu!!*#K!s$m%!9)H=!7fU"e^XZMeH".M!7fU"
-rm_2Qe^XZMeH#Qu!s$m%!<(FJ!;t@I!<1LN!7fU"rm^uKeCFSOnGiC9"f21\k.LbF~>
-!<E0!joD4Jec,UKec5XMec5Tus8W)Ks8W)K!rpgNrmh&K!S.5Lec5[Cec5[Jec5Zdec,UKec5XM
-ec5Tus8W)Ks8W)K!rpgNrmh&K!S.5Lec5[Cec5[Jec5[LeH#XHec5XNec42!s8CLJs8LRIs5DN-
-s8LRIs8LRKs8LRHrrCUHrrpsQec5["q>UcOs8UXLs4./"ec#OIec5[FeHZ'(s4./LeboIIec5XM
-ec4UYs8W&Js8W,Lrr3&Ms8W)Ks8W,LrVulIs8W)Kr;QcIr;ZfIs8W)KrVtI!s+BqC!e^OQqpbkG
-s5rIW!.Y~>
-!<E0!joD+GgAV*PgA_-Rg&V**rrE&PrrE&P!W^pSrn@AP!SRPQgA_0HgA_0OgA_/igAV*PgA_-R
-g&V**rrE&PrrE&P!W^pSrn@AP!SRPQgA_0HgA_0OgA_0Qg&M-MgA_-Sg&Tk+!<(XO!<1^N!9)Z2
-!<1^N!<1^P!<1^M!!(aM!!V'Vg&M-,q#C`T!!(^Q!87G,gAM$NgA_0Kg'.Q2!87DQgACsNgA_-R
-g&U*crrE#OrrE)QrW!#R!!*#PrrE)Qr;ciNrrE&Pqu?`NquHcNrrE&Pr;bF&s+0eA!eLCOqq;4I
-s5rIT!.Y~>
-!<E0!joD4Jec#RKec,UMeH#QurrE&KrrE&K!W^aNrmh#K!S%2Lec,XCec,XJec,Wdec#RKec,UM
-eH#QurrE&KrrE&K!W^aNrmh#K!S%2Lec,XCec,XJec,XLeGoUHec,UNeH"/!!<(IJ!<1OI!9)K-
-!<1OI!<1OK!<1OH!!(RH!!UmQeGoU"q#C`O!!(OL!7_)"eboLIec,XFeHQ$(!7_&LebfFIec,UM
-eH"RYrrE#JrrE)LrW!#M!!*#KrrE)Lr;ciIrrE&Kqu?`IquHcIrrE&Kr;bF!s+BqC!e^OQqpbkG
-s5rIW!.Y~>
-!<E0!joD4HeH#X-eH#WNeH#X-eH#X7ec,TjeH#WgeH#W#e`,-ZKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD+Eg&M-2g&M,Sg&M-2g&M-<gAV)og&M,lg&M,(g>^idJcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD4HeGoU-eGoTNeGoU-eGoU7ec#QjeGoTgeGoT#e`,-ZKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD4Kec,U-ec5[JebfBVec,U-ec5[JebfBWec#Niec5[JebfAtea(ccKE(uFec1:%s81=M
-V#TT>]`<Q~>
-!<E0!joD+HgAV*2gA_0OgA:l[gAV*2gA_0OgA:l\gAM#ngA_0OgA:l$g?[JmJcGcDgAca(s81LR
-U&X9;\c@6~>
-!<E0!joD4Kec#R-ec,XJeb]?Vec#R-ec,XJeb]?WeboKiec,XJeb]>tea(ccKE(uFec1:%s81=M
-V#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#X5ec5[Jec5[Lec5[>ec5ZmeH#XEeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcK
-k2s>WJ,~>
-!<E0!joD+?g&M-:gA_0OgA_0QgA_0CgA_/rg&M-Jg&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2M
-k2s5TJ,~>
-!<E0!joD4BeGoU5ec,XJec,XLec,X>ec,WmeGoUEeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcK
-k2s>WJ,~>
-!<E0!joD4BeH#X4eH#XIeH#XKeH#X=eH#WmeH#XEeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcK
-k2s>WJ,~>
-!<E0!joD+?g&M-9g&M-Ng&M-Pg&M-Bg&M,rg&M-Jg&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2M
-k2s5TJ,~>
-!<E0!joD4BeGoU4eGoUIeGoUKeGoU=eGoTmeGoUEeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcK
-k2s>WJ,~>
-!<E0!joD4BeH#XAec5[Kec5[HeH#XIeH#XKec,UJec5[Iec5[KeH>j%s8W)K!<;cCs8W&Js8W,L
-$3/QUs4,["ec5[Jec5[Jec5[Kec#OEeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M-FgA_0PgA_0Mg&M-Ng&M-PgAV*OgA_0NgA_0Pg&h?/!!*#P!!)`HrrE#OrrE)Q
-#lrZZ!8?-,g&M-OgA_0OgA_0PgAM$Jg&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUAec,XKec,XHeGoUIeGoUKec#RJec,XIec,XKeH5g%!!*#K!!)`CrrE#JrrE)L
-#lrKU!7fU"eGoUJec,XJec,XKeboLEeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#XBeH>j%ec5Tu!<;uI!<;uI!<<&K"96p%s8CIJs8LOSs4,["e^a]Ms8CIJs7b%e
-s4,["e^a]Mec41Ms4,["e^a]Mec41Ms4,["e^a]Mec5X!!<;iE!<7r,!<7r,!<8qHs+C@Op=91q
-s8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Gg&h?/g&V**!!)rN!!)rN!!*#P!s%'/!<(UO!<1[X!8?-,g=cP\!<(UO!;G1j
-!8?-,g=cP\g&Tj\!8?-,g=cP\g&Tj\!8?-,g=cP\g&V-+!!)fJ!!%o1!!%o1!!&nMs+14Mp=fOt
-s8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUBeH5g%eH#Qu!!)rI!!)rI!!*#K!s$m%!<(FJ!<1LS!7fU"e^XZM!<(FJ!;G"e
-!7fU"e^XZMeH".M!7fU"e^XZMeH".M!7fU"e^XZMeH#U!!!)fE!!%o,!!%o,!!&nHs+C@Op=91q
-s8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XBeH#XIec,UHeH#XIeH#XKeHQ!'ec41Mrr;uJ!<;uIs8VW>!<;uI&c^D3s4,["
-e^a]Mec41Ms4,[!s8LOKs81=Hs7k+Es,,>,s,,>,s/+?HKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-Gg&M-NgAV*Mg&M-Ng&M-Pg'%K1g&Tj\rW)rO!!)rNrrDTC!!)rN&HLP=!8?-,
-g=cP\g&Tj\!8?0+!<1[P!;kIM!;P7J!/fJ1!/fJ1!2eKMJcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD4BeGoUBeGoUIec#RHeGoUIeGoUKeHGs'eH".MrW)rJ!!)rIrrDT>!!)rI&HLA3!7fU"
-e^XZMeH".M!7fX!!<1LK!;k:H!;P(E!/f;,!/f;,!2e<HKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBeHl3*ec42"e^a]teH#XIeH#XKeHl3*ec42"e^a^!eHl3*ec41Ms4./JeH#XD
-eKOtCec41Ms4,["e^a]Mec41Ms4,["e^a]Mec41Ms4,["rm_,Ne^a]seH#W,eH#W,eH#WHec1:%
-s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M-Gg'@]4g&Th,g=cQ)g&M-Ng&M-Pg'@]4g&Th,g=cQ+g'@]4g&Tj\!87GOg&M-I
-g*$IMg&Tj\!8?-,g=cP\g&Tj\!8?-,g=cP\g&Tj\!8?-,rn7GSg=cQ(g&M,1g&M,1g&M,MgAca(
-s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBeHc0*eH","e^XZteGoUIeGoUKeHc0*eH","e^X[!eHc0*eH".M!7_)JeGoUD
-eKFqCeH".M!7fU"e^XZMeH".M!7fU"e^XZMeH".M!7fU"rm_)Ne^XZseGoT,eGoT,eGoTHec1:%
-s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#XAec5[Kec5XOec41Mr;QcIq#C?Ds8N,Ms8LRKs8UXLrrUaNs8LOKs7Y"Cs8CLJ
-s8UXKrrCUIrs%$Rs4,["s8CLJs8:FIs8(7Gs,,>,s,,>,s/+?HKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-FgA_0PgA_-Tg&Tj\qu?`Np]1<Irr<)R!<1^P!<:dQ!!:jS!<1[P!;>.H!<(XO
-!<:dP!!(aN!!_-W!8?-,!<(XO!;tRN!;bCL!/fJ1!/fJ1!2eKMJcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD4BeGoUAec,XKec,UOeH".Mqu?`Ip]1<Drr<)M!<1OK!<:UL!!:[N!<1LK!;=tC!<(IJ
-!<:UK!!(RI!!^sR!7fU"!<(IJ!;tCI!;b4G!/f;,!/f;,!2e<HKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5ec,XGeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gA_0Lg&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5ec,XGeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5eboLGeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gAM$Lg&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5eboLGeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4eb]@HeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gA:mMg&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4eb]@HeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeVO8+s,,>,s,,>,s/+?HKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD+?g5#`dg&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeVF3_eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4eb]@HeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gA:mMg&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4eb]@HeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4ec#RHeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gAV*Mg&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4ec#RHeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5ec,XGeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gA_0Lg&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5ec,XGeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#X5eH#W\eH#X9eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M-:g&M,ag&M->g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoU5eGoT\eGoU9eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#X5eH#W\eH#X9eH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M-:g&M,ag&M->g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoU5eGoT\eGoU9eGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#XBeH,^#rr<#Ks8W)KrVm2Ss8UXLs4,["ec#LLec5[JeH#XCec5[Jec5[LeHu9+
-s8UX"s4./LrRLrJrRLrJrmguImaV=;MU__,MU__,VUb^!s8VfCs+C@OqpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-Gg&V3-rW)uPrrE&Pr;[/X!!(^Q!8?-,gAM!Qg&M-Og&M-HgA_0OgA_0Qg'Ic5
-!!(a,!87DQrS%8OrS%8Orn@;Nmb.X@MV8%1MV8%1VV;'$s8VfHs+14Mqq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUBeH#[#rW)uKrrE&Kr;[/S!!(OL!7fU"eboILeGoUJeGoUCec,XJec,XLeHl6+
-!!(R"!7_&LrRLoJrRLoJrmgrImaV:;MU_\,MU_\,VUb^!s8VfCs+C@OqpbkGs5rIW!.Y~>
-!<E0!joD4BeH#XAeH#XJeH>j%ec5X!!<<#J"96p%s8LOKs8CIMs4,["rm_#KpXLGee^a]Mec41M
-s4,["e^a]Mec41Ms4,["e^a]Mec41Ms8LOKs6S89s,,>,s,,>,s/+?HKE(uFec1:%s81=MV#TT>
-]`<Q~>
-!<E0!joD+?g&M-Fg&M-Og&h?/g&V-+!!)uO!s%'/!<1[P!<(UR!8?-,rn7>PpY$bjg=cP\g&Tj\
-!8?-,g=cP\g&Tj\!8?-,g=cP\g&Tj\!<1[P!:8D>!/fJ1!/fJ1!2eKMJcGcDgAca(s81LRU&X9;
-\c@6~>
-!<E0!joD4BeGoUAeGoUJeH5g%eH#U!!!)uJ!s$m%!<1LK!<(FM!7fU"rm^uKpXLDee^XZMeH".M
-!7fU"e^XZMeH".M!7fU"e^XZMeH".M!<1LK!:859!/f;,!/f;,!2e<HKE(uFec1:%s81=MV#TT>
-]`<Q~>
-!<E0!joD4BeH#XAeH#XJec,UIeH#XJeH>j%ec5X!!<<#J"96p%s7=b@s8:CZs4,["e^a]Mec41M
-s4,["e^a[!rm_#Kqpb]Hm*u+9MU__,MU__,VUb^!s8VfCs+C@OqpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-Fg&M-OgAV*Ng&M-Og&h?/g&V-+!!)uO!s%'/!;"nE!;tO_!8?-,g=cP\g&Tj\
-!8?-,g=lN+rn7>Pqq;#Mm+MF>MV8%1MV8%1VV;'$s8VfHs+14Mqq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUAeGoUJec#RIeGoUJeH5g%eH#U!!!)uJ!s$m%!;"_@!;t@Z!7fU"e^XZMeH".M
-!7fU"e^aX!rm^uKqpbZHm*u(9MU_\,MU_\,VUb^!s8VfCs+C@OqpbkGs5rIW!.Y~>
-!<E0!joD4BeH#XAeH#XJeH>j%ec5X!#liH*s4./"ec5X!!<<#J"96p%s8LOKs7b%es4,["e^a]M
-ec41Ms4,["e^a]Mec41Ms4,["e^a]Mec5X!"96p%s6nJ<s,,>,s,,>,s/+?HKE(uFec1:%s81=M
-V#TT>]`<Q~>
-!<E0!joD+?g&M-Fg&M-Og&h?/g&V-+#QWT4!87G,g&V-+!!)uO!s%'/!<1[P!;G1j!8?-,g=cP\
-g&Tj\!8?-,g=cP\g&Tj\!8?-,g=cP\g&V-+!s%'/!:SVA!/fJ1!/fJ1!2eKMJcGcDgAca(s81LR
-U&X9;\c@6~>
-!<E0!joD4BeGoUAeGoUJeH5g%eH#U!#QWE*!7_)"eH#U!!!)uJ!s$m%!<1LK!;G"e!7fU"e^XZM
-eH".M!7fU"e^XZMeH".M!7fU"e^XZMeH#U!!s$m%!:SG<!/f;,!/f;,!2e<HKE(uFec1:%s81=M
-V#TT>]`<Q~>
-!<E0!joD4BeH#XBec#OIec5[Iec5[Kec5XNec41urrCUKrrpsQs4,["p=93CrRLrJs4.,K!7h#I
-#1`bRe^a^"rRLrJr71iImaV=;MU__,MU__,VUb^!s8VfCs+C@OqpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-GgAM$NgA_0NgA_0PgA_-Sg&Tk*!!(aP!!V'V!8?-,p=fNHrS%8Os4[GP!8@>N
-#20%Wg=cN,rS%8Or7_/Nmb.X@MV8%1MV8%1VV;'$s8VfHs+14Mqq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUBeboLIec,XIec,XKec,UNeH".u!!(RK!!UmQ!7fU"p=90CrRLoJs4.)K!7guI
-#1W\Re^XX"rRLoJr71fImaV:;MU_\,MU_\,VUb^!s8VfCs+C@OqpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%s7CsDs81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca(s7CmBs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%s7CsDs81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec17%s7:mCs81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc^(s7:gAs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec17%s7:mCs81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$eb]?0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gA:l5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$eb]?0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeVO8+s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g5#`dg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeVF3_eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$ebfE0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gACr5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$ebfE0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X.ec5[EeH#W\eH#XKeH#XGeH5d$s8CIJs-_C;s,,>,s/+?HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD+?g&M-3gA_0Jg&M,ag&M-Pg&M-Lg&_9.!<(UO!1DO@!/fJ1!2eKMJb$\Xs81LRU&X9;
-\c@6~>
-!<E0!joD4BeGoU.ec,XEeGoT\eGoUKeGoUGeH,a$!<(FJ!1D@;!/f;,!2e<HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD4BeH#X-eH#XEeH#W\eH#XKeH#XGeHGp&s4,[!s-_C;s,,>,s/+?HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD+?g&M-2g&M-Jg&M,ag&M-Pg&M-Lg&qE0!8?0+!1DO@!/fJ1!2eKMJb$\Xs81LRU&X9;
-\c@6~>
-!<E0!joD4BeGoU-eGoUEeGoT\eGoUKeGoUGeH>m&!7fX!!1D@;!/f;,!2e<HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD4BeH#XAec,UJec5[LeH>j%s8W&Jrr;fErVuoJ!WU^LrrUaNs8LONs4./LrRLoIq:,NG
-ec,UKec5[Jec5XLec,RMec5[Kec5[Jec,UKec#LKec5Nsr;ZcH!<8J;!<7r,!<8qHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD+?g&M-FgAV*OgA_0Qg&h?/!!)uOrW)cJr;clO!<CjQ!!:jS!<1[S!87DQrS%5Nq:YiL
-gAV*PgA_0OgA_-QgAV'Rg&M-PgA_0OgAV*PgAM!Pg&V$(quH`M!!&G@!!%o1!!&nMs+0aXs8VuM
-"ektYk.1PC~>
-!<E0!joD4BeGoUAec#RJec,XLeH5g%!!)uJrW)cEr;clJ!<C[L!!:[N!<1LN!7_&LrRLlIq:,KG
-ec#RKec,XJec,ULec#OMeGoUKec,XJec#RKeboIKeH#KsquH`H!!&G;!!%o,!!&nHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD4BeH#XBeH#XIeIV]1ec41Ms4,["e^a]Mec5Ep!<;uI!<;rH!<<&K#636(s4,["p!j'B
-rRDbbe^a]Mec41Ms4,["e^a]Mec41Ms4,["qpb]Hrm_#KqUGZIec5Tu!<8J;!<7r,!<8qHs+BmU
-s8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Gg&M-Ng(+2;g&Tj\!8?-,g=cP\g&Up%!!)rN!!)oM!!*#P"p!B2!8?-,p"BBG
-rRr(gg=cP\g&Tj\!8?-,g=cP\g&Tj\!8?-,qq;#Mrn7>PqUtuNg&V**!!&G@!!%o1!!&nMs+0aX
-s8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUBeGoUIeIMZ1eH".M!7fU"e^XZMeH#Bp!!)rI!!)oH!!*#K"p!3(!7fU"p!j$B
-rRD_be^XZMeH".M!7fU"e^XZMeH".M!7fU"qpbZHrm^uKqUGWIeH#Qu!!&G;!!%o,!!&nHs+BmU
-s8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XAec5[Kec,UJeHu9+ec41Ms4,["psfBEr7(fIrRLoIrm_,Ne^a^!ec5[DeH#XJ
-ec,UJeI2E-ec41Ms4,["e^a[!rRLrJrRCoJrm_#KqUGZIec5Tu!<8J;!<7r,!<8qHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD+?g&M-FgA_0PgAV*Og'Ic5g&Tj\!8?-,pt>]Jr7V,NrS%5Nrn7GSg=cQ+gA_0Ig&M-O
-gAV*Og'[o7g&Tj\!8?-,g=lN+rS%8OrRq5Orn7>PqUtuNg&V**!!&G@!!%o1!!&nMs+0aXs8VuM
-"ektYk.1PC~>
-!<E0!joD4BeGoUAec,XKec#RJeHl6+eH".M!7fU"psf?Er7(cIrRLlIrm_)Ne^X[!ec,XDeGoUJ
-ec#RJeI)B-eH".M!7fU"e^aX!rRLoJrRClJrm^uKqUGWIeH#Qu!!&G;!!%o,!!&nHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD4BeH#X?eIqo4ec41Ms4,["e^a]Mec41Ms7k+Ks4,["e^a^!eH>j%ec5X!"96p%s8:CI
-s7k+Es8CI_s4,["e^a]Mec41Ms4,["e^a]Mec5Qt!<<&K"TR$&s8VuHr;ZcH!<8J;!<7r,!<8qH
-s+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Dg(FD>g&Tj\!8?-,g=cP\g&Tj\!;P7P!8?-,g=cQ+g&h?/g&V-+!s%'/!;tON
-!;P7J!<(Ud!8?-,g=cP\g&Tj\!8?-,g=cP\g&V')!!*#P"9@00!!)oMquH`M!!&G@!!%o1!!&nM
-s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoU?eIhl4eH".M!7fU"e^XZMeH".M!;P(K!7fU"e^X[!eH5g%eH#U!!s$m%!;t@I
-!;P(E!<(F_!7fU"e^XZMeH".M!7fU"e^XZMeH#Nt!!*#K"9@!&!!)oHquH`H!!&G;!!%o,!!&nH
-s+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XBec,UIec5[Lec,RSec5["ec5["s7k.Es8UXJs8UXLrrUaNec,RNec5["rr;cD
-rVulIs8W&Jrr;uJs8N8Qs4,["s8LRJs8:FIrrL[MqUG`Kec41MrVr>:!<7r,!<8qHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD+?g&M-GgAV*NgA_0QgAV'Xg&M-,g&M-,!;P:J!<:dO!<:dQ!!:jSgAV'Sg&M-,rW)`I
-r;ciNrrE#OrW)rOrr<5V!8?-,!<1^O!;tRN!!1dRqUu&Pg&Tj\r;`;?!!%o1!!&nMs+0aXs8VuM
-"ektYk.1PC~>
-!<E0!joD4BeGoUBec#RIec,XLec#OSeGoU"eGoU"!;P+E!<:UJ!<:UL!!:[Nec#ONeGoU"rW)`D
-r;ciIrrE#JrW)rJrr<5Q!7fU"!<1OJ!;tCI!!1UMqUG]KeH".Mr;`;:!!%o,!!&nHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD4BeH#WFeH#X5eH#XGeH5d$s-2%6s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,Kg&M-:g&M-Lg&_9.!0l1;!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoTFeGoU5eGoUGeH,a$!0l"6!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#WGec,U5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,LgAV*:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoTGec#R5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,:gA_0Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5eboLGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,:gAM$Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5eboLGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,9gA:mMg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeU[^_!!*%VeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g496c!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeU[^^!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,9gA:mMg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4ec#RHeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,9gAV*Mg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4ec#RHeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,:gA_0Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X.ec5[DeH#XIeH#XIeH#XFec5[BeH#X7eH5d$s8CIJs7t1Fs,,>,s,,>,s/+?H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-3gA_0Ig&M-Ng&M-Ng&M-KgA_0Gg&M-<g&_9.!<(UO!;Y=K!/fJ1!/fJ1!2eKM
-Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoU.ec,XDeGoUIeGoUIeGoUFec,XBeGoU7eH,a$!<(FJ!;Y.F!/f;,!/f;,!2e<H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#X-eH#XFec,UIec5[Jec5[EeH#XBeH#X7eHGp&s4,[!s7t1Fs,,>,s,,>,s/+?H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-2g&M-KgAV*NgA_0OgA_0Jg&M-Gg&M-<g&qE0!8?0+!;Y=K!/fJ1!/fJ1!2eKM
-Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoU-eGoUFec#RIec,XJec,XEeGoUBeGoU7eH>m&!7fX!!;Y.F!/f;,!/f;,!2e<H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XAec,UJec5[LeH>j%s8W&Jrr;`C!<<&K!rpgNrm_)Mec5Eprr<#Ks8N5Ps8UX"
-rVulIs8W&Jrr;fEr;ZcH!<;lF!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-FgAV*OgA_0Qg&h?/!!)uOrW)]H!!*#P!W^pSrn7DRg&Up%rW)uPrr<2U!!(a,
-r;ciNrrE#OrW)cJquH`M!!)iK!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUAec#RJec,XLeH5g%!!)uJrW)]C!!*#K!W^aNrm_&MeH#BprW)uKrr<2P!!(R"
-r;ciIrrE#JrW)cEquH`H!!)iF!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XBeH#XIeIV]1ec41Ms4,["e^a]Mec5Bo%0+l.s4,["e^a]Mec5Ep$3/Q+s4,["
-e^a^!eH#XJeHZ'(ec41Ms7OnDs4./JeH#XFeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-Gg&M-Ng(+2;g&Tj\!8?-,g=cP\g&Um$$io#8!8?-,g=cP\g&Up%#lr]5!8?-,
-g=cQ+g&M-Og'.Q2g&Tj\!;5%I!87GOg&M-Kg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBeGoUIeIMZ1eH".M!7fU"e^XZMeH#?o$ini.!7fU"e^XZMeH#Bp#lrN+!7fU"
-e^X[!eGoUJeHQ$(eH".M!;4kD!7_)JeGoUFeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XAec5[Kec,UJeHu9+ec41Ms4,["pXK?Fe^aTt!7h#Iq:,fOe^a]Mec41Ms8LOK
-s8CLIs8CLJs7b%Fs4./JeH#XFeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-FgA_0PgAV*Og'Ic5g&Tj\!8?-,pY#ZKg=lH)!8@>Nq:Z,Tg=cP\g&Tj\!<1[P
-!<(XN!<(XO!;G1K!87GOg&M-Kg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUAec,XKec#RJeHl6+eH".M!7fU"pXK<Fe^aQt!7guIq:,cOe^XZMeH".M!<1LK
-!<(II!<(IJ!;G"F!7_)JeGoUFeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X?eIqo4ec41Ms4,["e^a]Mec41Ms7b%Ds8:CIs8:CIs7k+Ns4,["e^a]Mec5X!
-#liH*s4./"ec5Qt!<;lFr;ZcH!<;lF!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Dg(FD>g&Tj\!8?-,g=cP\g&Tj\!;G1I!;tON!;tON!;P7S!8?-,g=cP\g&V-+
-#QWT4!87G,g&V')!!)iKquH`M!!)iK!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoU?eIhl4eH".M!7fU"e^XZMeH".M!;G"D!;t@I!;t@I!;P(N!7fU"e^XZMeH#U!
-#QWE*!7_)"eH#Nt!!)iFquH`H!!)iF!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XBec,UIec5[Lec,RSec5["ec5["s8(:Es8CIJs8:CIs7t4Ds8CLJs8:FIs8LRK
-s8LRJs7b%Hs4./"ec#OEeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-GgAV*NgA_0QgAV'Xg&M-,g&M-,!;bFJ!<(UO!;tON!;Y@I!<(XO!;tRN!<1^P
-!<1^O!;G1M!87G,gAM$Jg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBec#RIec,XLec#OSeGoU"eGoU"!;b7E!<(FJ!;t@I!;Y1D!<(IJ!;tCI!<1OK
-!<1OJ!;G"H!7_)"eboLEeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#WZeH#X1eH5d$s7FhAs,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,_g&M-6g&_9.!;+tF!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoTZeGoU1eH,a$!;+eA!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W\ec5ZueH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,agA_0%g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT\ec,WueGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,:gA_0Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5eboLGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,:gAM$Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5eboLGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,9gA:mMg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeU[^_!!*%VeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g496c!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeU[^^!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,9gA:mMg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4ec#RHeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,9gAV*Mg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4ec#RHeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,:gA_0Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X(eH#X7eH#XIeH#XIeH#XFec5[BeH#X9eH#W,eH#W,eH#WHec19m^&S-0eHMcK
-k2s>WJ,~>
-!<E0!joD+?g&M--g&M-<g&M-Ng&M-Ng&M-KgA_0Gg&M->g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2M
-k2s5TJ,~>
-!<E0!joD4BeGoU(eGoU7eGoUIeGoUIeGoUFec,XBeGoU9eGoT,eGoT,eGoTHec19m^&S-0eHMcK
-k2s>WJ,~>
-!<E0!joD4BeH#Wgec,UIec5[Jec5[EeH#XBeH#X9eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD+?g&M,lgAV*NgA_0OgA_0Jg&M-Gg&M->g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T
-J,~>
-!<E0!joD4BeGoTgec#RIec,XJec,XEeGoUBeGoU9eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD4BeH#XBeH,^#rr<#Ks8W&Js8W&Js8W&Js8W,Ls8W,Ls8W,Ls8VfC!<<&K!rpgNrm_)M
-ec5Eprr<#Ks8N5Ps8UX"rVulIs8W&Jrr;iF!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Gg&V3-rW)uPrrE#OrrE#OrrE#OrrE)QrrE)QrrE)QrrDcH!!*#P!W^pSrn7DR
-g&Up%rW)uPrr<2U!!(a,r;ciNrrE#OrW)fK!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUBeH#[#rW)uKrrE#JrrE#JrrE#JrrE)LrrE)LrrE)LrrDcC!!*#K!W^aNrm_&M
-eH#BprW)uKrr<2P!!(R"r;ciIrrE#JrW)fF!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XAeH#XJeIV]1ec41Ms4,["e^a]Mec5Tu!<<&K!<<&K"om-Qe^a]oeI;K.ec41M
-s4,["e^a]peHu9+ec41Ms4,["rm_#KrRD,Pe^a]Mec5Bo!<7r,!<7r,!<8qHs+BmUs8VuH"f21\
-k.LbF~>
-!<E0!joD+?g&M-Fg&M-Og(+2;g&Tj\!8?-,g=cP\g&V**!!*#P!!*#P"T[6Vg=cQ$g'du8g&Tj\
-!8?-,g=cQ%g'Ic5g&Tj\!8?-,rn7>PrRqGUg=cP\g&Um$!!%o1!!%o1!!&nMs+0aXs8VuM"ektY
-k.1PC~>
-!<E0!joD4BeGoUAeGoUJeIMZ1eH".M!7fU"e^XZMeH#Qu!!*#K!!*#K"T['Qe^XZoeI2H.eH".M
-!7fU"e^XZpeHl6+eH".M!7fU"rm^uKrRD)Pe^XZMeH#?o!!%o,!!%o,!!&nHs+BmUs8VuH"f21\
-k.LbF~>
-!<E0!joD4BeH#XAeH#XJec,UJeH#XIec,UHeH#XJeHGp&s4,[!s7XtEs4,ZtrrCUIs7t1Os4,["
-e^a]Mec5X!!<<#Jrr;rIs8VoF!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Fg&M-OgAV*Og&M-NgAV*Mg&M-Og&qE0!8?0+!;>+J!8?0)!!(aN!;Y=T!8?-,
-g=cP\g&V-+!!)uOrW)oNrrDlK!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUAeGoUJec#RJeGoUIec#RHeGoUJeH>m&!7fX!!;=qE!7fWt!!(RI!;Y.O!7fU"
-e^XZMeH#U!!!)uJrW)oIrrDlF!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XAeH#XJeIV]1ec41Ms4,["e^a]Mec5Tu!<<#J#liHTe^a]Mec5Bo!<;uI!<;uI
-!<;iE$3/Q+s4,["e^a^!eHl3*ec42"e^a]teH#XGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD+?g&M-Fg&M-Og(+2;g&Tj\!8?-,g=cP\g&V**!!)uO#QWQYg=cP\g&Um$!!)rN!!)rN
-!!)fJ#lr]5!8?-,g=cQ+g'@]4g&Th,g=cQ)g&M-Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T
-J,~>
-!<E0!joD4BeGoUAeGoUJeIMZ1eH".M!7fU"e^XZMeH#Qu!!)uJ#QWBTe^XZMeH#?o!!)rI!!)rI
-!!)fE#lrN+!7fU"e^X[!eHc0*eH","e^XZteGoUGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD4BeH#XBec#OIec5[Jec5[Jec5[KeboIHeH#XJec5[Eec#OHeH#XIeH#XFec#OHec5[I
-ec5[Kec5[Kec,UEeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-GgAM$NgA_0OgA_0OgA_0PgACsMg&M-OgA_0JgAM$Mg&M-Ng&M-KgAM$MgA_0N
-gA_0PgA_0PgAV*Jg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBeboLIec,XJec,XJec,XKebfFHeGoUJec,XEeboLHeGoUIeGoUFeboLHec,XI
-ec,XKec,XKec#REeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#WHeH#X3eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,Mg&M-8g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoTHeGoU3eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#WJec5[2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,OgA_07g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoTJec,X2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,:gA_0Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5eboLGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,:gAM$Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5eboLGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,9gA:mMg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeU[^O!1<fes/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g496T!13b`gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeU[^O!13b`ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,9gA:mMg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4ec#RHeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,9gAV*Mg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4ec#RHeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,:gA_0Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X.ec5[EeH#Wnec5[>eHc-)s4./"ec1WZ!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-3gA_0Jg&M,sgA_0Cg'7W3!87G,g&R,d!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoU.ec,XEeGoTnec,X>eHZ*)!7_)"eGtTZ!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#X-eH#XEeH#WmeH#X>eH>j%s4.)JNR\%/MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-2g&M-Jg&M,rg&M-Cg&h?/!8@AONS4@4MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoU-eGoUEeGoTmeGoU>eH5g%!7h#JNR\"/MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#XAec,UJec5[LeH>j%s8W&Jrr;fErVuoJ!WU^LrrUaNs8LONs4./LrRLoIq:,NG
-ec,UKec5[LeH>j%s8W#I#QN?)s8UXLs7t4Bs8UULs,GP/s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-FgAV*OgA_0Qg&h?/!!)uOrW)cJr;clO!<CjQ!!:jS!<1[S!87DQrS%5Nq:YiL
-gAV*PgA_0Qg&h?/!!)rN#6<K3!!(^Q!;Y@G!<:aQ!0,\4!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUAec#RJec,XLeH5g%!!)uJrW)cEr;clJ!<C[L!!:[N!<1LN!7_&LrRLlIq:,KG
-ec#RKec,XLeH5g%!!)rI#6<<)!!(OL!;Y1B!<:RL!0,M/!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBeH#XIeIV]1ec41Ms4,["e^a]Mec5Ep!<;uI!<;rH!<<&K#636(s4,["p!j'B
-rRD5Se^a]Mec41Ms8CIJs8LONs4,["psfWLec42"e^a\ZeH#W,eH#WHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD+?g&M-Gg&M-Ng(+2;g&Tj\!8?-,g=cP\g&Up%!!)rN!!)oM!!*#P"p!B2!8?-,p"BBG
-rRqPXg=cP\g&Tj\!<(UO!<1[S!8?-,pt>rQg&Th,g=cOdg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T
-J,~>
-!<E0!joD4BeGoUBeGoUIeIMZ1eH".M!7fU"e^XZMeH#Bp!!)rI!!)oH!!*#K"p!3(!7fU"p!j$B
-rRD2Se^XZMeH".M!<(FJ!<1LN!7fU"psfTLeH","e^XYZeGoT,eGoTHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD4BeH#XAec5[Kec,UJeHu9+ec41Ms4,["psfBEr7(fIrRLoIrm_,Ne^a^!ec5[DeH#XJ
-ec,UJeH>j%ec5Tu!<<&K"96p%s7k+Ls4./"s4,["NR\%/MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-FgA_0PgAV*Og'Ic5g&Tj\!8?-,pt>]Jr7V,NrS%5Nrn7GSg=cQ+gA_0Ig&M-O
-gAV*Og&h?/g&V**!!*#P!s%'/!;P7Q!87G,!8?-,NS4@4MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUAec,XKec#RJeHl6+eH".M!7fU"psf?Er7(cIrRLlIrm_)Ne^X[!ec,XDeGoUJ
-ec#RJeH5g%eH#Qu!!*#K!s$m%!;P(L!7_)"!7fU"NR\"/MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#X?eIqo4ec41Ms4,["e^a]Mec41Ms7k+Ks4,["e^a^!eH>j%ec5X!"96p%s8:CI
-s7k+Es8CISs4,["e^a]Mec5Tu!<<&K"96p%s7t4Bs8UULs,GP/s,,>,s/+?HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD+?g&M-Dg(FD>g&Tj\!8?-,g=cP\g&Tj\!;P7P!8?-,g=cQ+g&h?/g&V-+!s%'/!;tON
-!;P7J!<(UX!8?-,g=cP\g&V**!!*#P!s%'/!;Y@G!<:aQ!0,\4!/fJ1!2eKMJb$\Xs81LRU&X9;
-\c@6~>
-!<E0!joD4BeGoU?eIhl4eH".M!7fU"e^XZMeH".M!;P(K!7fU"e^X[!eH5g%eH#U!!s$m%!;t@I
-!;P(E!<(FS!7fU"e^XZMeH#Qu!!*#K!s$m%!;Y1B!<:RL!0,M/!/f;,!2e<HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD4BeH#XBec,UIec5[Lec,RSec5["ec5["s7k.Es8UXJs8UXLrrUaNec,RNec5["rr;cD
-rVulIs8W)Krr;uJr;ZfIs8ViD"96pOeboH-eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-GgAV*NgA_0QgAV'Xg&M-,g&M-,!;P:J!<:dO!<:dQ!!:jSgAV'Sg&M-,rW)`I
-r;ciNrrE&PrW)rOquHcNrrDfI!s%$TgACr2g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBec#RIec,XLec#OSeGoU"eGoU"!;P+E!<:UJ!<:UL!!:[Nec#ONeGoU"rW)`D
-r;ciIrrE&KrW)rJquHcIrrDfD!s$jOebfE-eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#WIeH#XBeH#XCeHGp&s4..,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,Ng&M-Gg&M-Hg&qE0!87F1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoTIeGoUBeGoUCeH>m&!7_(,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#WJec#ODec5[>eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,OgAM$IgA_0Cg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoTJeboLDec,X>eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$eb]?0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gA:l5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$eb]?0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeU[^O!1<fes/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g496T!13b`gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeU[^O!13b`ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$ebfE0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gACr5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$ebfE0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X.ec5[DeH#XJec5[Jec5[Fec5[BeH#X7eH5d$s8CIJs7t1Fs,,>,s,,>,s/+?H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-3gA_0Ig&M-OgA_0OgA_0KgA_0Gg&M-<g&_9.!<(UO!;Y=K!/fJ1!/fJ1!2eKM
-Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoU.ec,XDeGoUJec,XJec,XFec,XBeGoU7eH,a$!<(FJ!;Y.F!/f;,!/f;,!2e<H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#X-eH#XFec,UJeHu9+ec41Ms4,["q:,KFp!j'BlI?%;ec41Mrr;fE!<7r,!<7r,
-!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-2g&M-KgAV*Og'Ic5g&Tj\!8?-,q:YfKp"BBGlIl@@g&Tj\rW)cJ!!%o1!!%o1
-!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoU-eGoUFec#RJeHl6+eH".M!7fU"q:,HFp!j$BlI?";eH".MrW)cE!!%o,!!%o,
-!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XAec,UJec5[LeH>j%s8W&Jrr;`C!<;rH#636(s4,["q:5KEs4./L"P*PPe^aWu
-rmh&KrRLoIq:5ECrm_#Kq:,KFMU__,MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-FgAV*OgA_0Qg&h?/!!)uOrW)]H!!)oM"p!B2!8?-,q:bfJs4[JQ"PNhUg=lK*
-rn@APrS%5Nq:b`Hrn7>Pq:YfKMV8%1MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUAec#RJec,XLeH5g%!!)uJrW)]C!!)oH"p!3(!7fU"q:5HEs4.,L"P!JPe^aTu
-rmh#KrRLlIq:5BCrm^uKq:,HFMU_\,MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#XBeH#XIeIV]1ec41Ms4,["e^a]Mec5Bo!<;uI!<<#Js8VlE$3/Q+s4,["e^a^!
-eH#XJeHZ'(ec41Ms7OnDs4./JeH#XFeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-Gg&M-Ng(+2;g&Tj\!8?-,g=cP\g&Um$!!)rN!!)uOrrDiJ#lr]5!8?-,g=cQ+
-g&M-Og'.Q2g&Tj\!;5%I!87GOg&M-Kg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBeGoUIeIMZ1eH".M!7fU"e^XZMeH#?o!!)rI!!)uJrrDiE#lrN+!7fU"e^X[!
-eGoUJeHQ$(eH".M!;4kD!7_)JeGoUFeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XAec5[Kec,UJeHu9+ec41Ms4,["pXK9DrRCoJrRD#Me^a]qeHu9+ec41Ms4,["
-rm_#KrRLoIrRLrJpXK?Fec5Tu!<;lF!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-FgA_0PgAV*Og'Ic5g&Tj\!8?-,pY#TIrRq5OrRq>Rg=cQ&g'Ic5g&Tj\!8?-,
-rn7>PrS%5NrS%8OpY#ZKg&V**!!)iK!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUAec,XKec#RJeHl6+eH".M!7fU"pXK6DrRClJrRCuMe^XZqeHl6+eH".M!7fU"
-rm^uKrRLlIrRLoJpXK<FeH#Qu!!)iF!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#X?eIqo4ec41Ms4,["e^a]Mec41Ms7b%Ds8LOKs8:CLs4,["q:,fOe^a]Mec41M
-s8LOSs4,["ec41Ms8:CIs7t4Cs8LOKs7t1Fs,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-Dg(FD>g&Tj\!8?-,g=cP\g&Tj\!;G1I!<1[P!;tOQ!8?-,q:Z,Tg=cP\g&Tj\
-!<1[X!8?-,g&Tj\!;tON!;Y@H!<1[P!;Y=K!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoU?eIhl4eH".M!7fU"e^XZMeH".M!;G"D!<1LK!;t@L!7fU"q:,cOe^XZMeH".M
-!<1LS!7fU"eH".M!;t@I!;Y1C!<1LK!;Y.F!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBec,UIec5[Lec,RSec5["ec5["s8(:Es8UXJs8LRKs7t4Ds8CLJs8:FIs8LRK
-s8LRJs7b%Hs4./"ec#OEeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-GgAV*NgA_0QgAV'Xg&M-,g&M-,!;bFJ!<:dO!<1^P!;Y@I!<(XO!;tRN!<1^P
-!<1^O!;G1M!87G,gAM$Jg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBec#RIec,XLec#OSeGoU"eGoU"!;b7E!<:UJ!<1OK!;Y1D!<(IJ!;tCI!<1OK
-!<1OJ!;G"H!7_)"eboLEeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#WZeH#X1eH5d$s7FhAs,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,_g&M-6g&_9.!;+tF!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoTZeGoU1eH,a$!;+eA!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W\ec5ZueH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,agA_0%g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT\ec,WueGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$eb]?0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gA:l5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$eb]?0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeU[^O!1<fes/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g496T!13b`gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeU[^O!13b`ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$ebfE0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gACr5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$ebfE0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X5ec5[Jec5[Lec5[>ec5ZmeH#XEeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD+?g&M-:gA_0OgA_0QgA_0CgA_/rg&M-Jg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T
-J,~>
-!<E0!joD4BeGoU5ec,XJec,XLec,X>ec,WmeGoUEeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD4BeH#X4eH#XIeH#XKeH#X=eH#WmeH#XEeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD+?g&M-9g&M-Ng&M-Pg&M-Bg&M,rg&M-Jg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T
-J,~>
-!<E0!joD4BeGoU4eGoUIeGoUKeGoU=eGoTmeGoUEeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD4BeH#XAec5[Kec5[HeH#XIeH#XKec,UJec5[Iec5[KeH>j%s8W)K!<;cCs8W&Js8W,L
-$3/QUs4,["ec5[Jec5[Jec5[Kec#OEeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-FgA_0PgA_0Mg&M-Ng&M-PgAV*OgA_0NgA_0Pg&h?/!!*#P!!)`HrrE#OrrE)Q
-#lrZZ!8?-,g&M-OgA_0OgA_0PgAM$Jg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUAec,XKec,XHeGoUIeGoUKec#RJec,XIec,XKeH5g%!!*#K!!)`CrrE#JrrE)L
-#lrKU!7fU"eGoUJec,XJec,XKeboLEeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XBeH>j%ec5Tu!<;uI!<;uI!<<&K"96p%s8CIJs8LOSs4,["e^a]Ms8CIJs7b%e
-s4,["e^a]Mec41Ms4,["e^a]Mec41Ms4,["e^a]Mec5X!!<;iE!<7r,!<7r,!<8qHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD+?g&M-Gg&h?/g&V**!!)rN!!)rN!!*#P!s%'/!<(UO!<1[X!8?-,g=cP\!<(UO!;G1j
-!8?-,g=cP\g&Tj\!8?-,g=cP\g&Tj\!8?-,g=cP\g&V-+!!)fJ!!%o1!!%o1!!&nMs+0aXs8VuM
-"ektYk.1PC~>
-!<E0!joD4BeGoUBeH5g%eH#Qu!!)rI!!)rI!!*#K!s$m%!<(FJ!<1LS!7fU"e^XZM!<(FJ!;G"e
-!7fU"e^XZMeH".M!7fU"e^XZMeH".M!7fU"e^XZMeH#U!!!)fE!!%o,!!%o,!!&nHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD4BeH#XBeH#XIec,UHeH#XIeH#XKeHQ!'ec41Mrr;uJ!<;uIs8VW>!<;uI&c^D3s4,["
-e^a]Mec41Ms4,[!s8LOKs81=Hs7k+Es,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-Gg&M-NgAV*Mg&M-Ng&M-Pg'%K1g&Tj\rW)rO!!)rNrrDTC!!)rN&HLP=!8?-,
-g=cP\g&Tj\!8?0+!<1[P!;kIM!;P7J!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUBeGoUIec#RHeGoUIeGoUKeHGs'eH".MrW)rJ!!)rIrrDT>!!)rI&HLA3!7fU"
-e^XZMeH".M!7fX!!<1LK!;k:H!;P(E!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBeHl3*ec42"e^a]teH#XIeH#XKeHl3*ec42"e^a^!eHl3*ec41Ms4./JeH#XD
-eKOtCec41Ms4,["e^a]Mec41Ms4,["e^a]Mec41Ms4,["rm_,Ne^a]seH#W,eH#W,eH#WHec19m
-^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-Gg'@]4g&Th,g=cQ)g&M-Ng&M-Pg'@]4g&Th,g=cQ+g'@]4g&Tj\!87GOg&M-I
-g*$IMg&Tj\!8?-,g=cP\g&Tj\!8?-,g=cP\g&Tj\!8?-,rn7GSg=cQ(g&M,1g&M,1g&M,MgAc`p
-_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBeHc0*eH","e^XZteGoUIeGoUKeHc0*eH","e^X[!eHc0*eH".M!7_)JeGoUD
-eKFqCeH".M!7fU"e^XZMeH".M!7fU"e^XZMeH".M!7fU"rm_)Ne^XZseGoT,eGoT,eGoTHec19m
-^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XAec5[Kec5XOec41Mr;QcIq#C?Ds8N,Ms8LRKs8UXLrrUaNs8LOKs7Y"Cs8CLJ
-s8UXKrrCUIrs%$Rs4,["s8CLJs8:FIs8(7Gs,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-FgA_0PgA_-Tg&Tj\qu?`Np]1<Irr<)R!<1^P!<:dQ!!:jS!<1[P!;>.H!<(XO
-!<:dP!!(aN!!_-W!8?-,!<(XO!;tRN!;bCL!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUAec,XKec,UOeH".Mqu?`Ip]1<Drr<)M!<1OK!<:UL!!:[N!<1LK!;=tC!<(IJ
-!<:UK!!(RI!!^sR!7fU"!<(IJ!;tCI!;b4G!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5ec,XGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gA_0Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5ec,XGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5eboLGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gAM$Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5eboLGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4eb]@HeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gA:mMg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4eb]@HeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeVO8+s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g5#`dg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeVF3_eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4eb]@HeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gA:mMg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4eb]@HeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4ec#RHeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gAV*Mg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4ec#RHeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5ec,XGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gA_0Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5ec,XGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X5eH#W\eH#X9eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-:g&M,ag&M->g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoU5eGoT\eGoU9eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X5eH#W\eH#X9eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-:g&M,ag&M->g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoU5eGoT\eGoU9eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XBeH,^#rr<#Ks8W)KrVm2Ss8UXLs4,["ec#LLec5[JeH#XCec5[Jec5[LeHu9+
-s8UX"s4./LrRLrJrRLrJrmguImaV=;MU__,MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-Gg&V3-rW)uPrrE&Pr;[/X!!(^Q!8?-,gAM!Qg&M-Og&M-HgA_0OgA_0Qg'Ic5
-!!(a,!87DQrS%8OrS%8Orn@;Nmb.X@MV8%1MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUBeH#[#rW)uKrrE&Kr;[/S!!(OL!7fU"eboILeGoUJeGoUCec,XJec,XLeHl6+
-!!(R"!7_&LrRLoJrRLoJrmgrImaV:;MU_\,MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#XAeH#XJeH>j%ec5X!!<<#J"96p%s8LOKs8CIMs4,["rm_#KpXLGee^a]Mec41M
-s4,["e^a]Mec41Ms4,["e^a]Mec41Ms8LOKs6S89s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-Fg&M-Og&h?/g&V-+!!)uO!s%'/!<1[P!<(UR!8?-,rn7>PpY$bjg=cP\g&Tj\
-!8?-,g=cP\g&Tj\!8?-,g=cP\g&Tj\!<1[P!:8D>!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUAeGoUJeH5g%eH#U!!!)uJ!s$m%!<1LK!<(FM!7fU"rm^uKpXLDee^XZMeH".M
-!7fU"e^XZMeH".M!7fU"e^XZMeH".M!<1LK!:859!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XAeH#XJec,UIeH#XJeH>j%ec5X!!<<#J"96p%s7=b@s8:CZs4,["e^a]Mec41M
-s4,["e^a[!rm_#Kqpb]Hm*u+9MU__,MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-Fg&M-OgAV*Ng&M-Og&h?/g&V-+!!)uO!s%'/!;"nE!;tO_!8?-,g=cP\g&Tj\
-!8?-,g=lN+rn7>Pqq;#Mm+MF>MV8%1MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUAeGoUJec#RIeGoUJeH5g%eH#U!!!)uJ!s$m%!;"_@!;t@Z!7fU"e^XZMeH".M
-!7fU"e^aX!rm^uKqpbZHm*u(9MU_\,MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#XAeH#XJeH>j%ec5X!#liH*s4./"ec5X!!<<#J"96p%s8LOKs7b%es4,["e^a]M
-ec41Ms4,["e^a]Mec41Ms4,["e^a]Mec5X!"96p%s6nJ<s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD+?g&M-Fg&M-Og&h?/g&V-+#QWT4!87G,g&V-+!!)uO!s%'/!<1[P!;G1j!8?-,g=cP\
-g&Tj\!8?-,g=cP\g&Tj\!8?-,g=cP\g&V-+!s%'/!:SVA!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;
-\c@6~>
-!<E0!joD4BeGoUAeGoUJeH5g%eH#U!#QWE*!7_)"eH#U!!!)uJ!s$m%!<1LK!;G"e!7fU"e^XZM
-eH".M!7fU"e^XZMeH".M!7fU"e^XZMeH#U!!s$m%!:SG<!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD4BeH#XBec#OIec5[Iec5[Kec5XNec41urrCUKrrpsQs4,["p=93CrRLrJs4.,K!7h#I
-#1`bRe^a^"rRLrJr71iImaV=;MU__,MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-GgAM$NgA_0NgA_0PgA_-Sg&Tk*!!(aP!!V'V!8?-,p=fNHrS%8Os4[GP!8@>N
-#20%Wg=cN,rS%8Or7_/Nmb.X@MV8%1MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUBeboLIec,XIec,XKec,UNeH".u!!(RK!!UmQ!7fU"p=90CrRLoJs4.)K!7guI
-#1W\Re^XX"rRLoJr71fImaV:;MU_\,MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$eb]?0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gA:l5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$eb]?0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeVO8+s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g5#`dg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeVF3_eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$ebfE0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gACr5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$ebfE0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X(eH#X7eH#XJec5[Jec5[Fec5[BeH#X9eH#W,eH#W,eH#WHec19m^&S-0eHMcK
-k2s>WJ,~>
-!<E0!joD+?g&M--g&M-<g&M-OgA_0OgA_0KgA_0Gg&M->g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2M
-k2s5TJ,~>
-!<E0!joD4BeGoU(eGoU7eGoUJec,XJec,XFec,XBeGoU9eGoT,eGoT,eGoTHec19m^&S-0eHMcK
-k2s>WJ,~>
-!<E0!joD4BeH#Wgec,UJeHu9+ec41Ms4,["q:,KFp!j'Bm*u+9MU__,MU__,VUb^!o"G)'qpbkG
-s5rIW!.Y~>
-!<E0!joD+?g&M,lgAV*Og'Ic5g&Tj\!8?-,q:YfKp"BBGm+MF>MV8%1MV8%1VV;'$o"tG,qq;4I
-s5rIT!.Y~>
-!<E0!joD4BeGoTgec#RJeHl6+eH".M!7fU"q:,HFp!j$Bm*u(9MU_\,MU_\,VUb^!o"G)'qpbkG
-s5rIW!.Y~>
-!<E0!joD4BeH#XBeH,^#rr<#Ks8W&Js8W&Js8W&Js8W,Ls8W,Ls8W,Ls8VfC!<;rH#636(s4,["
-q:5KEs4./L"P*PPe^aWurmh&KrRLoIqUGTGMU__,MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-Gg&V3-rW)uPrrE#OrrE#OrrE#OrrE)QrrE)QrrE)QrrDcH!!)oM"p!B2!8?-,
-q:bfJs4[JQ"PNhUg=lK*rn@APrS%5NqUtoLMV8%1MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUBeH#[#rW)uKrrE#JrrE#JrrE#JrrE)LrrE)LrrE)LrrDcC!!)oH"p!3(!7fU"
-q:5HEs4.,L"P!JPe^aTurmh#KrRLlIqUGQGMU_\,MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#XAeH#XJeIV]1ec41Ms4,["e^a]Mec5Tu!<<&K!<<&K"om-Qe^a]oeH#XIeH#XJ
-ec5[EeHu9+ec41Ms4,["rm_#KrRD,Pe^a]Mec5Bo!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Fg&M-Og(+2;g&Tj\!8?-,g=cP\g&V**!!*#P!!*#P"T[6Vg=cQ$g&M-Ng&M-O
-gA_0Jg'Ic5g&Tj\!8?-,rn7>PrRqGUg=cP\g&Um$!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUAeGoUJeIMZ1eH".M!7fU"e^XZMeH#Qu!!*#K!!*#K"T['Qe^XZoeGoUIeGoUJ
-ec,XEeHl6+eH".M!7fU"rm^uKrRD)Pe^XZMeH#?o!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XAeH#XJec,UJeH#XIec,UHeH#XJeHGp&s4,[!s7XtCs8CIJs8CIMs4,["q:,fO
-e^a]Mec41Ms8LOKs8CLIs8CLJs7t1Fs,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-Fg&M-OgAV*Og&M-NgAV*Mg&M-Og&qE0!8?0+!;>+H!<(UO!<(UR!8?-,q:Z,T
-g=cP\g&Tj\!<1[P!<(XN!<(XO!;Y=K!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUAeGoUJec#RJeGoUIec#RHeGoUJeH>m&!7fX!!;=qC!<(FJ!<(FM!7fU"q:,cO
-e^XZMeH".M!<1LK!<(II!<(IJ!;Y.F!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XAeH#XJeIV]1ec41Ms4,["e^a]Mec5Tu!<<#J#liHTe^a]Mec5Bo!<<&K!<;uI
-"96p%s7t1Os4,["e^a]Mec5X!#liH*s4./"ec5Qt!<;oG!<7r,!<7r,!<8qHs+BmUs8VuH"f21\
-k.LbF~>
-!<E0!joD+?g&M-Fg&M-Og(+2;g&Tj\!8?-,g=cP\g&V**!!)uO#QWQYg=cP\g&Um$!!*#P!!)rN
-!s%'/!;Y=T!8?-,g=cP\g&V-+#QWT4!87G,g&V')!!)lL!!%o1!!%o1!!&nMs+0aXs8VuM"ektY
-k.1PC~>
-!<E0!joD4BeGoUAeGoUJeIMZ1eH".M!7fU"e^XZMeH#Qu!!)uJ#QWBTe^XZMeH#?o!!*#K!!)rI
-!s$m%!;Y.O!7fU"e^XZMeH#U!#QWE*!7_)"eH#Nt!!)lG!!%o,!!%o,!!&nHs+BmUs8VuH"f21\
-k.LbF~>
-!<E0!joD4BeH#XBec#OIec5[Jec5[Jec5[KeboIHeH#XJec5[Eec#OJec#OIec5[Fec#OHec5[I
-ec5[Kec5[Kec,UEeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-GgAM$NgA_0OgA_0OgA_0PgACsMg&M-OgA_0JgAM$OgAM$NgA_0KgAM$MgA_0N
-gA_0PgA_0PgAV*Jg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBeboLIec,XJec,XJec,XKebfFHeGoUJec,XEeboLJeboLIec,XFeboLHec,XI
-ec,XKec,XKec#REeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#WHeH#X3eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,Mg&M-8g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoTHeGoU3eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#WJec5[2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,OgA_07g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoTJec,X2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$eb]?0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gA:l5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$eb]?0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeU[^O!1<fes/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g496T!13b`gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeU[^O!13b`ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$ebfE0eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gACr5g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$ebfE0eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XAeH#Wnec5[>eH5d$s8CIJs6%o4s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-Fg&M,sgA_0Cg&_9.!<(UO!9`&9!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUAeGoTnec,X>eH,a$!<(FJ!9_l4!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XAeH#WmeH#X>eHGp&s4,[!s6%o4s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-Fg&M,rg&M-Cg&qE0!8?0+!9`&9!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUAeGoTmeGoU>eH>m&!7fX!!9_l4!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBec#OJeH,^#rr3&Ms8W)K"96pOs8CLIs7t1Gs4.,Ks4./Ls4%5Oec5[IeHc-)
-ec5["s8VoFr;ZcH!<;64!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-GgAM$Og&V3-rW!#R!!*#P!s%$T!<(XN!;Y=L!8@DPs4[JQs4RPTg&M-Ng'7W3
-g&M-,!!)iKquH`M!!)39!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUBeboLJeH#[#rW!#M!!*#K!s$jO!<(II!;Y.G!7h&Ks4.,Ls4%2OeGoUIeHZ*)
-eGoU"!!)iFquH`H!!)34!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XAeH#XIeH#XHeH#XKeHZ'(ec41Ms7OnBs8CISs4,["e^a]Mec5Tu!<<&K"96p%
-s7k+Gs4./JeH#X4eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-Fg&M-Ng&M-Mg&M-Pg'.Q2g&Tj\!;5%G!<(UX!8?-,g=cP\g&V**!!*#P!s%'/
-!;P7L!87GOg&M-9g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUAeGoUIeGoUHeGoUKeHQ$(eH".M!;4kB!<(FS!7fU"e^XZMeH#Qu!!*#K!s$m%
-!;P(G!7_)JeGoU4eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XAeH#XIeH#XJec,UJeH>j%ec5X!s8ViD!<<#Jrr;uJ"96p%s8CIJs8LONs4,["
-psfHGec5Tu!<;64!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Fg&M-Ng&M-OgAV*Og&h?/g&V-+rrDfI!!)uOrW)rO!s%'/!<(UO!<1[S!8?-,
-pt>cLg&V**!!)39!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUAeGoUIeGoUJec#RJeH5g%eH#U!rrDfD!!)uJrW)rJ!s$m%!<(FJ!<1LN!7fU"
-psfEGeH#Qu!!)34!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XAeHZ'(ec41Ms8LONs4,["rm_,Ne^a]teH#XEeH#XJeHu9+ec41Ms4,["rRCoJ
-rm_,Ne^a]qeboIHeH#X4eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-Fg'.Q2g&Tj\!<1[S!8?-,rn7GSg=cQ)g&M-Jg&M-Og'Ic5g&Tj\!8?-,rRq5O
-rn7GSg=cQ&gACsMg&M-9g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUAeHQ$(eH".M!<1LN!7fU"rm_)Ne^XZteGoUEeGoUJeHl6+eH".M!7fU"rRClJ
-rm_)Ne^XZqebfFHeGoU4eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X@ec5[Lec#OJec5XNec42!rr^gOs4.,Kpso?Crmh&Krmh#JrmgrHs4./LpXKEH
-ec41MrVu*3!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-EgA_0QgAM$OgA_-Sg&Tk+!!CpT!8@DPptGZHrn@APrn@>Orn@8Ms4[JQpY#`M
-g&Tj\r;c'8!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoU@ec,XLeboLJec,UNeH"/!!!CaO!7h&Kpso<Crmh#KrmguJrmgoHs4.,LpXKBH
-eH".Mr;c'3!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#WgeH#XBeH#XCeH5d$s5MQ/s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,lg&M-Gg&M-Hg&_9.!92]4!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoTgeGoUBeGoUCeH,a$!92N/!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#Whec#ODec5ZueH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,mgAM$IgA_0%g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoTheboLDec,WueGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,:gA_0Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5eboLGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,:gAM$Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5eboLGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,9gA:mMg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeU[^O!1<fes/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g496T!13b`gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeU[^O!13b`ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,9gA:mMg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4ec#RHeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,9gAV*Mg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4ec#RHeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,:gA_0Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X5ec5[Jec5[Lec5[>ec5[<eH#X!eH#XGec5[>eH5d$s8CIJs/XZMs,,>,s/+?H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-:gA_0OgA_0QgA_0CgA_0Ag&M-&g&M-LgA_0Cg&_9.!<(UO!3=fR!/fJ1!2eKM
-Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoU5ec,XJec,XLec,X>ec,X<eGoU!eGoUGec,X>eH,a$!<(FJ!3=WM!/f;,!2e<H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#X4eH#XIeH#XKeH#X=eH#X<eH#X!eH#XFeH#X>eHGp&s4,[!s/XZMs,,>,s/+?H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-9g&M-Ng&M-Pg&M-Bg&M-Ag&M-&g&M-Kg&M-Cg&qE0!8?0+!3=fR!/fJ1!2eKM
-Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoU4eGoUIeGoUKeGoU=eGoU<eGoU!eGoUFeGoU>eH>m&!7fX!!3=WM!/f;,!2e<H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XAec5[Kec5[HeH#XIeH#XKec,UJec5[Iec5[KeH>j%s8W)K!<;fDrVuoJ!WU^L
-rrUaNs8LONs4./LrRLoIq:,NGec,UKec5[LeH>j%s8W#I#QN?)s8UXLs7t4Cs8LOKs/XZMs,,>,
-s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-FgA_0PgA_0Mg&M-Ng&M-PgAV*OgA_0NgA_0Pg&h?/!!*#P!!)cIr;clO!<CjQ
-!!:jS!<1[S!87DQrS%5Nq:YiLgAV*PgA_0Qg&h?/!!)rN#6<K3!!(^Q!;Y@H!<1[P!3=fR!/fJ1
-!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUAec,XKec,XHeGoUIeGoUKec#RJec,XIec,XKeH5g%!!*#K!!)cDr;clJ!<C[L
-!!:[N!<1LN!7_&LrRLlIq:,KGec#RKec,XLeH5g%!!)rI#6<<)!!(OL!;Y1C!<1LK!3=WM!/f;,
-!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBeH>j%ec5Tu!<;uI!<;uI!<<&K"96p%s8CIJs8LOSs4,["e^a]Ms8CIJs7XtC
-s8:CIs81=Hs8LOQs4,["e^a]meH#XJeHu9+ec42"s4,["rRCoJrm_,Ne^a]peH5d$s8CIJs/XZM
-s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-Gg&h?/g&V**!!)rN!!)rN!!*#P!s%'/!<(UO!<1[X!8?-,g=cP\!<(UO!;>+H
-!;tON!;kIM!<1[V!8?-,g=cQ"g&M-Og'Ic5g&Th,!8?-,rRq5Orn7GSg=cQ%g&_9.!<(UO!3=fR
-!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUBeH5g%eH#Qu!!)rI!!)rI!!*#K!s$m%!<(FJ!<1LS!7fU"e^XZM!<(FJ!;=qC
-!;t@I!;k:H!<1LQ!7fU"e^XZmeGoUJeHl6+eH","!7fU"rRClJrm_)Ne^XZpeH,a$!<(FJ!3=WM
-!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBeH#XIec,UHeH#XIeH#XKeHQ!'ec41Mrr;uJ!<;uIs8VT=!<;uI!<<#Jrr;uJ
-"96p%s8LRKs7b%Ds8CLIs8UXLs8UULs8CIJs8LONs4,["psfHGec5Tu!<9+M!<7r,!<8qHs+BmU
-s8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Gg&M-NgAV*Mg&M-Ng&M-Pg'%K1g&Tj\rW)rO!!)rNrrDQB!!)rN!!)uOrW)rO
-!s%'/!<1^P!;G1I!<(XN!<:dQ!<:aQ!<(UO!<1[S!8?-,pt>cLg&V**!!'(R!!%o1!!&nMs+0aX
-s8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUBeGoUIec#RHeGoUIeGoUKeHGs'eH".MrW)rJ!!)rIrrDQ=!!)rI!!)uJrW)rJ
-!s$m%!<1OK!;G"D!<(II!<:UL!<:RL!<(FJ!<1LN!7fU"psfEGeH#Qu!!'(M!!%o,!!&nHs+BmU
-s8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XBeHl3*ec42"e^a]teH#XIeH#XKeHl3*ec42"e^a^!eHl3*ec41Ms4./JeH#XC
-eHZ'(ec41Ms8LONs4,["rm_,Ne^a]teH#XEeH#XJeHu9+ec42"s4,["rRCoJrm_,Ne^a]qeboIH
-eH#WMeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-Gg'@]4g&Th,g=cQ)g&M-Ng&M-Pg'@]4g&Th,g=cQ+g'@]4g&Tj\!87GOg&M-H
-g'.Q2g&Tj\!<1[S!8?-,rn7GSg=cQ)g&M-Jg&M-Og'Ic5g&Th,!8?-,rRq5Orn7GSg=cQ&gACsM
-g&M,Rg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBeHc0*eH","e^XZteGoUIeGoUKeHc0*eH","e^X[!eHc0*eH".M!7_)JeGoUC
-eHQ$(eH".M!<1LN!7fU"rm_)Ne^XZteGoUEeGoUJeHl6+eH","!7fU"rRClJrm_)Ne^XZqebfFH
-eGoTMeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XAec5[Kec5XOec41Mr;QcIq#C?Ds8N,Ms8LRKs8UXLrrUaNs8LOKs7OqBs8UXJ
-s8UXLrrUaNec,RNec5["rr;cDrVulIs8W,LrVulIr;ZfIs8ViD"TR$Pe^aWuXOR=NMU__,VUb^!
-o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-FgA_0PgA_-Tg&Tj\qu?`Np]1<Irr<)R!<1^P!<:dQ!!:jS!<1[P!;5(G!<:dO
-!<:dQ!!:jSgAV'Sg&M-,rW)`Ir;ciNrrE)Qr;ciNquHcNrrDfI"9@-Ug=lK*XP*XSMV8%1VV;'$
-o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUAec,XKec,UOeH".Mqu?`Ip]1<Drr<)M!<1OK!<:UL!!:[N!<1LK!;4nB!<:UJ
-!<:UL!!:[Nec#ONeGoU"rW)`Dr;ciIrrE)Lr;ciIquHcIrrDfD"9?sPe^aTuXOR:NMU_\,VUb^!
-o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,ec5[BeH#XCeH5d$s/+<Hs,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,1gA_0Gg&M-Hg&_9.!2eHM!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,ec,XBeGoUCeH,a$!2e9H!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,ec#ODec5Z9eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1gAM$IgA_/>g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eboLDec,W9eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5ec,XGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gA_0Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5ec,XGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5eboLGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gAM$Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5eboLGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4eb]@HeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gA:mMg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4eb]@HeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeVO8+s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g5#`dg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeVF3_eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4eb]@HeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gA:mMg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4eb]@HeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4ec#RHeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gAV*Mg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4ec#RHeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5ec,XGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gA_0Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5ec,XGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#X5ec5[Jec5[Lec5[>ec5[:eH#X?ec5[Jec5[KeH#XBeH#XKeH#Wrec5[>eH5d$
-s8CIJs4,X"s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-:gA_0OgA_0QgA_0CgA_0?g&M-DgA_0OgA_0Pg&M-Gg&M-Pg&M-"gA_0Cg&_9.
-!<(UO!7fd'!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoU5ec,XJec,XLec,X>ec,X:eGoU?ec,XJec,XKeGoUBeGoUKeGoTrec,X>eH,a$
-!<(FJ!7fU"!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#X4eH#XIeH#XKeH#X=eH#X;eH#X=eH#XIeH#XJeH#XCeH#XKeH#WqeH#X>eHGp&
-s4,[!s4,X"s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-9g&M-Ng&M-Pg&M-Bg&M-@g&M-Bg&M-Ng&M-Og&M-Hg&M-Pg&M-!g&M-Cg&qE0
-!8?0+!7fd'!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoU4eGoUIeGoUKeGoU=eGoU;eGoU=eGoUIeGoUJeGoUCeGoUKeGoTqeGoU>eH>m&
-!7fX!!7fU"!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XAec5[Kec5[HeH#XIeH#XKec,UJec5[Iec5[KeH>j%s8W)K!<;`B!<<#Js8W)K
-s8VuH!<;uI!<<#J!<;fDrVluMs8UXKrrUaNs8LONs4./LrRLoIq:,NGec,UKec5[LeH>j%s8W#I
-#QN?)s8UXLs7t4Cs8LOKs4,X"s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-FgA_0PgA_0Mg&M-Ng&M-PgAV*OgA_0NgA_0Pg&h?/!!*#P!!)]G!!)uOrrE&P
-rrDrM!!)rN!!)uO!!)cIr;ZrR!!(aP!!:jS!<1[S!87DQrS%5Nq:YiLgAV*PgA_0Qg&h?/!!)rN
-#6<K3!!(^Q!;Y@H!<1[P!7fd'!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUAec,XKec,XHeGoUIeGoUKec#RJec,XIec,XKeH5g%!!*#K!!)]B!!)uJrrE&K
-rrDrH!!)rI!!)uJ!!)cDr;ZrM!!(RK!!:[N!<1LN!7_&LrRLlIq:,KGec#RKec,XLeH5g%!!)rI
-#6<<)!!(OL!;Y1C!<1LK!7fU"!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBeH>j%ec5Tu!<;uI!<;uI!<<&K"96p%s8CIJs8LOSs4,["e^a]Ms8CIJs7XtC
-s8CIMs4,["rRCoJr7(fIr7(fIr7(fIpXK9Drm_)Mec5Ns!<<&K#636(s4,["p!j'BrRD5Se^a]M
-ec41Ms8CIJs8LONs4,["psfHGec5Tu!<:U"!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Gg&h?/g&V**!!)rN!!)rN!!*#P!s%'/!<(UO!<1[X!8?-,g=cP\!<(UO!;>+H
-!<(UR!8?-,rRq5Or7V,Nr7V,Nr7V,NpY#TIrn7DRg&V$(!!*#P"p!B2!8?-,p"BBGrRqPXg=cP\
-g&Tj\!<(UO!<1[S!8?-,pt>cLg&V**!!(R'!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUBeH5g%eH#Qu!!)rI!!)rI!!*#K!s$m%!<(FJ!<1LS!7fU"e^XZM!<(FJ!;=qC
-!<(FM!7fU"rRClJr7(cIr7(cIr7(cIpXK6Drm_&MeH#Ks!!*#K"p!3(!7fU"p!j$BrRD2Se^XZM
-eH".M!<(FJ!<1LN!7fU"psfEGeH#Qu!!(R"!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XBeH#XIec,UHeH#XIeH#XKeHQ!'ec41Mrr;uJ!<;uIs8VT=!<<#J!<;uIrr;oH
-!<;uI!<;uI!<;fD!<<&K!rpgNrRLoIrm_,Ne^a^!ec5[DeH#XJec,UJeH>j%ec5Tu!<<&K"96p%
-s7k+Gs4./JeH#X"eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-Gg&M-NgAV*Mg&M-Ng&M-Pg'%K1g&Tj\rW)rO!!)rNrrDQB!!)uO!!)rNrW)lM
-!!)rN!!)rN!!)cI!!*#P!W^pSrS%5Nrn7GSg=cQ+gA_0Ig&M-OgAV*Og&h?/g&V**!!*#P!s%'/
-!;P7L!87GOg&M-'g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBeGoUIec#RHeGoUIeGoUKeHGs'eH".MrW)rJ!!)rIrrDQ=!!)uJ!!)rIrW)lH
-!!)rI!!)rI!!)cD!!*#K!W^aNrRLlIrm_)Ne^X[!ec,XDeGoUJec#RJeH5g%eH#Qu!!*#K!s$m%
-!;P(G!7_)JeGoU"eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XBeHl3*ec42"e^a]teH#XIeH#XKeHl3*ec42"e^a^!eHl3*ec41Ms4./JeH#XC
-eH#XJeHl3*ec42"e^a]teH#XIeH#XIeH#XDeHZ'(ec5["s8LONs4,["rm_,Ne^a]teH#XEeH#XJ
-eHu9+ec41Ms4,["rRCoJrm_,Ne^a]qeboIHeH#X"eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-Gg'@]4g&Th,g=cQ)g&M-Ng&M-Pg'@]4g&Th,g=cQ+g'@]4g&Tj\!87GOg&M-H
-g&M-Og'@]4g&Th,g=cQ)g&M-Ng&M-Ng&M-Ig'.Q2g&M-,!<1[S!8?-,rn7GSg=cQ)g&M-Jg&M-O
-g'Ic5g&Tj\!8?-,rRq5Orn7GSg=cQ&gACsMg&M-'g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUBeHc0*eH","e^XZteGoUIeGoUKeHc0*eH","e^X[!eHc0*eH".M!7_)JeGoUC
-eGoUJeHc0*eH","e^XZteGoUIeGoUIeGoUDeHQ$(eGoU"!<1LN!7fU"rm_)Ne^XZteGoUEeGoUJ
-eHl6+eH".M!7fU"rRClJrm_)Ne^XZqebfFHeGoU"eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XAec5[Kec5XOec41Mr;QcIq#C?Ds8N,Ms8LRKs8UXLrrUaNs8LOKs7OnBs8CLJ
-s8LRKrr^gOe^aTt!7h#Is4%,Lp!s*B!7h#Is4./L!nI>$rr3)Ns8UXKs7k.Cs8LRKs8LRJs8LRH
-s8UXLs7b%Hs4./"ec#O!eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-FgA_0PgA_-Tg&Tj\qu?`Np]1<Irr<)R!<1^P!<:dQ!!:jS!<1[P!;5%G!<(XO
-!<1^P!!CpTg=lH)!8@>Ns4RGQp"KEG!8@>Ns4[JQ!nmY.rW!&S!!(aP!;P:H!<1^P!<1^O!<1^M
-!<:dQ!;G1M!87G,gAM$&g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUAec,XKec,UOeH".Mqu?`Ip]1<Drr<)M!<1OK!<:UL!!:[N!<1LK!;4kB!<(IJ
-!<1OK!!CaOe^aQt!7guIs4%)Lp!s'B!7guIs4.,L!n@;$rW!&N!!(RK!;P+C!<1OK!<1OJ!<1OH
-!<:UL!;G"H!7_)"eboL!eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#WYeH#X2eH#X?eH#X$eH#XBeH#XCeH5d$s3T9rs,,>,s/+?HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD+?g&M,^g&M-7g&M-Dg&M-)g&M-Gg&M-Hg&_9.!79F"!/fJ1!2eKMJb$\Xs81LRU&X9;
-\c@6~>
-!<E0!joD4BeGoTYeGoU2eGoU?eGoU$eGoUBeGoUCeH,a$!796r!/f;,!2e<HKCZ_Us81=MV#TT>
-]`<Q~>
-!<E0!joD4BeH#WXeH#X4eH#X>eH#X%ec#ODec5ZceH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,]g&M-9g&M-Cg&M-*gAM$IgA_/hg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoTXeGoU4eGoU>eGoU%eboLDec,WceGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5ec,XGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gA_0Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5ec,XGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5eboLGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gAM$Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5eboLGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4eb]@HeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gA:mMg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4eb]@HeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeVO8+s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g5#`dg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeVF3_eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4eb]@HeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gA:mMg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4eb]@HeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W4ec#RHeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,9gAV*Mg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT4ec#RHeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W5ec,XGeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,:gA_0Lg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT5ec,XGeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XCec5[;ec5[Kec5[4ec5[BeH5d$s8CIJs5DK.s,,>,s,,>,s/+?HKCZ_Us81=M
-V#TT>]`<Q~>
-!<E0!joD+?g&M-HgA_0@gA_0PgA_09gA_0Gg&_9.!<(UO!9)W3!/fJ1!/fJ1!2eKMJb$\Xs81LR
-U&X9;\c@6~>
-!<E0!joD4BeGoUCec,X;ec,XKec,X4ec,XBeH,a$!<(FJ!9)H.!/f;,!/f;,!2e<HKCZ_Us81=M
-V#TT>]`<Q~>
-!<E0!joD4BeH#XBeH#X:eH#XJeH#X3eH#XBeHGp&s4,[!s5DK.s,,>,s,,>,s/+?HKCZ_Us81=M
-V#TT>]`<Q~>
-!<E0!joD+?g&M-Gg&M-?g&M-Og&M-8g&M-Gg&qE0!8?0+!9)W3!/fJ1!/fJ1!2eKMJb$\Xs81LR
-U&X9;\c@6~>
-!<E0!joD4BeGoUBeGoU:eGoUJeGoU3eGoUBeH>m&!7fX!!9)H.!/f;,!/f;,!2e<HKCZ_Us81=M
-V#TT>]`<Q~>
-!<E0!joD4BeH#XBec,UJec5[KeH>j%s8W&Jrr;rI!<<#Js8VlEs8W#Is8W)K"96pOs7t4Cs8LOK
-s5DK.s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-GgAV*OgA_0Pg&h?/!!)uOrW)oN!!)uOrrDiJrrDuNrrE&P!s%$T!;Y@H!<1[P
-!9)W3!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUBec#RJec,XKeH5g%!!)uJrW)oI!!)uJrrDiErrDuIrrE&K!s$jO!;Y1C!<1LK
-!9)H.!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBeH>j%ec5Tu!<<&K$3/Q+s4,["e^a]ueH#XKeH>j%ec5Bo!<<&K#liH*s4,["
-ec5Bo!rpgNrRCoJiRIr.MU__,MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&M-Gg&h?/g&V**!!*#P#lr]5!8?-,g=cQ*g&M-Pg&h?/g&Um$!!*#P#QWT4!8?-,
-g&Um$!W^pSrRq5OiS"83MV8%1MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoUBeH5g%eH#Qu!!*#K#lrN+!7fU"e^XZueGoUKeH5g%eH#?o!!*#K#QWE*!7fU"
-eH#?o!W^aNrRClJiRIo.MU_\,MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#XBeHQ!'ec41Mrr;uJ$3/Q+s4,["e^a]ueH#XKec,UDec,UJeH#XIec5[CeH5d$
-s8CIJs5DK.s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-Gg'%K1g&Tj\rW)rO#lr]5!8?-,g=cQ*g&M-PgAV*IgAV*Og&M-NgA_0Hg&_9.
-!<(UO!9)W3!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUBeHGs'eH".MrW)rJ#lrN+!7fU"e^XZueGoUKec#RDec#RJeGoUIec,XCeH,a$
-!<(FJ!9)H.!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XBeHl3*ec42"e^a^!eHu9+ec41Ms4,["rRCoJrm_,Ne^a]reH>j%ec5X!#liH*
-s4,["ec5Epr;ZcH!<;$.!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&M-Gg'@]4g&Th,g=cQ+g'Ic5g&Tj\!8?-,rRq5Orn7GSg=cQ'g&h?/g&V-+#QWT4
-!8?-,g&Up%quH`M!!)!3!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoUBeHc0*eH","e^X[!eHl6+eH".M!7fU"rRClJrm_)Ne^XZreH5g%eH#U!#QWE*
-!7fU"eH#BpquH`H!!)!.!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#XCec,RSec5["s8UXLec,RTec5["ec5["s4.&Is4./LpsoEE!S.5Lec5[Lec5XN
-ec5[EeHGp&s4,Zus5MQ/s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-HgAV'Xg&M-,!!(^QgAV'Yg&M-,g&M-,!8@>Ns4[JQptG`J!SRPQgA_0QgA_-S
-g&M-Jg&qE0!8?0*!92]4!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoUCec#OSeGoU"!!(OLec#OTeGoU"eGoU"!7guIs4.,LpsoBE!S%2Lec,XLec,UN
-eGoUEeH>m&!7fWu!92N/!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#WTeH5d$s4l-)s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,Yg&_9.!8Q9.!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoTTeH,a$!8Q*)!/f;,!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec19ks81=MV#TT>]`<Q~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAc`ns81LRU&X9;\c@6~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec19ks81=MV#TT>]`<Q~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec17%^%D=+KE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAc^(_Y!j0JcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec17%^%D=+KE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$eb]?0eH#W,eH#W,eH#WHec17'^&S--ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gA:l5g&M,1g&M,1g&M,MgAc^*_Z0Z2gAc^*_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$eb]?0eGoT,eGoT,eGoTHec17'^&S--ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeU[^O!1<fes/+?HKE&Xbs7t4FK*&ads81=MV#TT>]`<Q~>
-!<E0!joD+?g496T!13b`gAca(_Z0Z3gAc^*_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeU[^O!13b`ec1:%^&S-.ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH5d$ebfE0eH#W,eH#W,eH#WHec1:%^&S-/ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&_9.gACr5g&M,1g&M,1g&M,MgAca(_Z0Z4gAca(_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeH,a$ebfE0eGoT,eGoT,eGoTHec1:%^&S-/ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XJeboK2eH#W,eH#W,eH#WHec1:$^&S-0ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-OgAM#7g&M,1g&M,1g&M,MgAca'_Z0Z5gAca(_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUJeboK2eGoT,eGoT,eGoTHec1:$^&S-0ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#XGec,W5eH#W,eH#W,eH#WHec1:$^&S-1ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M-LgA_/:g&M,1g&M,1g&M,MgAca'_Z0Z6gAca'_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoUGec,W5eGoT,eGoT,eGoTHec1:$^&S-1ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:#^&S-2ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca&_Z0Z7gAca'_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:#^&S-2ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:#^&S-3ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca&_Z0Z8gAca&_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:#^&S-3ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:"^&S-4ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca%_Z0Z9gAca&_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:"^&S-4ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:"^&S*6eUrMP^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca%_Z0W;g4=hQ_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:"^&S*6eUrMP^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:!]`A*3KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca$_>sW8Jc*Cbs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:!]`A*3KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:!]`S4dKDW@^s81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca$_?0agJc!=as81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:!]`S4dKDW@^s81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19u^&N`^^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca#_Z,2a_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19u^&N`^^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19u]`<]]^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAca#_>o/`_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19u]`<]]^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19ks81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,MgAc`ns81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19ks81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHeGt6js81=MV#TT>]`<Q~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,Mg&Q]ms81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHeGt6js81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#W/eHMcKk2s>WJ,~>
-!<E0!joD+?g&M,1g&M,1g&M,1g&M,4g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoT/eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD4SeU`@(K7SZXKBC\fV#TT>]`<Q~>
-!<E0!joD+Pg4=g+JUrBTJ`bYiU&X9;\c@6~>
-!<E0!joD4SeU`@(K7SZXKBC\fV#TT>]`<Q~>
-!<E0!joD4SeU`@(K7SZYK)kr6eHMcKk2s>WJ,~>
-!<E0!joD+Pg4=g+JUrBUJH5`4g'+2Mk2s5TJ,~>
-!<E0!joD4SeU`@(K7SZYK)kr6eHMcKk2s>WJ,~>
-!<E0!joD4Sec19n]`J/H]`3PrJ\@A_s8V`)s8V63"f21\k.LbF~>
-!<E0!joD+PgAc`q_?'\R]`3Q"J\m_is8V`.s8V68"ektYk.1PC~>
-!<E0!joD4Sec19n]`J/H]`3PrJ\@A_s8V`)s8V63"f21\k.LbF~>
-!<E0!joD4Sec19p^&S*5K>"tu!/#j9J\@A_rVuT)s8V63"f21\k.LbF~>
-!<E0!joD+PgAc`s_Z0W:J\o,#!.f^<J\m_irVuT.s8V68"ektYk.1PC~>
-!<E0!joD4Sec19p^&S*5K>"tu!/#j9J\@A_rVuT)s8V63"f21\k.LbF~>
-!<Bh3SGUk:KD3(Ys8R]Q^&S,Jec18Q]n*k_^&.j)^&S,peHMJVS=BQZJ,~>
-!<B_0RJY_<JbR%\s8RWO_Z0YOgAc_T_L]Ri_YaB._Z0Yug'*nUR@+$TJ,~>
-!<Bh3SGUk:KD3(Ys8R]Q^&S,Jec18Q]n*k_^&.j)^&S,peHMJVS=BQZJ,~>
-!!)uB!1`r:s+C-\rVm&OK7gl;s1m1bK7U^e]p?A3s8UXJs8'G/s5qi8SB\a\S,e'~>
-!!)u?!1E`<s+1!_rVm&TJUt]<s1m@gJUt[h_Nr(=s8UgOs8'V4s5r#=REE+PR/ha~>
-!!)uB!1`r:s+C-\rVm&OK7gl;s1m1bK7U^e]p?A3s8UXJs8'G/s5qi8SB\a\S,e'~>
-!<CCD]`=T"ec1:!^&A!1ec17'^&S,Jec18Q]n*k_^&S-2ec#OG^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca$_YsN6gAc^*_Z0YOgAc_T_L]Ri_Z0Z7gAV'L_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:!^&A!1ec17'^&S,Jec18Q]n*k_^&S-2ec#OG^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:#^&A!/ec17'^&S,Jec18Q]n*k_^&S-0ec#OI^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca&_YsN4gAc^*_Z0YOgAc_T_L]Ri_Z0Z5gAV'N_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:#^&A!/ec17'^&S,Jec18Q]n*k_^&S-0ec#OI^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:%^&A!-ec17'^&S,Jec18Q]n*k_^&S-.ec#LL^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca(_YsN2gAc^*_Z0YOgAc_T_L]Ri_Z0Z3gAV$Q_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:%^&A!-ec17'^&S,Jec18Q]n*k_^&S-.ec#LL^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ebb!oec17'^&S,Jec18Q]n*k_^&S--ebt.#s5qi8SB\a\S,e'~>
-!<C:A\cA/qgA?HrgAc^*_Z0YOgAc_T_L]Ri_Z0Z2gAQU&s5r#=REE+PR/ha~>
-!<CCD]`=T"ebb!oec17'^&S,Jec18Q]n*k_^&S--ebt.#s5qi8SB\a\S,e'~>
-!<CCD]`=T"ec1:%^&<T[ec17'^&S,Jec18Q]n*k_^&S-.ebt+%^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca(_Yo&^gAc^*_Z0YOgAc_T_L]Ri_Z0Z3gAQR(_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:%^&<T[ec17'^&S,Jec18Q]n*k_^&S-.ebt+%^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:#^&<T]ec17'^&S,Jec18Q]n*k_^&S-0ebt."^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca&_Yo&`gAc^*_Z0YOgAc_T_L]Ri_Z0Z5gAQU%_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:#^&<T]ec17'^&S,Jec18Q]n*k_^&S-0ebt."^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:!^&<T_ec17'^&S,Jec18Q]n*k_^&S-2ebt-u^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca$_Yo&bgAc^*_Z0YOgAc_T_L]Ri_Z0Z7gAQU#_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:!^&<T_ec17'^&S,Jec18Q]n*k_^&S-2ebt-u^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec19t^&<QeeUrLfs8Tmbs+>m9J\@A_s8W,LrIas[s8V63"e<iN]po(Q~>
-!<C:A\cA/qgAca"_Yo#hg4=gls8Tmgs+,a<J\m_is8W,QrIOg^s8V68"e!NE\sWPK~>
-!<CCD]`=T"ec19t^&<QeeUrLfs8Tmbs+>m9J\@A_s8W,LrIas[s8V63"e<iN]po(Q~>
-!<CCD]`=T"ec19r^&3Ka^&S,Jec18Q]n*k_^&S-2KD<.[s5qi8SB\a\S,e'~>
-!<C:A\cA/qgAc`u_Yerd_Z0YOgAc_T_L]Ri_Z0Z7Jb[+^s5r#=REE+PR/ha~>
-!<CCD]`=T"ec19r^&3Ka^&S,Jec18Q]n*k_^&S-2KD<.[s5qi8SB\a\S,e'~>
-!<CCD]`=T"ec19p^&EWc^&S,HK7U^e]p?A3s8R`F^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAc`s_Z#)f_Z0YMJUt[h_Nr(=s8RZD_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec19p^&EWc^&S,HK7U^e]p?A3s8R`F^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec19n]`Ni"s1O&9]n*k_]`J.coY(;)k1'X*c+Uf\!.Y~>
-!<C:A\cA/qgAc`q_?,;*s1Nu7_L]Ri_?'[foYUY.k1U!,b.>0P!.Y~>
-!<CCD]`=T"ec19n]`Ni"s1O&9]n*k_]`J.coY(;)k1'X*c+Uf\!.Y~>
-!<CCD]`=T"ec18Qs+13$s02OceHMJf]tKp9J,~>
-!<C:A\cA/qgAc_Ts+13$s02Ocg'*ne]"4:0J,~>
-!<CCD]`=T"ec18Qs+13$s02OceHMJf]tKp9J,~>
-!<CCD]`=T"eGt5Qs+13$s0)IbeHMJf]tKp9J,~>
-!<C:A\cA/qg&Q\Ts+13$s0)Ibg'*ne]"4:0J,~>
-!<CCD]`=T"eGt5Qs+13$s0)IbeHMJf]tKp9J,~>
-!<CCD]`=RReUc8%eW&)_SB\a\S,e'~>
-!<C:A\cA.Lg4@t/g5XeiREE+PR/ha~>
-!<CCD]`=RReUc8%eW&)_SB\a\S,e'~>
-!<CCC^%%VDUk,=mUogEm^%.Znc2PBWS,e'~>
-!<C:@]()2>Tn/ngTrk!g](26hb5SsQR/ha~>
-!<CCC^%%VDUk,=mUogEm^%.Znc2PBWS,e'~>
-!]^8*rOqgI!53s`JcC<$XoIq9rk/B'!<7Q~>
-!^m%2rOVUC!4ma]JcC<$XoIq6rji0!!<7Q~>
-!cn@drOqgI!53s`JcC<$XoIq9rk/B'!<7Q~>
-!\j]"n%A^kJ`_OGJ`a)s!6suG!h98jJ,~>
-!^m%2n%&LeJ`_OGJ`a)s!6XcA!gs&gJ,~>
-!cn@dn%A^kJ`_OGJ`a)s!6suG!h98jJ,~>
-s#C,\S=K,_!1\W&J`_OGXl]W.n\+sm!W`9#J,~>
-s$QngR@3TV!1AE#J`_OGXl]W+n[eag!W`9#J,~>
-s)S5AS=K,_!1\W&J`_OGXl]W.n\+sm!W`9#J,~>
-">Mnk!!)MYJ\?WJJ\A.unXTUZrr7K~>
-r^?bdn<nj=J\$EDXLdqirrE&uJ,~>
-"DW"!!!)MYJ\?WJJ\A.unXTUZrr7K~>
-"?A1s0fadbJH16$MZE\TJ,~>
-r'Z)9JH16$MZE\TJ,~>
-rc8*TF+F=B!.b-.!;ukI~>
-%%EndData
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/lib/et/doc/src/note.gif b/lib/et/doc/src/note.gif
deleted file mode 100644
index 6fffe30419..0000000000
--- a/lib/et/doc/src/note.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/notes.gif b/lib/et/doc/src/notes.gif
deleted file mode 100644
index e000cca26a..0000000000
--- a/lib/et/doc/src/notes.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/notes.xml b/lib/et/doc/src/notes.xml
index 5abab9766c..8611955d3d 100644
--- a/lib/et/doc/src/notes.xml
+++ b/lib/et/doc/src/notes.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Event Tracer (ET) Release Notes</title>
@@ -28,12 +28,50 @@
<rev>%VSN%</rev>
<file>notes.xml</file>
</header>
- <p>This document describes the changes made to the Event Tracer (ET) system
- from version to version. The intention of this document is to
- list all incompatibilities as well as all enhancements and
- bugfixes for every release of Event Tracer (ET). Each release of Event Tracer (ET)
- thus constitutes one section in this document. The title of each
- section is the version number of Event Tracer (ET).</p>
+ <p>This document describes the changes made to the <c>Event Tracer
+ (ET)</c> system from version to version. The intention of this
+ document is to list all incompatibilities as well as all
+ enhancements and bugfixes for every release of <c>Event Tracer
+ (ET)</c>. Each release of <c>Event Tracer (ET) </c> thus constitutes
+ one section in this document. The title of each section is the
+ version number of <c>Event Tracer (ET)</c>.</p>
+
+<section><title>ET 1.4</title>
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>Thanks to Olle Mattsson the GUI parts are rewritten to
+ use <c>wxWidgets</c>. For the time being it is still
+ possible to use the old <c>GS</c> based version of the tool,
+ but it is deprecated. The <c>wxWidgets</c> based version is
+ started by default.</p>
+
+ <p>A print function has been added, in order to enable
+ printing of sequence charts.</p>
+
+ <p>A new tutorial has been added to the documentation. It is
+ based on <c>Jayson Vantuyl's</c> article
+ <c>http://souja.net/2009/04/making-sense-of-erlangs-event-tracer.html</c>.</p>
+
+ <p>The functions <c>et:trace_me/4</c> and
+ <c>et:trace_me/5</c> has been introduced in order to replace
+ the deprecated functions <c>et:report_event/4</c> and
+ <c>et:report_event/5</c>. Hopefully the new names makes it a
+ little more obvious what the intended usage of the functions
+ are.</p>
+
+ <p>The <c>max_events</c> configuration parameter to
+ <c>et_viewer</c> is not used any more. Now the event cache
+ in the <c>Viewer</c> only contains those events that
+ actually are displayed in the GUI.</p>
+
+ <p>Own Id: OTP-8058</p>
+ </item>
+ </list>
+ </section>
+
+</section>
<section><title>ET 1.3.3</title>
@@ -130,8 +168,8 @@
<section>
<title>Improvements and new features</title>
- <p>This is the first release of the Event Tracer (ET) as
- a stand-alone application.</p>
+ <p>This is the first release of the <c>Event Tracer (ET)</c> as
+ a stand-alone application separated from the Megaco application.</p>
</section>
</section>
</chapter>
diff --git a/lib/et/doc/src/part.xml b/lib/et/doc/src/part.xml
index d0375ffaf9..627aee866d 100644
--- a/lib/et/doc/src/part.xml
+++ b/lib/et/doc/src/part.xml
@@ -4,7 +4,7 @@
<part xmlns:xi="http://www.w3.org/2001/XInclude">
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Event Tracer (ET) Users Guide</title>
@@ -32,7 +32,8 @@
and provides tools for collection and graphical viewing of trace data.</p>
</description>
<xi:include href="et_intro.xml"/>
- <xi:include href="et_architecture.xml"/>
+ <xi:include href="et_tutorial.xml"/>
+ <xi:include href="et_desc.xml"/>
<xi:include href="et_examples.xml"/>
</part>
diff --git a/lib/et/doc/src/ref_man.gif b/lib/et/doc/src/ref_man.gif
deleted file mode 100644
index b13c4efd53..0000000000
--- a/lib/et/doc/src/ref_man.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/sim_trans.gif b/lib/et/doc/src/sim_trans.gif
deleted file mode 100644
index e3ab0bd3f1..0000000000
--- a/lib/et/doc/src/sim_trans.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/sim_trans.png b/lib/et/doc/src/sim_trans.png
new file mode 100644
index 0000000000..0a3a8fdcb5
--- /dev/null
+++ b/lib/et/doc/src/sim_trans.png
Binary files differ
diff --git a/lib/et/doc/src/sim_trans.ps b/lib/et/doc/src/sim_trans.ps
deleted file mode 100644
index efc48162b7..0000000000
--- a/lib/et/doc/src/sim_trans.ps
+++ /dev/null
@@ -1,6595 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: (ImageMagick)
-%%Title: (sim_trans.ps)
-%%CreationDate: (Mon Oct 14 16:45:00 2002)
-%%BoundingBox: 0 0 512 426
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 1
-%%Orientation: Portrait
-%%PageOrder: Ascend
-%%Pages: 1
-%%EndComments
-
-%%BeginDefaults
-%%EndDefaults
-
-%%BeginProlog
-%
-% Display a color image. The image is displayed in color on
-% Postscript viewers or printers that support color, otherwise
-% it is displayed as grayscale.
-%
-/DirectClassPacket
-{
- %
- % Get a DirectClass packet.
- %
- % Parameters:
- % red.
- % green.
- % blue.
- % length: number of pixels minus one of this color (optional).
- %
- currentfile color_packet readhexstring pop pop
- compression 0 eq
- {
- /number_pixels 3 def
- }
- {
- currentfile byte readhexstring pop 0 get
- /number_pixels exch 1 add 3 mul def
- } ifelse
- 0 3 number_pixels 1 sub
- {
- pixels exch color_packet putinterval
- } for
- pixels 0 number_pixels getinterval
-} bind def
-
-/DirectClassImage
-{
- %
- % Display a DirectClass image.
- %
- systemdict /colorimage known
- {
- columns rows 8
- [
- columns 0 0
- rows neg 0 rows
- ]
- { DirectClassPacket } false 3 colorimage
- }
- {
- %
- % No colorimage operator; convert to grayscale.
- %
- columns rows 8
- [
- columns 0 0
- rows neg 0 rows
- ]
- { GrayDirectClassPacket } image
- } ifelse
-} bind def
-
-/GrayDirectClassPacket
-{
- %
- % Get a DirectClass packet; convert to grayscale.
- %
- % Parameters:
- % red
- % green
- % blue
- % length: number of pixels minus one of this color (optional).
- %
- currentfile color_packet readhexstring pop pop
- color_packet 0 get 0.299 mul
- color_packet 1 get 0.587 mul add
- color_packet 2 get 0.114 mul add
- cvi
- /gray_packet exch def
- compression 0 eq
- {
- /number_pixels 1 def
- }
- {
- currentfile byte readhexstring pop 0 get
- /number_pixels exch 1 add def
- } ifelse
- 0 1 number_pixels 1 sub
- {
- pixels exch gray_packet put
- } for
- pixels 0 number_pixels getinterval
-} bind def
-
-/GrayPseudoClassPacket
-{
- %
- % Get a PseudoClass packet; convert to grayscale.
- %
- % Parameters:
- % index: index into the colormap.
- % length: number of pixels minus one of this color (optional).
- %
- currentfile byte readhexstring pop 0 get
- /offset exch 3 mul def
- /color_packet colormap offset 3 getinterval def
- color_packet 0 get 0.299 mul
- color_packet 1 get 0.587 mul add
- color_packet 2 get 0.114 mul add
- cvi
- /gray_packet exch def
- compression 0 eq
- {
- /number_pixels 1 def
- }
- {
- currentfile byte readhexstring pop 0 get
- /number_pixels exch 1 add def
- } ifelse
- 0 1 number_pixels 1 sub
- {
- pixels exch gray_packet put
- } for
- pixels 0 number_pixels getinterval
-} bind def
-
-/PseudoClassPacket
-{
- %
- % Get a PseudoClass packet.
- %
- % Parameters:
- % index: index into the colormap.
- % length: number of pixels minus one of this color (optional).
- %
- currentfile byte readhexstring pop 0 get
- /offset exch 3 mul def
- /color_packet colormap offset 3 getinterval def
- compression 0 eq
- {
- /number_pixels 3 def
- }
- {
- currentfile byte readhexstring pop 0 get
- /number_pixels exch 1 add 3 mul def
- } ifelse
- 0 3 number_pixels 1 sub
- {
- pixels exch color_packet putinterval
- } for
- pixels 0 number_pixels getinterval
-} bind def
-
-/PseudoClassImage
-{
- %
- % Display a PseudoClass image.
- %
- % Parameters:
- % class: 0-PseudoClass or 1-Grayscale.
- %
- currentfile buffer readline pop
- token pop /class exch def pop
- class 0 gt
- {
- currentfile buffer readline pop
- token pop /depth exch def pop
- /grays columns 8 add depth sub depth mul 8 idiv string def
- columns rows depth
- [
- columns 0 0
- rows neg 0 rows
- ]
- { currentfile grays readhexstring pop } image
- }
- {
- %
- % Parameters:
- % colors: number of colors in the colormap.
- % colormap: red, green, blue color packets.
- %
- currentfile buffer readline pop
- token pop /colors exch def pop
- /colors colors 3 mul def
- /colormap colors string def
- currentfile colormap readhexstring pop pop
- systemdict /colorimage known
- {
- columns rows 8
- [
- columns 0 0
- rows neg 0 rows
- ]
- { PseudoClassPacket } false 3 colorimage
- }
- {
- %
- % No colorimage operator; convert to grayscale.
- %
- columns rows 8
- [
- columns 0 0
- rows neg 0 rows
- ]
- { GrayPseudoClassPacket } image
- } ifelse
- } ifelse
-} bind def
-
-/DisplayImage
-{
- %
- % Display a DirectClass or PseudoClass image.
- %
- % Parameters:
- % x & y translation.
- % x & y scale.
- % label pointsize.
- % image label.
- % image columns & rows.
- % class: 0-DirectClass or 1-PseudoClass.
- % compression: 0-none or 1-RunlengthEncoded.
- % hex color packets.
- %
- gsave
- /buffer 512 string def
- /byte 1 string def
- /color_packet 3 string def
- /pixels 768 string def
-
- currentfile buffer readline pop
- token pop /x exch def
- token pop /y exch def pop
- x y translate
- currentfile buffer readline pop
- token pop /x exch def
- token pop /y exch def pop
- currentfile buffer readline pop
- token pop /pointsize exch def pop
- /Times-Roman findfont pointsize scalefont setfont
- x y scale
- currentfile buffer readline pop
- token pop /columns exch def
- token pop /rows exch def pop
- currentfile buffer readline pop
- token pop /class exch def pop
- currentfile buffer readline pop
- token pop /compression exch def pop
- class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
- grestore
- showpage
-} bind def
-%%EndProlog
-%%Page: 1 1
-%%PageBoundingBox: 0 0 512 426
-DisplayImage
-0 0
-512 426
-12.000000
-512 426
-1
-0
-0
-256
-020202
-0a0a0a
-6272a4
-fea602
-fe0202
-bec2be
-fefefe
-c6c6d6
-424242
-7a86ae
-0202fe
-bebece
-717ace
-bebabe
-e6e6e6
-42568a
-6a72c6
-969296
-6272b6
-5a6e9e
-4a464a
-969ade
-9696d6
-5a6a96
-fefafe
-b6baee
-2a3662
-323e72
-f6f6f6
-324272
-9696ce
-5a6696
-7286c6
-6272ae
-969ab6
-e6e2e6
-f6f2f6
-3a4a8a
-969ac6
-728ac6
-526297
-626ea6
-7a8bce
-42569e
-9696be
-d6d6d6
-eeeeee
-555e9e
-828282
-dedade
-727eb6
-5a6aa6
-828eb5
-4a528a
-3a4a82
-5a6eae
-8a92ce
-52669e
-eeeaee
-4a5a9e
-6a7ac6
-9ea6d6
-627abe
-a6aac6
-a6aade
-7982ae
-4a5296
-424e96
-7278a6
-a7acce
-828ec6
-a6a6de
-727ac6
-5266ae
-bec2d6
-dedef6
-5a6eb6
-7282ce
-6a72bd
-8a96b6
-8a9ad1
-5a6aae
-969ad6
-808ad6
-cecece
-4256a6
-9e9ed6
-969bbe
-8a92d6
-d6dad6
-8292c6
-5a5e96
-dedede
-6266a6
-7a82ce
-8a96d6
-525d8a
-757eae
-5262a6
-e6e6f6
-3a4e8a
-969ed6
-626aae
-aeafd6
-9696b6
-6a6e9e
-5a66a6
-32427a
-7a86bd
-f6f6fe
-bebed6
-969ace
-dedfee
-9ea6de
-424a7f
-6276b6
-b6bade
-969ece
-7282c6
-424642
-a3a6c6
-8a8eb6
-8296ce
-6a72ae
-7986ce
-626a9e
-626eb6
-ced2ee
-8286b6
-cfd1e6
-707aae
-828ed6
-626ebe
-4a5ea6
-424e82
-3a427a
-4a5996
-3a4672
-4a569e
-8a96c6
-969ede
-b6bede
-96a2d6
-4a4a4a
-d6daee
-8292ce
-5a6296
-727ab8
-5a669e
-5a72be
-8a92b6
-626aa6
-9ea2de
-6a76a1
-6a6ea6
-7a82b7
-525a9e
-eeeef6
-4a5682
-42528a
-b6beee
-9e9ec6
-d4d6e6
-8a96be
-5a66b6
-a6aed6
-6a7ece
-6a7fc6
-8286ae
-7580a6
-525a96
-5a6ab6
-6a76be
-7a82d6
-a6a2a6
-7a8ac6
-eeeaf6
-c6c6ee
-9ea1ce
-d6d2d6
-7a86c6
-626eae
-525eae
-8a96de
-828ace
-e6e6ee
-8292de
-8a92c6
-c6c2d6
-6276be
-6b76ae
-435282
-acb5de
-828abe
-5262af
-626e9e
-6a7ab6
-727ece
-8a92be
-9ea2d6
-aeaaae
-e6e2f6
-8a92de
-9696c6
-828ebe
-c6cce5
-3a467a
-9e9ebe
-828ac6
-4a5e8a
-6a72a4
-424e8a
-5266b6
-62669e
-7a82c6
-96a2c6
-4a5e96
-5a62a6
-9eaad6
-424a8a
-7a86d6
-525ea6
-7a8aba
-4a56a6
-8a96ce
-6a76c6
-425296
-8a8ebe
-7282bc
-828ece
-6272be
-828ab6
-626696
-6a7abe
-626ab6
-5a66ae
-32466a
-5a6a9e
-5a629e
-a7aec6
-727ec6
-e6eaf6
-828aae
-e6e2ee
-4a5aa6
-d6dae6
-525e96
-727ebe
-324672
-dee2f6
-6a7aa6
-bec2e6
-3a4682
-5a6ebe
-4a578a
-8292d6
-ec89f8ecf800000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-00000089f889f8898787870000060606060606060606060606060606061aa0a0a0a0a0a0
-a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0
-a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0
-a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0
-a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a019191919191919191919191919191919191919
-191919191919191919191919191919191919191919191919191919191919191919191919
-191919191919191919191919191919191919191919191919191919191919191919191919
-191919191919191919191919191919191919191919191919191919191919191919191919
-191919191919191919191919191919191919191919191919191919191919191919191919
-191919191919191919191919191919191919191919191919191919191919191919191919
-191919191919191919191919191919191919191919191919191919191919191919191919
-191919191919191919191919191919191919191919191919191919191919191919191919
-1919191919191919191919191919191919191919191919c01a0606060606060606060606
-060606060606060606ae0606060606060606060606060606060606060606ae0606060606
-06060606060606060606060000878787ecec0006062d2d2d313131315c5c5c2323230e0e
-0e1abacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabaca
-bacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabaca
-bacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabaca
-bacabacabacabacabaca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca
-83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca
-83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca
-83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca8383838383838383838383838383
-838383838383838383838383838383838383838383838383838383838383838383838383
-838383838383838383838383838383838383838383838383838383838383838383838383
-838383838383838383838383838383838383838383838383838383838383838383838383
-838383838383838383838383838383838383838383838383838383838383838383838383
-838383838383838383838383838383838383838383838383838383838383ba831a0654b3
-b3b32d2d2d313131315c5c5c2323230e0eae0654b3b3b32d2d2d313131315c5c5c232323
-0e0eae0654b3b3b32d2d2d313131315c5c5c23060600ec891d0006b32d2d2d313131315c
-5c5c2323230e0e0e231ac5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5
-c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5
-c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5
-c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c548c548c50cc548c50cc548c50cc548c50cc548
-c50c4d48c50c4d48c50cad48c50cad48c50cdc48c50cdc48c50cdc48c50cdc48c50cdc48
-c50c5348c50cb8c5c50cb8c5c50cb8c5c54883c5c54883c5c54883c5c54883c5c54858c5
-c548cac5c548cac5c548cac5c5485fadc5485fadc5485fadc548b7adc50cb7adc5c5b7ad
-c5a615adc5a615adc5a615adc5a615adc5a615adc5a615adc5a615adc5a615adc5a615ad
-c5a615adc5a615adc5a68cadc5a68cadc5a68cadc5a68cadc5a68cadc5a68cadc5a68cad
-c5a68cadc5a68cadc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdc
-c5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdc
-c5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdc
-c5c58cc51a06b3b3b32d2d2d313131315c5c5c2323230e0e23ae06b3b3b32d2d2d313131
-315c5c5c2323230e0e23ae06b3b3b32d2d2d313131315c5c5c2323230e54001d1d00062d
-2d2d313131315c5c5c2323230e0e0e3a0e1aac3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c
-3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c
-3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3cc5464d3c3c3c3c3c3c3c3c3c3c3c3c3c3c
-3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c0c3c0c3c3c0c3c0c3c0c3c
-0c3c0c3c0c3c0c3c0ca70c3c0ca60c3c0cc50c3c0cc50c3c0c4d0c3c0c4d0c3c0c4d0c3c
-0c7c3c0c3cb4a60c3c7ca63c0c53a70c3c53a70c3c53a60c3c53a63c0ce5c53c0ce5c53c
-0c58c53c0cffc53c0c38c50c3c58c50c3c5fc50c3c580c0c3c580c0c3c580c0c3c5f0c3c
-3c504d3c3c504d3c0c504d3c0c504d3c0c154d3c0c154d3c0c154d3c0c154d3c0c654d3c
-0c654d3c0c654d3c0c654d3c0c654d3c0c654d3c0c654d3c0c654d3c0c654d3c0c8e4d3c
-0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c
-0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c
-0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c
-0c8e4d3c0c8e4d3c3c98c5e11a06b3b32d2d2d313131315c5c5c2323230e0e0e3aae06b3
-b32d2d2d313131315c5c5c2323230e0e0e3aae06b3b32d2d2d313131315c5c5c2323230e
-0e54008900062d2d2d313131315c5c5c2323230e0e0e3a3a231ae1acacacacacacacacac
-acacacacacacacacacacacacacacacacacacacacac4b4bacacacacacacacacacacacacac
-acacacacacacacacacacacacacacacacacacacacacacac5fb1ac6518067f4b4bacac1c18
-acacacacacacacacacacacacacacacacacacacacacacacacacacacacacace1ace110e110
-e110ac10ac6d1810ac6d1810ac10ac103c10ac104810ac104810ac10c510ac10c510ac10
-c510ac105ee1acb171e1e110b4e1ac10dce1ac10b40cac10b848e110b848e110b848e110
-8348e1108348e110910ce1105848e110580ce1105f48e1105f48e11016c5e11052c5e110
-52c5e11052c5e110150ce1e115c5e1e165c5e1e165c5e1e165a6e1e165a6e1e165a6e1e1
-65a6e1e156a6e1e156a6e1e198a6e1e198a6e1e198a6e1e198a6e1e1984de1e1984de1e1
-984de1e1984de1e1714de1e1714de1e1714de1e1714de1e1475ee1e1475ee1e1475ee1e1
-475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1
-475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1
-475ee1e1475ee1e1475ee1e1475ee1e1475ee1e11a18542d2d2d313131315c5c5c232323
-0e0e0e3a3aae18542d2d2d080808080808080808080e0e0e3a3aae18542d2d2d31080831
-5c5c5c0808230e0e0e3a0d0000062d2d31313108085c5c2323230e08083a3a3a231aeaea
-eaeaeaeaeaeaeaeaeaeaeab815eaeaeaeaeaeaeaeaeaeaeaeaeaeaea84907ffceaeaeaea
-eaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeab8181e436306
-aa898181fc846d6d1beab815eaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaea
-eaeaea84847e847e84848484ea6d6d1bea6d6d1b8484841284ea84107e84841084848438
-658484ac8484843c128484481284ea4006d684c5e6847ef04e8484d69aea84d610ea84d6
-10ea845e10ea845e108484b8108484b8108484b810848446e1847e83e1848438e1848438
-e1847ee0e1847ee03c847e5f3c8484163ceaea58e1eaea16e1abea16e1abea16aceaea16
-aceaea1648eaea1648eaea1648eaea1548eaea1548eaea1548eaea1548eaea1548eaab15
-48abea1548abea1548abea56e1eaab56e1eaab56e1eaab56e1eaea5648eaea5648eaea8e
-48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e
-48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e
-48eaea8e48eaea8e48eaea8e48eaea8e48eaea9848eaea98488484ea1a182d2d2d593131
-315c5c5c2323230e0e0e3a3a3aae062d2d2d59080808080808087777080e0e3a3a3aae06
-2d2d2d5908080808315c777708080e0e3a3a0d0000062d31312d080808082323230e0877
-14143a2e231aababababababababababababab6d18f4abababababababababababababab
-a451fcfcabababababababababababababababababababababababababababababababab
-abab63811b3b1c181bc2c2fcfca46d241bab6d18f4ababababababababababababababab
-abababababababababababa451a4aba4aba4aba4ab6d6d1bab6d6d1b51a451a4abab4ca4
-aba484a451a4e66d18dfe6ab51a4bd51aba4ac51aba43c377ff35151aba43ceaaba4c5ea
-ababc5eaa4ab7684a4ab76e6a4ab76e6aba4b484aba4b48451a4af84aba4af84aba446e6
-51a446e6aba45ae6ab51914eab51e04eab51e04eabab8b4eabab5facabab5facabab5fac
-abab5facabab50acabab50e9a4ab6fe9a4ab6f3ca4ab6fe9a4ab6fe9a4ab75e9a4ab75e9
-a4ab75e9a4ab75e9a4ab75e9a4ab75e9a4ab653cabab8e3cabab8e3cabab8e3cabab8e3c
-a4ab8e3ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73c
-a4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73c
-a4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4ab8ee9a4ab8ec4a4a456ab
-1a182d2d313131315c5c5c2323230e0e0e3a3a3a2eae182d2d2d311a0808080808770808
-770e3a3a3a2eae182d2d31b3080808080808080877770e3a3a3a0d000006313131310808
-080808230e77080814142e2e231aa4d4a4d4a4d47c4b189d8ea48d0606067cd4a4d4a4d4
-a4cd065fd4a4c09dc26d18a4d47c4b189d8ea4c0067cd4cd06b4a4cdfba4204b189d8ea4
-d4c9f9c0c9d4a4d4a49106a9fccd060606e96d18a4d46d6d1b8d0606067c7c4b189d8ea4
-d4c9f9c0c9d46d18a4d4a4d4a4d4da631806b0e9d4dab006b0dad449d46d6d1bd46d6d1b
-d4204b189d8e49d4da631806b0a78d06060627dab006b0dad412d4f9f974c94938068249
-493e84d449e9fdd4d43c84d4d4a74cd449a784d4d4764ca4497612d4492095d449b412a4
-49afe6d4d4af4ed449e5e649a4e5bdc2c291bdc2c291bdc2c238bdc2c25f73d4d47aacd4
-d4e0bdd4a4e0bdd4a48bbdd4d4e0bdd4d4e0bdd4d4503ed4d4503ed4d4503ea4d4503ea4
-d4503ea4d4503ea4d45093d4d475e9d4d465e9d4d465e9d4d4653ea4d465c4a4d48ec4a4
-d48ec4a4d48ec4d4d48ec4a4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4
-d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4
-d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4
-d48e3c49d48e3cc21a1c2d313131315c5c5c2323230e0e0e3a3a3a2e2eae1c2d31313108
-08081a0808777708083a3a3a2e2eae1c2d3131313108080808777708080e3a3a3a2e0d00
-0006313131312d080808770808081414142e2e9d311af4b6b6b6b6ea6d9d9abc06337e6d
-18f61bdfb6b6b6b6b6bb066e42b6b0456b6d241bea6d9d9abc0633d60696df9d0696df6d
-413b6d9d9abc0633b66d064b401bb6b6b674068642126d18601d6d6d1b9c6d241b7e6d18
-60866d9d9abc0633b66d064bda1b63c91bb6b6b6b6a506c94199689fd706cd174a0675b6
-b66d241b9c6d241b5d6d9d694a0633a506f94199680feb6d18602206cd174a06b2c2b66d
-06703f6b3206ef424ec2b69c10d9b69ce1d9b6b610d99cb63cd99cb693a4b6b6f7a4b69c
-f05db69c765db69c5e5db69cb466b69cb4eab69cafeab6b6b8eab6b6b8eab6b646eab6b6
-46eab69c467eb6b6e312b6b6bb12b6b6bb12b6b6bb12b6b63812b6b6e37bb6b6e37bb6b6
-384eb685384eb685384eb685384eb685384eb6b61e4eb6b61e4eb6b61eacb6b61eacb685
-6facb6b66facb6b66facb6b66facb6b66facb6b66facb6856facb6856facb6856facb685
-6facb6856facb6856facb6856facb6856facb6856facb6856facb6856facb6856facb685
-6facb6856facb6856facb6856facb6856facb6856facb6856facb6856facb6856facb685
-6facb6856fac85b66facb6b675acf4b61a1c313131315c5c5c2323230e0e0e3a3a3a2e2e
-2eae1c3131313108315c23235c0e0e0e143a3a2e2e2eae1c31313131312d080877080877
-0e3a3a3a2e2e0d000006315c5c5c232308087777140814143a2e24245c1adfdfdfdfdf75
-063f258b06f22b6d6d1be2dfdfdfdfdff485241864f00628256d6d1b6f063f258b06f23b
-064a2818b00b5106ce26063f258b06a82b6d18726bfc55dff481061b55f46d6d1b2b6d6d
-1bf46d6d1bf46d6d1b26063f258b06a82b6d18726b25f41b1b55dfdff49d06606b43e225
-63069ece49060e25f46d6d1bf46d6d1b52063f648b06a82e06601b2be264556d6d1b6306
-9efceb06b964f46d18ce1be249060764c2f4f47ec2f4f47ec2dff412c2f4f44e49f4f44e
-498a8ac449f4f493a4f4f4f0a4f4f4f051f4f47651f4f47651f4f4b4513bf46c33f4f4de
-29f4f4d04cf4f4d037f4f4b8668adfd0eadf8ad066df8ad0eadf8ad066df8ad0668af45a
-eadff45aeadf3b5a668af4bb668af4bb7e8af4bb7e8af48b7e8adfbb7e8a8abb7e8a3b8b
-7e8a3b8b7e8adfbb4cdf8abb4cdf8a8b4cdf8a1e7edf3b6f4cdf3b6f37dff46f37dff46f
-37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f
-37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f
-37dff46f37dff46f37dff46f7edf3b6f7edff42612f4f4551a1c31315c5c5c2323230e0e
-0e3a3a3a2e2e2e2424ae1c31313131082323230e0e0e3a3a082e2e2e2424ae1c31315c5c
-5c230808777708773a3a2e2e2e240d0000065c5c5c2323230e7708081414142e2e242424
-311af4f4f4f43ba50606060606cf436d6d1bf4f4f4f4f4f4f4f48d06f2744b1be26d241b
-a50606060606cf43902479a20b6357f31b670606060606a1256d6d1b55f4f4f4f4cd061b
-df3b6d241bdf6d241bf46d241bf46d6d1ba50606060606a1256d6d1bdfdfdff4f4f4f4f4
-df06061be28af4f418061b2b3b06066b3b6d241bf46d241ba50606060606cf06061df485
-2bf4626d6d1b18061b2b6a06061b516d6d1b49b6850607fc3bdf7eb6f4df12c2f43b7e62
-f4f41262f4f47b493bf4c4c23b55c4d93bdff7d93bdff75df4dff76af4dfe45d3bdf9beb
-3bdf6c33f48a6c37f42bc14c3b8ad07ef4dfd07ef4f4467ef43b467ef43b467ef43b467e
-f43b467ef4f4d07ef4f4467ef43b467ef4f4e312f4f4e3123bf4e3123bf4bb123bf48b12
-3bf48b123bf4bb123bf4bb123bf48b12f43b8b123b3b5012f43b6f12f43b1e12f43b1e12
-f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73
-f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73
-f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f4f41e73f43b1e12dff41e3b1a24315c
-5c31ae0808080808141408ae2e2e24242eae24315c5c5c0823230e0e0e3a3a3a8f2e2e24
-242eae24315c5c5c2308770808080814142e2e2e24240d0000065c5c2323230e0e0e1414
-08142e2e2424241c311a8a8a8a8a422606ef1b1b1b1bfc6d6d1b8a8a8a8a8a8a8a423206
-b324c66b2b6d6d1b2606ef1b1b1b1bfca50631b29606f5a51b2606ef1b1b1b1b256d6d1b
-428a8a8a8ac0069e2b8a6d6d1b426d6d1b8a6d6d1b8a6d6d1b2606ef1b1b1b1b256d6d1b
-8a8a8a8a8a8a8a8a8ab0061f8a428a8a630635426606631b2b6d6d1b426d6d1b2606ef1b
-1b1b1bf1061f8a8a42dd3b6d6d1bf10635dd9a06631b3b6d6d1b858a66063f878a662f8a
-8ab5dd8a8a29dd8a8a21628a8a7b628a8abe628a8abed98a8a93d98a8a936a8a8a616a8a
-8a326a8a8a9b6a8a8a9b5d8a8a9b5d8a8a9beb8a8a805d8a8ac1668a8ac1668a8ac1668a
-8ac1668a8ac1668a8acc668a8acc298a8acc298a8acc298a8a46298a8ae3b58a8ac6b58a
-8ac6298a8a96b58a8ac6298a8abb298a8a8b298a8a8b298a8a8bb58a8a8b298a8acb212b
-8acb218a8a26218a8a26218a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a
-8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a
-8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a26218a8a26218a
-8a269a421a9d5c5c5c2377777777770814148f8f2e2424241cae245c5c5c2308230e0e0e
-3a3a3a2e8f2e2424241cae245c5c5c23770877777714141414142e2424240d0000065c23
-23230e0e0e3a3a14142e2e2424241c24311a428a8a8a8a629d18269bbb808a6306d2628a
-8a8a8a42428a42b00606d3fc8a6d241b629d18269bbb808ad606060202060699fc629d18
-a19bbbc18a6d241b8a8a8a428a93064143426d241b8a6d241b426d241b426306d2b59d18
-a19bbbc18a6d241b428ab9638a8a8a8a8ab206b9bb9b2666a1064abecd06961b426d241b
-8a6d241b629d18a16cbbc1b206b9969b75668a6306d2a5064ac4cd064f1b8a6d241b8a42
-d7067d87669c8a42b59c8a4229b6424229628a429a628a42be628a42be5b8a42c4d98a42
-93d98a4232d98a4232d98a42e4d98a429b6a8a4280338a426c668a42c1668a42c15d8a8a
-c1978a8ac1668a8ac1668a8ac1668a8acc298a8accb5428accb5428acc7e428accb5428a
-e3b5428ac6b5428ac6b5428ac6b58a8ac6b58a8abbb5428abb7e428a8bb58a8a8b218a8a
-8b218a8a8b218a8acb21428acb21428a267b428a267b428a267b428a267b428a267b428a
-267b428a267b428a267b428a267b428a267b428a267b428a267b428a267b428a267b428a
-267b428a267b428a267b428a267b428a267b428a267b428a267b428a267b428a267b422b
-267b422b267b8a8acb7b8a2b1a245c5c2323080808081414141414142424241c24ae245c
-5c2323770e0e0e3a3a3a2e2e142424241c24ae245c5c235c087708083a3a1414148f2424
-241c0d0000062323230e0e0e3a3a3a2e2e2e2424241c1c1c311a4242424242427d4a1c06
-b079dbe3241869db424242424242426706071bdb426d6d1b42974a1c06b079db9c061889
-d318066bdb425d4a1c06b079db6d6d1b424242354235a2a2db426d6d1b426d6d1b426d6d
-1b42e32418d26a4a1c06b079db6d6d1b4242246d1b42354242424f700618f3e8d3226306
-f1681b87426d6d1b426d6d1b425d4a1c06b0793596700618f3e8dbe32418d2570e06f157
-1b87426d6d1b425b70a21b9c9c42427d9c42425d9c424229f642429add3542699c42427b
-5b4242be5b42424492424282ee424282924242619235429b9442429b6a42429b6a424280
-5d4242805d4242a85d4235805d4235805d423580d54242805d4242a8974242807d424280
-974242c17d4242e35d4242e35d4242795d4242e35d4235e35d424279974242e3294242e3
-7d4242797d4242797d4242797d42429629424296294242969a4242966942429669424296
-694242966942429669424296694242966942429669424296694242966942429669424296
-694242966942429669424296694242966942429669424296694242966942429669424296
-69424296694242966942422c7d42352c294242421a2e5c232323ae7708081408148f8fc8
-24241c1c1cae2e5c23232308777708141414148f1424241c1c1cae2e5c230e0e0e7777f1
-3a0e2e8f142424241c1c0d00000623230e0e0e3a3a3a2e2e2e2424241c1c1c18b31a35db
-35db353535d3871b1b1bdb35fc1b06060606060606443535ce1b1b3535421a1b3535d387
-1b1b1b7235351b1b35351b1b35353525871b1b1bfc351b1a3535db3535357d242c35d31b
-1b35d31b1b35351b1b3535721b1b8625871b1b1bdb351b1bdb35421b1a35db35353535fc
-1b1b1b1b2535871b1b1b6b4235d31b1b35421a1b353564871b1b1bdb35fc6b1b1b1bfefe
-721b1b866b1b1b1b6b355baa1b1b5b7824d187aa3535d5aa3535d5aa35357d9c35357df6
-db359af63535695b35359a5b3535d25b3535d25b3535445b3535445b3535615b35359392
-353541ee353541d53535a8d535dba8d5db35a8d5353580d5353580d5353580d5353580d5
-353580d5353580d53535e7d5353579d5353579d5353579d5353579d5353579d5353579d5
-3535797d353579693535797d3535797d3535797d35352c7d35352c7d35352c7d35352c69
-35352c6935352c6935352c6935352c6935352c6935352c6935352c6935352c6935352c69
-35352c6935352c6935352c6935352c6935352c6935352c6935352c6935352c6935352c69
-35352c6935352c6935352c6935352c6935352c693535c66935db2c351a2e2323230e0e0e
-3a3ab02e2e2e2424241c1c1c1cae2e2323230e0e0e3a3a3a2e2e2e2424241c1c1c1cae2e
-2323230e0e0e3a3a3a2e2e2e2424241c1c1c0d000006230e0e0e3a3a3a2e2e2e2424241c
-1c1c18182d1ad3d335d3d3d3d343d3d3d3d3d335649f0f1b1b1b1b1b1b1bfcd3644243d3
-d39f43d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d364d3d39fd3d3d3d3d3d343d343d3d3d3d3
-d3d39f7dcf25d364d3d3d3644364d3d3d3d3d3d3d3d39fd3d3d3d3d364d3d39fd3d3d3e2
-d342d3d3d3d364d3d3d3d3d3439fd3436443d3d39fd36464d39f43d3d30fd3d3d39fd3d3
-9f8a9f64d38a0f64d3880f9f43aa424343284264d3288878281b9f64d3ee8ad3d3178a64
-d31faa64d3c3d89fd37dd864d302aad36402aad3d3be92d3d39992d3d3999264d34462d3
-d3932fd3d36139d364611fd3d34192d3d34192d3354192d3d34192d3d34117d3d3de17d3
-d3de17d3d3de17d3d3e717d3d3e7edd3d3e717d3d3e717d3d3e717d3d3e717d3d3e71fd3
-d3e71fd3d33417d3d35a1386d39617d3d39613d3d3966964d3c6c364d3966964d3966964
-d39669d3d3967dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3
-d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3
-d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3967dd3d3967dd3d34f69d335967dd3
-1a3a23230e0e0e3a3a3a2e2e2e2424241c1c1c1818ae2e23230e0e0e3a3a3a2e2e2e2424
-241c1c1c1818ae2e23230e0e0e3a3a3a2e2e2e2424241c1c1c180d0000060e0e0e3a3a3a
-2e2e2e2424241c1c1c181818b31a7272368672db86868686863672db86dbdb723672db25
-72db648686368686867286dbdb8686d3868672db8686862586648672db86db868686db72
-64728686db8686dbdb727236728786dbdb8686db7272db25db72db86db86db8686867272
-72dbdbdb6472db7286368636db7286866472db868625867286868686db8672db86db8672
-db7286869f86727235bf8686fe9f7286febf257288bf868660358686f6356472726486db
-929e867292fe86861ffe86867dfe72727daa7286c3aa862569aa8672d2aa3686d2603686
-99f67286fa2f368644928672a9287272a9282586415b86db419286724192868641928686
-091fdb86091f8686091f8686091f7286a81f8686f21f8686f21f8686f21fdb86f21fdb86
-f21fdb86f21f8686341f8686341fdb86341786863417648679178686797d8686967d8686
-967d7286967d8686967d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d8686
-4f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d8686
-4f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d7272
-4fd53672967d72361a2e230e0e0e3a3a3a2e2e2e2424241c1c1c18181cae2e230e0e0e3a
-3a3a2e2e2e2424241c1c1c18181cae2e230e0e0e3a3a3a2e2e2e2424241c1c1c18180d00
-00060e3a3a3a2e2e2e2424241c1c1c1818180606b31af4f4dff43bdfdfdfdfdff4f43bdf
-3b3bf4f4f43b3bf43b3bdfdf3bdfdfdff48af43bdff48adfdff43bdfdfdf3bdf8adff43b
-df3bdfdfdf3bf48af4f48a3bf4df3b3bf4f4f4df3bdf3b3bf4df3bf4f43b3b3bf43bdf3b
-f43bdfdfdff4f4f43b3b3b8af43bf4df3bdf3bf4f4f48adff43bdf8a3bdff4dff4dfdf3b
-dff43bdf3bdff43bf4dfdf8adff4f4df3bf4df8af4f4df8af43bf43b3b3bdf3bdff4dfdf
-3bdff4f4f48af4dff4dff43bdf3bdfdff48a8a8a3bf4f43b3bf48a8a8af43b8a8a3b3bf4
-3b3b8a8af43bdff43bf4df3b8af48af43bdff48a8af43bdf8a3b8a8a3bf43b8a3bf4f48a
-3bdfdf3b3bdf8adf8af48a8a8adf8a8a8a8adf8a8af4df8a8adfdfdf8a8adf8a8adfdf8a
-df3bdf3b3b3b8af43b3bdf3bf4f48a8a3bdfdf42df8a42424242424242df42424242df42
-4242424242df4242dfdf4242df42df4242df4242df42df4242df42df4242df4242df42df
-4242df4242df42df4242df4242df42df4242df4242df42df4242df4242df42df4242df42
-42df42df4242df4242df42df4242df4242df42df4242df4242df42df4242df4242df42df
-42df4242dfdfdfdfdfdfdf8adfdf42421a3a0e0e3a3a3a2e2e2e2424241c1c1c18181806
-06ae3a0e0e3a3a3a2e2e2e2424241c1c1c1818180606ae3a0e0e3a3a3a2e2e2e2424241c
-1c1c181818060d000011111111111111111111111111111111111111111a010101010101
-010101010101010101010101010101010101010101010101010100010101010101010101
-010101010101010101010101010101010101010101010101000101010101010101010101
-010101010101010101010101010101010101010100010101010101010001010101010101
-010101010001010101010101010101010101010101010101010101010100010100010001
-010101010101010101010001010101010101010101010101010101010100010101010101
-010101010101010101010101010100010101010101010100010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010100010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-0101010101010101010101010101010101010101010101011a1111111111111111111111
-111111111111111111ae1111111111111111111111111111111111111111ae1111111111
-111111111111111111111111111111000006230e0eae0606060606060606060606060606
-060606060606060606060606060606060606061818181818060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060618060606180606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606ae18230e0d0000060e0e23ae060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-0606060606060606060606060606060606060606060606061830ae060e0e0d0000060e0e
-0eae06065959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959593030ae06
-0e0e0d0000060e0e23ae0606595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959593030ae060e0e0d0000060e0e0eae060659595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959593030ae060e0e0d0000060e0e0eae06065959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959592d3030ae060e0e0d0000060e0e0eae0606
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959593030ae060e0e0d00
-00060e0e0eae060659595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959592d
-3030ae060e0e0d0000060e0e0eae06065959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959593030ae060e0e0d0000060e0e0eae0606595959595959590000000000
-000000590000595959595959595959595959595959595959595900005959595900000000
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959590000000059595959595959590000590000595959595959595959
-595959595959590000595959595959595959595959595959595959595959595959595959
-000000000000000059000059590000595959595959595959595959595959595959595959
-595959595959000059595900005959595959595959000059595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959592d3030ae060e0e0d0000060e0e0eae060659595959
-595959000059595959595959000059595959595959595959595959595959595959590000
-595959590000595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595900005959000059595959595959000059000059
-595959595959595959595959595959000059595959595959595959595959595959595959
-595959595959595900005959595959595900005959000059595959595959595959595959
-595959595959595959595959595900005959590000595959595959595900005959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959593030ae060e0e0d0000060e0e
-0eae06065959595959595900005959595900005900005959000000005959595959595959
-595959595959590000595900005900005959000000005959000059590000595900005959
-000000005959000059000059595959595959595959595959000059595959595900000000
-595900005900005959000000005959590000000059590000000059590000000059590000
-590000595959595959595959595959590000595959590000590000590000000059590000
-000059590000590000595959595959595959595959590000595959000059590000000059
-590000590000590000595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959592d3030ae06
-0e0e0d0000060e0e0eae0606595959595959590000595959590000590000590000595900
-005959595959595959595959595959000059590000590000590000595900005900005959
-000059590000590000595900005900000000005959595959595959595959595900005959
-595959000059590000590000590000590000595900005900005959000059590000595900
-005959000059000000000059595959595959595959595959000059595959000059000059
-590000595900005959000059000000000059595959595959595959595959000059595900
-005900005959000059000059000000590000595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959593030ae060e0e0d0000060e0e0eae060659595959595959000000000059000059
-000059000059590000595959595959595959595959595900005959000059000059000059
-590000595900005900005900005959000059590000590000005959595959595959595959
-595959590000595959595900005959000059000059000059000059590000590000595959
-595959000059590000595900005900000059595959595959595959595959595900000000
-005900005900005959000059590000595900005900000059595959595959595959595959
-595900000000000000590000595900005900005900005959000059595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959592d3030ae060e0e0d0000060e0e0eae06065959595959595900
-005959595900005900005900000000000059595959595959595959595959595900595900
-595900005900000000000059590000590000590000595900000000000059000059595959
-595959595959595959595959000059595959590000595900005900005900005900000000
-000059000059595959595900005959000059590000590000595959595959595959595959
-595959590000595959590000590000595900005959000000000000590000595959595959
-595959595959595959590000595959000059000000000000590000590000595900005959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959593030ae060e0e0d0000060e0e0eae0606
-595959595959590000595959590000590000590000595959595959595959595959595959
-595959590000000059590000590000595959595959000059000059000059590000595959
-595900005959595959595959595959595959595900005959595959000059590000590000
-590000590000595959595900005959595959590000595900005959000059000059595959
-595959595959595959595959000059595959000059000059590000595900005959595959
-000059595959595959595959595959595959000059595900005900005959595959000059
-000059590000595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959592d3030ae060e0e0d00
-00060e0e0eae060659595959595959000059595959000059000059000059590000595959
-595959595959595959595959590000595959000059000059590000595959000059590000
-595959000059590000590000595959595959595959595959595959595900005959000000
-005959000059000059000059000059590000590000595900005959000059000000595900
-005900005959595959595959595959595959595900005959595900005900005959000059
-000000595900005900005959595959595959595959595959595900005959590000590000
-595900005900005900000059000059595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-3030ae060e0e0d0000060e0e0ed706065959595959595900005959595900005900005959
-000000005959595959595959595959595959595959000059595900005959000000005959
-595900005959000059595959000000005959000059595959595959595959595959595959
-595900000000595900000000595900005900005959000000005959590000000059595959
-000059590000000059590000595959595959595959595959595959590000595959590000
-590000595959000059590000000059590000595959595959595959595959595959590000
-595959000059590000000059590000590000590000595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959592d3030ae060e0e0d0000060e0e0eae0606595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959000059595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959593030ae060e0e0d0000060e0e0eae060659595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595900005959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595459
-59595959595959595959595959595959595959595959592d3030ae060e0e0d0000060e0e
-0eae06065959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590000595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595954
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595459545954595954595954595959595959595959595959593030ae06
-0e0e0d0000060e0e0eae0606595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595459595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595954595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959545959595959595459595459595459545959595459545959595959595959595959
-595959545959545959545959595959595959595959595959595959595959595959595959
-5959592d3030ae060e0e0d0000060e0e0eae060659595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595954595959545959595459595954595959545959595459595954595959545959
-595959595959595959595959595954595959545959595459595954595959595959595959
-595459595459545959545954595959595954595459545954595954595959545959595459
-595954595959545959595459595954595959545959595459595954595959545959595459
-595954595959545959595459595954595959545959595459595954595959545959595459
-595959595954595959595959595459595959595959595959595959595959595959595959
-545959545959545959595959595959595959595959595959595959595959595959595959
-5954595959595959595959593030ae060e0e0d0000060e0ef9ae06065959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595459
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595954595954595459595959595959595959595959595959595959595959595959595959
-595959595959595959595459545954595459545959595959595959595959595959595959
-595459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595459595959595459595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959592d3030ae060e0e0d0000060e0e0eae0606
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595954595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595459
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595954595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959593030ae060e0e0d00
-00060e0e0eae061c59595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595459595959595959595959595959595959595959595959595959
-595959595959595959595959595954595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959592d
-3030ae060e0e0d0000060e0e0eae0606303030303030303030303030303030303030a930
-3030a930a93030a930a930fa30303030a930303030303030303030303030303030303030
-30303030303030303030303030a93030a93030a9303030a93030a930fa30303030a93030
-303030303030303030303030303030303030303030303030303030303030303030303030
-3030303030a9303030fa3030a93030fa3030a930fa303030a93030303030303030303030
-3030303030303030303030a9303030a9303030a9303030a930fa30303030a93030303030
-303030303030303030303030303030a9303030a9303030a93030a93030a93030a930a930
-30a93030a930a93030a930a93030a930a93030a930a93030a930a93030a93030a93030a9
-303030a93030a930a93030a930a93030a930a93030a930a930a93030a930a930a93030a9
-3030a93030a930a930a930a93030a93030a930a930a930a93030a930a93030fa30a93030
-a930a93030a930a93030fa3030a930a93030fa3030a930a93030fa3030a930a93030fa30
-30a930a93030fa3030a930a93030fa3030a930a93030fa3030a930a93030fa3030a93030
-a930a93030a930a93030a930a93030a93030a93030a93030a93030a93030a930303030a9
-3030a930a930a93030a93030a930a930a93030a93030a930a93030a93030a93030fa30fa
-303030a9303030303030ae180e0e0d0000060e0e0eae0630303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030ae060e0e0d0000060e0e0eae59592d2d2d2d
-2d2d2d54592d2d2d2d2d2d2d2d5459595959595959595959595959592d54592d54592d2d
-2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d54595959595959
-595959595959595959545954592d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d
-2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d54595459595959595959595959595959
-5954592d2d2d2d2d54592d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d545959595959595959
-595959595959545954592d2d2d54592d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d5459595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959592d5459592d2d2d2d2d2dae060e0e0d0000060e0e
-0ed759595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959ae06
-0e0e0d0000060e0e0eae2d59595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959545959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959ae060e0e0d0000060e0e0e22595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959ae060e0e0d0000060e0e0eae59595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959ae060e0e0d0000060e0e0eae5959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595954
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959ae060e0e0d00
-00060e0e0eae595959595959595959595959595959595959595959595954595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595954595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959ae060e0e0d0000060e0e0e2259595959595959595959595959595959595959545959
-595959545959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595459595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595459595959595954595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959545959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959ae060e0e0d0000060e0e0e22595959595959
-595959595959595959595959595959595959595959595459595959595959595959595959
-595959595959595959595959595959595959595959595959595959545959595959595959
-595954595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959545959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e
-0eae59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959545959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595459595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959000000000059595959595959595459590000
-595959595959595959000059000059595959595900005959595959595959595959595959
-595959595959595959595959000059595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595954595959595959595959595959595959ae06
-0e0e0d0000060e0e0e225959595959595959595959595959595959595959595959595959
-595959595959595959595954595959595959545959545959595459595959595959595959
-595959595959595959595959595959595959595959595959595954595959595959595959
-595959595459595959545959545959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954595959595900005959000059595959
-595959595959000059595959595959595959595900005959595959590000595959595959
-595959545959595959595959595959595959595900005959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959ae060e0e0d0000060e0e0eae59595959545954595954595959591c1c1c1c
-1c1c1c1c1c1c1c5959595959595959000000000000595959595959595959595959595959
-595959595459595459595959595959595959595959595959595959595959595959595959
-545959545959545959595959595959595959595959595959595959595459595459595459
-595959595959595959595959595959595959595959595954595959595959595959590000
-595959000059590000000059590000000059590000000059590000590000595959595959
-000059595959590000000059590000595959000059590000000059590000595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959545959595959595959595959595959595959
-5959595959595959595959595959ae060e0e0d0000060e0e0ed759595959595959595959
-595959591c061c061c061c061c1c30595959595959595900005959595959545959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959000059595900005900005959000059590000595900005959000059000059
-000059595959595900005959595900005959000059000059595900005900005959000059
-000059595959545959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595954595954595959545959545959595459595954595459
-545959595459595459595459595459595954595959595459595959545959595959595959
-59595959595959595959595959595959595959595959ae060e0e0d0000060e0e0eae5959
-5959595959595959595959591c0659595959595959303059595959595959590000595959
-590000590000590000000059595900000000595900000000005959000000005959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595900005959590000590000595900005959000059595959
-595900005900005900005959595959590000595959590000595900005959000059000059
-590000595900005900005959595959595954595954595959545959595459595459595459
-595459545959545959595959595959595959595959595959595959595959595959595959
-595954595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595954595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595954595959595959595959595959595459595959595959595959595959ae060e0e0d00
-00060e0e0ed7595959595959595959595959595906065959595959595930305959595959
-595959000059595959000000000000005959000059000059590000595959590000590000
-595900005959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959590000595959000059000000000000
-595900005959590000000000590000590000595959595959000059595959000000000000
-595900005900005959000000000000590000595959595959595959595959595959595959
-595959595959595959595959595959595459595954595959545959595459595954595459
-595459595954595959595959545959595954595959545959595459595954595959545959
-595459595959595959595459545959595959595959595959595959545959595959595954
-595959595959595459595959595959545959595959595954595959595959595459595959
-595959545959595959595954595959595959595954595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959590606595959595959
-593030595959595959595900000000005900000059590000595900005900005959000059
-595900005959000059590000595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959000059595900
-005900005959595959590000595900005959000059000059000059595959595900005959
-595900005959595959595900000059595900005959595959000059595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959545954595959595959595459545959545959595459595959
-595459545959595959545954595959595954595459595959595459545959595959545954
-595959595954595459595959595459545959595959545959545959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954595959595959595959595959595459
-59595959595959595959d7060e0e0d0000060e0e0ed75959595959595959595959595959
-060659595959595959303059595959595959590000595959590000595959000000000000
-590000000000005959590059595900000000000059595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595900005959000059590000595900005959000059000000595900005900005900005959
-595959590000595959590000595900005959590000005959590000595900005900005959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959ae060e0e0d0000060e0e0eae595959595959
-595959595959595906065959595959595930305959595959595959000059595959000059
-595900005959595959000059595959595900005959590000595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959590000000000595959590000000059595959000059590000005900
-000000590000595959595959000000000000590000000059595959590059595959590000
-000059590000595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e
-0ed75959595959595959595959595959061c5959595959595930fa595959595959595900
-005959595900005959590000595900005900005959000059000059595959000059590000
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959545959595959595959595959595959595959595959595959ae06
-0e0e0d0000060e0e0eae59595959595959595959595959591c0659595959595959303059
-595959595959590000595959590000595959590000000059595900000000595900000000
-005959000000005959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595954595959
-595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959061c3030
-303030303030305959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959545959595954595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959ae060e0e0d0000060e0e0eae59595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959545959595959595959ae060e0e0d00001c0e0e5cd75959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959ae060e0e0d00
-00060e0e0eae595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595459595959595959595959595959595959cd5959595959cd595959
-595959cd5959595959595959595959595959595954595959595959595959595959595954
-595959595959595959595959595959545959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959ae060e0e0d0000060e0e5cd759595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595954595959cd5959595959cd595959595959
-cd5959595959cd595959595959cd595959cd595959595959545959595959595959595959
-595959595959595959595459595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595954595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595459595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959590100595959590100010059595901000100
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959545959595959595959595959595959
-595959595459595959595959595959595959595959595959595959595959595959545959
-595959595959595959545959595959595959ae060e0e0d00001c0e0e0ed7595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595954
-595959595959595959595959595959545959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590000000159595900005959
-000159000059590001595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595459595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e
-0eae59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595459595959595959595959595959595959
-595959595959595959595959595959595459595959595959595954595959595959595959
-595954595959595959595959595459595959595954595959595959595959595959595900
-005959590000595900005900005959000059595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595459595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959ae06
-0e0e0d00001c0e0e59d75959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959545959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959590000595959000059590000590000595900005959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959545959595959595959595959595959595959595959595959595959595959
-595959595959ae060e0e0d0000060e0e2eae595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959545959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595954595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959000059595900005959000059000059590000595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959ae060e0e0d0000060e5c0e2259595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595459595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959545959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595900005959590000595900005900
-005959000059595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959545959595959595959595959
-59595459595959595959595959595959595959595959ae060e0e0d0000060e0e0eae5959
-5959595959595959595959591c1c1c1c1c1c1c1c1c1c1c59595959595959590000595959
-000059000059595959590000595959595959595959595959590000000000015959595959
-595959595959595959595959595959595959595959595959590100010001000100595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595459595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959590000595959
-000059590000590000595900005959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59cd59595959595959595959595959595959595959545959595959595959ae060e0e0d00
-001c0e0e0ed759595959595959595959595959591c1c061c1c1c1c1c061c305959595959
-595959000059595900005959595959595959000059595959595959595959595959000059
-595959595959595959595959595959595959595959595959595959595959595959595959
-000059595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd5959595959595959595959595959595959595959595959595959595959
-595959595959595959595459595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959000059595900005959000059000059590000595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959591c06595959595959
-593030595959595959595900005959590000590000595900005900005959000000005959
-595959595900005959595900005901005901000001595901590100015901000159595959
-5959595959595959000059595959010000015959595959595959cd595959cd5959595959
-595959595959595959595959595959595959595959595959595459595959595959595959
-595959595959595959595959595959595959595954595954595959595959595959595959
-595959595959595959595954595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595900005959595900000000595959000000005959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959ae060e0e0d00001c0e0e0e4f5959595959595959595959595959
-06065959595959595930a959595959595959590000595959000059000059000059000000
-590000595900005959595959590000595959590000000000000059590000590000595900
-005959000159595959595959595959590000595959000059590001595959595959595959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595459595959595959595959595954
-5959595959545959595959595959595959595959595959595959595959cd595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-cd5959595959595959595959595959595959ae060e0e0d0000060e0e0eae595959595959
-595959595959595906065959595959595930305959595959595959000000000000005900
-005900005959000059000059590000595959595959000000000059000000595900005959
-000059000059590000595900005901010000000059595959000059595900005959000059
-59595959595959595959595959595959595959595959cd59595959595959595959595959
-595959595959545954595959595959545954595959545959595954595959595959595959
-595959595959595959545959595959545954595459595459595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959cd5959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959545959595959595959ae060e0e0d00001c0e0e
-0ed759595959595959595959595959590606595959595959593030595959595959595900
-005959590000590000590000595900005900000000000059595959595900005959595900
-005959590000595900005900005959000059590000595959595959595959595900005959
-590000595900005959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959545954595959595959595959595959595959
-595959595959595959595959545959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959cd59595959cd
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595954595959595959595959595959
-595959595959595959595959595959595959545959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959ae06
-0e0e0d0000060e0e0eae5959595459595959595959595959060659595959595959303054
-595959595959590000595959000059000059000059590000590000595959595959595959
-590000595959590000595959000059590000590000595900005959000059000000000000
-595959590000595959000059590000595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595954595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959cd59595959595959595959
-595959595959595959595959cd5959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595905595959055959
-590559595959595959055959590559595905595959055959595905595959055959595959
-595959595959595959595959595959cd5959595959595959595959595959595959595459
-595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959061c5959
-595959595930305959595959595959000059595900005900005900005900000059000059
-590000595959595959000059595959000059595900005959000059000059590000595900
-005959595959595959595959000059595900005959000059595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959545959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959590559595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959ae060e0e0d0000060e0e0eae59595959595959595959
-595959590606595959595959593030595959595959595900005959590000590000595900
-005900005959000000005959595959595900005959595900005959595900000000595900
-005959000059590000595959595959595959595900005959595900000000595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-a930a93030a93030a93030a930303030a93030a930fa3030fa3030a930a93030a93030a9
-30a93030fa3030fa3030a930a93030a93030a930a930fa30fa30fa30fa30fa30fa30fa30
-fafa3027fa30fa27fafa30273027fafa30fa30fa27fafa30fa30fa3027fafafafafafafa
-fafafafafafafafafafafafafa30273027fafafafafafafafa30273027fafafafafafafa
-fafafafafafa30fa30fa30fa30fa3030303030fa30303030303030303030303030303030
-3030fa3030fa30fafa30fafa595959595959595959595905595959595959590559595959
-595959055959595959595905595959595959590559595959590559595959590559595905
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959ae060e0e0d00001c0e0e0ed75959
-595959595959595959595959061c30303030303030303059595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595930303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-30303030303030303030303030303030303030f159595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959ae060e0e0d00
-00060e0e5cae595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959593030050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-05050505050505050505050505050505050505050505050505050505050505051c1c0606
-060606061c0618181c061c061c06061c1c1c1c1c1c1c1c1c2e1c2e1c5959595959595959
-595959595959055959595959595905595959595959590559595959595959055959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959ae060e0e0d00001c0e0e0ed759595954595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959303005050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050606060606060606060606060606060606060606061c1c1c1c1c1c1c1c301cf1
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-59595959595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959cd595959595959595959595959595930300505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505060659595959595959595959595930065959595959595959
-5959595930301c1c59595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595459595959595959ae060e0e0d00001c0e0e0ed7595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959cd59595959
-595959593030050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050506065959595959595959595959593006
-59595959595959595959595930301c2e5959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e
-0eae59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959cd595959595959595959595959595959595959595959
-595959595959595959595959303005050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050606595959595959
-595959595959300659595959595959595959595930301c1c595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959ae06
-0e0e0d00001c0e0e0ed75959595959595959595959595959595959595959545959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd59595959595959
-595959595959595959595959595959595959595930300505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0606595959595959595959595959300659595959595959595959595930301c2e59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959543030050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050506065959595959595959595959593006595959595959595959595959
-30301c1c5959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959cd5959595959595959
-5959595959595459595959595959ae060e0e0d00001c0e0e0ed759595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595954595959595959595959595959
-59595959595959595959cd59595959595959595959595959595959595959595959595959
-303005050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050606595959595959595959595959300659595959
-595959595959595930301c2e595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959595959595959
-59595959595959595959595959595959595959595959ae060e0e0d0000060e0e0eae5959
-595959595959595959595959595959595959595954595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595930300505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505060659595959595959595959
-5959300659595959595959595959595930301c1c59595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959ae060e0e0d00
-001c0e0e59d7595959545959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959cd59595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595930fa050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050506065959
-59595959595959595959301c59595959595959595959595930301c2e5959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595905595959595959
-59595959595959595959595959595959595959595959cd59595959595959595959595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959591c1c1c1c1c1c1c1c
-1c1c1c595959595959595900005959590000590000595959595900005959595959595959
-595959595900005959590000595959595959595900005959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959303005050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505051c06595959595959595959595959300659595959595959595959595930301c1c
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595459595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959
-1c1c061c06060606061ca959595959595959590000595959000059595959595959590000
-595959595959595959595959590000595959000059595959595959590000595959595959
-595959595959595959595959595954595959595959595959595959055959595959595959
-5959595959595959cd595959595959595959595959595959595959595959595930300505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0505050505050505050505050606595959595959595959595959301c5959595959595959
-5959595930301cf159595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959ae060e0e0d0000060e0e0eae595959595959
-59595959595959591c065959595959595930305959595959595959000059595900005900
-005959000059000059590000000059595959595959000059595900005900005900005959
-000059590000590000590000595959000000005959000059590000595901015901015901
-015959595959595959595959595959595959595959595959595959595959595954595959
-595959593030050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050506065959595959595959595959593006
-59595959595959595959595930301c1c5959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959ae060e0e0d00001c0e0e
-0ed759595959595959595959595959590606595959595959593030595959595959595900
-005959590000590000590000590000005900005959000059595959595900005959590000
-590000005900005900005900005959000000590000590000595900005900005959000059
-590000590001015901015959595959595959595959595959595959595959595959cd5959
-595959595959595959595959303005050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050606303030303030
-303030303030301c30303030303030303030303030301c2e595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959ae06
-0e0e0d0000060e0e0eae59595959595959595959595959591c0659595959595959303059
-595959595959590000000000000059000059000059590000590000595900005959595959
-590000595959000059000059590000590000000059595900005959000059000059590000
-595900005900005900005959000059590000595959595959595959595959595959595959
-595959595959595959595959595959595959595930300505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0630303030303030303030303030303030303030303030303030303030301c1c59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595954
-595959595959ae060e0e0d00001c0e0e59d75959595459595959595959595959061c5959
-595959595930fa5959595959595959000059595900005900005900005959000059000000
-000000595959595959000059595900005900005959000059000000005959590000595900
-005900005959000059590000590000590000595900005959000159595959595959595959
-59595959595959595959595959595959595959595959595959595959fa301c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c2e1c2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e
-2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e
-2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e1c1c1c
-1c1c1c1c1c1c06060606060606060606060606060606061c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1cf15959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959cd59595959595959595959595959595959
-5959595959595959595959595959ae060e0e0d0000060e0e0eae59595959595959595959
-595959590606595959595959593030595959595959595900005959590000590000590000
-595900005900005959595959595959595900005959590000590000595900005900005900
-005959000059590000590000595900005959000059000059000059590000595900005959
-595959595959595959595959595959595959595959595959595959595959595959595959
-301c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c2e1c1c2e1c1c2e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c0606060606060606060606060606060606060606060606060606
-060606060606060606061c1c595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959ae060e0e0d00001c0e0e0ed75959
-595959595959595959595959061c59595959595959303059595959595959590000595959
-000059000059000059000000590000595900005959595959595900005900005959000059
-590000590000595900005900005959000059000059590000595959000059590000595959
-0000595900015959595959595959595959595959cd595959595959595959595959595959
-545959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959055959590559595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959ae060e0e0d00
-00060e0e0eae595959595959595959595959595906065959595959595930305459595959
-595959000059595900005900005959000059000059590000000059595959595959590000
-000000595900005959000059000059595900000000595900005959000000005959595900
-005959000059595900005959000059595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590559595905595959595959595959595959590559595959595959595959595959
-595959595959595959595959595905595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595459595959
-5959ae060e0e0d00001c0e0e0ed75959595959595959595959595959061c303030303030
-303030595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595905
-595959055959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959cd59595959595959595959595959cd5959595959
-59595959595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595905595959595959595959055959595959
-590559595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959ae060e0e0d00001c0e0e59d7595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959cd5959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595905595959595959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59fa30fa30fa30fa3030a930fa30fa30a93030a9595959595959ae060e0e0d0000060e0e
-0eae59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595905595959595959595959595959595959
-5959595959595959593030303030303030303030303030303030301c595959595959ae06
-0e0e0d00001c0e0e0ed75959595459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959593030050505050505053005050505050505061c
-595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959055959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595930300505050505051c3005
-0505050505051c06595959595959ae060e0e0d00001c0e2e59d759595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959055959590559595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505051c3030050505050505061c595959595959ae060e0e0d0000060e0e0eae5959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959303005050505051c1c30300505050505050606595959595959ae060e0e0d00
-001c0e0e0ed7595959595959595959595959595959595959595954595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595954595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595905595959595959595959595959
-595959595959595959595959055959595959595959595959595905595959595959595959
-59595959595959595959595959303005050505051c1c5930300505050505061c59595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd59595959595954595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595954
-595959595959595459595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959055959595959595959595959595959595959593030050505051c1c59593030050505
-05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959
-595954595959595954595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595459595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959545959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595905595959
-595959595959595959595959595959595959595959595959595959595930300505050506
-1c5959593030050505050606595959595959ae060e0e0d0000060e0e0eae595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505051c1c595959593030050505050606595959595959ae060e0e0d00001c0e0e
-0ed759595459595959595959595959595959595959595959595459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959593030050505061c59595959593030050505061c595959595959ae06
-0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595954595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959303005051c0659595959595930300505050606
-595959595959ae060e0e0d00001c0e0e0ed7595959595959595959595959595959595959
-595959595959595954595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959545959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595930300505061c5959595959
-595930300505061c595959595959ae060e0e0d0000060e0e59ae59595959595959595959
-595959595959595959595959595959595959595459595959595959595959595959595954
-595959595959595959545959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959040459595959595959595959595904045959595904045959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959045959595959595959595959595959595904
-595959595959595959595959595959595959595959595959595959595959595959545959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959080559595959
-595959595959595959595908045959595959595959595959595959080459595959595959
-595959595959595959595959595959590559595959595959595959595959595959303005
-1c065959595959595959303005050606595959595959ae060e0e0d00001c0e0e0ed75959
-59595959595959595959590303595903030303590303030303590303590303cd03030359
-cd0303595903035903030303035903030359595959545959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959045959595959595959595959595904595959595904595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959590459595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959b354085959595959595959595959595959cd
-045959595959595959595959595959595959595959595959595959595959595959595959
-5959595959303005061c5959595959595959593030050606595959595959ae060e0e0d00
-00060e0e0eae5959595954595959595959595959035959035959037f59037f59037f0359
-7f59035959037f5903597f037f03597f59037f59037f5903595959595959595459595459
-595959595954595459595959545959595954595959595954595459545959595959595959
-595959595959595959595959595959595959595959595959595905595959590404cd0459
-590404cd0404595959595959595959040404595904040459595959040459595959590459
-595959590459595959595959595959595959595959595959595959595959595959595959
-545959595959595959595959595959595959595959595959595959595959595959595959
-595959595959590404590459590459040459595959040459595959040404595959040459
-595904045959595959595959595904040404590404590459595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959590804cd08545908540408545959590804cd
-595959080404cd59590404595959080459595959595959595959592d04595959590804cd
-5959590804cd595904590804595959080459595908540408045959595959595959595959
-5959595959595959595959595930301c0630303030303030303030303005060659595959
-5959ae060e0e0d00001c0e0e0ed759595959595959595959595959590359590359590303
-5903595903035959595903035903595903595903590359035903595903037f0359595459
-595959595959595954595459595959595959595959595459595959595459595959595959
-59545959595959595959595959595959cd59595959595959055959595959595959595959
-5959cd045904590459590459cd04595959595959595904595959597f0459590459590459
-5904595959cd0459595959cd045959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595904cd04590459cd04595904595904595904595904cd
-595959595959045959595959045959595959595959597f0459597f04cd04590459595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595954045904590454590454
-5904595904595408595904cd595959595959045959545905085959595959595959595959
-045959590459540859590459590459590454045959590459cd04592d590459cd59595959
-595959595959595959595905595959595959595959303006303030303030303030303030
-3030061c595959595959ae060e0e0d0000060e0e0eae595959595959595959595959597f
-03595903595903590303595903590359595903590303595903595903590359037f035959
-035903035959595959595959595959595959595959595959545959595959595959595959
-59595959595959595959595959595959595959cd59595959595959595959595959595959
-595959595959595959595904590459045959045959045959595959595959590404595959
-04cd59045959040404595959595904595959595904595959595959595959595959595959
-595959595959595959595954595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959045904590459590459cd045959
-040404cd595959040459595959cd0459595904040459595959595959595959047f595904
-59047f045959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595904
-7f0459045959045959045959040404b35959590404595959595904595959040404595959
-595959595959595904cd5959045959045959045959595959040459595959040404595959
-540459595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959
-595959595959595903595903595903595903595903595903595903595903595903595903
-595903590359595903595903595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595904cd045904595904595904595959595959
-5959cd59590459590459590459cd04595904595959590459595959590459595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959597f0459045904
-59590459590459cd045959045959595959045959595904595904cd5904595959595959cd
-595959045959040459047f04595959595959595959595959595959595459595959595959
-595959595905595959595959595959595959595959595959595959595959055959595959
-595959595959590459045904595904595904cd59045959045959595959045959cd590459
-590459590459595959595959595959590459595904595904545904595904597f04590459
-59cd04595904595959045959595959595959595959595959595959595959595959595959
-593030060606061c1c061c061c0606060606061c595959595959ae060e0e0d0000060e0e
-0eae595959595959595459595959595959030359590303595903590303037f5903030359
-5903597f5903035959590359035959030359590359595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959045904590404595904
-045959595959595959590404045959040404590404595904045959590404040404590404
-040404595959595959595959595959595959595959595459595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959590459047f0404040404590404595904045959590404047f59590404040404590404
-590459595959595959595959040459045904590404595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959590559
-595959595959595959595959595959047f04590404040404590404595904045959590404
-045959590404040404590404cd04595959595959595904040404047f5904045959595904
-04595904047f040459595904045959590404040459595959595959595959595959595959
-59595959595959595930301c06060606060606060606060606300606595959595959ae06
-0e0e0d00001c0e0e0ed7595959595959595959595959595959597f59597f5959597f5959
-59595959595959595959595959597f595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959cd59597f0459595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959545959595959595959595959595959595959595959590559595959595959590559
-5959595959595959595959595959595959595959595959595959597f597f595959595959
-5959cd595959cd59595959595959597f5959595959595959595959595959595959595959
-597f595959597f595959595959595959595959597f595959595959595959595959595959
-595959595959595959595959595959595930300606595959595959595959595930300606
-595959595959ae060e0e0d0000060e0e59ae595959595959595959595959595959595959
-595959595959595959595959597f59595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590404595959590404040404045959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959597f595959597f59595959595959
-5959595959595959597f5959595959595959590404040404045959595959595959595959
-595959595954595954595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959590404040404
-0459595959595959595959595959595959595959595959595959595959595959595959cd
-595959595959595959595959595959595959595959595959593030060659595959595959
-5959595930300606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959
-597f59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5905595959595959595959595959595959595959595959cd595959597f59595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959cd59595959595959cd5959595959595959595959cd59595959595959597f59595959
-597f59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd5959cd59595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303006
-0659595959595959595959593030061c595959595959ae060e0e0d0000060e0e0eae5959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595459595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959597f5959cd5959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300606595959595959595959595930300606595959595959ae060e0e0d00
-001c0e0e0ed7595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59cd59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-5959595954595959595959595930300606595959595959595959592d3030060659595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd59595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959cd5959595959595959595959595959595959595959
-595959595959595959595959595959595459595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595954595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959545959303006065959595959595959595959
-30300606595959595959ae060e0e0d00001c0e0e59d75959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959cd5959595959595959595959595959595959
-595959595959595959595959595959595959595959055959590559595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959cd595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959055959595959595959595959595959595959593030061c595959
-595959595959592d3030061c595959595959ae060e0e0d0000060e0e0eae595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959cd595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959cd595959cd595959cd595959595959595959595959595959595959
-595959595959595959595959595959595959595959595905595959595959595959595959
-595959595905595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300606595959595959595959595930300606595959595959ae060e0e0d00001c0e0e
-0ed759595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595905
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959cd595959cd595959595959595959595959595959cd5959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959592d3030061c595959595959595959592d30300606595959595959ae06
-0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959cd595959595959595959595959
-59595959595959595959595959595959cd5959595959cd59595959595959595959595959
-595959595959595959595959595905595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959cd595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300606595959595959595959595930300606
-595959595959ae060e0e0d00001c0e0e0e4f595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959cd595959cd595959cd595959cd595959cd595959595959cd595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd5959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959cd595959595959595959595959595959595959595959cd
-59595959cd59595959595959cd5959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959592d3030061c59595959595959
-5959592d3030061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959
-5959595959cd59595959595959595959595959595959595959595959595959595959cd59
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959cd59595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595954595959595959595959595959595959595959
-595959595959595959595959595959595959595905595959055959595959595959595959
-5959595959595959595959595959595959595959595959595959cd595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303006
-06595959595959595959595930300606595959595959ae060e0e0d00001c0e0e0ed75959
-5959cd595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959cd59595959cd59595959
-59595959595959595959595959595959595959595959595959595959595959cd59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959cd595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-595959592d3030061c595959595959595959592d30300606595959595959ae060e0e0d00
-00060e0e0eae595959595959595959595959595959595959595959595959595959595959
-595959595959cd5959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959cd59595959cd595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd59595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959055959
-595959595959595959595959593030060659595959595959595959593030060659595959
-5959ae060e0e0d00001c0e0e0e4f59595959595959595959595959595959595959595959
-59595959595959595959595959595959cd59595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd59595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959cd59
-5959595959595959595959595959cd5959595959595959595959595959cd595959595959
-595959595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959592d3030061c595959595959595959592d
-3030061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-59595959cd59595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959cd5959595959
-595959595959595959595959cd59595959595959595959595959595959cd595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd59595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300606595959
-595959595959595930300606595959595959ae060e0e0d00001c0e0e0ed75959595959cd
-5959595959595959595959595959595959cd5959cd5959cd595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd59595959595959
-5959595959595959595959595959595959595959595959595959595959595959cd595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd59595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-2d3030061c595959595959595959592d30300606595959595959ae060e0e0d0000060e0e
-0eae59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959cd595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959590559595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd5959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300606595959595959595959595930300606595959595959ae06
-0e0e0d00001c0e0e0ed75959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959cd59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959595959cd
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959595459595959595959592d3030061c595959595959595959592d3030061c
-595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959cd595959595959595959
-595959cd5959595959595959595959595959595959595959595959cd5959595959595959
-5959595959595959595959595959595959595959595959595930300606303030a9303030
-3030303030300606595959595959ae060e0e0d00001c0e0e0ed759595959595959cd5959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959cd5959595959595959595959595959595959cd5959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959590559
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959592d30301c
-30303030303030303030303030300606595959595959ae060e0e0d0000060e0e0eae5959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd59595959595959595959595959cd595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd59595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c590e0ed7595959595959595959595959595959595959595959595903595959595959
-59595959595959595959595959595959595959cd59595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959cd5904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-5959595959595959595959595959595959cd595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959
-59035959595959595959595959595959595959cd59595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959cd5959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595904cd5959595959595959595959595959595959cd045959
-595959595959595959595959595959045959595959595959595959595959595959595959
-595959045959595959595959595959595959595959595959595959595959595905595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959055959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5904cd595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959
-595959595959595959035959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959cd5959595959595959595959
-595959595904595959595959595959595959595959595904595959595959595959595959
-59595959595959595959cd04595959595959595959595959595959595959595959595959
-595959595959595959cd59595959595959595959595959595959595959595959cd045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595905595959595959595959cd595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e59ae595959595959
-595959595959cd5959595959595959595903595959595959595959cd5959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959590404045959040404045959040459595959045904040459040404045959
-595959595959590404595904045904045959040404045959590404595959045904040459
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959cd5959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959cd5959595959595904595959595959595959595959595959595959
-59595959595959595959595959595959595959cd59595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c2e0e
-0ed7595959595959595959595959595959595959595959597f0359595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959cd5959595959595904cd5959595959045959cd5959cd0459595959045959
-59cd5904cd5959595959595959590459590459cd0459cd0459595904cd59595904cd5904
-5959cd0459cd595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959055959595959590559595959595959595959595959595959
-5959595959595959cd5959595959595959595959595959cd590459595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959cd59
-595959595959595959595959595959595959595959595959595959595959595959595459
-59595959595959595930300505050505050505050505050505050606595959595959ae06
-0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959
-59cd59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595904045959595904595959590404
-04595959cd045959595959045959595959595959595904cd5904595904595904cd595904
-59595959040404cd59595904595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959590459595959cd595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959055959590559595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c0e2e59d7595959595959595959595959595959595959
-595959595903595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959cd5959595959595959595959595959
-5959595959595959595959595959595959590559595959595959595959595959cd595959
-595959595959595959595959595959595904595959595959595959595959595959045959
-590459590404595904595959590459595959590459590459595959595959045959045959
-045959045959590459590459045959045959590459595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd04595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd045959595959595959595959595959595959595959595959595959cd595959
-595959595959595959595959595959595959cd5959595959595959595959595959595959
-595959595959595959595959595959595959595959595959543030050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959
-5959595959595959595959595903cd595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595904040459595959590404595904045904595904040404595959590404595959595959
-595959040459595959040459045959590404cd5959040459595904040404595959590559
-595959595959595959595959595959595959595959595959595959595959595959595959
-5904595959595959595959595959595959595959595959595959595959595959cd595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-5959595959595959595959595904595959595959cd595959595959cd5959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595459595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959
-595959595959595959595959595959595959595959035959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959cd595959cd595959cd595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959cd59
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959cd5959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0ed7595959595959595959595959595959595959595959595903595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59cd595959cd595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959cd5959595959595959595959595959595959595959595959
-5959595959595959cd5959040404040404cd595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959
-5903595959595959595959595959595959595959595959595959595959cd5959cd5959cd
-5959cd5959cd595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959cd5959cd5959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959cd5959
-595959595959595959cd5959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595905595959595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595959595959c8595959595959595959595959595959595959595959cd59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595904595959595959595959cd59595959
-5959595959595959595959595959595959595959cd595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959cd045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd0459cd595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e0e59d7595959595959
-59595959595959595959595959595959590359595959595959595959595959595959cd59
-5959595959595959595959595959595959595959595959595959595959595959595959cd
-595959595905595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd04595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595901015959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595459595959595959595959
-5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eae59595959595959595959595959595959595959595959590359595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959cd5959595959595959595959595959
-5904595959595959595959595959595959595959595959595959595959595959cd595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590100010159595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595905595959055959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-59595959cd59595959595959595959595959595959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-5959595959595959593030050505050505058d050505050505050606595959595959ae06
-0e0e0d00001c0e0e0e4f59595959595959cd595959595959595959595959595959035959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-5959cd5959595959595959595900000101010159cd045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959055959595959595959595959590559595959595959590559
-59595959cd5959595959595959595959cd59595959595959595959595959595959045959
-5959595959595959595959595959595959595959595959595959cd595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-54595959595959595959595959595959593030050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e0e0ec8595959595959595959595959595959595959
-5959595959035959595959595959595959cd595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595901010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101000000000000000001010104595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959545959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c0e0e0e4f59595959595959595959
-59cd5959595959595959595959c859595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595905595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-5959595959595959595959595959595959595c5959595959595c59595959595c59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595900000000000059
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959540859595959595959595959595959595959595959595959
-595959595959595959595959595959cd5959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595930fa05
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0ed75959
-5959595959595959595959595959595959595959590359595959595959cd595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590000005959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959cd5959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590559595959595959595959595959595959055959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c0e0e0ed7595959595959595959595959595959595959595959595903595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959cd595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595900005959595959595904595959595959595959595959595959595959
-595959595959595959595959595959590559595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-5959cd595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959cd595959cd59595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595904cd595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595905595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005ef0505050505050505050505
-05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959
-595959595959595959c85959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959cd59595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd045959595959595959595959595959595959595959595959595959
-59595959595959595959595959cd59595959595959595959595959595959595959595959
-595959595959595959595959595959595954595959595959595959595930300505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e59ae595959595959
-595959595959595959595959595959595903595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959cd5959595959595959595959595959045959cd595959595959595959595959595959
-59595959595959595959595959cd59595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595459
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e
-0ed759595959595959595959cd5959595959595959595959590359595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-59595959595959595959cd5959595959595959595959595959595959595959595959597f
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959590559595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-5959cd5959cd595959595959595959595959595959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-5959595959595959593030050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595905595959595905595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300505050505050505058d05050505050606
-595959595959ae060e0e0d00001c0e0e0ed7595959595959595959595959595959595959
-5959595959c8595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959cd59595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959cd590459cd59595959
-cd5959595959595959595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959055959595959595959595959cd59595959595959595959595959595959595959
-59595959590459595959cd5959595959595959595959595959cd59595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595930fa050505050505050505
-0505050505050606595959595959ae060e0e0d0000060e0e59ae59595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959597f0459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5904595959595959595959cd595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959cd59595959590459595959595959595959595959595959595959595959
-59cd59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959545959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959
-595959595959595959595959595959595959595959035959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954085959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959545959595959
-59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0eae595959595959595959595959595959595959595959595903595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959595959595905
-595959595905595959595959590559595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e0e59d7595959595959595959cd595959595959595959595959
-59c859595959595959595959595959595959595959595959595959595959595959595959
-595959595905595959595959595959595959595959595959595959595959595959055959
-595959595959595959595959595959595959595959595959595959cd5959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595930fa05050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959
-595959595959595959035959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959597f045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595904cd59
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959
-595959595959595959595959595959595903595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959cd5959595959595959
-cd5959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595905595959595959595959595959590559595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959595959595959595459595959595959595959595959595959
-593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0ed759595959595959595959595959595959595959595959590359595959595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959045959595959590459595959590404595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959055959595959595959595959595959595959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd0459595959595959595959
-5959595959595959595959595959595959cd595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505050505050505050606595959595959ae06
-0e0e0d00001c0e0e0e4f5959595959595959595959595959595959595959595959c85959
-595959595959595959595959055959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595905595959595959
-5959595959595959595959cd595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595904595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954085959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930fa050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959
-595959595903595959595959595959595959595959595959055959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959597f04595959595959595959595904590404595959
-590404595904590459040459595959595959040404045959590404595959590404045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959cd595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959
-59595959595959595959595959c859595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-59590459cd04595904595904590459045904595959595959595959045959595959590459
-595904595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959590559595959595905595959595959
-05595959595959595959595905595959595959595959cd59595959595959595959595959
-5959595959595959595959595904595959595959595959cd595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595954595959595959595959303005
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0ed75959
-5959595959595959cd595959595959595959595959035959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959055959595959595959595959
-5959595959595959595959595959595959595959cd595959595959595959595959045959
-595959595959595959590459590459590404047f59045904590459595959595959595904
-595959595959045959590459590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959cd595959595959595959595959595959595904cd59595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959593030050505050505c005050505050505050606595959595959ae060e0e0d00
-001c0e0e2e4f5959595959595959595959595959595959595959595959c8595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595905595959595905595959595959595959
-59595959595959595959595959595959595959cd59595959595959595959595959595959
-595959595904595959595959595959595959045959047f59045959045959047f04595959
-595959595959590459590459597f04595959045959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959cd04595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959cd5959595959595959595959595908595959595959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595930fa050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959cd0459595959595959595959590404045904045959040459
-5959045904595959595959597f59595904047f5904040404047f590404cd045959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959590559595959
-595959595959595959595959590559595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e590ed75959595959595959595959595959
-5959595959595959590d59cd595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959cd595959595959595959045959cd5959595959595959597f59
-59595959595959597f59595959595959595959595959597f59595959595959cd59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959cd595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595954595959595959595959595959595959595930300505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959
-595959595959595959595959595959595903595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-cd5959595959595959595959597f59595959595959595904040404040459595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-595959595904cd5959595959595959595959595959595959595959590559595959595959
-595959595959595959595959595959595905595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595954595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e
-0e4f59595959595959595959595959595959595959595959590359595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595905595959595905595959595959595959595959
-59595959cd59595959595959595959595959595959595959595959595959595959595959
-59045959595959595959595959595959595959595959595959597f5959597f597f597f59
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd595959cd595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959cd0459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930fa050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0ec85959595959595959595959595959595959595959595959035959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959590559595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd59595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd595959cd595959cd595959cd595959cd5959595959595959595959
-5959595959595959595959595959595959595959590459595959cd595959595959595959
-595959595959595959595959595959595959595959595905595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959590459cd
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c0e0e0e4f595959595959595959595959595959595959
-5959595959c8595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959055959595959595959595959595959cd59595959595959595959595959
-595959595959595959595959595959597f04595959595959590000595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-cd5959595959595959595959595959595959595959595959595959595408595959595959
-595959595959595959595959595959595959595959595959595959595959595959590559
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e0e0eef59595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959010000005959
-595959597f59595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959cd595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c2e590e4f5959
-595959595959595959595959595959595959595959c85959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595905595959595905595959595959595959595959595959595959595959
-59595959595959595959cd59595959595959595959595959595959595959595959045959
-000000000000595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595905595959595959595959595959
-595959595959595959595959595959595905595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959595959595959
-595959595959cd5959595959595959595959595954085959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959595959595959545959595959595959545959
-595959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0ed759595959595959cd59595959595959595959595959595903595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595900000000000000000000000000000000000000000000010000010000010000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000100010000010001000100010001000100010000010000010001010000010001010101
-010101010101010101010101010100000004595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959055959595959590559595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959
-590d59595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959055959595959595959595959595959595905
-5959595905595959595959595959595959595959595959595959595959cd595959595959
-595959595959595959595959590459590000000000595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959055959595959595959595959595905
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595959595959035959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595900000000595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595904cd59595959595905595959595959595959595959595959595959
-595959595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e0e0e4f595959595959
-5959595959595959595959595959595959c8595959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-0559595959590559595959595959595959595959595959595959595959595959595959cd
-595959595959595959595959595959595959595959595959595959595904595959595959
-590000595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959590559595959595959595959595959595959595959595959055959595959
-5959595959595959595959595959595959595959595959cd595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595954595959595959
-5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eef59595959595959595959595959595959595959595959590359595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595904cd595959595959590559595959595959595959595959
-595959595959595959595959055959595959595959595959595959595959055959595905
-595959595959595959055959595905595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505050505050505050606595959595959ae06
-0e0e0d00001c2e590e4f59595959595959595959595959595959595959595959590d5959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959595959595959cd5959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959592d085959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959055959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595954085959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959593030050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959
-595959595903595959595959595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959cd5959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595459595959595959595954595959593030050505050505050505
-8d05050505050606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959
-59595959595959595959595959c859595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959055959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959055959595959
-595959590559595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959cd5959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595930fa05
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0ed75959
-595959595959595959595959595959595959595959035959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959590559595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595904cd59595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959cd59595959595959595904cd59595959595959595959595959
-595959595959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c2e592e4f5959595959cd5959595959595959595959595959595959c8595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959590559595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959597f595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959
-590359595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959055959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959055959595959595959055959595959595959595959595959
-595959055959595959595959590559595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959055959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959
-595959595959595959c85959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959cd5959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959545959595959595959592d085959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595954085959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930fa0505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959
-595959595959595959595959595959595903595959595959595959595959595959595959
-595959595959595959595959595959595959590559595959595959590559595959590559
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595905595959595959595959595959cd59595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e
-0ed75959595959595959595959595959595959595959595959c859595959595959595959
-595959595959595959595959055959595959595959595959595959595959055959595959
-595959595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595459
-595959595959595959595959590459595959595959595959595959595959055959595959
-595959595959595959595905595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595905595959595959595959595959595959595959590559595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-5959595459595959593030050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959055959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959597f59595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595904cd59595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-055959595905595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959055959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c0e0e0e4f595959595959595959595959595959595959
-5959595959c8595959595959595959595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959cd59595959595959cd595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595954
-595959545954595954595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595905595959595959595959
-59595959595959595959595959595959595959595959595959595959595959cd59595959
-59595959cd04595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5905595959595959595959595959595959595959595959595930fa050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959045959595959595959595959595959595959595959595959595959595959595959
-595959590459595959045959595959595959595959595959595959040459595959595959
-59595954595959040459595959595959595959595959595959595959cd59595959595959
-590459595959595959595959595905595959595959055959595959595959595959595959
-595905595959595959595959055959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595905595959595959595959
-595959595959595959595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959
-595959595959595959595959595959595959595959c85959595959595959595959595959
-595959595959595959595959595959595959595959595959595959590559595959055959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959cd59595959595959597f045959
-595959595959595959595904595959595959595959595959595959595959595959595959
-59595959595959595959595959595959590459595959595959595459595954595459597f
-045954595954595959595959595959590459595959595959595959595959595959595959
-595959595959595954085959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-055959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954085959590559595959595959595959
-595959595959595959595959595905595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595954
-59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0ed7595959595959595959595959595959595959595959595903595959595959
-595959595959055959595959595959595959595959595959595959590559595959595959
-595959595959595959595959595905595959595959595905595959595959055959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5459595959047f5959595959595959595959040404045959045904040404045904045959
-595959595904590459040459045904040459590404595959040404045959590404595959
-595959595959595904595959590404595959590404595959045904045959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959055959595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959590559595959595905595959595959595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595930300505050505050505058d0505050505060659595959
-5959ae060e0e0d00001c2e592e4f59595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959045959595959595959595959597f04597f59597f04597f
-597f04597f0459595959595959045904590459597f0459597f59597f045959597f04597f
-5959047f5904595959595959595959590459595904595904595904595904595904590459
-595959595959595959595959595959595959595959595959590459595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-59595959595959595959cd5959595959595959cd59595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595905
-59595959595959595959595959595959595959595930fa05050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595959595959035959595959595959595959595959595959595959595959595959
-595959595959595959595959055959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd59595959595959595959595959595959045959595959595959595959595904
-59595959590459595959045959045959595959597f047f047f0459595904595959595959
-0459595959045959595904040459595959595959595959590459595904597f0459590459
-7f59597f0404595959595959595959595959595959595959595959595959595959045959
-595959595959595959595905595959595959055959595959595959595959595959590559
-595959595959595959595959595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595459595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959
-5959595959595959595959595959595959c8595959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-595959595905595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959597f04595959595959
-5959595959597f045959045959045959595904597f045959595959595959045904595959
-5904595959595959045959597f0459590459045959045959595959595959595904595959
-045959045959045959045959047f04595959595959595959595959595959595959595959
-595959cd5904595959595959590559595959595959595959595959595959055959595959
-595959595959595959595959595959595959595959595959595905595959595959595959
-595905595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959cd5904595959595959055959595959595959595905
-595959595905595959595959595959595905595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eae59595959595959595959595959595959595959595959590359595959595959595959
-595959595959595959595959595959595959595959595959055959595959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959590404595904040404595959040459595959595959
-5959047f0459595904040404595904040404045959590404597f59040459595959595959
-595904040404045959040459595959040459590404590404595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595905595959595959595959595905595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595459595930300505050505050505050505050505050606595959595959ae06
-0e0e0d00001c0e0e59d75905595959595959595959595959595959595959595959c85959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959055959595959595905595959595959595959595959595959595905595959
-595905595959595959595959cd5959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959597f59597f597f5959595904
-7f5959595959595959595959595959597f597f595959597f597f59595959595959595959
-7f595959595959595959597f597f595959597f5959595959595959595959595959595959
-595959595959595959595959595959595959595954085959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595954085959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959055959595959595959595959595959595959055959
-595959595959595959595959595959595930fa050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e0e0eef595959595959595959595959595959595959
-595959595903595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-595959595959595959595959595959597f04595959595959595959595959595959595959
-595959595904045959595904040404040459595959595959595959595959595959595959
-595959595959595959595904040404040459595959595959595959595959595959595959
-5959595959595959cd595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595905595959
-595959595959595959055959595959595959595959595959595959595905595959595959
-055959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595905595959595959590559595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c0e2e59d759595959595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-59595959595959595959595959597f5959595959597f59597f5959595959595959595959
-59595959595959595959595959595959595959595959597f595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959590559595959595959595959595959595905595959595959590559
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59cd59595959595959595959590459595959595959590559595959595959055959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eae5959
-595959595959595959595959595959595959595959035959595959595959595959595959
-595959595959595959595959595959595959595959590559595959595959595959055959
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595904cd59595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595904cd59595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c0e0e0ed75959595959595959595959595959595959595959595959c8595959595959
-595959595959595905595959595959590559595959595959595959595959595959595959
-595959595959595959595959595959595959595959595905595959595905595959595959
-5959595959595959595959cd595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959cd595959595959595959
-595959595959595959595959595959595408595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959055959595959595959
-055959595959595959595905595959595959055959595959595959595959595959595959
-59cd59595959595959595959595959595959595901015959595959595408595959595959
-595959590559595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595930fa050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595959595959595959595959055959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959cd0459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959cd59595959cd595959595959595959590459595959595959595959
-595905595959595959595959595959595905595959595959595959595959055959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959cd59595959595959590000000159595959
-590459595959595959595959595959595959595959595959595959590559595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e0e0e4f5959595959595959595959595959
-595959595959595959c85959590559595959595959595959595959595959595959595959
-595959595959595959595959595959055959595959595905595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd59595959cd595959595959595959045959cd5959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959597f5959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959055959595959595959595959595905595959
-595959595959595959590559595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959cd5959595959595959595959595959
-590000000000005959045959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959545959595930300505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e0eae595959595959
-595959595959595959595959595959595903595959595959595959055959595959595905
-595959595959595905595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595900000001000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000100010001000001000100010101000101010001000100
-000000000001010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010100000000000000000000000004595959595959595959595959595959595959
-595959590559595959595959595959595905595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e
-0ed759595959595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595905595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959045c59f9595cf95cf95cf95cf95cf95cf95cf9590e0ef9
-5cf95cf95cf95cf959f1590e0ef95cf95cf95cf95cf959f1590e0ef95cf959f1590e0e5c
-f95cf95cf95cf95cf95cf95cf95cf95cf95cf95cf95cf95cf95cf959f959f9595c59f959
-5c595c595959595959595959595959595900000000000059590459595959595959595905
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959590559595959595959595959595959595959595959595959595959595959
-59595959595959595930fa050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959
-595959595959595959595959595959595959590559595959595959595959590559595959
-595959595959055959595959595905595959595959595959595959595959595959055959
-5959595959595959595959595959595959595959595959cd595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959000000595959595904cd59
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300505050505050505058d05050505050606
-595959595959ae060e0e0d00001c0e590e4f595959595959595959595959595959595959
-5959595959c8595959595959595959595905595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595900005959
-595959595908595959595959595959595959595959590559595959595959595959595905
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595905595959595959595959595959595959595959593030050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e2e0eae59595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959540459595959595959595959595959055959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0e4f5959
-595959595959595959595959595959595959595959c85959595959595959595959595959
-590559595959595959595959595959595959595959595959595959595959595905595959
-595959595905595959595905595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959545959595959595959
-545959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0eef595959595959595959595959595959595959595959595903595959595959
-595959595959595959595959595959590559595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595905595959595959595959590559595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e0e0e4f59595959595959595959595959595959595959595959
-590559595959595905595959595959595959595959595959595959595959595959595959
-595959595959055959595959595959055959595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-540859595959595959595959595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595959595959035959595959595959595959595959595959590559595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959592d045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e0e0e4f595959595959
-5959595959595959595959595959595959c8595959595959595959595905595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595905595959595959595959595905595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959597f04595959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595954595959
-5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eae59595959595959595959595959595959595959595959590359595959595959595959
-595959595959595959595959595905595959595959595959595959595959595959595959
-595959595959590559595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595905595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505050505050505050606595959595959ae06
-0e0e0d00001c2e592e4f5959595959595959595959595959595959595959595959c85959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959cd59595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595954085959
-055959595959595959595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959593030050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e0e0eae595959590559595959595959595959595959
-595959595903595959595959595959595959590559595959595959595959595959595959
-595959590559595959055959595959595959055959595959595959595959595959595959
-595959595959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959055959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959
-595959595959595959595959590559595959595959055959595959595959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959cd5959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959055959595959595959595959595959
-590559595959595959595959595959595959595959595959595959595959595959595959
-59595905595959595959595959595959595959595459595959595959595959595930fa05
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eae5959
-595959595959595959595959595959595959595959035959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959597f59595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959597f045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959
-595959595959595959595959595959590559595959055959595959595959595959595959
-595959595959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959597f5904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959545959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595459595959595959595959595408595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959055959595959595959595959595959595959055959595959
-595959595959595954595959593030050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959
-590359595959595959595959595959590559595959595959595959595959595959595959
-595905595959595905595959595959595959055959595959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959047f595959595959595959595959595959595959595959
-595959595959595959595959595959045959595959595959595959590404595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595459595459595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-2d0459595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595930300505050505050505058d050505
-05050606595959595959ae060e0e0d00001c592e59d75959595959595959595959595959
-595959595959595959c85959595959590559595959595959595959595959595959595959
-595959590559595959595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959597f04595959595959595959595959
-7f0459595959595959595959595959595959595959595959595959595959595959545959
-59545959595959595959595959595959595954595959595959595959595959597f045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959590559595959595959595959595959
-595959595959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930fa0505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e0eae595959595959
-595959595959595959595959595959595903595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959545959595904595959595959
-595959595959590404590459045904040459040459595904590404595959040404045959
-590404595959590404045959595959595959595959595959595959595959595959595459
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-545959595959595959595959595959595904595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e
-0ed759595959595959595959595959595959595959595959590559595959595959590559
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959590559595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-7f0459595954595959595459597f04597f047f597f04597f597f597f0459597f04597f04
-59597f047f59597f04597f04595904597f04595959595959545959595459595954595959
-545959545959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959597f0459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959540859595959595959595959
-595959595905595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959593030050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959590559595959590559595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959590459590459595904595959590404
-0459595904595904595959045959595904040459597f0459590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959592d045959
-595959595959595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c0e0e0e4f595959055959595959595959595959595959
-5959595959c8595959595959595959595905595959595959595959595959595959595959
-595905595959590559595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595905595959cd59595959595959cd5959595959
-595959595959595959595959595959595904595959595959595959595959045959045959
-590459595904597f0459597f04595904595959045959045904597f045959045959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959545959595930fa050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e0e0eef59595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959040404595904040404595904045904590404047f0404597f590404597f59040459
-595959040459045959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5904cd595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e59d75959
-595959595959595959595959595959595959595959c85959595959595959595959595959
-055959595959595959595959595959595959595959595959595959590559595959595959
-595959595959595959595905595959595959595959055959595959595959595959595959
-595959595959595959595959595959cd5959595959595959595959595959595959045959
-5959595959595959595959597f0459597f597f595959597f595959595959595959595959
-5959595959595959595959597f59cd595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959595959cd
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954085959055959595905595959595959
-595959595959595905595959595905595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0eae595959595959595905595959595959595959595959595903595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959055959595959590559595959595959595959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959595959595959
-595959597f04595959595959595959595959040404595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959cd595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959592d04595959595959
-595959595959590559595959595959595959595959595959595959590559595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595904595959595959595959595959597f5959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959cd5959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959cd595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959595959595959595959590559595959595959
-59595959595959595959595959595959545959595930fa05050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595959595959035959595959595959595959595959595959595959595959595959
-595959595905595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-5959595959cd595959cd5959595959cd59595959cd595959595959595959cd595959cd59
-5959cd595959cd5959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959
-5959595959595959595959595959595959c8595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959055959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-590000595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904cd595959595959595959595959595959595959595959595959595959cd59
-5959595959595959595959595959595959595959cd5959cd5959cd5959cd5959cd595959
-cd59595959595959595959595959595959595959595959cd595959595959595959595959
-595959595959595959595959595959595408595959595959590559595959595959595959
-055959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eae59595959595959595959595959595959595959595959590359595959595959595959
-595959590559595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959000000005959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959cd59595959595959595959595959595959595959595959cd59
-59595959595959cd595959cd5959595959595959595959592d0459595959595959595959
-595959590559595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505058d05050505050606595959595959ae06
-0e0e0d00001c0e0e0e4f5959595959595959595959595959595959595959595959c85959
-595959595959595959595959595959595959595959595959595959595959595959590559
-595959595959595959595959595959595959055959595959595905595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959597f59045959000000000000595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959cd595959595959cd595959cd5959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959cd59595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595459595959595959595959595930fa050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e0e0eef595959595959595959595959595959595959
-595959595903595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595900000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000001010000000000
-010100000101000000000000010000000100000100000100000000010000010001010101
-010101010101000101010100010101010001000100010101010100010101000101010001
-010100010001000101010101010101010101010101010101010101010100010000010000
-010000000100000100010001000100000001010000000100010000010000000000000000
-000000000004cd5959595959595959590559595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c2e590e4f59595959595959595959
-595959595959595959595959590559595959590559595959595959595959595959055959
-595959595959595905595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959cd5959595959595959cd59595959595959590459590000000000595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595459595959303005
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eae5959
-595959595959595959595959595959595959595959c85959595959595959595905595959
-590559595959595959595905595959595959595959595959590559595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959590559
-595959595959595959595959595959595959595959595959595959595959595959045959
-595900000000595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c0e0e0ed75959595959595959595959595959595959595959595959c8595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959590000595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595408595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595930fa050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0ed759595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595905595959590559
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c2e592e4f5959595959595905595959595959
-595959595959595959c85959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959055959595959590559595959595959
-055959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e0eae595959595959
-595959595959595959595959595959595903595959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959cd59595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e
-0ed759595959595959595959595959595959595959595959590559595959595959595959
-590559595959595959595959595959595959055959595959595959595959055959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-59595959cd59595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959540859595959595959595959
-595959595959595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959590559595959595959595959595959595959595959
-59595959545959595930fa050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959
-595959595905595959595959595959595959595905595959595959595959595959055959
-595959595959595959595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959cd5959595959595959595959595959595959
-59cd59595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959592d045959
-595959595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c2e592e4f595959595959595959595959595959595959
-5959595959c8595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959590559595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959597f04595905595959595959595959595959595959595959055959595959055959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959
-595959595959595959595959595959595959595959c85959595959595959595959595959
-595905595959595959595959595959595959595959595959595959595959595905595959
-595959055959595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954085959595959595959595959595959
-595959595959595959595959595959055959595959590559595959595959595959595959
-590559595959595959595959595959595959595959595959595959595959595959595959
-545959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0ed7595959595959595959595959595959595959595959595903595959595959
-595959595959595959595959595959595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-545959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595905595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595930300505050505050505058d0505050505060659595959
-5959ae060e0e0d00001c0e0e0ed759595959595959595905595959595959595959595959
-590559595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959590559595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959597f590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959
-595959595959595959035959595959595905595959595959595959595959595959055959
-595959595959595959595959595959595959595959595905595959595959595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959055959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590559595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e0e0e4f595959595959
-5959595959595959595959595959595959c8595959595959595959055959595959595959
-595959595959595905595959590559595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959cd595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959597f04595459595959595959595959595959595959595959595959595959595959
-595959595959595954595959595954595459595459545954595459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595408595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eef59595959595959595959595959595959595959595959590359595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959590a0a595959595959595959595959595959595959
-595959595959595959595959595959595959595959590a595959590a5959595959595959
-595959595959595959595959595959595459595959595959595959595959595959595959
-595959595959595959595959590459595954595459545959545954595954595959595459
-545959545959595459595954595959595959595959595959595959595959595959595959
-595954595959595959545959595959595959595959595959595959595959595959595959
-5959595959595959595459595959595959595959595959592d0459595959595959595959
-595959595959595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505050505050505050606595959595959ae06
-0e0e0d00001c0e2e594f5959595959595959595959595959595959595959595959c85959
-595959595959595959595959595959595959595959595959595959595959595905595959
-595959595905595959595959055959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959cd5959595959595959
-595959595959595959045959595959595959595959595959590a59595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959590a
-595959595959595959595959595459595959595959545959595959595959595959595959
-59595959595959595959595959595959595959597f045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959545959595959595959595959545959595959595459595959
-59595459595959595959595959595959595959595959595959595959595959597f045959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595954595959593030050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e592eef595959595959595959595959595959595959
-595959595903595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595905595959
-595959595959595959595959595959595905595959595959595959595959595959595959
-5959595959595959595959597f59595959047f5959595959595959595959590a0a0a5959
-590a0a595959595959595959590a0a595959590a0a59590a0a590a59590a0a590a595959
-590a0a5959590a0a0a0a5959595954595959595959595959595959595959595959595959
-595959595959595959595459595959595959545959545959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959545959545959595959595959595959595959595959
-595959595904595959595959595959595959055959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c0e2e594f59595959595959595959
-595959595959595959595959590559595959595959595959055959595959595959055959
-595959595959595959595959595905595959595959595959595959595959595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-59595959595959595959595959595959595959595959597f590459595959595959545959
-59590a59590a59590a59590a59595959545959590a59590a59590a59590a590a590a590a
-590a590a590a595959590a595959590a5959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959540859590559595959595959595959595959595959595959
-595959595959590559595959595959595959595959595959595959590559595959595959
-05595959595959595959595959595959595959595959595959595959595959595930fa05
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eef5959
-595959595959595959595959595959595959595959035959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959055959595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959590a59590a59590a59590a59595959595959590a59595959590a59
-590a590a590a590a590a590a590a595959590a595959590a595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959592d045959595959595959595959595959
-595959595959590559595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959597f045954595959595959595959590a59590a59590a59590a5959595959595959
-0a59590a59590a59590a590a590a590a590a590a590a595959590a595959590a59590a59
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-055959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595904595959595959595959595959590a0a590a59590a0a59
-5959595959595959590a0a595959590a0a59590a590a590a0a0a590a590a0a590a0a0a0a
-0a5959590a0a595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959cd59595959595959595959
-590459595959595959595959595959595959590559595959595959595959595959590559
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e2e59d75959595959595959595959595959
-595959595959595959c85959595959595959595959590559595959595905595959595959
-595959595959595959595959055959595959595959055959595959595959595959595959
-055959595959595959595959595959595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595954085959595959595959595959055959595959595959595959590559
-595959595959595959595905595959595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959545959595930fa0505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e592ed7595959595959
-595959595959595959595959595959595903595959595959595905595959595959595959
-595959595959595959595959595959595905595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959cd59595959595959595959595959595904595959595959
-59595959595959595959595959595959590a0a0a0a0a0a59595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd04595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959592d04595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e2e
-59d759595959595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959590559595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959590559595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959593030050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959c85959
-595959595959595959595959590559595959595905595959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959597f045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595905595959
-595959595959595959595959595959595930300505050505050505058d05050505050606
-595959595959ae060e0e0d00001c0e2e59d7595959595959595905595959595959595959
-5959595959c8595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595905595959590559595959590559
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595408595959595959590559595959590559595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959545959595930fa050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e592ed759595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-cd5959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd5959cd59595959
-5959595959595959595959592d0459595959595959595959595959595959595959595959
-595959595959590559595959595905595959595959595959595959595959595959595959
-595959595959595959595959595959590559595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e2e59d75959
-595959595959595959595959595959595959595959c85959595959595959590559595959
-595959595959595959590559595959590559595959595959595959595959055959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959cd5959cd595959cd5959595959595959595959595959cd595959
-59595959595959597f045959595959595959595959595959595959595959595959595959
-5959cd59595959595959595959595959595959595959595959cd59595959595959cd5959
-595959595959cd595959cd59595959595959cd595959595959595959595959cd59595959
-59595959595959595959595959595959595959597f045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0eae595959595959595959595959595959595959595959595903595959595959
-595959595959595959590559595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd04595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959cd595959cd595959cd595959595959595959595959595959cd595959cd5959
-5959595959595959595959595959595959047f5959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-cd5959595959595959cd595959595959595959595959cd59595959595959cd5959595959
-5959595959595959595959595959595959cd595959595959595959595904595959595959
-595959595959595959595959595959055959595959595959595959595959595959055959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e2e59d759595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959590559595959595959595959595959055959595959595959
-595959595959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-540859590559595959595905595959595959595959595959590559595959595959055959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595930fa05050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959
-595959595959595959035959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595905595959590559595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-59595959595959595959cd59595959595959595959045959595959595459595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959cd595959595959cd595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e2e59d7595959595959
-5959595959595959595959595959595959c8595959595959595959595959595959595959
-595905595959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595459595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959cd59
-595959597f04595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959590559
-595959595959595959595959595959595959595959595959595959595959595954595959
-593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eef59595959595959595959595959595959595959595959590359595959595959595959
-595959595959590559595959595959595959595905595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-590459595959595959595459595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959590559595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505050505050505050606595959595959ae06
-0e0e0d00001c0e2e594f5959595959595959590559595959595959595959595959c85959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-055959595959595959595959595959595959595959cd5959595959595959595959595959
-595959595959597f59045959595959595959595959595959545959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595954085959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930fa050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e592eef595959595959595959595959595959595959
-595959595903595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959590559595959595959595959595959055959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959545959595959595959
-595959595959595959595959595959595959595959595959595959595959595954595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904cd59595959cd
-595959595959cd595959595959595959595959595959595959595959595959595959cd59
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959592d04595959595959595959055959595959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c2e590e4f59595959595959595959
-595959595959595959595959590559595959595959595905595959595959595959595959
-595959595959595959595959590559595959595959595959595959055959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959597f0459595959595959595959
-595459595959595459595959595959595959595459595959595459595959595959595959
-545959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959590559
-595959595959055959595959595959595959595959595959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959595959303005
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e2e0eae5959
-595959595959595959595959595959595959595959035959595959595959595959595959
-055959595959590559595959055959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959545959545959545959595959545959595959
-545959545959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959590459595959595959595959595959595959cd595959595959595959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505058d05050505050606595959595959ae060e0e0d00
-001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959
-595959595959595959595959595959595959595959595959595959595959595959590559
-595959595959595959595959595959595959595959590559595959595959595959595959
-59595959595959595959595959595959595959595959cd59595959595959595959595959
-595959597f04595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595459595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959cd5959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959cd59595959595959595959595408595959595959
-595959595959595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959055959595959
-5959595959595959545959595930fa050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e2ed759595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959cd5959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-2d0459595959595959595959055959595905595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e0e59d75959595959595959595959595959
-595959595959595959c85959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959cd045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959cd595959595959595959595959595959595959595959595959595959595959
-59595959cd5959595959cd5959595959595959595959cd59595959595959595959595959
-59595959595959597f045959055959595959595959595959595959595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e2ed7595959595959
-595959595959595959595959595959595903595959595959595905595959595959595905
-595959595959595959055959595959595959055959595959590559595959055959595905
-595959595959595959595959595959595959595959595959595959595959595905595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959cd59
-5959595959cd595959595959595959595959595959595959595959595959595959595959
-59595959590459cd59595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e
-59d759595959595959595959595959595959595959595959590559595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-7f0459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959cd5959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd5959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd59595959595959595959595959595959595959540859595959595959595959
-595959595959590559595959595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595954595959
-59595959595959595930fa050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e2ed75959595959595959595959595959595959595959595959035959
-595959595959595959590559595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959590559595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959545959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c0e0e59d7595959595959595959595959595959595959
-5959595959c8595959595959595959595959595959595959595959595959595959595959
-595959595959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959cd5959595959595959595959597f04595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959cd59595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959055959595905595959595959595905595959595959595905
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954595959593030050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595905595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959040459595959595959595959595959595959595959
-5959595959595959595959595959cd045959595959590459595959590404595959595959
-595959595959595959595959595959595959cd5959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e2e59d75959
-595959595959595959595959595959595959595959c85959595959590559595959595959
-595959595959595959595905595959595959595959595959595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959597f045959
-595959595959595959595959595959595959595959595959045959595959595959595959
-595959595959595959595959595959595959595959595904595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd595959595959595959595954085959595959595959595959595959
-595959595959595905595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0ed7595959595959595959595959595959595959595959595903595959595959
-595959595959590559595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-595959595904595959595959595959595959045904040459590404595959595904595959
-59040459595904045959595959040404cd59590404595959595959595959040404045959
-59040459595959040404cd59595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959592d04595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959590559595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e2e59d759595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959595959595959595959055959
-595959595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959595959595959
-5959595959595959595959597f04595959595959595959595959590459cd59590459cd04
-5959597f0459595904595904595959cd04595959047f595959cd04595904595959595959
-5959cd045959595959cd045959cd04595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-7f0459595959595959595959595959595959595959595959595959595959595959590559
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0eef5959595959055959595959595959
-595959595959595959c85959595959595959590559595959595959595959595959595959
-595905595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959047f59595959595959595959595904
-595959590404045959595959045959cd0404047f59590404045959595904045959590404
-045959cd5959595959595904595959595959045959590459590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-59cd595959595959595959595959595959cd595959cd5959cd5959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959055959595959595959595959595959595905
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e2e594f595959595959
-5959590559595959595959595959595959c8595959595959595959595959595959595959
-595959055959595959595959595959595959595959595959590559595959055959595959
-595959595959595905595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959590459595959045959045959595904595959045959045904597f04595959
-595959045959047f59045959595959595959590459590459595904595959045959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd04595959595959595959cd5959cd5959cd59595959595959595959595959cd
-5959cd595959cd595959595959cd595959cd5959595959595959595959595959cd595959
-5959595959595959595959595959595959595959cd595959595959595959595959595959
-595959595959595959595959595959595408595959595959595959595959595959590559
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595954595959
-5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eef59595959595959595959595959595959595959595959590359595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595459595959595904040404595959040459595904040404045959040459
-5959040459047f5904040459595959040459595959595959595959590404cd5904040404
-04595904045904cd59595959cd5959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd5959595959cd59
-59595959595959cd5959cd5959595959595959cd5959595959cd59595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959055959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505058d05050505050606595959595959ae06
-0e0e0d00001c0e2e59d75959595959595959595959595959595959595959595959c85959
-595959595959595959595959595959595959595959595959595959595959595959595905
-595959595959595959595959595959595959055959595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959cd5959
-595959595959595959045959595959595959cd595959597f595959595959cd5959595959
-7f5959595959597f59595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959cd59595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959cd595959595959595959595959595959595959cd59595959595959595959cd045959
-595959595959595959595959595959595905595959595959595959595959595959595959
-595959595959595959595959595959595959595905595959595959595959595959595959
-59595959545959595959595959595959593030050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e592ed7595959595959595959595959595959595959
-595959595903595959595959595959595959595959595959595959595959595959595959
-595959055959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904cd5959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595904
-0404040404595959595959595959595959cd595959595959595959595959595959595959
-cd5959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959
-595959595959595959595959590559595959595959590559595959595959590559595959
-590559595959595959595959595959595959055959595959595959595959595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-5959cd5959595959595959595959cd595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959cd595959595959cd595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959595959cd
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959540859590559595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595905595959595959595959595959595959595930fa05
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0ed75959
-595959595959595959595959595959595959595959035959595959595959595959595959
-595959595959595959595959595905595959595959595959595959595959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-59595959595959595959595959597f595959595959595959595959595959595959595959
-59595959595959595959cd59595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959cd59595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c0e0e0ed75959595959595959595959595959595959595959595959c8595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959045959595959595959595959595959595959595959597f5959595959595959
-5959597f5959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959cd04595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959cd595959595959595959595959595959595900005959595959595904595959595959
-595959595959590559595959595959590559595959595959595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595954595959593030050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0ed759595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-5959595959597f59595959595959595959595959595959595959595959595959cd595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959cd59595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959590000000059595959
-590459595959595959595905595959595959595905595959595959595959595959055959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959
-595959595959595959c85959595959595959595959595959595959595905595959595959
-595959595959595959595959595905595959595905595959595959595959595959055959
-595959595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959cd59595959595959590459595959595959595959cd595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590000000000005954085959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930fa0505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959
-595959595959595959595959595959595903595959595959595959595959595905595959
-595959595959055959595959055959595959590559595959595959595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959cd59595901000001000001
-000000010100000000000000000000000000000000000000000000000000000000000000
-000100010101010101010101010101010101010101010101010101010001010101010101
-010101010101010101010101010101010101010101010101010101010001010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010100010001000100
-000100000000000000000000000000000004595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c2e59
-0ed759595959595959595959595959595959595959595959590559595959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595900000000000059590459595959595959595959
-595959595959595959595959595959055959595959595959590559595959595959595959
-595959595959595959595959055959595959595959595959595959595959595959595959
-5959595959595959593030050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959590559595959595959595959595959595959595959
-595959595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959000000595959595904cd59
-595959595959595959590559595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c0e2e59d7595959595959595959055959595959595959
-5959595959c8595959595959595905595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595900005959
-59595959b308595959595959595959595959595959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959545959595930fa050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e0e0ed759595959595959595959
-595959595959595959595959590359595959595959595959595959595905595959590559
-595959595905595959595959595959595959590559595959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959592d0459595959595959595959595959595959055959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959
-595959595959595959595959595959595959595959c85959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595905595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595905595959595459595959595959
-59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0ed7595959595959595959595959595959595959595959595903595959595959
-595959595905595959595959595959595959595959595959595959595905595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959cd5959595959595959595959595959
-5959597f5904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595930300505050505050505058d0505050505060659595959
-5959ae060e0e0d00001c0e2e59d759595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595905595959595959595959595959
-595959595959595959595959595959595959590559595959595959590559595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-540859595959595959595959055959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959545959595930fa05050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959
-595959595959595959035959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959592d045959595959595959595959595959595959055959595959595959
-595905595959595959595959055959595959595959595959595959595959595959590559
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e2e59d7595959595959
-5959595959595959595959595959595959c8595959595959595959595959055959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959597f04595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eef59595959595959595959595959595959595959595959590359595959595959595959
-595959595959595959595959595905595959595959595959595905595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505050505050505050606595959595959ae06
-0e0e0d00001c0e2e594f5959595959595959595959595959595959595959595959c85959
-595959055959595959595959595905595959595959595959595959595959595959595959
-595959595905595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595954085959
-055959595959595959595959595959595959595905595959595959595959055959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930fa050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e0e0eef595959595959595959595959595959595959
-595959595903595959595959595959595959595959595959595959595959595959595959
-595905595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959597f04595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959592d04595959595959595959595959595959595959595959595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c0e2e594f59595959595959595959
-595959595959595959595959590559595959595959595959595959595959595905595959
-595959595959595959595959595959595959595959595959595959595959595905595959
-595959595959595959595959595959590559595959595959595959595959595959595959
-595959595959595959cd5959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959055959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595459595959303005
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eef5959
-595959595959595959595959595959595959595959035959595959595959595959055959
-595959595959595959595959590559595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959597f59045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595459
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959545959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-590559595959595959595959595959595959595959055959595959595959595959055959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c0e0e0e4f5959595959595959595959595959595959595959595959c8595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959055959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959597f04595959595959595959595959595959595959595959595959595959595959
-595959595959595959595954595459545959595459595459545959545959545959595959
-545959545959545954595459595954595954595459545954595459545954595954595959
-595959595959595959595959595959597f04595459595954595959545959595459595954
-595959545959595459545954595459595459595459595954595459595459545959595459
-595954595959595954595954595459595459595954595959595459595959595959595959
-595959595959595959595959595959595959595959595959595959595408595959595959
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595930fa050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e0e0eef59595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595905595959595959595959595959
-055959595959595959595959595959595959595959595959595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959590404595959595959
-595959040459595959595959595959045959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959045959595959590459595959595459595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959545959595954595959595959595959595959595959595959595959595959595959
-2d0459595959595959595959055959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959055959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e0e594f5959595959595959595959595959
-595959595959595959c85959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959cd5959595959595959045959595959595959595959595959
-7f045959595959595959597f045959595959595959595904595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595904595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959055959595959595905595959595959595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595930300505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e2eef595959595905
-595959595959595959595959595959595903595959595959595959595959055959595959
-595959595959595959595905595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959597f04595959595959
-595959595959590404045959590404595959595904595959590404595959040404045959
-590404595959595959595959040404045959045904040459040459595904590404595959
-5904040459590404595959595904045959590404040459595904045959595904047f5904
-7f0404595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959545959
-595954595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505058d05050505050606595959595959ae060e0e0d00001c0e0e
-594f59595959595959595905595959595959595959595959590559595959595959595959
-595959595905595959595959590559595959595959595959595959595959595959595959
-055959595959595959595959595959595959595959595959595959590559595959595959
-59595959cd59595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595904597f04595904597f04595959590459595904597f04
-59597f045959595904595904595959595959595959045959595959045959595959590459
-59590459590459590459595959595959045959590459590459597f047f595959597f0459
-595904595904595904597f04590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959545959595959595959595959540859595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-59595959545959595930fa050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e2eef5959595959595959595959595959595959595959595959035959
-595959595959595959595959595959595959595959595959595959595959595959055959
-595959595905595959595959590559595959055959595959590559595959595959595959
-5959595959595959595959595959595959595959595959595959595959cd595959595959
-5959595959595959590459595959595959595959595904595904597f040404595959597f
-04595959040404595959590459595959040404595959595959595959590459595959cd04
-595959590404045959590459590459595904045959590404045959590459595959595904
-5959595959590459595904597f045959045959047f045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595954595959595959595959595959595959592d045959
-595959595959595959595959595959595959055959595959595959595959055959595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c0e2e594f595959595959595959595959595959595959
-5959595959c8595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959045959045959
-04595904595959590459595904597f0459597f0459590459047f59045959595959595959
-590459590459590459595904597f0459595904595904595959597f045904595904595959
-045959045959590459590459595904595959045959045959045959045904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959597f04595905595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e592eef59595959595959595959
-595959595959595959595959590359595959595959595959595959595959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959055959595959
-5959595959595959595959595959595959595959595959597f0459595959595959595959
-597f59040459047f59040459595904040404047f5904045959595959040459595904047f
-5959595959595959cd590404595904040404595904045904590404047f04045904040459
-7f5904045904597f59040459595959590404595904040404045959040459590404045904
-040459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959055959595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e2e59d75959
-595959595959595959595959595959595959595959c85959595959595959595959595959
-595959595959595959590559595959055959595959595959595959595959595959595959
-595959595959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-5959595959595959595959597f59595959597f59595959597f5959595959595959595959
-597f59595959595959595959595959595959595959595959597f595959595959597f5959
-595959597f5959595959597f5959595959597f595959595959cd59597f597f597f595959
-7f595959597f59597f045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954085959595959595959595959595959
-595959595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595459595959595959
-595959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0ed7595959595959595959595959595959595959595959595903595959595959
-595959055959595959595959595959595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904040404040459595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959592d04595959595959
-595959055959595959595959595959595959595959595959595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959
-590559595959595959595959595905595959595959595959595959595959595959595959
-595959595959595959595959055959595905595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-59595959cd59595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959597f59595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595459595959303005050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959
-595959595959595959035959595959595959595959595959595959595905595959595959
-595959595959055959595959595959590559595959595959595959595959595959590559
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959cd045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959590559595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959
-5959595959595959595959595959595959c8595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-cd5959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595900005959
-595959597f04595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959cd595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959055959595959
-595959595959595959595959595959595959595905595959595959595959595959590559
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0ed759595959595959595959595959595959595959595959590359595959595959595959
-595959595905595959595959590559595959595959595959595959590559595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590000000059595959590459cd5959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959cd595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595904cd595959595959595959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505050505050505050606595959595959ae06
-0e0e0d00001c0e0e0ed75959595959595959595905595959595959595959595959c85959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959590559595959595959595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959590459cd595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959597f5959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590000000000005959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959cd595959cd59595959
-59cd59595959595959595959595959595959595959595959595959595959595959085959
-595959055959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959590559595959595959595959
-59595959595959595959595959595959593030050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e0e0ed7595959595959595959595959595959595959
-595959595903595959595959595959595905595959595959595959595959595959595959
-595959055959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595900000100000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000004595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd595959595959cd59595959595959595959595959595959595959595959
-595959cd5904595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c0e2e59d759595959595959595959
-595959595959595959595959590559595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd59595959595959595959cd595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595900000000000059
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959cd595959
-595959595959595959595959590459595959595959590559595959055959595959595959
-595959595959055959595959595959595905595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959545959595930fa05
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eae5959
-595959595959595959595959595959595959595959035959595959595959595959595959
-595959590559595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590000005959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595959cd59
-5959595959595959cd59595959595959595959595904cd59595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959545959595959
-595959595930300505050505050505058d05050505050606595959595959ae060e0e0d00
-001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590559595959590559595959595959595959595959595959
-59595959595959595959595959cd59595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595900005959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959592d08595959595959
-595959595959595959595959595959590559595959595959590559595959595959595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e592ed759595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595959595905595959595959595959
-590559595959055959595905595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959047f595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-540459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e2e59d75959595959595959595959595959
-595959595959595959c85959595959595905595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-5959cd595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959055959595959595959595959
-595959595959595905595959590559595959595959595959595959595959595959595959
-595959595959595959595905595959595959595959595959595959595930fa0505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959
-595959595959595959595959595959595903595959595959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959cd59595959595959595904595959595959595959055959595959595959
-595959595959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e
-0ed759595959595959595959595959595959595959595959590559595959595959595959
-595959595959595959595959595959595959595905595959595959595959595959595959
-055959595959595959055959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959cd5959cd5959595959595959595959
-595959595959cd59595959595959595959cd595959cd5959595959595959595959595959
-5959cd595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959540859595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595954595959593030050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959597f0459595959595959595959595959cd
-595959cd5959cd5959cd59595959595959cd5959cd59595959595959595959595959cd59
-595959cd5959cd595959595959cd59595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c0e2e59d7595959595959595959595959595959595959
-5959595959c8595959595959595959055959595959595959595959595959055959595959
-595959595905595959590559595959595959595959595959595959595959595959595959
-595959595959595959055959595959590559595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959590559595959595959595905
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595930fa050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e0e0ed759595959595959595959
-595959595959595959595959590359595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959590559595959595959595959
-595959595959595959595959055959595905595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959
-595959595959595959cd5959595959595959595959055959595959595959595959055959
-595959595959595959595959595959595959595959595959595959595959595959590559
-595959595959055959595959055959595959595959595959595959595959595959595959
-595959595959595959595959cd5959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959597f045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954085959055959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0ed75959595959595959595959595959595959595959595959c8595959595959
-595959595959595959595959595959595959595905595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959cd59595959595959
-597f59595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959592d04595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e0e0e4f59595959595959595959595959595959595959595959
-59c859595959595959595959595959595959595959590559595959595959595959595959
-055959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959cd5959595959595959595959595959595959
-595959cd5959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959597f59595959595959597f0459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959cd595959595959595959595959595959595959595959595959595959595959
-590459595959590559595959595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959545959595930fa05050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0eef5959595959595959595959595959
-595959595959595959035959595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959cd5959595959cd5959595959595959595959
-595959595959595959045959595959595959595959590559595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e2e594f595959595959
-5959595959595959595959595959595959c8595959595959595959595905595959595959
-595959595959595959595959595959595959055959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595408595959595959595959595959595959595959
-595959595959595959595959595959590559595959055959595959595959595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e
-0eef59595959595959595959595959595959595959595959590359595959595959590559
-595959595959595959595959595959595959055959595959595959595959595959590559
-595959595959595905595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959590a0a595959595959
-5959595959595959595959595959590a5959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595904cd595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959592d0459595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930300505050505050505058d05050505050606595959595959ae06
-0e0e0d00001c0e0e0e4f5959595959595959595959595959595959595959595959c85959
-595959595959595959595959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959595959595959
-59595959595959597f045959595959595959595959595959595959595959595959595959
-590a5959595959595959595959595959595959595959590a595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595459595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959590559595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595905595959595959595959595959595959595959590559
-595959595959595959595959545959595930fa050505050505050505050505050505061c
-595959595959ae060e0e0d0000060e0e0ed7595959595959595959595959595959595959
-595959595903595959595959595959595959595959595959595959595959595959595959
-595959595959595959055959595959595959595905595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959545959595904595959595959595959595959590a0a59590a
-590a0a595959590a0a0a5959595959595959590a0a59590a0a590a0a59590a0a0a0a5959
-590a0a5959590a590a0a0a59595959595959595959595959595959595959595959595959
-5959595959595959595959595459595959595959cd595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-0505050505050606595959595959ae060e0e0d00001c0e2e59d759595959595959595959
-595959595959595959595959590559595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959597f0459595959545959595459
-59590a59590a59590a59590a59590a59590a59595959595959590a59590a59590a59590a
-5959590a595959590a59590a5959590a5959595959595459595954595959595459595959
-545959595959595959595959545959595459595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959cd595959
-5959cd595959595959595959540859595959595959595959055959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e2ed75959
-595959595959055959595959595959595959595959035959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595905595959
-595959595959595959595959590559595959595959595905595959595959595959595959
-595959cd5959595959595959595959595959595959595959595959595959595959045959
-595959595959595959590a0a0a5959590a59590a59590a59590a59595959595959590a59
-590a59590a59590a5959590a595959590a0a0a595959590a595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595904595959cd59595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959592d045959595959595959595959595959
-595959595959595959595959595959055959595905595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050505050505050505050505050606595959595959ae060e0e0d00
-001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959
-595959595959595959595959595959055959595959590559595959055959595959595959
-595959595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959597f045959595959595959595959590a59590a59590a59590a59590a59590a5959
-5459595959590a59590a59590a59590a5959590a59590a590a59590a5959590a59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959cd5959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959cd595959cd59595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5459595959595959595959595930fa050505050505050505050505050505061c59595959
-5959ae060e0e0d0000060e592ed759595959595959595959595959595959595959595959
-590359595959595959595959595959595959595959595959595959595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-5959595959595959595959595904595959595959595959595959590a0a59590a0a0a590a
-0a59590a0a590a59595959595959590a0a595959590a0a590a5959590a0a5959590a0a59
-59590a0a0a0a595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959cd5959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-05050606595959595959ae060e0e0d00001c0e2e59d75959595959595959595959595959
-595959595959595959055959595959590559595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959cd045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959cd5959595959595959595959595959595959595959595959595959595959595959
-595959595959595954085959595959595959595959595959595959595959595959055959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959545959595930300505050505
-05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959
-595959595959595959595959595959595903595959595959595959595905595959595959
-595959595959055959595959595959595959055959595959595959595959590559595959
-595959595959595959590559595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959cd595959595959595904595959595959
-59595959595959595959595959595959595959595959590a0a0a0a0a0a59595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959cd595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959592d04595959595959595905595959595959595959
-595959595959595959595959595959590559595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e2e
-59d75959595959595959595959595959595959595959595959c859595959595959595959
-595959595959595959595959595959595905595959595959595959595959595905595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959cd5959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959cd59595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-590559595959595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595930fa050505050505050505050505050505061c595959595959ae06
-0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959595904cd59
-595959595959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595905595959
-595959595959595959595959595959595930300505050505050505050505050505050606
-595959595959ae060e0e0d00001c0e2e59d7595959595959595959595959595959595959
-5959595959c8595959595959595959595959595959595959055959595959595959595959
-055959595959595959595959595959595959595959590559595959595959595959595959
-59595959595959595959595959595959590559595959595959595959595959cd59595959
-cd5959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959cd5959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959cd5959595959cd59595959595959595959595959595959cd5959595959
-59595959b308595959595959595959595959595959595959595959590559595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959593030050505050505050505
-050505050505061c595959595959ae060e0e0d0000060e0e0eef59595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595905595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd5959595959cd5959595959
-5904cd595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595459592d0459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05050505050505058d05050505050606595959595959ae060e0e0d00001c0e2e594f5959
-595959595959590559595959595959595959595959055959595959595959590559595959
-595959595959595959595959595959595959595959590559595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959cd595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959055959595959
-595959cd5959cd595959cd59595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959cd59595959
-595959595959595959595959595959595959595959045959595959595959595959055959
-595959595959595959595959595959055959595959595959595959595959595959595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-545959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00
-00060e0e0eef595959595959595959595959595959595959595959595903595959595959
-595959595959595959595959595959595959595959595959595959055959595959595959
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959cd595959cd5959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959cd5959595959595959595959595959cd5959cd595959cd59595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959593030050505050505050505050505050505060659595959
-5959ae060e0e0d00001c0e2e594f59595959595959595959595959595959595959595959
-59c859595959595959595959595959595959595959055959595905595959595959595959
-595959595905595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595905595959595959595959595959595959595959
-59595959cd59595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-54595959595959595959595959595959cd59595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959cd0459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959cd595959595959595959595959595959
-540859590559595959595959595959595959595959595959595959595959595959595959
-595959590559595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959303005050505050505050505050505
-0505061c595959595959ae060e0e0d0000060e0e0eef5959595959595959595959595959
-595959595959595959035959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959590559595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959cd045959595959595459595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959cd59595959595959595959595959595959
-5959cd595959cd5959595959595959595959595959595959595959595959595959045959
-cd5959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959592d045959595959595959595959595959055959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595930300505050505
-050505050505050505050606595959595959ae060e0e0d00001c0e2e59d7595959595959
-5959595959595959595959595959595959c8595959595905595959595959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959055959595959595959595959
-590559595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959590559595959545959595959595959595959
-5930301c1c1c1c1c1c1c1c1c1c061c060606061c595959595959ae060e0e0d0000060e59
-2ed759595959595959595959595959595959595959595959590359595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959055959595959595959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959cd5959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959593030051c1c1c1c1c0606060606060606300606595959595959ae06
-0e0e0d00001c0e2e59d75959595959595959595959595959595959595959595959055959
-595959595959595959595959595905595959595959595959595959595959595959595959
-595959055959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959cd59595959597f045959595959595959545959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959cd5959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595954085959
-595959595959055959595959595959595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959593030051c065959595959595959593030050606
-595959595959ae060e0e0d0000060e0e0ed7595959595959595959595959595959595959
-5959595959c8595959595959595959595905595959595959595959055959595959595959
-055959595959595959595959595959595959595959595959595959055959595959595959
-595959595959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595459
-595959595959595959595959595959595959595959595959595959595959595459595959
-5959595959595959cd595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959cd595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959592d04595959595959595959595959595905595959595959590559595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959545959593030050506065959595959
-5959593030050606595959595959ae060e0e0d00001c0e2e59d759595959595959595959
-59595959595959595959595959c859595959595959595959595959595959595959595959
-595959595959595959595959590559595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959597f0459595959595959595954
-595954595959595959545959595959595959595959595959595459595954595954595954
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959055959595959
-595959595959595959595959595959595959595959595959595959595959595959303005
-05061c5959595959595930300505061c595959595959ae060e0e0d0000060e0e0eef5959
-595959595959595959595959595959595959595959035959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595459595954595959545959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959cd045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959595959
-595959595959595959595905595959595905595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595930300505050606595959595959303005050606595959595959ae060e0e0d00
-001c0e2e594f5959595959595959590559595959595959595959595959c8595959595959
-055959595959595959595959595959595959055959595959595959595959595959595959
-595959595959595905595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959cd5959595959595959595959595959595959
-595959597f04595959595959595959595959595459595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959cd595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959cd5959595959595959cd59595959cd595959595959595959595408595959595959
-595905595959595959595905595959595959595959595959595959595959055959595959
-595959595959595959595959595959590559595959595959595959595959595959595959
-595959595959595959595959593030050505060659595959593030050505060659595959
-5959ae060e0e0d0000060e0e0eef59595959595959595959595959595959595959595959
-590359595959595959595959595905595959590559595959595959595959595905595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959cd5959
-595959595959595959595959590459595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959cd59595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-2d0459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959593030050505051c0659595959303005
-05050606595959595959ae060e0e0d00001c0e2e594f5959595959595959595959595959
-595959595959595959c85959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959597f045959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959595959595959cd045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959055959595959595959595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595459595959595959595959595930300505050506
-06595959303005050505061c595959595959ae060e0e0d0000060e0e0eef595959595959
-595959595959595959595959595959595903595959595959595959595959595959595959
-595959595959595959595959595959590559595959595959595905595959595959595959
-595959595959595959595959595959595959590559595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959cd5959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595905595959595959055959595905595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5930300505050505060659593030050505050606595959595959ae060e0e0d00001c0e0e
-0e4f59595959595959595959595959595959595959595959590559595959595959595959
-595959595959595905595959595905595959595959595959595959595959595959595959
-595959595959055959595959055959595959595959595959595959595959590559595959
-59595959cd59595959595959595959595959595959595959595959595959595959595959
-7f0459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595459595959595959595959595959595959
-cd59595959595959cd595959595959595959595959595959595959595959595959595959
-595959595959595959595959cd0459595959595959590559595959595959595959595959
-595959055959590559595959595959595905595959590559595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959540859595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959593030050505050506065430300505050505061c595959595959ae06
-0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959045959595959595959595959590559
-595959595959595959595959595959595959590559595959595959595959595959590559
-595905595959055959590559595959595959595959595959595959595959595959595959
-59595959595959595959595959595959595959595959595959595959595959592d045959
-595959595959595959595959055959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959545930300505050505050630303005050505050606
-595959595959ae060e0e0d00001c0e0e0ed7595959595959595959595959595959595959
-5959595959c8595959595959595959595905595959595959595959595959595959590559
-595959595959595959595959595959590559595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959597f04595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd5959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595408595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959cd5959595959595959595959cd595959595959
-595959595904595959595959595959595959595959595959595959055959595959595959
-595959595959595959055959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959545959595959593030050505050505063030
-0505050505050606595959595959ae060e0e0d0000060e0e0ed759595959595959595959
-595959595959595959595959590359595959595959595959595959595959595959595959
-595959595959595959595959590559595959055959595959595959595959595959595959
-595959055959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959cd5959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595904cd595959595959595905595959595959595959595959
-595959595959595959595905595959595959595959595959595959595959595959595959
-595905595959595959595959595959595959595959595959595959595959595959303005
-05050505050530300505050505050606595959595959ae060e0e0d00001c0e2e59d75959
-595959595959595959595959595959595959595959c85959595959595959595959595959
-595959595905595959595959595959595959595959595959595959595959595959595959
-595959055959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959cd59595959595959595959597f045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590559595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595954085959595959595959595959595959
-595959595959595959595959590559595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959303005050505050505308d050505050505061c595959595959ae060e0e0d00
-00060e0e0ed7595959595959595959595959595959595959595959595903595959595959
-595959595959595905595959595959595959595959595959590559595959595959595959
-595959595959590559595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595904595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959545959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959cd595959595959595959
-595959595959595959595959595959595904595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959055959595959595959590559595959595959595959
-595959595959595959595959595959595959595959595959595959595904595959595959
-595959595959595959055959595959595959055959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595930301c1c061c06060606061c0606060606060659595959
-5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959
-590559595959595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595959595959055959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959597f0459595959595959595959595959595959595959595959
-595959595959595959595959595959595959545959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590459595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-590459595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595905595959595959
-595959595959595959595959595959595959595959300606060606060606060606060606
-0606061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959
-595959595959595959035959595959595959595959595959595959595959595959595959
-595959595959595959595959595959055959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959590559595959595959595959
-5959595959595959595959595959595959595959590459cd595959595959595959595959
-595959595959595959595959595959595959595959595959545959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959cd595959595959595959595959595959595959595959595959595959595959045959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959045959595959595959595959055959595959595959595959595959
-595959595959590559595959055959595959595959595959595959595959595959595959
-595959595959595905595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959ae060e0e0d00001c0e0e0e4f595959595959
-595959595959595959595959595959595959595959595959595905595959595959595959
-595959595959595959595959595959595905595959595959590559595959595959595959
-595959595959055959595959595959595959595959595959595959595959595959595959
-595959595959cd5959595959595959595959595959595959595959595959595959595459
-595959595954595959545959595959595959595959595954595959545959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959cd5959595959595959595959595959595959595959595959595959595959
-595959cd5959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959cd5959595959
-595959595959595959595959595959595959595905595959595959595959595959595959
-055959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e
-0eef5959595959593efafa27fafa30fa3030fa3030fa3027fafa273e27273e2727272727
-27273e2727273e2727273e2727273e2727273e2727273e2727272727273e272727272727
-273e2727273e2727273e27272727272727273e2727273e27273e27273e273e273e3e273e
-273e27272727fa27fafa27fa27fa2730fafa30fa3027fa30fa30fa30fa3027fa302730a9
-30a93030a9303030fa3030fa303030303030fa30fa30fa30fa30fa3030fa303030fa3030
-3030fa303030fa3030fa3030fa30fa30fa30fa30fa30fa30fa30fafa30fafa30fa30fafa
-30fafa30fa30fafa30fafa30fa3027fa3027fa3027fa27fa27fa27fafa27fafa27fa273e
-273e27273e27fa27fa27273027fa27fa273e273e273e273e273e273e273e273e273e273e
-27273e273e273e273e273e273e273e273e273e27273e27273e27273e273e273e273e273e
-2727273e273e27273e2727273e27273e27273e27273e273efa27fafa27fafa27fafa27fa
-27fa2730fa30fa30fa30fa30fa30fa30fa30a93030a9a9faa927fa27272727273e272727
-3e2727273e272727272727273e2727273e2727273e2727273e2727273e27273e27273e27
-273e273e273e273e273e2727273e27272727fa27fa27fa2727fa27fafa30fa30fa3030fa
-30303030303030595959595959595959595959595959595959595959595959595959ae06
-0e0e0d00001c0e2e594f59595959595930303030303030303030303030303030302727fa
-272727273e2727fa27272727fa272727fa272727fa272727fa272727fa27273e2727fa27
-2727273e2727fa27272727fa272727fa272727fa273e2727fa272727fa2727fa2727fa27
-27272727272727272730fa30fa3030273030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-302730303030303030303030303030303030303030303030302730273027302730272730
-27273027273027fa273027273027302730273027302730273027fa273027302727302730
-273027302727302730fa273027fa273030fa2730fa2730273030fa273030303027303030
-303030303030303030303030303030303030303030303030303030303030303030272727
-fa27fa272727fa272727fa2727273e2727fa27272727fa272727fa272727fa272727fa27
-27fa2727fa2727fa27272727272727272727fa3027fa2730fa3030303030303030303030
-30303030303030303030303030301c595959595959595959595959595959595959595959
-595959595959ae060e0e0d0000060e0e0eef595959595959273005050505050505050505
-050505052e052e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e
-2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e
-2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e1c2e2e2e1c2e1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c2e1c1c1c1c1c1c2e1c2e1c2e1c1c2e1c2e1c1c2e1c1c2e1c2e1c2e1c2e1c2e1c2e
-1c2e1c2e2e1c2e2e2e2e2e2e2e2e2e2e2e2e2e1c2e1c1c1c1c1c1c1c2e2e2e2e2e2e2e2e
-2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e
-2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e1c2e2e2e1c2e2e1c2e2e2e2e2e0505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0505050505052e1c050505050505050505050505051c1c59595959595959595959595959
-5959595959595959595959595959ae060e0e0d00001c0e0e0e4f59595959595930300505
-050505050505050505051c2e30051c1c1c1c2e1c1c2e1c1c1c2e1c1c1c2e1c1c1c2e1c1c
-1c2e1c1c1c2e1c1c1c1c1c1c2e1c1c1c2e1c1c1c2e1c1c1c2e1c1c1c2e1c1c1c1c2e1c1c
-1c1c1c1c1c1c2e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c06061c0606060606061c1c1c1c1c061c1c1c1c
-1c1c1c1c1c06060606061c0606061c061c061c1c061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c30050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-05050505050505050505050505051c1c1c2e0505050505050505050505061c5959595959
-59595959595959595959595959595959595959595959ae060e0e0d000002ec0fec0f5959
-595959593030050505050505050505052e1c1c3030051c1c595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959303005050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505051c1c1c1c1c1c0505050505050505
-051c06595959595959595959595959595959595959595959595959595959643725db0000
-014f4f4f4fec595959595959303005050505050505051c1c1c1c593030051c1c59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-5959595c5959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595930300505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0505050505050505050505050505050505050505050505050505050505051c1c59591c1c
-1c1c05050505050505061c59595959595959595959595959595959595959595959595959
-5959258b4e122500004f13133e0f59595959595930300505050505052e1c1c1c59595930
-30051c1c5959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959593030050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-05051c06595959591c1c1c1c050505050506065959595959595959595959595959595959
-59595959595959595959438b1212db00004f3e1313ec5959595959593030050505051c1c
-1c1c59595959593030051c1c595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-303005050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505051c1c5959595959591c1c1c1c050505061c595959595959595959
-595959595959595959595959595959595959dbbb7e124300004f133e130f595959595959
-303005052e2e1c1c595959595959593030051c0659595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595930300505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0505050505050505050505050505050505051c0659595959595959591c061c0605060659
-5959595959595959595959595959595959545959595959595959438b7e7e2500007a1313
-3eec5959595959593030303030305959595959595959593030051c1c5959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959593030050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0505050505050505050505050505050505050505050505050505061c5959595959595959
-5930303030061c595959595959595959595959595459595959595959595959595959258b
-12124300004f3e731364595959595959303005053030303059595959595959303005061c
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959303005050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505051c06
-595959595959595930303030050606595959595959545959595959595959595959595959
-595959595959db8b127e2500007a13133eec595959595959303005050505303030305959
-5959593030051c1c59595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595930fa0505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505061c595959595959303030300505051c1c59595959595959595959595959
-5954595959595959595959595959438b12124300004f7395130f59595959595930300505
-0505050530303030595959303005061c5959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959593030050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-05050505050505050505050505051c065959595930303030050505050506065959595959
-59595959595959595959595959595959595959595959dbbb127e2500004f133e13ec5959
-595959593030050505050505050530303030593030051c1c595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-59595959595959595959595930fa05050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-05050505050505050505050505050505050505050505061c595930303030050505050505
-05061c595959595959595959595959595959595959595959595959595959438b12124300
-008b73957364595959595959303005050505050505050505303030303005061c59595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595930300505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0505050505050505050505050505050505050505050505050505050505051c0630303030
-0505050505050505051c0659595959595959595959595959595959595459595959595959
-595943bb127e2500004f13133eec59595959595930300505050505050505050505053030
-30051c1c3030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-3030303030303030303030303030303030303030303030303030303030fa050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0505061c30300505050505050505050505061c5959595959595959595959595959595959
-59595959595959595959db8b12124300008b217313645959595959593030050505050505
-050505050505050530050630303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303030303030303030303030303030303030303030303030303030303030303030303030
-303005050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-05050505050505050505063005050505050505050505050505061c595959595959595959
-59595959595959595959595959595959595943bb127e2500007a73133eec595959595959
-30301c1c1c1c1c1c1c1c1c1c1c06060606061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e
-1c2e2e2e2e2e2e2e2e2e2e2e2e2e2e0e2ef10ef10ef10ef10ef10ef10ef10ef10ef10ef1
-0ef10ef10ef10ef10ef10ef10ef10ef10ef10ef10ef10ef12e0e2e2e2e2e2e2e2e2e2e2e
-2e2e2e2e2e2e2e2e2e1c1c1c1c1c1c1c060606061c1c061c061c061c061c060606061c59
-5959595959595959595959595959595959595959595959595959db8b1212430000a32173
-1364595959595959301c1c1c1c0606060606060606060606060606061c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c061c061c061c0606061c0606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-06060606060606060606061c061c061c061c061c1c061c06061c06061c06061c061c061c
-061c061c1c061c061c061c1c061c1c061c1c061c061c1c061c1c061c1c061c061c06061c
-1c061c061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c061c1c061c1c1c1c061c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c061c061c1c1c06
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c2e1c2e1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e
-2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e1c2e2e2e1c2e2e1c2e1c2e2e2e2e2e2e
-2e2e2e2e2e1c2e2e1c2e1c1c1c1c1c1c1c1c1c1c1c060606060606060606060606060606
-0606060606060659595959595959595959595959595959595459595959595959595943bb
-217e2500009673133eec5959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959595959595959595959595959595959595959595959595959595959595959
-595959595959db8b1212430000bb21730273ecec64ecec64bf8f0fbf8f368f368f36aeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
-aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae22aed7d7aed7d7d7d7d7d7d7d713ec
-6464646464f864646425256443648b7e127e25001d007a1313733e4f504f4f4f7a4f347a
-4f7a4f4f4fc306060606060606060606061c061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c061c06061c060606060606060606060606060606060606061c06061c06
-061c06061c06061c060606060606061c0606060606060606060606060606060606060606
-06060606060606060606060606060606060606060606060606061c0606061c06061c0606
-06061c0606060606061c060606061c06060606060606060606060606061c060606060606
-0606060606060606060606060606060606061c0606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-0606060606060606060606060606060606060606060606060606061c061c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c061c0606060606060606060606060606060606061c06061c1c1c1c1c1c1c
-1c1c1c1c1c1c7a7a7a7a7a7a7a7a8b5a8b8b8b38bbbb1212124300061d008b7373021313
-73130295027302212121212173860e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e5c0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e5c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e4f02137302022121123712121212127e12b512db0006
-898700256473730273737321217e121212122121138f0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0ef10ea37321b51212127e1212127e1212
-21121243db000606f81d890000646425252564d3432543434343434343640d0d0d0d0d0d
-0d050d050d05050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050d050d050d
-050d0d0d0d0d0d0d0d050d050d050d0d050d050d050d050d050d050d050d050d050d0d0d
-050d050d050d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d
-0d0d0d0d0d0d0d0d0d0d0d050d050d050d050d050d050d050d050d050d0d050d050d050d
-050d050d0d0d0d0d0d0d0d0d0d0d050d050d050d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d
-0d0d0d050d050d050d0d0d0d0d0d0d050d050d050d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d
-0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d
-0d0d0d0d0d0d0d0d0d0d0d050d050d050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-050505050505050505050505050505050505050505050505050505050505050505050505
-0505050505050505050505050505050505050505050505050505050505050d050d0d0d0d
-0d0d0d0d0d0d0d0d0d0d050d050d050d0505050505050505050505050d051343432543db
-43db43db43dbdbdb43dbdb00000000061d891d1d1d000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000060600
-%%PageTrailer
-%%Trailer
-%%EOF
diff --git a/lib/et/doc/src/sim_trans_contents_viewer_collector.gif b/lib/et/doc/src/sim_trans_contents_viewer_collector.gif
deleted file mode 100644
index 77115b71ab..0000000000
--- a/lib/et/doc/src/sim_trans_contents_viewer_collector.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_contents_viewer_collector.png b/lib/et/doc/src/sim_trans_contents_viewer_collector.png
new file mode 100644
index 0000000000..545697bf38
--- /dev/null
+++ b/lib/et/doc/src/sim_trans_contents_viewer_collector.png
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_contents_viewer_collector.ps b/lib/et/doc/src/sim_trans_contents_viewer_collector.ps
deleted file mode 100644
index 3ef1921fa2..0000000000
--- a/lib/et/doc/src/sim_trans_contents_viewer_collector.ps
+++ /dev/null
@@ -1,1407 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner
-%%Title: /home/hakan/picts/sim_trans_contents_viewer_collector.ps
-%%CreationDate: Mon Oct 14 17:27:25 2002
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 406 232
-%%EndComments
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-10 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.173228 14.173228 translate
-% Translate to begin of first scanline
-0.000000 217.359744 translate
-391.247539 -217.359744 scale
-% Image geometry
-468 260 8
-% Transformation matrix
-[ 468 0 0 260 0 0 ]
-% Strings to hold RGB-samples per scanline
-/rstr 468 string def
-/gstr 468 string def
-/bstr 468 string def
-{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
-true 3
-%%BeginData: 82198 ASCII Bytes
-colorimage
-r;V<JJH16$[f?Ok0f^sKJ,~>
-r;V<JJH16$[fH=oJ,~>
-r;V<JJH16$[fH>IJ,~>
-rr;uunc&S<J[C!8K<tV-mJd0^mJd0^nc/Uhs#C'6J,~>
-rr;uunc&SGMnXbRJ\(Zg!&X*C!28f[!28r_rrE$dJ,~>
-rr;uunc&SuJaS*WKC/_KmJd0^mJd0^nc/Uhrc<S~>
-s8N-#s8W)KqVM,3!%EJWXc%a_f7O,Rs3:GkqVM/4!i5k@qpkQ"r8n'Vs3:GkqVDD<s8N'Z3Ih~>
-s8N-#s8W)LrS%8-ro3q>!&U.0JWYMGlB)-)s3CVlrmq&%rndY6s5jBVs3CVlrmq&%rndY6s5jBV
-s3CVlrmq&%rn[h<s8N'e7">~>
-s8N-#s8W)KqVM,3!+LN9J_l%9!b22SqpkQ"r8n'Vs3:GkqVM/4!i5k@qpkQ""m5jb!-<43~>
-!ri9#rRLc$qW7c,JTJAC!.4]d!.4]d!.4]d!.4]d!/(8l!/(8l!/(8l!/(8l!/(8l!/pht!/pht
-IuAYpF,PBdF,PBdF,PBdF,PBdF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#m
-F-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#m
-F-M#mF-M#mEsn4ZF*!RmF*!Re.KB:qqVM,3!Mobmeb\/"joM:XqpkQ"rT41+!&9!~>
-"9/B$df.hrgA]t.ir/!>1kC(kI/nitI/nitI/nitI/o!#I/o!#I/o!#I/o-'I=I*)I=7*+I=7*+
-I=7*+I=76/I=76/I=76/I=7B3I=7B3I=7B3I=7B3I=7N7I=7N7I=7N7I=7N7I=7N7I=7N7I=7N7
-I=7Z;I=7Z;I=7Z;I=7Z;I=7Z;I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=3?2
-KmeB?KmeB?KmeB?KmeB?KmeB?KmeB?KmeB?KmeB?I5M!'df.hrgA]t.ir8'@U&Y,?rmq&%rndY6
-roO6Ts8LIGf)=>%hYuL:k0<rpJ,~>
-!ri9#rRLc$qW7ceJ^(aM!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(ns4..o
-s4..os4..os4..oJ)8`#c/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!q
-c/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!q
-c/.!qc/.!qc/.!qc/.!qc/-]Ss81@ChYZF9V#U>BqVM,3!Mobmeb\/$joWd-F+=~>
-!ri9#rmgl%qrRtJjsbjrr+Z:SK6,%I!-A-S!-A-S!-A-S!-A-S!.4][!.4][!.4][!.4][ItMfW
-C4gSBC4gSBC4gSBC5[.JC5[.JC5[.JC5[.JC5[.JC5[.JC6WdSC6WdSC6WdSC6WdSC6WdSC6WdS
-C6WdSC6WdSC6WdSC6WdSC6WdSC7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[
-C7K?[C)iabC208[C208[C208[C208[C208[C208[C+92\eb\/"joXtHs8:FDhYZF:m\Km\eb\/#
-joWd-0n9~>
-!ri9#rmq&%rndY6roO:IjtqX7r-8?lNIf5t!.Fil!.Fil!.Fil!.k,p!.k,pIt`;rH%gZlH&6rp
-H&6rpH&[5tH&[5tH'*N#H'*N#H'Nf'H'Nf'H'Nf'H's5/H's5/H's5/H's5/H's5/H's5/H(BM3
-H(BM3H(BM3H(BM3H(BM3H(BM3H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7GqPeA
-H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7Gr5QLdf.hrgA]t.ir8'ClCn7+
-df.hrgA]t.ir8'ClCn7+df.hrgA]t.irA-Bc2^7_~>
-!ri9#rmgl%qrRtJk$in\r5JZ[`l.r&rl"l^rl"l^rl"l^rl"l^rl"l^rl"l^rl+o^s2G#_s2G#_
-s2BK<c,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZP
-c,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZP
-c,IZPc,IZPc,IX9e]l(Pe]l(Pe]l(Pe]l(Pe]l'Bs8:FDhYZF:m\Km\eb\/"joXtHs8:FDhYcL;
-blDg8~>
-!<E0!eb\/"k5XiMjsd0Bs5)RH%#`)>PlLd.hVN!^pA`c["nqt2CA.]*C&i>SC&i>SC&i>SC&i>S
-C&iV[C&iV[C4CSOC;luiC2/BBC2/BBC2/ZJC2/ZJC2/ZJC2/uSC2/uSC2/uSC2/uSC2/uSC2/uS
-C2/uSC2/uSC208[C208[C208[C208[C208[C208[C208[C208[C208[C20PkC20PkC20PkC20Pk
-C20PkC20PkC20PkC20PkC2,&jHYR;kHYR;kHYR;kHYR;kHYR;kHYR;kHYR;kHYR;kHYR:Es8CLE
-hYZI8mK'-`rRLX.roX7K!MoboeH4Sn62f[?62fpIm_&UN~>
-!<E0!f)=>%hYuO6k5X]IjtrrXs5)RS%$ehTSbiB7hVNBtpA3Ea"nqe8FnY\0FT?^dFT?jhFT?jh
-FansfF`i7\F`iC`F`iC`FiLG,F`i[hF`i[hF`iglF`igpF`istF`j+#F`j+#F`j+#F`j+#F`j7'
-F`j7'F`j7'F`j7'F`j7'F`jC+F`jC+F`jC/F`jC/F`jC/F`jO3F`jO3F`jO3F`jO3F`jO3F`jO3
-F`jO3F`jO3F`fI9JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ)l
-qU5AorS%8-ro3q>s69ZZqU5AoqEY$JroX7G!hoJ=rmh2*5X='&hZ#tDir8'AlFHtG~>
-!<E0!eb\/"k5XiMk$k4,s7Y9f%+Xdbec5[;p@cJEs8U`js8W,<s8W#9!6tM^!6tM^!6tM^!6tM^
-!6tM^s3:S_s36&4mbZ4-`QcZH`RW5P`RW5P`RW5P`RW5P`RW5P`RW5P`RW5P`RW5P`RW5P`RW5P
-`RW5P`RW5P`RW5P`SSkY`SSkY`SSkY`SSkY`SSkY`SSkY`SSkY`SSkY`SSkY`SSkY`SSkY`SSkY
-`SSkY`SSkY`SSkY`SSkY`SSl>`?F*_`Pp]Y`Pp]Y`Pp]Y`Pp]Y`Pp]Y`Pp]Y`Pp]Y`Pl<drRLc$
-qr[qH!Moboeb;B/k5XiMV#UDD!o?4/rSIQ?rT41L]`<Q~>
-!s&AOec+G*63#g?k5RaHmK)H!oO7iRPi6'PK9Yk7!J?X%@KP*)3T"9XKE%0%k5S=Fc-87Xp@^4M
-K9Y/#s7QRM@eTLMraGkBraGkBraGkBraPnls'btLraL@uC1:Y!C1:YRs*J4%C1:Y)C1:Y)C1:Y)
-C1:Y1C1:Y1C1:Y1C1:Y1C1:Y:C1:Y:C1:Y:C1:Y:C1:Y:F(/UCF(/UCF(/UCF(/UKF(/UKF(/UK
-F(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/T)S9&.KS9&.KS9&.KS9&.K
-S9&.KS9&.KS9&.KS9&.KS9&.KS9+[=!@e'Jeb\/"k5OcLV#UGE!8dH9s5s=K!MobpeH"J)63#g?
-63$*ImK(!$J,~>
-!s&APf)FD'5l]^?iWA717/lHPi\^:E!KEZ/D#oWen8/2cSa(%ng<rOLD%VX$R8E&G=\-id88\(o
-4Dg(Kghm)b"?^Ppp,r=k!-/!T!-S9X!-S9XJ!HRAD1-D@D1-D@D1Q\DD6EniD1utHD2ECPD2ECP
-D2i[TD38sXD38sXD3]B`D3]B`D3]B`D4,ZdD4,ZdD4,ZdD4,ZdD4,ZdD4PrhD4PrhD4PrhD4Prh
-D4PrhD4u5lD4u5lD4u5lD4u5lD5DMpD5DMpD5DMpD5DMpD(VT0D/H+pD/H+pD/H+pD/H+pD/H+p
-D/H+pD/H+pD/H+pD/H+pD/H+pD/H+prbVZmqYo(EgA]t.ir8*>l2dUTrmh)'q`t*Js5s=G!MTAh
-ec=G&5l]^>7/uELl2eHrJ,~>
-!s&AOec+G*63#g?k5RaHmK)HZoXt:Me`"1Bc.2<s!R90[]`RWaKAX?Sc2Z%QpA^%tk2q<0s8R/R
-c.1U_s8N4C^&S+RqRlmJrk/<Nrk8?^s1JEOrk/<Nrk/<Nrk3g<s2D[r`P&t0`P&t0`P&t0`P&t0
-`P&t0`P&t0`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8
-`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&r*e]#58e]#58e]#58
-e]#58e]#58e]#58e]#58e]%O$!Fl*.eb\/"k5OcLV#UGE!8dH9s5s=K!MobpeH"J)63#g?63$*I
-mK(!$J,~>
-!W`8NrndT>rT=,Gs%<=Z!Tkj'=p"Et9&a"UpA[bT=p"Et9'TU[3T"!Qk05VQp@^4=;E6a@p@^4E
-pA[b@>6":!0j=;E1&G,S@fBO2@fBO6CA.["CAqCdC1:@MF(/<VF(3DV@U`MEHX^/^HX^/^HX^/^
-K48"fK48"fMeZF!MeZF!MeZF!MeZF!MeZF!MeZF!MeZF!P\OB*P\OB*P\OB*P\OB*P\OB*P\OB*
-P\OB*P\OB*S8)52S8)52S8)52S8)52S8)52S8)52S8)52S8)52/Y$QZ>+B>2>+B>2>+B>2>+B>2
->+B>2>+B>2>+B>2>+B>2>+B>2>+AbFs4,ZrhYZI6mKKEde^`O5pH\fArU'ibs4,ZVhY0;9k5OcL
-]`<Q~>
-!W`8Orn@<9ro*q?rBpbQmc$(qB`e#)=lO,spA.q^B`e#)=mB]%84;?L''@V)=n_\S@:_ttC%h6_
-C%hC+h.co_#<Z_op,m&'D>n5LD>n7!EG]E(FnYZ7H#780H#780I;N\4JT9,tEH,],KlLg@M/d6D
-M/d6DNHJrLO`bAPO`bAPQ$$eTQ$$eTQ$$eTQ$$eTR<<4XR<`L\R<`L\R<`L\SU"p`SU"p`SU"p`
-SU"p`SU"p`Tm:?dTm:?dTm:?dTm:?dTm:?dTm:?d3MC_4Bq]fdBq]fdBq]fdBq]fdBq]fdBq]fd
-Bq]fdBq]fdBq]fdBq]fdBq]fdBq]fdBq]5tqUX6rgA]t.ir8*>l3?[MqUX6OgAF566icBKl3?[M
-qUX6OgAF566icBKl2eHrJ,~>
-!W`8NrndT>rT=,Gs%<=Z!Tmk`[/^.+UuJc]rrAkb[/^.+V!>>eKAX$Kp?$Fds8R/A["F"<s8R/I
-s8SnN[/^./F0tuIF8N<E^&GA=^&GAA^&S,.^&GD=^&PJ>^&PHh`P(F%[(WiR`P&Xc`P&Xc`P&Xc
-`P&Xcc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKk
-e\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>s-.T]9[+2js[+2js
-[+2js[+2js[+2js[+2js[+2js[+2Nms4,ZrhYZI6mKKEde^`O5pH\fArU'ibs4,ZVhY0;9k5OcL
-]`<Q~>
-!<E/uhY]\>k5RaH9)n;[jsg1*#'8Z$mZ^VVrr2t>qGI]kk5YJLC/USis6cEV;ZGSWKC8c0;RHH'
-s)SY+s6c+L;Vp8_mf/eT[/U(0F*ldDs6bgA;CBH`K2PUKmS`cY;GqSms6c+LV#PL6`W(9_`P#/j
-hZ*#.;GuB.XPWnR"G?_q3Q;!t#\s)5;H!5^0spr[s)SV*s6c+L;Vp93hGX(Iqbdflk5YJLC/USi
-s6cEV;ZHG(0iI`=0iE)Ls6cCT;OlnLs6as8rr7FoSF6FFS5O**hVPX%;N(Qi;GqR>;GqR>;GqjN
-;GqjN;GqjN;Gr-V;Gr-V;Gr-V;GrE^;GrE^;GrE^;GrE^;GrE^;GrEf;GrEf;GrEf;Gr`o;Gr`o
-;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Go66C/RroC/RroC/RroC/RroC/Rro
-C/RroC/RroC/RroC/RroC/RroC/RroC/QMSeb\/"k5=WKV"W@<hY0>6mK03Xec"A#5lg'GmK(!$
-J,~>
-!<E/ugAXA;6il<0r'^SQ!TGs5AHmkFqX1%g^Ae-4L&,[email protected],h"d/6LTk1t;
-s8Rc^hYQZ6AS'l\Om`(>A\S0Ds+LU4qZ#uKqIM&"s-7/,[dI`#qIO5lhYQZ6A[;>iA]k%,A^8/(
-L#2[oTk.fpijRkFAH\:uI7VZ_rs3oDqIO73p,p(gs8Rc]hYQZ6AS'l\[c1llqYOh3Woj0Xl?Qs@
-lMp.Lral-''0Kk"p,loChYQZ:AS%n(qZ#i3^Ae.]M5ok@m]'iDD;sQhk%0hXH"CQ<EFi^8EFi^<
-EFi^<EFi^@F_,-HF_,-HF_,-LF_,-LF_,-LF_,-LF_,-PF_,-PH"CQTH"CQTH"CQTH"CQXH"CQX
-H"CQXH"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CPATm:3\Tm:3\Tm:3\Tm:3\Tm:3\
-Tm:3\Tm:3\Tm:3\Tm:3\Tm:3\Tm:3\Tm:3+p=B2rrndY6roX4Fs6]r^p=B5srBU6Jrp'OO!ho>=
-rS%69r'UPIrosRQ\c@6~>
-!<E/uhY]\>k5RaH9)n;[k$n4p#0$$1p=6P,rr2u;qQpX\pAb0d]sQ>`s7Y"B[/]h'c1_1f[,1f^
-s2>H8s7Y!M[.a4<pA`[MhZ!QT`<>W/s7X_6ZmY#9c*Xk7p9al"['[g?s7Y!MhZ(R%k5WE-k2s%i
-mf3"2[']Q#hY-oT"O6tBKBE15#eg9<[']l5F5Hors2>E7s7Y!M[.a4Mp9al"qm6a]pAb0d]sQ>`
-s7Y"B[/^.>F0tuIF0rpSs7Y!M[+4mMs7XFgrr7Gleb9%:e[3$'p@dYB[*AWH['[fc['[fc['[fc
-['[fc['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\As['\As
-['\As['\As['\As['\As['\B&['\B&['\B&['\B&['\B&['VR<`O*#&`O*#&`O*#&`O*#&`O*#&
-`O*#&`O*#&`O*#&`O*#&`O*#&`O*#&`O'+Jeb\/"k5=WKV"W@<hY0>6mK03Xec"A#5lg'GmK(!$
-J,~>
-!<E/thYKP;9)e5ZhC8A#$tAquC;p3V@eTh"3D03I25L9/HYSd2SH$Q3^&O<p;YL.I[/]P[@eTh"
-9(q[f`W'+>pAa!Vs6`0^pA\#Nk5TL+F';35;CIJ']h22jUbVT:0k0kEC;p3VHiK!rmf/2;p3TF*
-mV9`@>#P(ohP;n*;BrRK5tYV[s&(TFp+]J=p+^%Ms&)J_mV9`@>#P(ohP;mgjtZg4I\d##HYSd2
-SH$Q3^&O<p;YKf=;YKf=@eT5)`W',;s5&*;PX/LHs&,*]`EKtTS6Ahas5'P+HiL0>F';I>F(/$F
-HX]lNHX]lNHX]lNK47_VK47_VK47_VMdfR^MdfR^MdfR^MeZ-fMeZ-fMeZ-fMeZ-fMeZ-fP\O)o
-=d3Z!;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo
-;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;CV>9hYZI4mK'[email protected]!)!1W!MoGdhYTS=
-k5=WJ]`<Q~>
-!<E0!gAg"05kmbHmK)0$r*9_Fp?le7s(Q?DqHZ?dr*;1_s5JTPPuXOXb%\`mSR#Ops5LKel:c'g
-qHZqkmVTi@BjLH4ijSmP9PsM">sRQPH!tu0;#=NHOoN-l?0\FTp@^U_p?le7s(R2eO]CiLO]Ct'
-=n_9#_Z+=UpAa!L5lP%6])PT'EVB675kan6?2!tSD>*g3;"j<o_Z+=UpAa!L5j%&grEXlTs5JTP
-PuXOXb%\`mSR#Opp,lXSp,[email protected][5XC%hC/RK(QH_Z-<@?2"<TW^)F@Y#'CX?!Vkm
-?!W"q?!W/$?!W/$?!W;(?!WG,?!WG,?!WG0?!WS4?!WS4?!WS4?!WS4?!W_8?!W_8?!W_8?!W_8
-?!UU$EEuk<F^8:@F^8:@F^8:DF^8:DF^8:DF^8:DF^8:DF^8:DF^8:DF^8:DF^8:DF^8:DF^8:D
-F^8:DF^8:DF^8:DF^8:DF^8:DF^8:DF^8:DF^890pAN_EhYuO6k5OZFmK'$TrRq<<hVS7kroO8M
-lK\B:!MT5cgAg"05l="Mk5OZGmK'm!J,~>
-!<E/thYKP;9)e5ZhI?Da%(-'.Ut,L@[/^/aH_gS@2:_`pXIQYUc2ZXbec3UiXT/=gec5'%[/^/a
-KE(Y@ec2GHs8VN;s6c,Ys8S"(pA^qHUm.DHX=2'feXW`7c$TKjF0tu@Ut,L@`W*<@pA_Lqs/_Ib
-p8$7=UoaUrm`g+XX<ZU%K:K=Ks,1sus)Y:As)YRIs,2O0p8$7=UoaUrm`g+PmW8?.Ib"JdXIQYU
-c2ZXbec3UiXT/<AXT/<A[/]iqec2Gqs6ctY[#;$cs,48ak*4Erc*XSPs6e-Y`W*oI]sOlB]sOlB
-]sOlB`O)_J`O)_J`O)_J`O)_J`O)_J`O)_J`O)_J`O)_Jc*XRRc*XRRc+U3[c+U3[c+U3[c+U3[
-=j=X]XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[
-XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XCCo"hYZI4mK'[email protected]!)!1W!MoGdhYTS=
-k5=WJ]`<Q~>
-!<E/uhZ)a:62aFUmf2t]hC8@p$^C[e3K*oi62(",62O80mf-0>5s[Nns%5:Ts5l=6pA[E5p@^45
-p@^5*s.hZ5s+<W2s$8C5p+]25p+\kqs/]]/62F2$pA[F"s&(lNp+_g3UcFA5K1c0W;ZH0u>5pmQ
-s.hZ5s+<W2s$8A"r^nE[s"Qf3p@^4,p@^45p@^45p@^5*s.hZ5s+<W2s$8A"8hi(!8q6:/;DCI'
-3Tg?63ElIF3D0#=0hV050pM^63K*oimf-0>5s[Lsp@^6's%5:Ts5l=6pA[E58lG].8lA8RC0F5%
-F';1.F';1.HWj$6HWj$6HWj$6K3Cl>K47GFK47GFK47GFK47GFK47GFK47GFMdf:NMdf:NMdf:N
-Mdl]Y;2\mU8rI.N8rI.N8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW
-8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEfa8c^C7r8.>5qsOLX!MoGfh>fk=k5XiL9)e8Yp&Uu_
-r8%G9r':<Tr9aX[]`<Q~>
-!W`8Srnd\7qEtNYmdBZ:hDG.5$_@<t8<s43<VH,K<VooVmf-QX9MeFFs&DHus5m!XpA[fOp@^UO
-p@^V:s/JVTs+sbLs%G]Op,lLOp,l@;s/p?A:f[Bq-scE?:jr@P8G;a>Sc>]\Q2c\Ds2&@DlFq-8
-8=BLX8<s43<VH8[5Y1lW,L6<O<E]%h4B;+K4B_CO4B_CO4IQ5L8<s43<VH8[5Y,$C5lFi8mf-QX
-9MeFFs&DHus5m!Xp@^UOp@^V>s/Jb\s,$1D>sMCd9NCf[4QcZD6tQD\9Nh)c83g0hs2J&M=]p#]
-=]p/a=]p;i=]p;i=]pGm=]pSu=]pSu=]p`$=]p`$=]p`$=]p`$=]pl(=]pl(=]pl,=]pl,=]q#0
-=]q#0s&i3aEEQG0EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4
-EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EW0)C2"oYWrndY6roX4FrpKgW#,1bEg>:[Oro3q>
-s69SPrpKgW"/5GBgA]q/iql.DlMg2Qo""gO~>
-!<E/uhZ)a:62aFUmf2t]hI?DY$dJ^jK>mklSH&V1SGT*>pA^%tPa%+"s+>s*s6bf@s8R^us8RGA
-s8R/Zs2BW0s/_ajs+>[us*LRAs)X_(s2D(0PaqTGs8OC'^&O=Ts8R/bs2BW0s/_ajeXZ[5c)gql
-`W*o0`W*$0s8RFmMuKLsk5TLuV#UI9SH&V1V#UI9V#UI9`W*o0`W*$0s8RFmMkk]HrM4r:s,25g
-P`,88K7g9*mYdn@s)Y"9s)ZHb`Il/0XS2[PH^p=YV#UI9pA]btXT.^HV#UIAH^(W3eVgN)UpR5!
-UqNk*UqNk*UqNk*UqNk*UqO.2UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:
-UrB_@Uf#+<Unku:Unku:Unl8BUnl8BUnl8BUnl8BUnl8BUnl8BUnl8BUnl8BUnl8BUnl8BUnl8B
-Unl8BUnl8BUnl8BUnl8BUnl8BUnl8BUnl8BrhKR(pAEeEk54THp&Uu_rS@N?qr[qH!)!7Ys7QJh
-pAEbIk57LF9)S)Yp:UHV~>
-!<E0!hYlU:62aFUmf)n\hC8@p!3H+u"IqdOp+cD9s8N*S62jLVrt7%P9)noG9(qs59(qs59(qs5
-XSi)3S3clB0hV050hV050hPoos8UVjq+;"$s+@]80gYO,0s(<Q$_0N5p5@2/k*4^WXSi)$S3clB
-1&OWX`W%Yb9(qs59(qs59(qs59(qs5XSi)$S3clB1&+B@rrFi?r_!4j%P^7As8OfGp@^45p@^5B
-r;Qkhs8OhP8q1%<p+cUI0gT:Ks"S!Vp+^#S9)ljj8kNi%8kO/.8kO/.8kO/.8kOG68kOG68kO_F
-8kO_F8kO_F8kO_F8kO_F8kO_F8kO_F8kP"N8kP"N8kP"N8kP"N8kP"N8kP"N8kP"N8kP=W8kP=W
-8kP=W8kP=W8kP=W8kP=W8kLn(@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W
-@S07W@S07W8h'K4h>jAL62jIXV!d[Mp&Uu_rS@N?r9""H!_VnKrq6AgpANhJk57OE9)e8Yp&Vi,
-J,~>
-!<E0!hYuL7k57UK8FGpFnc@H$r)j$&r;Qnj9_S0BqH<ju!C0Za=VU`44B5Pas$0`\p,l@Kp,lLO
-p,oMUrtCqsp@^UKp@^UOp@^UOEQ8%Yg3rd"$GQOs]&#PLp@^VOr;R.q9\T&sf"U:7i]OCArrnre
-p@^UKrE0i[s$0^ip@^UOp@^UOp@^UOp@^VOr;Qqk9_S0B<V]etrrGAbr`Kg/s#a:as8P>ep@^UO
-p@^VOr;V8;s8P>i?!1<Ap@^WFs#a:us8P?(p@^Uc@9roQ86K)@AQ`/aAQ`/aBj"SiBj"SmBj"Sq
-D-:"uD-:#$D-:#$D-:#$D-:#$D-:#(D-:#(D-:#(EEQG,EEQG0EEQG0EEQG0EEQG0EEQG4EEQG4
-EEQG4EEQG4F]hk8F]hj0R<;Y8R<;Y8R<;Y8R<;Y8R<;Y8R<;Y8R<;Y8R<;Y8R<;Y8R<;Y8R<;Y8
-R<;Y8R<;Y8R<;Y8R9;B;gA]q/SbYYTV=*dNncGNUgA]q17,m5*k5OWI8FGpFncGNUgA]q/iqZ"A
-mf2hY\c@6~>
-!<E0!hYlU:62aFUmf)n\hI?DY!7h#I"ML'"s)\%4s8N+@SGo>art9CCV#UIAV#UI9V#UI9V#UI9
-eboF\]p/QsF/8j9F/8j9F/61ns8VN#q4nASs/b)FF.E:1F4L3g$b_emp9`u,m_/%0eboFM]p/Qs
-F8VgJk5TLuV#UI9V#UI9V#UI9V#UI9eboFM]p/QsF82R2rrI22rhTSo%We/9s8RGAs8R/9s8R/j
-r;Ql4s8R0=UjoKGs)\5?F.BW;s*M-Qs)YQKV#SttUnkB!Unk]*Unk]*Unk]*Unk]*Unk]*Unku:
-Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unl8BUnl8B
-Unl8BUnl8BUnl8BUnl8BUnffk[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB
-[%sMB[%sMBUgj&rh>jAL62jIXV!d[Mp&Uu_rS@N?r9""H!_VnKrq6AgpANhJk57OE9)e8Yp&Vi,
-J,~>
-!s&AXhYZI69)n>Xp&X#!r(7$Ts.oTJ"$-)K1&=KDmf-Jh8f$Rh8kNRmjtTL%p+]25p+]25p+_g3
-V#<"]3VN/$9(qs59(qs58kMBAV#TjKqFV0;s4-h$0hV050pM^6r@n^@XT..QPlK:00pM^6r@nC7
-p@^6=8cc$nr_!4a%l$]Mp+]25p+]25p+_g3V#<"M3VN/$pdtVUs'#@n''B3d8n.h_0hV050hV05
-0pM^6r@nB9s'#CoIp,bDp+b_08m6!0jtTd-p+]H;@fN5a8nqO%8on0.8on0.8on0.8pa`68pa`6
-8qUSF8qUSF8qUSF8qUSF8qUSF8qUSF8qUSF8rI.N8rI.N8rI.N8rI.N8rI.N8rI.N8rI.N8sEdW
-8sEdW8sF'_8sF'_8sF'_8sF'_8i2cI8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_
-8kP=_8kP=_8kP=_8h'K5h>l^962X=Tmeuh[V"XfE!Tl]Hk5F]K9()ZO!MoGgh>l^962X=Tmf)n\
-]`<Q~>
-!s&AXhYuO6k5IaM8FGpFncJO=2#L>TRK'Gg49J.Jp,r1O!p]esrDaWqs&E'5s5lFDp@^UKp@^UK
-p@^V:s/u;_'1hij4B;+K4B;+K4B5BX=f)/`;#40#IK.adPsA@Cp,ncCY5LHk8?W!HV3V)7Y!AET
-Y5LHb8G;a>r)Ed's8H$up('8cp@^UKp@^UKp@^V:s/u;_"%`.Z4SVnXlMkGo<>+Ho<E3c5jucZ;
-p,l@Kp,ncCY5LJ4lMkEu<E3I1p@^W6s&EcQs5lFLp@^UW<GDK55ZMr8<E4<U<E4HY<E4HY<E4Ta
-<E4`e<E4li<E4li<E4li<E4li<E5#q<E5#q<E5#q<E5#q<E5/u<E5/u<E5/u<E5/u<E5<$<E5<$
-<E5<(<E5H,<E5H,<E5H,<E5H,s&D%HEE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,
-EE-#,EE-#,EE-#,EE-#,EE+jdrn[Y7q*b6R!:KjW!qr>Yrn[_97,n4.rosRQ8FHKJ!qr>Yrn[Y7
-q*b6R!:KjW!P/8]~>
-!s&AXhYZI69)n>Xp&X#Zr1!i-s2FqX",$XRF8DC.pA^BUS/1huK:K%CmW4ous)X_1s)X_1s)Z0Z
-`VjikKE(smSH&V1SH&V1S=Gh.`W,XrqO@u$s5s$gH^t-9F2e0urGrC"ec4dN[/]:5Hc?$(rGr'n
-s8R0<S/0ZTK:JJ3s)X_1s)X_1s)X_1s)Z0Z`Vji[KE(smpm_EZs-3JP'))?XS?2bYF.E:1F.E:1
-F2e0urGr&6s-3MQJ#&V7s)[o6K<2H[mW53(s)Y!+XT-7dS?/NVS@#)^S@#)^S@#)^S@#)^S@u"o
-S@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oSAhS"SAhS"SAhS"SAhS"SAhS"
-SAhS"SAhS"SAhS"SAhS"SAhS"S2A3dS=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"
-S=IR"S=IR"S=IR"S7;3kh>l^962X=Tmeuh[V"XfE!Tl]Hk5F]K9()ZO!MoGgh>l^962X=Tmf)n\
-]`<Q~>
-!W`8Wqr[qHs%<=Zr:U0J.JudG;XXRTH^'.Tk5T0oqar`9s5o5dP[^0_]kYOdM_Ritp+]25p+]2%
-s(Z$2s."G#K1bk20hV050hUU.C/V-cC4lQC1&4Eemf3;Q3D0#=0iIH>S9pKQ8pgU<@UfB;C,o2[
-s."G#K1bk21&OWfF8pSQ9(qs59(qs59(qs59'6.g@da8dH^'.Tp@^459'5:68q*<1k)4SN@\!J3
-C;p420hV050hV050iIH>S:d&YSH%`0H^nhCk5T1ls1NKms,/U(p@^458u2Jr3GM_i8nqO%8on0.
-8on0.8pa`68pa`68qUSF8qUSF8qUSF8qUSF8qUSF8qUSF8qUSF8rI.N8rI.N8rI.N8rI.N8mR?a
-8kP"N8kP"N8kP=W8kP=W8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_
-8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kLQ+hVRDWrB^<Qr:U>jp>4Zgk!B"/r9aPWr:U;ip>4Zg
-k5@UGmeocVp&Vi,J,~>
-!W`8Wro3q>s69\S8FGpFo)JCag,/_-$XrK"SV<>c<Ta=(@Ja%^U&X8;JXL5Cs2&p$s-5]Hp@^UK
-p@^[email protected]&/N7p,l@Kp,l@;s)hbUM04[ThE:U6,jPF09Lr1Wp,ldOqON>*M,f90s)E&Y
-s*7"@meWK.Q&/N7p,r7Q,(9KB:f[5_4B;+K4B;+K4B:PDF`$RCSV<>c<VH,K<E82Dr)J3>s5oGp
-R;&5l_KF$$Prr(?p,l@Kp,lpSqONV6M4st3Ob'3C<Ta=(Y5c@eb5[_l<VH,K<E5mqD+&MT<E4<U
-<E4<U<E4HY<E4Ta<E4`e<E4li<E4li<E4li<E4li<E5#q<E5#q<E5#q<E5#q<E5/u<E5/u<E5/u
-<E3=eD,jT$D,jT$EE-#(EE-#(EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,
-EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-!qo%r6_iqc(B8H/2[p'.5]hVR8O7/l?JlMp8P
-8H/2[p'%/\hVR8OrC$\N!(?fWrpg-a\c@6~>
-!W`8Wqr[qHs%<=Zr:U0J@f2`(V"Xi-]u@[TpA^YYqj]Ogs6dS-`N7&YeZ@p5[!S>Cs)X_1s)X_(
-s.$1as2D[j]q#-&F.E:1F.Dt(S>=]KXM+YrHhj0WpAb/FMk'hIF/8O0`P'7(SA"t&S>?2bUk>K:
-s2D[j]q#-&F8VOP[/ZqdSH&V1SH&V1SH&V1SG)uQXS2\5]u@[Ts8R/1SF6+KS:8`_m_-!HXMt4i
-XQKPiH^t-9F.E:1F/8O0`P'7(c2[4F[*>\BpA^Z-s4+L=s0R-Cs8R/1SB_(uK<1l=S@#)^S@#)^
-S@#)^S@#)^S@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS6a+8
-S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"
-S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=F'^hVRDWrB^<Qr:U>jp>4Zgk!B"/r9aPWr:U;ip>4Zg
-k5@UGmeocVp&Vi,J,~>
-!<E/sk54TDp&X#!qaq3)^%VKoMa<9ps(_C&1lL5js5mcVPii#.PVG0jp@^45p@^45Mt[0c>.sY0
-mYaC)p+]25p+]0tpA\mPpAaj*;DIu>,cq$b0gSG*p+]0K^%VKoMa:8@s#ECFs#EA;@_ML8mYaC)
-p+cG:s4&5X9(qs59(qs59(qs58rNECC0J=Es6be2p@^459(qs5r(;ErhZ*W<@R67@s5oP#3D0#=
-0hV050hPogpAaQ=8rMR+s5mcVPkP,lPii#.S2!#rp@^45C>RJq>#IsbC0F5%F';1.F';1.HWj$6
-HWj$6HX]T>K47GFK47GFK47GFK47GFK47GFK47GFK47GFMdf:NMdf:NMdf:NMdl]Y;2\mU8rI.N
-8rI.N8sEdW8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_
-8sF'_8sF'_8sF'_8sF)i8cgI0hYuX=Ud7<D8cYsjp&_&XhYu[:62F4Op&_&XhYlU:62g6O9)SA`
-]`<Q~>
-!<E0!ir8*>lMg5No)A=`g,/\'$YdKOs6>S7NUlpc9`%XCQ/;Q;iakfOk5X_34@E$>p,l1Fp,l02
-o(m??_Y4#pNC`d:4AbbF4A_%.qJj[Ks7XT<5l"5%Y5cL(9MkHV4A]b/pAaE;86Puh6qmIW6qC-g
-_Y4#pNC`d:4SqtTef[L[p@^UFp@^UFp@^UFNUlpcBu9TDlA\@.p,l/Jp@^WH:k"\ds8(_d9UY&C
-lBOJ";"jTF;"jTF:hdf?s6>S?Q/;Q;iakfOo(m?sk5X_;4@E$>p,l/ghUXf#>u4@?>u4@?@8KdG
-@8KdK@8KdOAPc3SAPc3WAPc3WBi%W_Bi%W_Bi%W_Bi%W_Bi%WcBi%WcBi%WcBi%WcBi%WgD?!F0
-O_mokO_mokO_mokQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>o
-Q#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#6Ls!]9?%ro*pOr'^NT!ikh^rq6Demb[s&qaCBRs760_!ho&=
-ro+"A6q%%>!q&TMrpp*_!P/8]~>
-!<E/sk54TDp&X#ZqihG`eb9%:[#;Wks.oLU1pl]Ns6c,0^$bpoZu^kas8R/)s8R/)^%VK%Ut,2=
-p9]bXs)XG)s)XF<pA^rNpAb0LMgP8a,gHA>F-Mphs)XF#eb9%:[#:ISs*K\(s*KZgUt,2=p9]bX
-s)\(%s5kG^PlLc)PlLc)PlLc)PeHejUnlQ7s7WgXs8R/)PlLc)r02Z;mf3=TP`*6Cs7Wg@K9ZE9
-F-Q_)F-NKNpAainMmVpPs6c,0^%VK%`U<d"]lSgjs8R/)V!dAdS=Gh.XIPN>XIPN>XIPN>XIPN>
-[%rqN[%rqN[%rqN[%rqN[%rqN[%rqN[%rqN]qgmW]qgmW]qgmW]qgmW]qgmW]qk[m;8&ciPeElW
-PeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElW
-PeElWPeElWPeElWPeEmlPQG=^hYuX=Ud7<D8cYsjp&_&XhYu[:62F4Op&_&XhYlU:62g6O9)SA`
-]`<Q~>
-!<E/tk54TDp&b9E.JcX;5rnp!"$oOF1&CnOF%SIk0`jX53W:`53W;YN1&jlG1&jiL5qt)[5rnp!%
-RE]A0hP%m0hP&(0eksSr\4C5qYp_?8kM)u3W;YN1&jiH5rnp!#XM'T0el9m0erZ"!C8aF0`s^60
-erPt(1Q]r8kLfm8kLfm8kLfm8kMB(0gS)cr\4L@8hi("9)gXC8cUmM0`jX53W:`53W;YN1&jlG1
-&acF3W:`75tX091&k,S5qt)d3W:a_3D*aY0em.5p.@>C8kNi%8kO/.8kO/.8kO/.8kOG68kOG>8
-kO_F8kO_F8kO_F8kO_F8kO_F8kO_F8kO_F8kP"N8kP"N8kP"N8kP"N8kP"N8kP"N8kP"N8kP=W8
-kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_s%4Z'C._*_C._*_C._*_C._*_C._*_C._*_C
-._*_C._*_C._*_8h'3*k54TDp&b8imec/Dmec\Zs.o)[k54TDp&Vi,J,~>
-!s&A\ir8*>lMg5No)A=aqURM":]X6Tr]C9R:e3_FrrRIB8GtXP9Me.V49.eK;#`ZX;#`ZX:^'BP
-4A8F6r]CZ]:cpj::cpj::e3]29L/S>!'pD\"aNp@6p*a6;#`ZX:]X6Tr]CHW:f'8::f'8:r_NVh
-5lNkJ85ME2qbS&BnsN<N4?QG:4?QG:4?QG:83B".9L/S>"%Z6N4T81W4SqqT8GtXP9Me.V49.eK
-;#`ZX;#`ZW:]Nc[49J,N83m/:Ip#cB4?QG.4?Pks:ha&p4Dgqc>tA6t:iTc;:j$2C:jHJG:jlbK
-:jlnO:k<1S:k`IW:k`IW:k`U[:l/m_:l/m_:l/m_:lT0c:lT0c:lT0c:lT0c:m#Tk:m#Tk:m#Tk
-:m#Tk:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:c"AR:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo
-:f*Eo:f*Eo:f*Eo:f*Eo:f*ER2"(A&roX4FrpKdVrq6EiU$hp>roX4FrpKdVrq6EiU$hp>roX4F
-rpKdVrq6B(!.Y~>
-!<E/tk54TDp&b9E@eko^HiA'gK8YA'qYpVmMhD"M"+,raKDoolKDpf/F8q0uF8q.%K6)*dMgPGE%
-YK[\F,PrtF,Ps/F)ut\rc8'dqYp_pMi2q'HiAs'F8h'tHiA'lK8YY/F,PrtF8_!sHiA'gK8Xelq
-hl5[p:ZBBF*!7tF*!7tF*!7tK6)*dMgPGE"+uMQF8h*tF8LjqKDoooH]*f7rc8'lrepets,6nur
-egc'rc8O$Mh?@tF*ih0K6)*lKDoqAK8Z7aF*!kjp5=9^Mi4BqMi4BqMi4BqMi4[,Mi4[,Mi4[,M
-i4[,Mi4[,Mi4s4Mi4s4Mi4s4Mi4s4Mi4s4Mi4s4Mi4s4Mi4s4Mi4s4Mi4s4Mi4s4Mi59=Mi59=M
-i59=Mi59=Mi59=Mi59=Mi59=Mi59=Mi59=Mi59=s,/8<S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S
-;W<=S;W<=S;W<=Mdl,Ok54TDp&b8imec/Dmec\Zs.o)[k54TDp&Vi,J,~>
-!<E/uk54TDpAb-neLBuRqCqt1bsD1\!'/Rq!b.Z[_Ee/or]pNVr]q5r8jPa@8jPaH8jPaH8jPaH
-8t8d6r]u$C;F*T`;F*T`;F*Ti;F*Ti;F*Ti>!YH$>!YH$>!YH$>!YH$>!YH$>!YH,>!YH,>!YH,
->!YH,>!YH,>!YH,>!YH,>!YH4>!YH4@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<
-@R3;<@R3;<@R3;<@R3:"Mdet<Mdet<Mdet<Mdet<Mdet<Mdet<Mdet$mel5Emec_XrrJq`r9!nE
-qtC'i!Mo/]k54TDp&b9-!.Y~>
-!W`8[roX4FrpKdVrq?Bg!S0*t:]OMl49/(#:]OMl49/(*:]b@%8B+I+<W5gE=]J9p>ua]t>ua]t
-@9HE'AQ_i+Bj"8/D-`uH5Zpo[EEuC;F^\*CH!sNGI:5rKI:Z5OJRqYSKk4(WKk4(WKkX@[M.od_
-M.od_M.od_M.od_NG23cNG23cNG23cO_IWgO_mokO_mokO_mokQ#0>oQ#0>oQ#0>oQ#0>o5*]t]
-:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo2"'A_
-roX4FrpKdVrq?Bg"/5/Bir8*>lMg5No)A@_q?*GZio9t"rp'LNrpp'^!rBJ.J,~>
-!<E/uk54TDpAb-neRJ$+qJuXhc&;F>!/&g[!h?rV_M\DYregc@repf@s,6oAs,.;UP`(HiP`(Hi
-Pf8l.rel9%P`(HqP`(HqP`(I$S;W<,S;W<,S;W<,S;W<,S;W<4S;W<4S;W<4S;W<4S;W<4S;W<4
-S;W<4S;W<4S;W<4S;W<4S;W<4S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=
-S;W<=S;W<=S;W<=S;W:F]pt"=]pt"=]pt"=]pt"=]pt"=]pt"=]pt!imel5Emec_XrrJq`r9!nE
-qtC'i!Mo/]k54TDp&b9-!.Y~>
-!<E0!k54TDpAY'meL?&8r]pNE_a+8pr]pNVr]q5r8jPa@8jPa@8jPaH8jPaH8jPa8r]u$C;F*T`
-;F*T`;F*T`;F*Ti;F*Ti>!YH$>!YH$>!YH$>!YH$>!YH$>!YH,>!YH,>!YH,>!YH,>!YH,>!YH,
->!YH,>!YH4>!YH4@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<
-@R3:#Mdet<Mdet<Mdet<Mdet<Mdet<Mdet<Mdet<.IR/sqsO@Trr3"pmeu;Fmec_WrrJq`rT="F
-qtC'i!PJJ`~>
-!<E0!k5OZFmf)eVpAXmhehhqOs%EGa7)qt$;#X.<<DZ@_<DZ@_=\qdc>uaQl@9#upAQ;DtBj",'
-:fU1_D-9P+EEu73F^7[7H!O*;H!sB?I:[email protected]@S
-M.K@SNFbdWNG2'[NG2'[NG2'[O_IK_O_IK_O_IK_Q"`ocQ"`oc5*]hU9U0<c9U0<c9U0<c9U0<c
-9U0<c9U0<c9U0<c9U0<c9U0<c9U0<c9U0<c9U0<c9U0<c9U0<c9Jl1sroX4FrpKdVrq??f!ho&A
-roX4FrpKdVrq??f!ho&AroX4FrpKdVrq?Bg!P/8]~>
-!<E0!k54TDpAY'meRF)^rdt2t_h.rIrdt3/re(6/s+>fcMh?YHMh?YHMh?YHMh?Y?Mh?YPMh?YP
-Mh?YPP_4UaP_4UaP_4UaP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4Uq
-P_4UqP_4UqP_4UqP_4UqS:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cGK[%)c$[%)c$[%)c$[%)c$
-[%)c$[%)c$[%)c$[%)c$[%)c$[%)c$[%)c$[%)c$@da3WqsO@Trr3"pmeu;Fmec_WrrJq`rT="F
-qtC'i!PJJ`~>
-!W`8_qsO@Tr;QfJ.=k*B8qT_<.IQ?\qsO@Tr;QkpmcN[/mec_Urr](bk2uR/qtC!g!PJJ`~>
-!W`8_rp'LNrpp'^rqcZp!R`fU=b9e.<<G)Ck2u[.rpKdVrq??fs8N1plK77.lMg5No)A@^qZ$Qt
-U$Ce&rp'LNrpp'^rqZ]r\c@6~>
-!W`8_qsO@Tr;QfJ@Y(>+Uk>HF@d`C@qsO@Tr;QkpmcN[/mec_Urr](bk2uR/qtC!g!PJJ`~>
-!!)DN!%EI)JI$l6!%I<"!2T"H!2T"H!!%N~>
-!!)DK!&T64JI$l6!&X)*!28eB!28eB!!%N~>
-!!)DN!+LKbJI$l6!+P>[!2T"H!2T"H!!%N~>
-!<E0!joD3.s+13$s1/.5V#TT>]`<Q~>
-!<E0!joD*+s+13$s1/.5U&X9;\c@6~>
-!<E0!joD3.s+13$s1/.5V#TT>]`<Q~>
-!<E0!joD3.s+13$s1847K;AP0k.LbF~>
-!<E0!joD*+s+13$s1847JYE,+k.1PC~>
-!<E0!joD3.s+13$s1847K;AP0k.LbF~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:A!!:[N!:889!<1OK!!:[N!;tCI!:/25!9Mc2!:SJ6!!^sR!7fU"!.i[Oe^)eG
-K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IF!!:jS!:8G>!<1^P!!:jS!;tRN!:/A:!9Mr7!:SY;!!_-W!8?-,!.ijTg<\LQ
-JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:A!!:[N!:889!<1OK!!:[N!;tCI!:/25!9Mc2!:SJ6!!^sR!7fU"!.i[Oe^)eG
-K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!;b7G!:889!<1OK!;Y1F!:889!<1OK!9Vi3!:SJ<!;b7G!<:UL!.i[Oe^)eG
-K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!;bFL!:8G>!<1^P!;Y@K!:8G>!<1^P!9W#8!:SYA!;bFL!<:dQ!.ijTg<\LQ
-JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!;b7G!:889!<1OK!;Y1F!:889!<1OK!9Vi3!:SJ<!;b7G!<:UL!.i[Oe^)eG
-K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTuo%!a?rmh#Ks4.&J
-rmgrIs4.,L"4[AOeboLJec,UNeGoU?ec,XJec,UOeGoU"r;clJr;clJrr</O!!(RJ!.i[Oe`,-Z
-K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<1^P!"7K\!8?-,!87DQg=lK*o%O*Drn@APs4[DO
-rn@;Ns4[JQ"53_TgAM$OgA_-Sg&M-DgA_0OgA_-Tg&M-,r;clOr;clOrr</T!!(aO!.ijTg>^id
-JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTuo%!a?rmh#Ks4.&J
-rmgrIs4.,L"4[AOeboLJec,UNeGoU?ec,XJec,UOeGoU"r;clJr;clJrr</O!!(RJ!.i[Oe`,-Z
-K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)T?rW)oI
-rrE)Lrr<;S!!(R"!!(RG!<:UL!!(RK!!:[N!;"b@!<(IJ!"[T[!7fU"!7fU"!7fU"!7goGs4.,L
-J^o>%j440^"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Ern@AP#20%Wg&M-,rW!/V!!(a,!!)TDrW)oN
-rrE)Qrr<;X!!(a,!!(aL!<:dQ!!(aP!!:jS!;"qE!<(XO!"[c`!8?-,!8?-,!8?-,!8@8Ls4[JQ
-J_G\/j4aNa"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)T?rW)oI
-rrE)Lrr<;S!!(R"!!(RG!<:UL!!(RK!!:[N!;"b@!<(IJ!"[T[!7fU"!7fU"!7fU"!7goGs4.,L
-J^o>%j440^"f21\k.LbF~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ebT7WeGoU"!!(R"!!(OL!7fU"!:\P<!<:UL!<:UL
-!;tCI!!(RK!<:UL!;tCI!<:UL!;"b=!#!f^!7_&Le^XX"e^XX"e^XX"ec#RKec#Q"eUc9/ec17*
-V#TT>]`<Q~>
-!<E0!joV7Vs8(II!"@Q]!87DQg&M-,g&M-EgA1d\g&M-,!!(a,!!(^Q!8?-,!:\_A!<:dQ!<:dQ
-!;tRN!!(aP!<:dQ!;tRN!<:dQ!;"qB!#!uc!87DQg=cN,g=cN,g=cN,gAV*PgAV)'g4@u9gAc^-
-U&X9;\c@6~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ebT7WeGoU"!!(R"!!(OL!7fU"!:\P<!<:UL!<:UL
-!;tCI!!(RK!<:UL!;tCI!<:UL!;"b=!#!f^!7_&Le^XX"e^XX"e^XX"ec#RKec#Q"eUc9/ec17*
-V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo@<j@rmh#K$Io+VeGoU"eGoU"qZ-*8rVurKqZ-ZHqu?fK
-!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<>T!!(R"!!(R"qZ$]J!!)rIrW%N"J^rc1s+:KNs5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!CpT!8@;Mo@j3Ern@AP$JGI[g&M-,g&M-,qZ-*=rVurPqZ-ZMqu?fP
-!!*#PrrDuNrrE)QrrDZErrE#Orr<>Y!!(a,!!(a,qZ$]O!!)rNrW%N'J_K,;s+(?Is5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo@<j@rmh#K$Io+VeGoU"eGoU"qZ-*8rVurKqZ-ZHqu?fK
-!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<>T!!(R"!!(R"qZ$]J!!)rIrW%N"J^rc1s+:KNs5rIW!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Ln(%F<rmh#K%+P=XeGoU"eGoU"!!)K<rrE&Krr<,N!!)rI
-rrE)Lrr<,N!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<DV!!(R"!!(R"!!)rIrrDrHrW%N"J^rf2s+:KN
-s5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!V'V!87DQn(RdArn@AP%,([]g&M-,g&M-,!!)KArrE&Prr<,S!!)rN
-rrE)Qrr<,S!!*#PrrDuNrrE)QrrDZErrE#Orr<D[!!(a,!!(a,!!)rNrrDrMrW%N'J_K/<s+(?I
-s5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Ln(%F<rmh#K%+P=XeGoU"eGoU"!!)K<rrE&Krr<,N!!)rI
-rrE)Lrr<,N!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<DV!!(R"!!(R"!!)rIrrDrHrW%N"J^rf2s+:KN
-s5rIW!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)W@rrE&K
-rr<V\!!(R"!!(OL!7fU"!7_&Lrmh#Ks4.,L#1W\Re^XX"o@<j@rRLoJ#LreSe^XX"ec#RKec,UN
-eGoUKec,XLec,W#eUc92ec17*V#TT>]`<Q~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Ern@AP#20%Wg&M-,rW!/V!!(a,!!)WErrE&P
-rr<Va!!(a,!!(^Q!8?-,!87DQrn@APs4[JQ#20%Wg=cN,o@j3ErS%8O#MK.Xg=cN,gAV*PgA_-S
-g&M-PgA_0QgA_/(g4@u<gAc^-U&X9;\c@6~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)W@rrE&K
-rr<V\!!(R"!!(OL!7fU"!7_&Lrmh#Ks4.,L#1W\Re^XX"o@<j@rRLoJ#LreSe^XX"ec#RKec,UN
-eGoUKec,XLec,W#eUc92ec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTun^[O;rmgrIrmguJ
-!7h#JrRLiHs4.,Ls4.,Lo@<j@rRLoJ!n@8Nrmh#Ks4.&Js4.,LrRLiHJ^o>%imn']"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<1^P!"7K\!8?-,!87DQg=lK*n_3m@rn@;Nrn@>O
-!8@AOrS%2Ms4[JQs4[JQo@j3ErS%8O!nmVSrn@APs4[DOs4[JQrS%2MJ_G\/inFE`"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTun^[O;rmgrIrmguJ
-!7h#JrRLiHs4.,Ls4.,Lo@<j@rRLoJ!n@8Nrmh#Ks4.&Js4.,LrRLiHJ^o>%imn']"f21\k.LbF~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD*+g4@t/g:>o@U&X9;\c@6~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD3.eUc8%e]lY4K*Kl%s5rIW!.Y~>
-!<E0!joD*+g4@t/g<J@>JHji%s5rIT!.Y~>
-!<E0!joD3.eUc8%e]lY4K*Kl%s5rIW!.Y~>
-!<E0!joV@/eU_IdC4U-JCAucPK*VG,V#TT>]`<Q~>
-!<E0!joV71g4=g+JUrC#Jc=BlJHu5/U&X9;\c@6~>
-!<E0!joV@/eU`X0Mh-f7MuM8qK*VG,V#TT>]`<Q~>
-!<E0!joV@/eU_IdC4U-KC&m]$ec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!joV71g4=g+JUrC$JH5`LgAca#_>o/`_Z0W?g7eQ/k.1PC~>
-!<E0!joV@/eU`X0Mh-f8MZEeVec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDW=_s+C0]s8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc!:bs+1$`s8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDW=_s+C0]s8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc!:cs+,au_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KD`F_s8R`K^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc*Cbs8RZI_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKD`F_s8R`K^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXT#=$!;rqs!.h5&XQ6J_mf(c:KD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+gA]h+!;tRL!.ijTg>pufs8LaPJc*CbrrUo*Jc*Cbrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k5ONC!;u!X!.j9`k2b\)s8LRKKD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!joqR2eS8j#qZ-Srq>gPsq>gMrrW)hsquHbuquHAjquHYrq>^MsrW)r!rVur"q>^MsquGr^
-!W];%rN#u!rN#u!JZOF(jfJLMrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~>
-!<E0!joqI4g4=h/qZ-TKq>gQLq>gNKrW)iLquHcNquHBCquHZKq>^NLrW)rOrVurPq>^NLquGs7
-!W^pSrRq5OrRq5OJ_G\/jkBb7rn@C'rPJU7s4[L(r5/L6#25dNk2s5TJ,~>
-!<E0!joqR2eVf@JqZ-TWq>gQXq>gNWrW)iXquHcZquHBOquHZWq>^NXrW)r[rVur\q>^NXquGsC
-!W_?_rT4([rT4([J`_OGjlZUCrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!)u!#lq'.!3E7%XK2F"X8i7rX8i7tX8i7iX8i7rX8i8!X9/I(
-X8r1"!!*#"!!)u!!!*#"!!)/_!W];%rN#u!rN#u!JZOF(jfJLMrmh%$rOr72rmh%$rOr72#1]OL
-k2s>WJ,~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!)uO#lr]5!8?-,g=cQ)g&M-Kg&M-Mg&M-Bg&M-Kg&M-Og&h?/
-g&V')!!*#P!!)uO!!*#P!!)08!W^pSrRq5OrRq5OJ_G\/jkBb7rn@C'rPJU7rn@C'rPJU7#25dN
-k2s5TJ,~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!)u[#ls,M!9WDDk2l[Ajo>DWjo>DYjo>DNjo>DWjo>D[joYVG
-joG>A!!*#\!!)u[!!*#\!!)0D!W_?_rT4([rT4([J`_OGjlZUCrmh%$rOr72rmh%$rOr72#1]OL
-k2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!!)u!#lq'.!3E7%XK2F#X9&C'!;`bs!;iht!:[&i!;W\r!<&u$
-!3E7%r2]kuri?)"rN#u!ri?)"poOJqnuMonXK2F#X8i8!X8i6OXF[J7XT._fec1:$^&S-2ec1:#
-^&S*:eYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V')!!*#P!!)uO#lr]5!8?-,g=cQ*g&_9.!;bCL!;kIM!:\\B!;Y=K!<(UR
-!8?-,r7V,Nrn7>PrRq5Orn7>PptG`Jo%F0Gg=cQ*g&M-Og&M,(g4@u>gAh3PgAca'_Z0Z7gAca&
-_Z0W?g7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!!)u[#ls,M!9WDDk2l[BjoPPF!;bgX!;kmY!:]+N!;YaW!<)$^
-!9WDDr8mtZroO1\rT4([roO1\pu_SVo&^#Sk2l[Bjo>D[jo>C4k(2[Vk5YJ\ec1:$^&S-2ec1:#
-^&S*:eYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!s#F(!;`bs!;`bu!3?1sX8i7tX8i7iX8i7rX9/I(X8r1"!!*#"
-!!)u!!s#F(!;rnu!;NYq!:m2n!3E7%rN#u!rN#u!JZOF(jfJLMrmh%$rk8@3r71h"rk8@3#1]OL
-k2s>WJ,~>
-!<E0!jp.U6g4=h/g&V')!!*#P!s%'/!;bCL!;bCN!87GLg&M-Mg&M-Bg&M-Kg&h?/g&V')!!*#P
-!!)uO!s%'/!;tON!;P:J!:nhG!8?-,rRq5OrRq5OJ_G\/jkBb7rn@C'rke^8r7_1%rke^8#25dN
-k2s5TJ,~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!s%KG!;bgX!;bgZ!9O:Xjo>DYjo>DNjo>DWjoYVGjoG>A!!*#\
-!!)u[!s%KG!;tsZ!;P^V!:o7S!9WDDrT4([rT4([J`_OGjlZUCrmh%$rk8@3r71h"rk8@3#1]OL
-k2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!!*#"r;c\q!!)nt!!*#"!!)nt!!)nt!!)Mi!!)hrr;cbs!!*#"!!)u!
-r;cbs!!)5a!!*#"!!)u!!!)u!!!%SOJZRt7s6fm:s+C?bs8VuHs+C<as8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V')!!*#Pr;c]J!!)oM!!*#P!!)oM!!)oM!!)NB!!)iKr;ccL!!*#P!!)uO
-r;ccL!!)6:!!*#P!!)uO!!)uO!!%T(J_K5>s8W)Ps+13es8VuMs+10ds8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG>A!!*#\r;c]V!!)oY!!*#\!!)oY!!)oY!!)NN!!)iWr;ccX!!*#\!!)u[
-r;ccX!!)6F!!*#\!!)u[!!)u[!!%T4J`c(Vs8W)Ks+C?bs8VuHs+C<as8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!s#F(!;`bs!;ikq!;iht!;iht!<&u!!;3Dn!<&u!!<0&%!3E7%
-qlBi!X8r1"!s#F(!;rnu!<&u!!:?if!<0&"!<&u!!<&u!!.h5&XQ?P`mf(c:KE&Xbs8(:GKE&Xb
-rs%#Ls5rIW!.Y~>
-!<E0!jp.U6g4=h/g&V')!!*#P!s%'/!;bCL!;kLJ!;kIM!;kIM!<(UO!;5%G!<(UO!<1[S!8?-,
-qq;)Og&V')!s%'/!;tON!<(UO!:AJ?!<1[P!<(UO!<(UO!.ijTg?%&gs8LaPJcEUes8(ILJcEUe
-rs%2Ns5rIT!.Y~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!s%KG!;bgX!;kpV!;kmY!;kmY!<)$[!;5IS!<)$[!<2*_!9WDD
-qrRq[joG>A!s%KG!;tsZ!<)$[!:AnK!<2*\!<)$[!<)$[!.j9`k2kb*s8LRKKE&Xbs8(:GKE&Xb
-rs%#Ls5rIW!.Y~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!!)u!!!)qu!!)qu!!)qu!!)qu!!)nt!!)u!!!)\n!!)u!!!*#"
-!!)u!!!)u!!W];%r2]kurN#u!ri?)"rN#u!mB$0bri?)"rN#u!JZOF(jfJLMrmh%$!knX6q:5Lt
-s1SI4#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V')!!*#P!!)uO!!)rN!!)rN!!)rN!!)rN!!)oM!!)uO!!)]G!!)uO!!*#P
-!!)uO!!)uO!W^pSr7V,NrRq5Orn7>PrRq5OmFqF;rn7>PrRq5OJ_G\/jkBb7rn@C'!lG!;q:bk"
-s2+g9#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\
-!!)u[!!)u[!W_?_r8mtZrT4([roO1\rT4([mH49GroO1\rT4([J`_OGjlZUCrmh%$!knX6q:5Lt
-s1SI4#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!)u!!!)qu!!)qu!!)qu!!)qu!!)nt!!)u!!!)\n!!)u!!!*#"
-!!)u!!!)qu!!)nt!!)u!!!*#"!!)u!!!)u!rrDMh!!)u!!!)u!!!%SOJZRt7s6fm:s+:Bds8VlE
-s+:Wks8UWFs5rIW!.Y~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!)uO!!)rN!!)rN!!)rN!!)rN!!)oM!!)uO!!)]G!!)uO!!*#P
-!!)uO!!)rN!!)oM!!)uO!!*#P!!)uO!!)uOrrDNA!!)uO!!)uO!!%T(J_K5>s8W)Ps+(6gs8VlJ
-s+(Kns8UfHs5rIT!.Y~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\
-!!)u[!!)rZ!!)oY!!)u[!!*#\!!)u[!!)u[rrDNM!!)u[!!)u[!!%T4J`c(Vs8W)Ks+:Bds8VlE
-s+:Wks8UWFs5rIW!.Y~>
-!<E0!joqR2eS8j#qZ-Srq>gMrquHbur;Zi!r;cl!quHbuq#L/jq#LGrq>gGp!!)quq>^Msq#LAp
-rrDPirW)nur;_DMJZRq6s6fm:s+C@Oon*Ras8UWFs5rIW!.Y~>
-!<E0!joqI4g4=h/qZ-TKq>gNKquHcNr;ZiOr;clOquHcNq#L0Cq#LHKq>gHI!!)rNq>^NLq#LBI
-rrDQBrW)oNr;_E&J_K2=s8W)Ps+14MommFds8UfHs5rIT!.Y~>
-!<E0!joqR2eVf@JqZ-TWq>gNWquHcZr;Zi[r;cl[quHcZq#L0Oq#LHWq>gHU!!)rZq>^NXq#LBU
-rrDQNrW)oZr;_E2J`c%Us8W)Ks+C@Oon*Ras8UWFs5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:K)krCKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJH5`AJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKK)krCKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCJmFeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJai[Dg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCJmFeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCf*LKE(u%V#TT>]`<Q~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJb/mJJcGc(U&X9;\c@6~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCf*LKE(u%V#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXO4*L!;NYq!.h57XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g<nUS!;P:J!.ijegAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k0`;k!;P^V!.j9qk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!joqR2eS8j#quHVqrW)ktqZ-Vsq>^MsquDJQ!!)bp!!)bp!!%SOP-"]Ormh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!joqI4g4=h/quHWJrW)lMqZ-WLq>^NLquDK*!!)cI!!)cI!!%T(P1os9rn@C's8VfHs+14M
-#25dNk2s5TJ,~>
-!<E0!joqR2eVf@JquHWVrW)lYqZ-WXq>^NXquDK6!!)cU!!)cU!!%T4P32fErmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i7pX8i7tX8i8!X8i8"X8i8!X8i8"X8i6RX8i7eX8i6OXHK[bmf(c:KE(uF
-ec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Ig&M-Mg&M-Og&M-Pg&M-Og&M-Pg&M,+g&M->g&M,(g611is8LaPJcGcD
-gAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DUjo>DYjo>D[jo>D\jo>D[jo>D\jo>C7jo>DJjo>C4k*"m,s8LRKKE(uF
-ec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i7qX9&C'!;rnu!<&u!!<0&"!<&u!!<0&"!;NYq!4Ap.!!',"!;iks!<0)!
-!<0)!!;ESm!;rqt!;iks!!0/$JZP$9s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Jg&_9.!;tON!<(UO!<1[P!<(UO!<1[P!;P:J!4CP\!!(aP!;kLL!<1^O
-!<1^O!;G4F!;tRM!;kLL!!1dRJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>DVjoPPF!;tsZ!<)$[!<2*\!<)$[!<2*\!;P^V!4Cth!!)0\!;kpX!<2-[
-!<2-[!;GXR!;u!Y!;kpX!!23^J``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i7qX9&C'!;rnu!<&u!!<0&%!3E7%r2]kupoOJq[&j9-ri?)"rN#u!ri?)"
-ri?)"r2]kuorJ,npT+>pr2]kuriH,"JZP$9s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Jg&_9.!;tON!<(UO!<1[S!8?-,r7V,NptG`J[+bN[rn7>PrRq5Orn7>P
-rn7>Pr7V,Np"BBGpY#TIr7V,Nrn@APJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>DVjoPPF!;tsZ!<)$[!<2*_!9WDDr8mtZpu_SV[-%AgroO1\rT4([roO1\
-roO1\r8mtZp#Z5SpZ;GUr8mtZroX4\J``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i7rX8i8"X8i8!XS`(sXSi.sX8i7"X8i8!X8i8"X8i7uX9em.X8o?'!3E7%
-orJ,npT+>prN#u!r2]kuJZP$9s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Kg&M-Pg&M-OgACsLgAM$Lg&M,Pg&M-Og&M-Pg&M-Ng'Ic5g&Tj\!8?-,
-p"BBGpY#TIrRq5Or7V,NJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>DWjo>D\jo>D[k555Xk5>;Xjo>C\jo>D[jo>D\jo>DZjp;%MjoFQ+!9WDD
-p#Z5SpZ;GUrT4([r8mtZJ``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X8i8"XS`(sX8i8!X8i8"X9/I(X8r1"!!)u!!!'1'!!)u!!!*#"q>gPs
-"ota+!3E7%orJ,npT+>prN#u!r2]kuJZP$9s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&M-PgACsLg&M-Og&M-Pg&h?/g&V')!!)uO!!'1U!!)uO!!*#Pq>gQL
-"p!B2!8?-,p"BBGpY#TIrRq5Or7V,NJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[jo>D\k555Xjo>D[jo>D\joYVGjoG>A!!)u[!!'1a!!)u[!!*#\q>gQX
-"p!fJ!9WDDp#Z5SpZ;GUrT4([r8mtZJ``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!'1'!!)u!!!*#"
-!!)eq"9>M'X8qmo!!)bp!!)u!!!)qu!!%SOP-"]Ormh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!'1U!!)uO!!*#P
-!!)fJ"9@-Ug&Ud!!!)cI!!)uO!!)rN!!%T(P1os9rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!'1a!!)u[!!*#\
-!!)fV"9@QajoG&9!!)cU!!)u[!!)rZ!!%T4P32fErmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!)u!rrBF-!!)u!
-!!)u!!!)u!!!*#"rr<,%!!)Ym!!*#"!!)nt!!)qu!!*#"rr@VOP-"]Ormh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!)uOrrBF[!!)uO
-!!)uO!!)uO!!*#Prr<,S!!)ZF!!*#P!!)oM!!)rN!!*#Prr@W(P1os9rn@C's8VfHs+14M#25dN
-k2s5TJ,~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)u[rrBFg!!)u[
-!!)u[!!)u[!!*#\rr<,_!!)ZR!!*#\!!)oY!!)rZ!!*#\rr@W4P32fErmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!joqR2eS8j#q#CDrr;Zi!r;Zi!qZ-Vsq>^Msq#LAprrBI.rW)u"rW)nur;cetrr<,%!!)Vl
-rW)ktquH\srW!#$!!%SOPH=fPrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!joqI4g4=h/q#CEKr;ZiOr;ZiOqZ-WLq>^NLq#LBIrrBI\rW)uPrW)oNr;cfMrr<,S!!)WE
-rW)lMquH]LrW!#R!!%T(PM6':rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!joqR2eVf@Jq#CEWr;Zi[r;Zi[qZ-WXq>^NXq#LBUrrBIhrW)u\rW)oZr;cfYrr<,_!!)WQ
-rW)lYquH]XrW!#^!!%T4PNMoFrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXQQ\[!.h5&XSJstmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g?72b!.ijTgA0J&s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k3(n%!.j9`k5"0>s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXP0`U!.h5&XT#=$mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g=k6\!.ijTgA]h+s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k1\qt!.j9`k5ONCs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSMnsXSW"qXSi.uXSr5!XSr3NXT,@%!9pQb!.h5<XT._fec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!jp%O5g4=h/gA1dLgA:mJgAM$NgAV*OgAV)'gAfk,!9r2;!.ijjgAh3PgAca(s7Y1HJcG`S
-g7eQ/k.1PC~>
-!<E0!jp%X3eVf@Jk5#&Xk5,/Vk5>;Zk5GA[k5G@3k5XQD!9rVG!.j:!k5YJ\ec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!!*#"!!)u!!!*#"rrE&"rr@VOjfAF^JZP3>s6fm:s+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!!*#P!!)uO!!*#PrrE&Prr@W(jk9\7J_HIEs8W)Ps+14M
-p=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!!*#\!!)u[!!*#\rrE&\rr@W4jlQOCJ``<]s8W)Ks+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!s#F(!;ii%!3E7%X8o@$!<'#!!3E:%!"#_,!3?/#X8i7%
-rW)hsrW)ktquH\srW)hsr;cJkquH_trr<5(!!')#!.h5JXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!s%'/!;kIS!8?-,g&Tk+!<(XO!3FoS!"%?Z!87DQg&M-,
-rW)iLrW)lMquH]LrW)iLr;cKDquH`Mrr<5V!!(^Q!.ik#gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!s%KG!;km_!9WDDjoFQC!<)'[!3G>_!"%cf!9O7]jo>DD
-rW)iXrW)lYquH]XrW)iXr;cKPquH`Yrr<5b!!)-]!.j:/k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX9/I(X8r4#!!)u!!s#F(!;ii(!3E7%X8o=%X8r4#rrB+$rr<>+!!')#XK2C%
-ri?)"rN#u!ri?)"ri?)"rN#u!qlBbtr2]kurN#u!oW/#mqQ0\s"KVS'X8mgQV6'^brmh%$s8VfC
-s+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&h?/g&V**!!)uO!s%'/!;kIV!8?-,g&Th,g&V**rrB+Rrr<>Y!!(^Qg=cN,
-rn7>PrRq5Orn7>Prn7>PrRq5Oqq;#Mr7V,NrRq5Oo\'9FqV(rL"PNhUg&Q]XV:ttLrn@C's8VfH
-s+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjoYVGjoGAB!!)u[!s%KG!;kmb!9WDDjoFNDjoGABrrB+^rr<>e!!)-]k2lXD
-roO1\rT4([roO1\roO1\rT4([qrRkYr8mtZrT4([o]?,RqW@eX"Qf[ajoBtpV<7gXrmh%$s8VfC
-s+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juXSi.tX8i8"X8i8"X8i7tX9em.X8o?'!3E7%V5st'XK2E'X8o?'!<&u!!<0&"
-!;ro#!3E7%p8e5opT+>poW/#mqQ'l$XK2E'X8mgQV6'^brmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSgAM$Mg&M-Pg&M-Pg&M-Mg'Ic5g&Tj\!8?-,V:l4Ug=cP\g&Tj\!<(UO!<1[P
-!;tOQ!8?-,p=]KHpY#TIo\'9FqUu,Rg=cP\g&Q]XV:ttLrn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bk5>;Yjo>D\jo>D\jo>DYjp;%MjoFQ+!9WDDV</'ak2l[+joFQ+!<)$[!<2*\
-!;ts]!9WDDp>u>TpZ;GUo]?,RqW7t^k2l[+joBtpV<7gXrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX9/I(X8r4#r;cet!!)nt#lq'.!3E7%XK2DuX9em.X8o?'!3E7%rN#u!riGqr
-riH%uqQ'YsqlK\qoW/#mqQ'l$XK2E'X8mgQV6'^brmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&h?/g&V**r;cfM!!)oM#lr]5!8?-,g=cP'g'Ic5g&Tj\!8?-,rRq5Orn@2K
-rn@;NqUtoLqqCrJo\'9FqUu,Rg=cP\g&Q]XV:ttLrn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjoYVGjoGABr;cfY!!)oY#ls,M!9WDDk2lZ?jp;%MjoFQ+!9WDDrT4([roX%W
-roX.ZqW7bXqr[eVo]?,RqW7t^k2l[+joBtpV<7gXrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i7sX8i8"X8i8"X8i7tX9/I(X8r1"!!&js#lq'.!3E7%XK2F#X8i8"X8i7m
-X8i7tX8i7uX8i8!X8i7mX8i7sX9J[+X8o?'!.h5JXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Lg&M-Pg&M-Pg&M-Mg&h?/g&V')!!&kL#lr]5!8?-,g=cQ*g&M-Pg&M-F
-g&M-Mg&M-Ng&M-Og&M-Fg&M-Lg'.Q2g&Tj\!.ik#gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>DXjo>D\jo>D\jo>DYjoYVGjoG>A!!&kX#ls,M!9WDDk2l[Bjo>D\jo>DR
-jo>DYjo>DZjo>D[jo>DRjo>DXjothJjoFQ+!.j:/k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i7sX8i8!X8i8"X8i8!X8i8"X8i7uX8i8!XT&:$X9em.X8o?'!3E7%rN#u!
-rN#u!rN$)$XK2F#X8i7tX8i7uX8i8"XT&:mX8i8"X8i8"X9J[+X8o?'!.h5JXT._fec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Lg&M-Og&M-Pg&M-Og&M-Pg&M-Ng&M-OgA_/Rg'Ic5g&Tj\!8?-,rRq5O
-rRq5OrRq>Rg=cQ*g&M-Mg&M-Ng&M-PgA_0Fg&M-Pg&M-Pg'.Q2g&Tj\!.ik#gAh3PgAca(s7Y1H
-JcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>DXjo>D[jo>D\jo>D[jo>D\jo>DZjo>D[k5PF^jp;%MjoFQ+!9WDDrT4([
-rT4([rT41^k2l[Bjo>DYjo>DZjo>D\k5PGRjo>D\jo>D\jothJjoFQ+!.j:/k5YJ\ec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!jp%X3eS8j#XSi.tXSr4uX8i8"XSi.uXSr5!XSr5!XT&:%XSr2%X8i7%quHburW)nur;chu
-quHYrquH\srW!#$!!)YmrW)r!rW!,'!!')#!.h5KXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%O5g4=h/gAM$MgAV*Ng&M-PgAM$NgAV*OgAV*OgA_/SgAV'Sg&M-,quHcNrW)oNr;ciN
-quHZKquH]LrW!#R!!)ZFrW)rOrW!,U!!(^Q!.ik$gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp%X3eVf@Jk5>;Yk5GAZjo>D\k5>;Zk5GA[k5GA[k5PF_k5G>_jo>DDquHcZrW)oZr;ciZ
-quHZWquH]XrW!#^!!)ZRrW)r[rW!,a!!)-]!.j:0k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXN[d@!.h59XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g<A:G!.ijggAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k02u_!.j9sk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXPU&Y!.h5&XS]+!mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g>:Q`!.ijTgABV(s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k2,8#!.j9`k54<@s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSMqrXSi-MXR3(h!:R#g!;iks!.h5>XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%O5g4=h/gA1gKgAM#&g?mSo!:SY@!;kLL!.ijlgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp%X3eVf@Jk5#)Wk5>:2k3_:2!:T(L!;kpX!.j:#k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jq+?=eS8j#X8o?'!3E7%XK2F#X8i6OXR<.i!:?if!;W\r!.h5>XT._fec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!jq+6?g4=h/g&Tj\!8?-,g=cQ*g&M,(g@!Yp!:AJ?!;Y=K!.ijlgAh3PgAca(s7Y1HJcG`S
-g7eQ/k.1PC~>
-!<E0!jq+?=eVf@JjoFQ+!9WDDk2l[Bjo>C4k3h@3!:AnK!;YaW!.j:#k5YJ\ec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!jq"9<eS8j#X8o?'!3E7%X8r.!!!)u!rrALhrr<8)!!')#!3H/"s/c2"orS&kri?,#XSr4s
-XSr4rX8i7rX8i6OXI60imf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jq"0>g4=h/g&Tj\!8?-,g&V$(!!)uOrrAMArr<8W!!(^Q!8@DPs4[GPp"K<Drn7AQgAV*L
-gAV*Kg&M-Kg&M,(g6p[ps8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jq"9<eVf@JjoFQ+!9WDDjoG;@!!)u[rrAMMrr<8c!!)-]!9X7\s5s:\p#c/ProO4]k5GAX
-k5GAWjo>DWjo>C4k*bB3s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i8!XT&9gXT&8*X8i7%!3E7%rN#u!orJ,nrN#u!riH,"ri?)"
-rN#u!ri?)"qlBbtq5aPrJZP9@s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M-OgA_/@gA_-Xg&M-,!8?-,rRq5Op"BBGrRq5Orn@APrn7>P
-rRq5Orn7>Pqq;#Mq:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>D[k5PFLk5PDdjo>DD!9WDDrT4([p#Z5SrT4([roX4\roO1\
-rT4([roO1\qrRkYq;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX9em.X8o?'!3E7%rN#u!orJ,nq5aPrrN#u!ri?)"r2]ku
-r2]kuq5aPrJZP9@s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g'Ic5g&Tj\!8?-,rRq5Op"BBGq:YfKrRq5Orn7>Pr7V,N
-r7V,Nq:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([p#Z5Sq;qYWrT4([roO1\r8mtZ
-r8mtZq;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX9J[+X8o?'!<0&%!3E7%o;qljrN#u!rN#u!riGqrr2]ku
-q5aPrJZP9@s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g'.Q2g&Tj\!<1[S!8?-,o@j-CrRq5OrRq5Orn@2Kr7V,N
-q:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjothJjoFQ+!<2*_!9WDDoB,uOrT4([rT4([roX%Wr8mtZ
-q;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX9J[+X8o?'!<0&%!3E7%n#QKhri?)"rN#u!ri?)"p8e5o
-q5aPrJZP9@s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g'.Q2g&Tj\!<1[S!8?-,n(IaArn7>PrRq5Orn7>Pp=]KH
-q:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjothJjoFQ+!<2*_!9WDDn)aTMroO1\rT4([roO1\p>u>T
-q;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i7uX8i8!X8i7uXT&9gX9J[+X8o?'!<'#!!;!8l!<&u!!<0&"!<&u!!<&u!
-!<&u!!;rnu!;W\r!.h5>XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hQg&M-Ng&M-Og&M-NgA_/@g'.Q2g&Tj\!<(XO!;"nE!<(UO!<1[P!<(UO!<(UO
-!<(UO!;tON!;Y=K!.ijlgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@`jo>DZjo>D[jo>DZk5PFLjothJjoFQ+!<)'[!;#=Q!<)$[!<2*\!<)$[!<)$[
-!<)$[!;tsZ!;YaW!.j:#k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juXS`(sXSi.rXT&9hXSr2'X8i7%!!)u!!!)VlquH_trW)u"rW)nur;cetquH\s
-quD;LS#lYXrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSgACsLgAM$KgA_/AgAV'Ug&M-,!!)uO!!)WEquH`MrW)uPrW)oNr;cfMquH]L
-quD<%S(doBrn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bk555Xk5>;Wk5PFMk5G>ajo>DD!!)u[!!)WQquH`YrW)u\rW)oZr;cfYquH]X
-quD<1S*'bNrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXS/^q!.h5&XQ$>]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g@j5#!.ijTg>^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k4[p;!.j9`k2PP's8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXS/^q!.h5&XQ$>]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g@j5#!.ijTg>^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k4[p;!.j9`k2PP's8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXSAmq!<'"o!.h5&XRN=kmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+gA'D#!<(XH!.ijTg@3hrs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k4n*;!<)'T!.j9`k4%O5s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMX8o@#!;rqs!;rqs!;rqs!:m2k!;`eq!:m2k!;NYq!:m2k!;NYq!;!;j!<'"r
-!:m5k!;rqt!:m5i!;iks!;iht!;W_q!;rqs!;rqs!5,E5mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g&Tk*!;tRL!;tRL!;tRL!:nhD!;bFJ!:nhD!;P:J!:nhD!;P:J!;"qC!<(XK
-!:nkD!;tRM!:nkB!;kLL!;kIM!;Y@J!;tRL!;tRL!5.%cs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:joFQB!;u!X!;u!X!;u!X!:o7P!;bjV!:o7P!;P^V!:o7P!;P^V!;#@O!<)'W
-!:o:P!;u!Y!:o:N!;kpX!;kmY!;YdV!;u!X!;u!X!5.Ios8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSW"rXSr4uXSW"qXSr2#X8r7$q>^MsqZ+%*!!)u!!!*#"!!)u!!!*#"!!)u!
-!!*#"!!)u!!!)YmrrDqt!!)u!!!)YmrrDkr!W];%o;qrlq5aVtX8qmo!!)u!!!*#"!!)u!!!)Vl
-!W];%rN#u!ri?)"oW/#mrN#u!rN#u!q5jSrqQ'YsqQ'YsrN#u!ri?)"rN#u!]r_8%rmh%$s8VfC
-s+C@O#1]OLk2s>WJ,~>
-!<E0!jp%O5g4=h/gA:mKgAV*NgA:mJgAV'Qg&V-+q>^NLqZ+%X!!)uO!!*#P!!)uO!!*#P!!)uO
-!!*#P!!)uO!!)ZFrrDrM!!)uO!!)ZFrrDlK!W^pSo@j3Eq:YlMg&Ud!!!)uO!!*#P!!)uO!!)WE
-!W^pSrRq5Orn7>Po\'9FrRq5OrRq5Oq:biKqUtoLqUtoLrRq5Orn7>PrRq5O^"WMdrn@C's8VfH
-s+14M#25dNk2s5TJ,~>
-!<E0!jp%X3eVf@Jk5,/Wk5GAZk5,/Vk5G>]joGDCq>^NXqZ+%d!!)u[!!*#\!!)u[!!*#\!!)u[
-!!*#\!!)u[!!)ZRrrDrY!!)u[!!)ZRrrDlW!W_?_oB-&Qq;q_YjoG&9!!)u[!!*#\!!)u[!!)WQ
-!W_?_rT4([roO1\o]?,RrT4([rT4([q<%\WqW7bXqW7bXrT4([roO1\rT4([^#o@prmh%$s8VfC
-s+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X8i7uX8i7uX8i8!X8i8"X8i8"XT&;!X8i8!X9/I(X8r4#!!'I/!!)u!
-!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!)\n!W];%qlBbtrN#u!orJ2pX8r't!W];%oW/)oX8r't
-!W];%oW/#mrN#u!q5aPro;hunX8r4#!!)u!!!)\n!!)u!!!*#"!!)hr!W];%qlBbtq5aPrrN#u!
-ri?)"rN#u!]r_8%rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&M-Ng&M-Ng&M-Og&M-Pg&M-PgA_0Og&M-Og&h?/g&V**!!'I]!!)uO
-!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!)]G!W^pSqq;#MrRq5Op"BHIg&Us&!W^pSo\'?Hg&Us&
-!W^pSo\'9FrRq5Oq:YfKo@a6Gg&V**!!)uO!!)]G!!)uO!!*#P!!)iK!W^pSqq;#Mq:YfKrRq5O
-rn7>PrRq5O^"WMdrn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D[jo>DZjo>DZjo>D[jo>D\jo>D\k5PG[jo>D[joYVGjoGAB!!'Ii!!)u[
-!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)]S!W_?_qrRkYrT4([p#Z;UjoG5>!W_?_o]?2TjoG5>
-!W_?_o]?,RrT4([q;qYWoB$)SjoGAB!!)u[!!)]S!!)u[!!*#\!!)iW!W_?_qrRkYq;qYWrT4([
-roO1\rT4([^#o@prmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X8i8!X9&C'!<&u!!<&u!!<0&"!<&u!!<&u!!<&u$!3E7%r2]kurN-#!
-\?#Z1ri?)"rN#u!ri?)"rN#u!q5aPro;holqlBbtrN#u!o;holqQ'c!XK2EmX8i7sX9/I(X8q^j
-!!)ks!!)Vl!s#F(!<&u!!<&u!!:[&i!<0&"!;EPp!;iht!;*>m!;W\r!55K6mf(c:KE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Og&M-Og&_9.!<(UO!<(UO!<1[P!<(UO!<(UO!<(UR!8?-,r7V,NrS%8O
-\Cpo_rn7>PrRq5Orn7>PrRq5Oq:YfKo@a0Eqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UTq
-!!)lL!!)WE!s%'/!<(UO!<(UO!:\\B!<1[P!;G1I!;kIM!;+tF!;Y=K!57+ds8LaPJcGcDgAca(
-rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>D[jo>D[joPPF!<)$[!<)$[!<2*\!<)$[!<)$[!<)$^!9WDDr8mtZrT=+[
-\E3bkroO1\rT4([roO1\rT4([q;qYWoB$#QqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFl4
-!!)lX!!)WQ!s%KG!<)$[!<)$[!:]+N!<2*\!;GUU!;kmY!;,CR!;YaW!57Ops8LRKKE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i8!X8i8!X9&C'!<&u!!<&u!!<0&"!;NVt!3E7%rN#u!r2]kurN-#!\Z>c2
-rN#u!rN#u!ri?)"rN#u!qQ'YsnuMfkqlBbtrN#u!o;holqQ'c!XK2EmX8i7sX9/I(X8qak!!)hr
-!!)Vl!s#F(!<&u!!<0)"!:d,j!<&u"!3H/"qlBbtqlBeuXSr4qX8i7rX8i75XT._fec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Og&M-Og&_9.!<(UO!<(UO!<1[P!;P7M!8?-,rRq5Or7V,NrS%8O\_7#`
-rRq5OrRq5Orn7>PrRq5OqUtoLo%F'Dqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UWr!!)iK
-!!)WE!s%'/!<(UO!<1^P!:ebC!<(UP!8@DPqq;#Mqq;&NgAV*Jg&M-Kg&M,cgAh3PgAca(s7Y1H
-JcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>D[jo>D[joPPF!<)$[!<)$[!<2*\!;P[Y!9WDDrT4([r8mtZrT=+[\`Nkl
-rT4([rT4([roO1\rT4([qW7bXo&]oPqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFo5!!)iW
-!!)WQ!s%KG!<)$[!<2-\!:f1O!<)$\!9X7\qrRkYqrRnZk5GAVjo>DWjo>Cok5YJ\ec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i8!X8i8"X8i8"X8i8"X8i8"X8i7uXSi.sXSi.tX8i7uX8i7-X8i7uX8i8!
-X8i8"X8i8!X8i7tX8i7uXSW"qX8i7tX8i8!X8i8"XSW"qX8i7tX8i8"X8i7kX8i7tX8i8"X8i7j
-X8i7qX8i7mX8i8"X8i7uXSr2#X8qgm!!)qurrE&"!!)qu!!)ntrrE&"!!)nt!!)hr!!'X4s6fm:
-s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&M-Pg&M-Pg&M-Pg&M-Pg&M-NgAM$LgAM$Mg&M-Ng&M,[g&M-Ng&M-O
-g&M-Pg&M-Og&M-Mg&M-NgA:mJg&M-Mg&M-Og&M-PgA:mJg&M-Mg&M-Pg&M-Dg&M-Mg&M-Pg&M-C
-g&M-Jg&M-Fg&M-Pg&M-NgAV'Qg&U]t!!)rNrrE&P!!)rN!!)oMrrE&P!!)oM!!)iK!!'Xbs8W)P
-s+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[jo>D\jo>D\jo>D\jo>D\jo>DZk5>;Xk5>;Yjo>DZjo>Cgjo>DZjo>D[
-jo>D\jo>D[jo>DYjo>DZk5,/Vjo>DYjo>D[jo>D\k5,/Vjo>DYjo>D\jo>DPjo>DYjo>D\jo>DO
-jo>DVjo>DRjo>D\jo>DZk5G>]joFu7!!)rZrrE&\!!)rZ!!)oYrrE&\!!)oY!!)iW!!'Xns8W)K
-s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juXS`(sXS`(tXSi.nX8i8!X9/I(X8r4#!!)qu!!'F.!!)nt!!)u!!!*#"!!)u!
-!!)qu!!)Mi!!)nt!!)u!!!)Vl!!)nt!!*#"!!)Sk!!)nt!!*#"!!)Sk!!)eq!!)Vl!!*#"!!)eq
-!!)Vl!!)nt!!)u!!!)qu!!)nt!!)u!!!)qu!!)hr!!'U3s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSgACsLgACsMgAM$Gg&M-Og&h?/g&V**!!)rN!!'F\!!)oM!!)uO!!*#P!!)uO
-!!)rN!!)NB!!)oM!!)uO!!)WE!!)oM!!*#P!!)TD!!)oM!!*#P!!)TD!!)fJ!!)WE!!*#P!!)fJ
-!!)WE!!)oM!!)uO!!)rN!!)oM!!)uO!!)rN!!)iK!!'Uas8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bk555Xk555Yk5>;Sjo>D[joYVGjoGAB!!)rZ!!'Fh!!)oY!!)u[!!*#\!!)u[
-!!)rZ!!)NN!!)oY!!)u[!!)WQ!!)oY!!*#\!!)TP!!)oY!!*#\!!)TP!!)fV!!)WQ!!*#\!!)fV
-!!)WQ!!)oY!!)u[!!)rZ!!)oY!!)u[!!)rZ!!)iW!!'Ums8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i7sX8i7uX9/I(X8r7$!!)u!!!)u!!!)u!!!)u!!s#F(!;rnu!4Js/!;`bs
-!<&u!!<0&"!<&u!!<&u!!:Quh!;iht!<&u!!;!8l!;ikp!;!8l!;ikp!;*>m!;EPp!;!;h!;W\r
-!;*>m!;`bs!<&u!!;rnu!;iht!<&u!!<&u!!;W\r!4f32mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Lg&M-Ng&h?/g&V-+!!)uO!!)uO!!)uO!!)uO!s%'/!;tON!4LS]!;bCL
-!<(UO!<1[P!<(UO!<(UO!:SVA!;kIM!<(UO!;"nE!;kLI!;"nE!;kLI!;+tF!;G1I!;"qA!;Y=K
-!;+tF!;bCL!<(UO!;tON!;kIM!<(UO!<(UO!;Y=K!4gh`s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DXjo>DZjoYVGjoGDC!!)u[!!)u[!!)u[!!)u[!s%KG!;tsZ!4M"i!;bgX
-!<)$[!<2*\!<)$[!<)$[!:T%M!;kmY!<)$[!;#=Q!;kpU!;#=Q!;kpU!;,CR!;GUU!;#@M!;YaW
-!;,CR!;bgX!<)$[!;tsZ!;kmY!<)$[!<)$[!;YaW!4h7ls8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i7sX8i7uX9/I(X8r4#!!*#"rrE&"!!)u!!!)u!!s#F(!<&u!!;rqu!55H6
-!<&u!!<0&"!<&u!!<0&"!<&u!!<0&"!<&u!!;!8l!;iht!<&u!!;!8l!;EPp!:m2k!;EPp!;ikt
-!;rnu!<&u!!;iht!;`es!;NVq!;W\r!;ikt!;rnu!<&u!!<&u!!<0&"!;rnu!;`bs!<0&"!<0&"
-!<&u!!<0&"!<&u!!55K6mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Lg&M-Ng&h?/g&V**!!*#PrrE&P!!)uO!!)uO!s%'/!<(UO!;tRN!57(d
-!<(UO!<1[P!<(UO!<1[P!<(UO!<1[P!<(UO!;"nE!;kIM!<(UO!;"nE!;G1I!:nhD!;G1I!;kLM
-!;tON!<(UO!;kIM!;bFL!;P7J!;Y=K!;kLM!;tON!<(UO!<(UO!<1[P!;tON!;bCL!<1[P!<1[P
-!<(UO!<1[P!<(UO!57+ds8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DXjo>DZjoYVGjoGAB!!*#\rrE&\!!)u[!!)u[!s%KG!<)$[!;u!Z!57Lp
-!<)$[!<2*\!<)$[!<2*\!<)$[!<2*\!<)$[!;#=Q!;kmY!<)$[!;#=Q!;GUU!:o7P!;GUU!;kpY
-!;tsZ!<)$[!;kmY!;bjX!;P[V!;YaW!;kpY!;tsZ!<)$[!<)$[!<2*\!;tsZ!;bgX!<2*\!<2*\
-!<)$[!<2*\!<)$[!57Ops8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSi.tXSi,!XSMqqX98O)X8o@$!<'"q!!'+t!;ikt!55K2!<'"t!;rqs!<'"r
-!;3Gk!;rqs!;*Aj!;`er!;3Gk!;`er!;rqu!;rqq!;iht!;`es!;W_q!<'"u!;`es!;rqq!;rqt
-!<'"s!;iks!<'"r!<0(s!55K6mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%O5g4=h/gAM$MgAM!OgA1gJg&qE0g&Tk+!<(XJ!!(aM!;kLM!57+`!<(XM!;tRL!<(XK
-!;5(D!;tRL!;,"C!;bFK!;5(D!;bFK!;tRN!;tRJ!;kIM!;bFL!;Y@J!<(XN!;bFL!;tRJ!;tRM
-!<(XL!;kLL!<(XK!<1^L!57+ds8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jp%X3eVf@Jk5>;Yk5>8[k5#)Vjob\HjoFQC!<)'V!!)0Y!;kpY!57Ol!<)'Y!;u!X!<)'W
-!;5LP!;u!X!;,FO!;bjW!;5LP!;bjW!;u!Z!;u!V!;kmY!;bjX!;YdV!<)'Z!;bjX!;u!V!;u!Y
-!<)'X!;kpX!<)'W!<2-X!57Ops8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtXSr2#X8r7$r;churW)u"rW)u"q>gPsq>^MsrW)u"rW)u"q>gMrrVuu#!.h5&
-XIZHmmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRgAV'Qg&V-+r;ciNrW)uPrW)uPq>gQLq>^NLrW)uPrW)uPq>gNKrVuuQ!.ijT
-g7?sts8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ak5G>]joGDCr;ciZrW)u\rW)u\q>gQXq>^NXrW)u\rW)u\q>gNWrVuu]!.j9`
-k+1Z7s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i8"XT&;#X8i8!X8i8"XT&;"X8i8"X9J[+X8o?'!<0&"!<&u%!3E7%!<0&"
-!<0&+!3E7%XK2E'X8r7$rr@VOJZPEDs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-PgA_0Qg&M-Og&M-PgA_0Pg&M-Pg'.Q2g&Tj\!<1[P!<(US!8?-,!<1[P
-!<1[Y!8?-,g=cP\g&V-+rr@W(J_H[Ks8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D\k5PG]jo>D[jo>D\k5PG\jo>D\jothJjoFQ+!<2*\!<)$_!9WDD!<2*\
-!<2*e!9WDDk2l[+joGDCrr@W4J``Ncs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r1"!W];%qlC&'XK2E'!3E7%ri?;(XK2E'X8r7$!!)u!#QUs-!3?1%X8r7$
-#lq'.!3E7%XK2F#X8i7uXT&9OXF[IKXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V')!W^pSqq;;Ug=cP\!8?-,rn7PVg=cP\g&V-+!!)uO#QWT4!87G,g&V-+
-#lr]5!8?-,g=cQ*g&M-NgA_/(g4@tRgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoG>A!W_?_qrS.ak2l[+!9WDDroOCbk2l[+joGDC!!)u[#QX#L!9O:DjoGDC
-#ls,M!9WDDk2l[Bjo>DZk5PF4k(2Zjk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3?1%X8r.!!!)nt!s#F(!<&u&!3?1%X8r.!!!)qu!!)bp
-rr@VOJZPZKs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!87G,g&V$(!!)oM!s%'/!<(UT!87G,g&V$(!!)rN!!)cI
-rr@W(J_HpRs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9O:DjoG;@!!)oY!s%KG!<)$`!9O:DjoG;@!!)rZ!!)cU
-rr@W4J``cjs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3E7%X8r.!!!)ntr;cet"TYX*!3?1tX8i7tXSi-MXF[IC
-XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!8?-,g&V$(!!)oMr;cfM"T[91!87GMg&M-MgAM#&g4@tJ
-gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9WDDjoG;@!!)oYr;cfY"T[]I!9O:Yjo>DYk5>:2k(2Zb
-k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3E7%X8r.!!!)nt!s#F(!<&u&!3E7%X8r.!!!)bp!!%SO
-JZPEDs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!8?-,g&V$(!!)oM!s%'/!<(UT!8?-,g&V$(!!)cI!!%T(
-J_H[Ks8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9WDDjoG;@!!)oY!s%KG!<)$`!9WDDjoG;@!!)cU!!%T4
-J``Ncs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r*u!!)nt!s#F(!<0)"!;iht!;iht!<&u$!3E7%riH,"qlBbtr2]kurN#u!
-JZOF(SZMkZrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V!'!!)oM!s%'/!<1^P!;kIM!;kIM!<(UR!8?-,rn@APqq;#Mr7V,NrRq5O
-J_G\/S_F,Drn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG8?!!)oY!s%KG!<2-\!;kmY!;kmY!<)$^!9WDDroX4\qrRkYr8mtZrT4([
-J`_OGS`]tPrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!!*#"!!*#"rrDqt!!)nt!!)u!!s#F(!<0)"!;iht!;rqu
-!<0&"!;rqu!.h5&XJDrtmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!!*#P!!*#PrrDrM!!)oM!!)uO!s%'/!<1^P!;kIM!;tRN
-!<1[P!;tRN!.ijTg8*I&s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!!*#\!!*#\rrDrY!!)oY!!)u[!s%KG!<2-\!;kmY!;u!Z
-!<2*\!;u!Z!.j9`k+q/>s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtXSi.tXSi.uXSr5!X8i8!XS`(tXSMnsXSr5!X8i8!XS`(tX8r=&rW)hsrr@VO
-JZPZKs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hRgAM$MgAM$NgAV*Og&M-OgACsMgA1dLgAV*Og&M-OgACsMg&V3-rW)iLrr@W(
-J_HpRs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@ak5>;Yk5>;Zk5GA[jo>D[k555Yk5#&Xk5GA[jo>D[k555YjoGJErW)iXrr@W4
-J``cjs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8i\X8i7WX8i7qXT&:kX8i7`XT&;!XSW"qX8i7rX8i6OXLtY7mf(c:KE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g:g&M-0g&M-JgA_0Dg&M-9gA_0OgA:mJg&M-Kg&M,(g:Z/>s8LaPJcGcDgAca(
-rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?Ijo>D<jo>DVk5PGPjo>DEk5PG[k5,/Vjo>DWjo>C4k.KjVs8LRKKE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!joqR2eS8j#rW)u"rW(u[!!'p<!!)bp!!(lW!!)bp!!)Sk!!)5a!W];%rN#u!rN#u!rN-#!
-qQ0\sJZQMcs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!joqI4g4=h/rW)uPrW)!4!!'pj!!)cI!!(m0!!)cI!!)TD!!)6:!W^pSrRq5OrRq5OrS%8O
-qV(rLJ_Icjs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!joqR2eVf@JrW)u\rW)!@!!'q!!!)cU!!(m<!!)cU!!)TP!!)6F!W_?_rT4([rT4([rT=+[
-qW@eXJ`aW-s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp7d5eS8j#X8i8"X8i7[X8i7<X8i7AX8i7QX9&C'!;NVq!<0&$!3?1tX9&C'!.h5aXT._f
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp7[7g4=h/g&M-Pg&M-4g&M,jg&M,og&M-*g&_9.!;P7J!<1[R!87GMg&_9.!.ik:gAh3P
-gAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp7d5eVf@Jjo>D\jo>D@jo>D!jo>D&jo>D6joPPF!;P[V!<2*^!9O:YjoPPF!.j:Fk5YJ\
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp\'9eS8j#X8o=%XK2F"XSr5!XSr5!XSr4oXS`(sXT&;#XT&;!XSi.uXT&8#XSr4tXS`(s
-XSi.rXSr2%X8o?'quHYrrW)hsr;churr<&#rW)PkrW)hsrVuu#!;*Al!;ikq!;*>p!3E7%q5aPr
-qlBbtq5aPrJZQMcs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp[s;g4=h/g&Th,g=cQ)gAV*OgAV*OgAV*HgACsLgA_0QgA_0OgAM$NgA_-QgAV*MgACsL
-gAM$KgAV'Sg&Tj\quHZKrW)iLr;ciNrr<&QrW)QDrW)iLrVuuQ!;,"E!;kLJ!;+tI!8?-,q:YfK
-qq;#Mq:YfKJ_Icjs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp\'9eVf@JjoFNDk2l[Ak5GA[k5GA[k5GATk555Xk5PG]k5PG[k5>;Zk5PD]k5GAYk555X
-k5>;Wk5G>_joFQ+quHZWrW)iXr;ciZrr<&]rW)QPrW)iXrVuu]!;,FQ!;kpV!;,CU!9WDDq;qYW
-qrRkYq;qYWJ`aW-s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp\'9eS8j#X8o=%XK2F#X8i8"X8i8"X8i7uX8i7nX8i7rX9\g-!3E7%XK2F#X8i8"XT&;"
-X8i8"X8i8!X8i8"X8i8!X8i8!X8i8"XT&;"X8i7pX8i7uX8i8!X8i8"XT&;"X8i7kX8i7uX8i8"
-XT&:kX8i7uX8i8!X8i7mX9/I(X8r't!!)nt!!)hr!!%SO]WD/$rmh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!jp[s;g4=h/g&Th,g=cQ*g&M-Pg&M-Pg&M-Ng&M-Gg&M-Kg'@]4!8?-,g=cQ*g&M-PgA_0P
-g&M-Pg&M-Og&M-Pg&M-Og&M-Og&M-PgA_0Pg&M-Ig&M-Ng&M-Og&M-PgA_0Pg&M-Dg&M-Ng&M-P
-gA_0Dg&M-Ng&M-Og&M-Fg&h?/g&Us&!!)oM!!)iK!!%T(]\<Dcrn@C's8VfHs+14M#25dNk2s5T
-J,~>
-!<E0!jp\'9eVf@JjoFNDk2l[Bjo>D\jo>D\jo>DZjo>DSjo>DWjp1tL!9WDDk2l[Bjo>D\k5PG\
-jo>D\jo>D[jo>D\jo>D[jo>D[jo>D\k5PG\jo>DUjo>DZjo>D[jo>D\k5PG\jo>DPjo>DZjo>D\
-k5PGPjo>DZjo>D[jo>DRjoYVGjoG5>!!)oY!!)iW!!%T4]]T7ormh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!jp\'9eS8j#X8o?'!3?2"X8i7uX9em.X8o?'!3E7%orJ,nq5jSrp8e5ori?)"rN#u!ri?)"
-oW/#mri?)"r2]kuri?)"pT+>prN#u!qlBl"XK2F#X8i7kX8i8!X8i7uX8i7kX8i7uX8i7iX8i8"
-X8i7rX8i7tX8i7rX8i6OXLtY7mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp[s;g4=h/g&Tj\!87GPg&M-Ng'Ic5g&Tj\!8?-,p"BBGq:biKp=]KHrn7>PrRq5Orn7>P
-o\'9Frn7>Pr7V,Nrn7>PpY#TIrRq5Oqq;,Pg=cQ*g&M-Dg&M-Og&M-Ng&M-Dg&M-Ng&M-Bg&M-P
-g&M-Kg&M-Mg&M-Kg&M,(g:Z/>s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jp\'9eVf@JjoFQ+!9O:\jo>DZjp;%MjoFQ+!9WDDp#Z5Sq<%\Wp>u>TroO1\rT4([roO1\
-o]?,RroO1\r8mtZroO1\pZ;GUrT4([qrRt\k2l[Bjo>DPjo>D[jo>DZjo>DPjo>DZjo>DNjo>D\
-jo>DWjo>DYjo>DWjo>C4k.KjVs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp\'9eS8j#X8o?'!3?2"XSMqsX9J[+X8o?'!;3Dn!;W\r!;W_o!<0&"!<&u!!<'"t!;rqr
-!<0&"!;NVq!;EPp!<&u!!;ii"!3E7%rN#u!nuMfkrN#u!r2]kunuMfkqlK_roW/#mri?)"qQ'Ys
-qQ'Ysq5aPrJZQMcs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp[s;g4=h/g&Tj\!87GPgA1gLg'.Q2g&Tj\!;5%G!;Y=K!;Y@H!<1[P!<(UO!<(XM!;tRK
-!<1[P!;P7J!;G1I!<(UO!;kIP!8?-,rRq5Oo%F'DrRq5Or7V,No%F'DqqCuKo\'9Frn7>PqUtoL
-qUtoLq:YfKJ_Icjs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp\'9eVf@JjoFQ+!9O:\k5#)XjothJjoFQ+!;5IS!;YaW!;YdT!<2*\!<)$[!<)'Y!;u!W
-!<2*\!;P[V!;GUU!<)$[!;km\!9WDDrT4([o&]oPrT4([r8mtZo&]oPqr[hWo]?,RroO1\qW7bX
-qW7bXq;qYWJ`aW-s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r7$rrE&"!!)eq"9>M'X8qmo!!)hr!!)ks!!)u!!!*#"!!)u!!!)hr!!*#"
-!!)u!!!*#"!!)eq!!)bp!!)u!!!)nt!s#F(!<&u!!:m2k!<&u!!;rnu!:m2k!;EPp!;3Gj!;iht
-!;`bs!;W\r!.h5aXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V-+rrE&P!!)fJ"9@-Ug&Ud!!!)iK!!)lL!!)uO!!*#P!!)uO!!)iK!!*#P
-!!)uO!!*#P!!)fJ!!)cI!!)uO!!)oM!s%'/!<(UO!:nhD!<(UO!;tON!:nhD!;G1I!;5(C!;kIM
-!;bCL!;Y=K!.ik:gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoGDCrrE&\!!)fV"9@QajoG&9!!)iW!!)lX!!)u[!!*#\!!)u[!!)iW!!*#\
-!!)u[!!*#\!!)fV!!)cU!!)u[!!)oY!s%KG!<)$[!:o7P!<)$[!;tsZ!:o7P!;GUU!;5LO!;kmY
-!;bgX!;YaW!.j:Fk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r7$rrE#!!!)u!!!*#"rr<,%!!)Ym!!*#"!!)u!!!)ks!!*#"rrE&"!!)u!
-!!*#"!!)u!!!*#"!!*#"rrE#!!!)u!!!*#"!!*#"!!)nt!!)qu!!)u!!!*#"!!)u!!!)Sk!!)qu
-!!*#"rrDVk!!)qu!!)u!!!)Pj!!)ks!!)ks!!)hr!!%SO]WD/$rmh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!jp.U6g4=h/g&V-+rrE#O!!)uO!!*#Prr<,S!!)ZF!!*#P!!)uO!!)lL!!*#PrrE&P!!)uO
-!!*#P!!)uO!!*#P!!*#PrrE#O!!)uO!!*#P!!*#P!!)oM!!)rN!!)uO!!*#P!!)uO!!)TD!!)rN
-!!*#PrrDWD!!)rN!!)uO!!)QC!!)lL!!)lL!!)iK!!%T(]\<Dcrn@C's8VfHs+14M#25dNk2s5T
-J,~>
-!<E0!jp.^4eVf@JjoGDCrrE#[!!)u[!!*#\rr<,_!!)ZR!!*#\!!)u[!!)lX!!*#\rrE&\!!)u[
-!!*#\!!)u[!!*#\!!*#\rrE#[!!)u[!!*#\!!*#\!!)oY!!)rZ!!)u[!!*#\!!)u[!!)TP!!)rZ
-!!*#\rrDWP!!)rZ!!)u[!!)QO!!)lX!!)lX!!)iW!!%T4]]T7ormh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!joqR2eS8j#rW)r!!!)qur;cetrr<,%!!)VlrW)nur;c_rrW!&%!!',"!<9/"!<9.u!;rqt
-!!95%!<'"t!;rqt!;rqr!<'"t!<0)!!<9/"!;3Gk!<'"u!!95%!;3Gk!<0(t!:d/i!;iht!;rqr
-!<'"s!.h5cXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!joqI4g4=h/rW)rO!!)rNr;cfMrr<,S!!)WErW)oNr;c`KrW!&S!!(aP!<:dP!<:dN!;tRM
-!!:jS!<(XM!;tRM!;tRK!<(XM!<1^O!<:dP!;5(D!<(XN!!:jS!;5(D!<1^M!:eeB!;kIM!;tRK
-!<(XL!.ik<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!joqR2eVf@JrW)r[!!)rZr;cfYrr<,_!!)WQrW)oZr;c`WrW!&_!!)0\!<;3\!<;3Z!;u!Y
-!!;9_!<)'Y!;u!Y!;u!W!<)'Y!<2-[!<;3\!;5LP!<)'Z!!;9_!;5LP!<2-Y!:f4N!;kmY!;u!W
-!<)'X!.j:Hk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uDKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcBJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uDKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:K)krCKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJH5`AJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKK)krCKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCJmFeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJai[Dg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCJmFeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:K)iUWrs=>Xs4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJH3RZrs=8Vs4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKK)iUWrs=>Xs4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:K*&ads7k.EK*f6ks4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJHE^gs7k=JJI03ns4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKK*&ads7k.EK*f6ks4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE&Xbs7t4FK*f6ks4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcEUes7tCKJI03ns4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE&Xbs7t4FK*f6ks4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE&Xbs8(:GKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcEUes8(ILJcEUers%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE&Xbs8(:GKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDrRas81@HKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc<Ods81OMJcEUers%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDrRas81@HKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDrRas8:FIKDrRars%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc<Ods8:UNJc<Odrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDrRas8:FIKDrRars%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDiL`s8CLJKDrRars%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc3Ics8C[OJc<Odrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDiL`s8CLJKDrRars%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDiL`s8LRKKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc3Ics8LaPJc3Icrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDiL`s8LRKKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KD`F_s8UXLKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc*Cbs8UgQJc3Icrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKD`F_s8UXLKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc*CbrrUo*Jc*Cbrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDW=^s8IZK^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc!:as8ITI_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDW=^s8IZK^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc!:cs+,au_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDN:]KDW@^rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJbm7`Jc!=ars%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDN:]KDW@^rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMmXaeWmaU\(ec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+s+13$s4%)JgAca#_>o/`_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:s+13$s4%)Jec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!jo_F0eS9['JaS*We*d4cs+Bh@#1]OLk2s>WJ,~>
-!<E0!jo_=2g4=hTJcC<$e,TF$s+0\>#25dNk2s5TJ,~>
-!<E0!jo_F0eVf"YJcC<$e,TEts+Bh@#1]OLk2s>WJ,~>
-!<E0!joD3.eUc8%e]lVEKCAgEeYN6-k.LbF~>
-!<E0!joD*+g4@t/g<J=OJa`UCg7eQ/k.1PC~>
-!<E0!joD3.eUc8%e]lVEKCAgEeYN6-k.LbF~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD*+g4@t/g:>o@U&X9;\c@6~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD*+g4@t/g:>o@U&X9;\c@6~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joM:.JV/N+JV2=%ldZ07s5rIW!.Y~>
-!<E0!joM10JUrB'JUu1!le2N9s5rIT!.Y~>
-!<E0!joM:.JV/N+JV2=%ldZ07s5rIW!.Y~>
-!<E0!joM:.JV/N+JV2@&!<;B8"f21\k.LbF~>
-!<E0!joM10JUrB'JUu4"!<;B="ektYk.1PC~>
-!<E0!joM:.JV/N+JV2@&!<;B8"f21\k.LbF~>
-!<E0!jo_F0K7id/!WTias+13$s7H<m^&S-)^&S,ueHMcKk2s>WJ,~>
-!<E0!jo_=2JV!F0!WU#fs+13$s7H<m_Z0Z._Z0Z%g'+2Mk2s5TJ,~>
-!<E0!jo_F0K7id/!WTias+13$s7H<m^&S-)^&S,ueHMcKk2s>WJ,~>
-!<E0!jo_F0K7ij1s8N+P]n-37s+14CrrIbcrVuT)s8VE8"f21\k.LbF~>
-!<E0!jo_=2JV!L2s8N+N_L_`<s+14CrrI\frVuT.s8VE="ektYk.1PC~>
-!<E0!jo_F0K7ij1s8N+P]n-37s+14CrrIbcrVuT)s8VE8"f21\k.LbF~>
-!<?U-5m#ShKD3(Ys8R]Q^&S+`eUc8%ebI\pK)iU^s7j;-s6J2=6"3,G!!%N~>
-!<@-<9ENq!JbR%\s8RWO_Z0Xeg4@t/gA'D%JH3Ras7jJ2s6JAB9Q<a"!!%N~>
-!<BM*PQKBfKD3(Ys8R]Q^&S+`eUc8%ebI\pK)iU^s7j;-s6J2=PdH[>!!%N~>
-!!)tU"$tIiKDE4Zrrpr*K>%<bJ^o>%J^sPGs+:Hfs8UX"rVu`-s8VE8"[S&U@R1!E~>
-!!)t_"&.F"Jbd1]rrq,-J\qHeJ_G\/J_KnQs+(<is8Ug,rVu`2s8VE="\b2$ED-@_~>
-!!)u:"-h>gKDE4Zrrpr*K>%<bJ^o>%J^sPGs+:Hfs8UX"rVu`-s8VE8"dI!5[$1Q@~>
-!<A&W@KSpHK7j'7rVulIs+:Bds8RZ#J^o>%psoCs!knX6rRLlHr4W.1ldZ/)Mdg-]!.Y~>
-!<ADaE<AngJV!^8rVulNs+(6gs8RZ(J_G\/ptGb!!lG!;rS%5Mr5/L6le2M9Q#Ue;!.Y~>
-!<C+<ZicQCK7j'7rVulIs+:Bds8RZ#J^o>%psoCs!knX6rRLlHr4W.1ldZ0'`O*":!.Y~>
-!<A&W@KSpHK7j-9rVufGs+:Bds8RZ#J^o>%psoCs!knX6qpkZFrk8@3ldZ/)Mdg-]!.Y~>
-!<ADaE<AngJV!d:rVufLs+(6gs8RZ(J_G\/ptGb!!lG!;qqD#Krke^8le2M9Q#Ue;!.Y~>
-!<C+<ZicQCK7j-9rVufGs+:Bds8RZ#J^o>%psoCs!knX6qpkZFrk8@3ldZ0'`O*":!.Y~>
-!<A&W@Kf'JK7gkNrVu`Es+:Bds8RZ#J^o>%psoCs!knX6q:5HD!knX6ldZ/)Mdg-]!.Y~>
-!<ADaE<T%iJUt\TrVu`Js+(6gs8RZ(J_G\/ptGb!!lG!;q:bfI!lG!;le2M9Q#Ue;!.Y~>
-!<C+<Ziu]EK7gkNrVu`Es+:Bds8RZ#J^o>%psoCs!knX6q:5HD!knX6ldZ0'`O*":!.Y~>
-!<A&W@KAdFqh+[os+:Bds8RZ#J^o>%psoCs!knX6pso=qs8VE8"[S&U@R1!E~>
-!<ADaE</beqgnOrs+(6gs8RZ(J_G\/ptGb!!lG!;ptG[ts8VE="\b2$ED-@_~>
-!<C+<ZiQEAqh+[os+:Bds8RZ#J^o>%psoCs!knX6pso=qs8VE8"dI!5[$1Q@~>
-!<A&W@Kf'JK7gkNrIasss+:Bds8RZ#J^o>%psoCs!knX6q:5Fr!knX6ldZ/)Mdg-]!.Y~>
-!<ADaE<T%iJUt\TrIOh!s+(6gs8RZ(J_G\/ptGb!!lG!;q:bdu!lG!;le2M9Q#Ue;!.Y~>
-!<C+<Ziu]EK7gkNrIasss+:Bds8RZ#J^o>%psoCs!knX6q:5Fr!knX6ldZ0'`O*":!.Y~>
-!<A&W@KSpHK7j-9rIb$us+:Bds8RZ#J^o>%psoCs!knX6qpkXtrk8@3ldZ/)Mdg-]!.Y~>
-!<ADaE<AngJV!d:rIOn#s+(6gs8RZ(J_G\/ptGb!!lG!;qqD""rke^8le2M9Q#Ue;!.Y~>
-!<C+<ZicQCK7j-9rIb$us+:Bds8RZ#J^o>%psoCs!knX6qpkXtrk8@3ldZ0'`O*":!.Y~>
-!<A&W@KSpHK7j'7rIb+"s+:Bds8RZ#J^o>%psoCs!knX6rRLk!r4W.1ldZ/)Mdg-]!.Y~>
-!<ADaE<AngJV!^8rIOt%s+(6gs8RZ(J_G\/ptGb!!lG!;rS%4$r5/L6le2M9Q#Ue;!.Y~>
-!<C+<ZicQCK7j'7rIb+"s+:Bds8RZ#J^o>%psoCs!knX6rRLk!r4W.1ldZ0'`O*":!.Y~>
-!<A&W@KSpHK7j!5rIY:(K7gl;s+/^OeUc9Gec17)^&S,_ebt-s^&S,ueHJ6s@U_V'J,~>
-!<ADaE<AngJV!X6rIG.+JUt]<s+/mTg4@uQgAc^,_Z0YigAQU!_Z0Z%g'(08EH+YPJ,~>
-!<C+<ZicQCK7j!5rIY:(K7gl;s+/^OeUc9Gec17)^&S,_ebt-s^&S,ueHM2V['Z%tJ,~>
-!<A&W@KSpHK7ip3r.>'as8RZ#J^o>%psoCs!knX6rIamYs8VE8"[S&U@R1!E~>
-!<ADaE<AngJV!R4r.+pds8RZ(J_G\/ptGb!!lG!;rIOa\s8VE="\b2$ED-@_~>
-!<C+<ZicQCK7ip3r.>'as8RZ#J^o>%psoCs!knX6rIamYs8VE8"dI!5[$1Q@~>
-!<A&W@KSpHK7ij1rdt9cs8RY&JV/N+p4EL]s8R_(p:^M+ldZ/)Mdg-]!.Y~>
-!<ADaE<AngJV!L2rdb-fs8RY$JUrB'p43@`s8RY$p;6k0le2M9Q#Ue;!.Y~>
-!<C+<ZicQCK7ij1rdt9cs8RY&JV/N+p4EL]s8R_(p:^M+ldZ0'`O*":!.Y~>
-!<A&W@KSpHK7id/!e\2dJV/N+JV3WJ!knVdoY(;)ldZ/)Mdg-]!.Y~>
-!<ADaE<AngJV!F0!eJ5gJUrB'JV!KF!lFtgoYUY.le2M9Q#Ue;!.Y~>
-!<C+<ZicQCK7id/!e\2dJV/N+JV3WJ!knVdoY(;)ldZ0'`O*":!.Y~>
-!<A&W@KSpHK7eaTJcC<$df8X`"[S&U@R1!E~>
-!<ADaE<AngJUrCPJcC<$df8Xe"\b2$ED-@_~>
-!<C+<ZicQCK7eaTJcC<$df8X`"dI!5[$1Q@~>
-!<A&W@KJjGK7X&Rs+13ts6J2=6&T2]5lcE~>
-!<ADaE<8hfJV!iPs+13ts6JAB9U0U;9E9S~>
-!<C+<ZiZKBK7X&Rs+13ts6J2=Pf:#:PQ64~>
-!<A&W@K8]FeUc8%e[a366&T2]5lcE~>
-!<ADaE<&[`g4@t/g:>o@9U0U;9E9S~>
-!<C+<ZiH>AeUc8%e[a36Pf:#:PQ64~>
-!<A&V@dua8Uk,=mUtMOD@e)ebMuI/d5lcE~>
-!<AD`EUc_RTn/ngU"Q+>EUld'Q2Yb(9E9S~>
-!<C+;[.0B3Uk,=mUtMOD[.9F]`W!4FPQ64~>
-!\j\5rF5AV!+LNZJcC<$g&LT#raGpp!7cT~>
-!^m$RrGhFo!-*SiJcC<$g&LT-rc&!5!8;r~>
-!cn@\rNu18!47=WJcC<$g&LT]rj2`k!7cT~>
-!\j\5mpZ8_J`_OGJ`bYJ!/p;T!^Qh:J,~>
-!^m$Rmr8>$J`_OGJ`bYJ!1!"m!_`UJJ,~>
-!cn@\n$E(ZJ`_OGJ`bYJ!6+E6!gE]8J,~>
-"?A1:5sb$M!'u1uJ`_OGg#`9mnRDMa!W^d$J,~>
-s$Qng9MFtr!).t+J`_OGg#`:"nT"S&!W^s.J,~>
-s)S5APa(^F!0i&sJ`_OGg#`:Rn[/=\!W^d$J,~>
-">Mnk!!)LSJ\?WJJ\BaM!+PIarrE&KJ,~>
-r^?bdn4\DEJ\$EDft%0'nP&r_rn;l~>
-rcA)>n<AL;J\?WJft@BmnWa%RrmcN~>
-s#L*6!',T1JH16$[fH?VJ,~>
-r'Z)9JH16$[fH?[J,~>
-rc8*TF+F=B!.b-Z!;tAt~>
-%%EndData
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.gif b/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.gif
deleted file mode 100644
index d0d6031b22..0000000000
--- a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.png b/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.png
new file mode 100644
index 0000000000..06ff60280f
--- /dev/null
+++ b/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.png
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.ps b/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.ps
deleted file mode 100644
index 7ad54e9932..0000000000
--- a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.ps
+++ /dev/null
@@ -1,1371 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner
-%%Title: /home/hakan/picts/sim_trans_contents_viewer_mgr_actors.ps
-%%CreationDate: Mon Oct 14 17:26:33 2002
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 406 232
-%%EndComments
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-10 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.173228 14.173228 translate
-% Translate to begin of first scanline
-0.000000 217.359744 translate
-391.247539 -217.359744 scale
-% Image geometry
-468 260 8
-% Transformation matrix
-[ 468 0 0 260 0 0 ]
-% Strings to hold RGB-samples per scanline
-/rstr 468 string def
-/gstr 468 string def
-/bstr 468 string def
-{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
-true 3
-%%BeginData: 78558 ASCII Bytes
-colorimage
-!AQV60nB=U!.b-Z!!G#:0ek\=~>
-r'Z)9JH16$[fH=oJ,~>
-"DW"!C3+q+JH16$[fH>IJ,~>
-r]0uYnc&U&JcC<$KDtqba8c/>!]_tqJ,~>
-r^?bdnc&U'JcC<$KDtqca8c/>r^;8~>
-rcA)>nc&U&JcC<$KDtqba8c/>!cr*tJ,~>
-s"OQTs8VWG!53s6J^oD'!56G0s6]pg3B;T~>
-s$Qngs8VWC!5=$8J_#J)!5?M-s6]pg6puP~>
-s)S5As8VWG!53s6J^oD'!56G0s6]pgF)uj~>
-!]^8\n(n&XJ^o>%K@Kt8`SL[8!',Q~>
-!^m%gn(IcUJ_#D'K@U%:`S(C1!(;>~>
-!cnAAn(n&XJ^o>%K@Kt8`SL[8!-<Y~>
-!\j]Tn(n&XJ^sYJ!6'N>MU_^?`SL[8!',Q~>
-!^m%gn(IcUJ_'_L!QriAer/)Z^;\e-_>luS~>
-!cnAAn(n&XJ^sYJ!6'N>MU_^?`SL[8!-<Y~>
-!<E/fh>k6dec1lieHNpfe\-<VrfmH5!J>`neH)JZJ^s>A!57RPpRLp5s.'&Es.'#D!NZ9O~>
-!<E/fg&Sjaf)LlgedTEhf"Q]`R?<W_eq&CHecDJYJ_'DC!5@XMpR1^.s-`i>s-`f=!NlEQ~>
-!<E/fh>k6dec1lieHNpfe\-<VrfmH5!J>`neH)JZJ^s>A!57RPpRLp5s.'&Es.'#D!NZ9O~>
-!<E/thZ',ChZ',Eh>k7]eH*Y&iRItJ^$sPQ`P(Qes-2Bj&]K+(eVedneWc<KeUr5!e]#58eH*Y&
-m*u0EHc:Qdo@3iSkMGs'p>5b<s5*^ErS@RV!.Y~>
-!<E/tf)M08f)M0:ec<GVdK.4niR.bD[d_]G_RAaXs,l0d&]0+-dZ&[pcB47;dXcttd_`H+dK.4n
-m*YsDID19\o?mWQkLTBqp=B21s47.:rRM"P!.Y~>
-!<E/thZ',ChZ',Eh>k7]eH*Y&iRItJ^$sPQ`P(Qes-2Bj&]K+(eVedneWc<KeUr5!e]#58eH*Y&
-m*u0EHc:Qdo@3iSkMGs'p>5b<s5*^ErS@RV!.Y~>
-!<E/uhYiuChYiuDh>k7]eH(;LiRIs]HgoPdK6tSf"cJVqeUr5GeHLSPe^];!^"!.9HgB2_P`(+C
-o@3iSkMGs'p>5P6rS@RV!.Y~>
-!<E/uf);$8f);$9ec<GVdf4mWdf4mfdf4m;dKPJmdaE\tqpPLqs3gpu^!cq3ld>g!M1O+HdK%#E
-f(YU+f(YU2ecDoRJ,~>
-!<E/uhYiuChYiuDh>k7]eH(;LiRIs]HgoPdK6tSf"cJVqeUr5GeHLSPe^];!^"!.9HgB2_P`(+C
-o@3iSkMGs'p>5P6rS@RV!.Y~>
-!<E/uhY`oDhY`oCh>k7deHX!NH\8]UV#G]@`VS*mXG_FPMp9eRMgLA`rmh%,"hfP8[+1uOHiM%o
-MgL)`e^]S9]n:[=eYN1ks2>,!H[CCYqUHs`HbIt[XFo&UHe$ZcMgL)`eZ=,:eXV!*eXWGc`J](q
-[+3]bMl_j8eHER4^"&YPHO.lKHe$Z!He"qkHiM%nMgL)`e^]S9XGbV]Hi)@nM[R4NHaL/4HaM>R
-`K^=Js4..-!N_4UeIKQ_H[C[ie^^aZH[C[qV#G]E`N4uEMlcp.s,.;eMq,e)H[CCYe\-=CJ^sDC
-!57RPpRLp5q4.B>!NZ9O~>
-!<E/uf)1s9f)1s8ec<G]dK[RNI>+uTU&KH?_YV[gY).RTM9=8LM1(5`rmLh+"hKD=ZI5HGIK..n
-OaVqhdaF,7\qP^@d\6Ygs2"o$JUN6\qU-aZICdkTV1m?KJ^Vu`OaVqhd].`4d[>O#d[?fW_NB8#
-ZI70\NMVX5dKI.0]$d#GI0duHJ^VttJ^U7kIK..mOaVqhdaF,7V2`oSJc!mqN=31KJZcG8J[3_P
-_NFeFs3gq,!MtePdLO9ZJUNNldaG:TI=6spU&KHD_QJ`DM6?j+s,@G`NRG\+JUN6\d^FS8J^X2=
-!5@XIpR1^*q3h03!NlEQ~>
-!<E/uhY`oDhY`oCh>k7deHX!NH\8]UV#G]@`VS*mXG_FPMp9eRMgLA`rmh%,"hfP8[+1uOHiM%o
-MgL)`e^]S9]n:[=eYN1ks2>,!H[CCYqUHs`HbIt[XFo&UHe$ZcMgL)`eZ=,:eXV!*eXWGc`J](q
-[+3]bMl_j8eHER4^"&YPHO.lKHe$Z!He"qkHiM%nMgL)`e^]S9XGbV]Hi)@nM[R4NHaL/4HaM>R
-`K^=Js4..-!N_4UeIKQ_H[C[ie^^aZH[C[qV#G]E`N4uEMlcp.s,.;eMq,e)H[CCYe\-=CJ^sDC
-!57RPpRLp5q4.B>!NZ9O~>
-!<E/teb>U4eH!;\bmMFBK>!Lr`Pm1N^&#u1UjJ$,[%t[BH^)4.H`YK:K6rNHH\9S^H[EHFK7gk%
-Hc=6^H]+D@K?_A^HbI[^HaLJn^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifVP^CBo
-K6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO(P@'mS9oU@S9on5c%CYf
-c%CAfc%CA$V#&=b]r\oSH]-.EH],8<UrC<"HbH5%PeE<.XNf"BH]+]EMgMhE[(X`'H^oZ3oZ[BL
-kLBR&q:,J8o[Wi/qpb_K!.Y~>
-!<E/tdeB1.dK%#Zc3h^FKt<Ot`l<RX_YVP7V1"3+[]7?II?hO3IB(T<JUNBKI>,tdJUPDTJVC\#
-IE'Q`I>OYGL!I\hIDX9dIC?ku^A?,&[XFRhcAACCJUu+hJVC\#IE&jHWm6<HWm61(b(58XQ$pZt
-JUNBOrQZU\IE'RPJUPD\JUu+lJUu+dJUPDTJVC\#IE'Q`I>OfGM2D,T(P.!oTm_?KTm_X?b(58`
-c@p\lc@LD#V>AId^952YI>Q7GI>P8<WlE&0IDW"4Q+iN3Wm8n@I>OfGM1)hH[_C&,IA)5;oZdHN
-kL'?uq9f82o[<W)qpGMJ!.Y~>
-!<E/teb>U4eH!;\bmMFBK>!Lr`Pm1N^&#u1UjJ$,[%t[BH^)4.H`YK:K6rNHH\9S^H[EHFK7gk%
-Hc=6^H]+D@K?_A^HbI[^HaLJn^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifVP^CBo
-K6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO(P@'mS9oU@S9on5c%CYf
-c%CAfc%CA$V#&=b]r\oSH]-.EH],8<UrC<"HbH5%PeE<.XNf"BH]+]EMgMhE[(X`'H^oZ3oZ[BL
-kLBR&q:,J8o[Wi/qpb_K!.Y~>
-!<E/sebPa5eH!;\bmCIuSB\-^XNcBEq98tnHc>s..t`2fc,G$^c-:lf`Q`aVc-:lfc)c8^c)c8n
-c%CA^c$Of^c%CAfc&6q=^%]bsK6tkVHc=6^Hd/X=SB\-^XNc*V`I!6%]mJ#*H^r?^H`YJEHi)%g
-P^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%nK7!=:'n^kPc$OfVc$Of^XF$J^c%CAfc%CB:bm25$
-K7hF$Hc>p-%>0#PK6tS^`I!6^c%CBBbl`lNSA"mG!IL&^c1K6\^$!oGSGC\8SFkA/SGUh;X8mb~>
-!<E/sdeT=/dK%#Zc3^Y%TusNdY0MTLq9B%qIDYs..uA\ocGk9hcH^uh`m0-dcH^ulcE;Shb-$/q
-c@LD`c@LPlc@LPlcA?t?_Y;@UJKr=OIDX9\J^1EHTusNdY0MH\`dNQ/_L9S0IA+fdIBLkHIEMK5
-!L8*4cMrIqcMrIqcMrIqcMrG'cE;Shb-$/qc@LDdpWaP*IEKidIEKidJ^1QLS^,N7IEp,hIEM<0
-#K"3+L!GC#_Yh^ZJJ-7bIE'RPI>Q7pJUP\dcA?t?_Yqa\I?fB/oZdHNkL'?uq9f82o[<W)qpGMJ
-!.Y~>
-!<E/sebPa5eH!;\bmCIuSB\-^XNcBEq98tnHc>s..t`2fc,G$^c-:lf`Q`aVc-:lfc)c8^c)c8n
-c%CA^c$Of^c%CAfc&6q=^%]bsK6tkVHc=6^Hd/X=SB\-^XNc*V`I!6%]mJ#*H^r?^H`YJEHi)%g
-P^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%nK7!=:'n^kPc$OfVc$Of^XF$J^c%CAfc%CB:bm25$
-K7hF$Hc>p-%>0#PK6tS^`I!6^c%CBBbl`lNSA"mG!IL&^c1K6\^$!oGSGC\8SFkA/SGUh;X8mb~>
-!<E/rebbm6eH!;\blFR;HNU(gK7!F=s*O[gs*Oais*Odj$\NfNc%CAfc%CAfV#5QQUs4O=c-:lf
-c-:lfc-=4lH[C[aq998:H`W`qc-:lfc(t8a$`)%*K<1<%K<1!UV#5QAUs4O=qoo/+HiD8#K6tkf
-K6tkfK6tkfK6tk=r-JOAc%CB:bnYkXc-:lfc-:lfc(o]^c-:lfc-:lfprs)XK7f)/K?\aiqoo7r
-Hd-narltIis31RsHiD7r`KY^rMnRB[H^'*+oZ[BLr7(e\q4%Gup=0/5q:,J8p!rl.r7(hL!.Y~>
-!<E/rdefI0dK%#Zc2a^=I06=kJV!XBs*agj!J,[ucMr=mcMrIqcMrIqcMrFrcDCGe';a!*J^2Pl
-J^2PlJ^2QXQ$n(?^A6%]SUIZ3NR#h#J^1+iI1)msOb'ZtR>%Z#cDCGe"/X:oJc!^nQ$rYWs+13q
-s+13qs+13qs+(3rV>P`DV9XXCp<N\hs3CXqs3CXq$dPSsU!Cr;IEp,hJb[Lr\qP]pI>,spIJ_=i
-JHF,JIK%OlIK.UmJc<q$_NfOtNP<]`I?fB/oZdHNr6bSVq3_5op<ir/q9f82p!WZ(r6bVK!.Y~>
-!<E/rebbm6eH!;\blFR;HNU(gK7!F=s*O[gs*Oais*Odj$\NfNc%CAfc%CAfV#5QQUs4O=c-:lf
-c-:lfc-=4lH[C[aq998:H`W`qc-:lfc(t8a$`)%*K<1<%K<1!UV#5QAUs4O=qoo/+HiD8#K6tkf
-K6tkfK6tkfK6tk=r-JOAc%CB:bnYkXc-:lfc-:lfc(o]^c-:lfc-:lfprs)XK7f)/K?\aiqoo7r
-Hd-narltIis31RsHiD7r`KY^rMnRB[H^'*+oZ[BLr7(e\q4%Gup=0/5q:,J8p!rl.r7(hL!.Y~>
-!<E/qebu$7eH!;\blXtnSG^V4K7!F=!eYj5rQQ+1Hc=7KH\9SfK6tkfK6tkfK6tkEH^t#Y$%mTL
-c%CAfc%CBAblbq\H\;.=%)%"GK<3>BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?(8Q;rc-:lf
-c-:lfc-:lfc-:lfc)c8^r657pHhP]!K6tkfK6tkfK6tkEH^r@*H[F#^K7!C<$&a/Tc%CYnK6t<0
-bmf;Pc%CA^c,G$^c-:lfr65JcUjIa=`I",+c1K6\^&6FTSG(J5SGC\8SG(M-SGgt=X8mb~>
-!<E/qdf#U1dK%#Zc2t.sU&<49JbdRmKmg]6c5)7b`m2SPM9aCtJ^2PlJ^2PlJ^1EHU&<49JcF$q
-JcF$qJc3jr`h@g7q9BD[I>rfXcH^ulcE;Shr6>\DI>t)'I>srGY'm#AcMrImc5*+%`m2k\J^2Pl
-J^2PlJ^2PlJ^1EHU&<49JbIChJcF$qJcF$qJIBc+I@8C'JUPhhJV!UA$&sMYc@pttKmg]5cMrG'
-cA?thcGk9hcH^ulr6>PeTm_X?`dOP3cLfB^^AQFRRJ,&/RJG82RJ,)'RJkP7XoNt~>
-!<E/qebu$7eH!;\blXtnSG^V4K7!F=!eYj5rQQ+1Hc=7KH\9SfK6tkfK6tkfK6tkEH^t#Y$%mTL
-c%CAfc%CBAblbq\H\;.=%)%"GK<3>BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?(8Q;rc-:lf
-c-:lfc-:lfc-:lfc)c8^r657pHhP]!K6tkfK6tkfK6tkEH^r@*H[F#^K7!C<$&a/Tc%CYnK6t<0
-bmf;Pc%CA^c,G$^c-:lfr65JcUjIa=`I",+c1K6\^&6FTSG(J5SGC\8SG(M-SGgt=X8mb~>
-!<E/pec208eH!;[bmB#LUpR51c%CAMqTUjuH\8E5XMq8fPeE<.XNf"BHd0ffHd0ffHaLbEH_e$M
-[*=5Mc-:lfc-:lf[*>DR]sN-Eprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51c%CB?
-boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWn.K6tkfK6tkfK6tk^H[DQHH[F#^
-K7!C<*/f0FXF#<-XF#T$]r]2tK6su$H^)4.H`YK:K7!UB$)FrA[!R_U[!TK;c1K6\^&6FTSG(J5
-SGC\8SG(M3SH%.<SGgt=X8mb~>
-!<E/pcMs1*c2bTVapZ4CIAOBTZHA#P[`83e1obtXY-t@IWdU/DQ$oLOb(5,db(5,db)(PT_M*E7
-[]ZpYJUttdJUttdM1)hPTsDD<I>RaA,DCPo`lcGTJ]budIAOBTZHBV(IC?_8IC@;<Kmff+Y-Q3$
-Jc!S1\p^a(b(5,db(5,db(5,db)(PT_M*E7[]ZpYJV!gCs,$Wqs+13ms+13ms+(R#_L6j+M1'fp
-b(5-=arH7dWiCJq^8cU8Y-t@Ib)(PTV1"W?Q$oLOb(5-CapFcI^9W0Db-$0$J]dW-!5ABVpQbHt
-!1!B*!1!9'rK[E.rK[?,!NlEQ~>
-!<E/pec208eH!;[bmB#LUpR51c%CAMqTUjuH\8E5XMq8fPeE<.XNf"BHd0ffHd0ffHaLbEH_e$M
-[*=5Mc-:lfc-:lf[*>DR]sN-Eprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51c%CB?
-boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWn.K6tkfK6tkfK6tk^H[DQHH[F#^
-K7!C<*/f0FXF#<-XF#T$]r]2tK6su$H^)4.H`YK:K7!UB$)FrA[!R_U[!TK;c1K6\^&6FTSG(J5
-SGC\8SG(M3SH%.<SGgt=X8mb~>
-!<E/feH!;[bmMFSH[CCHc*W+M^&#t]XG_FPMoErBK6r6Prll^@Hd0ffHd0gBK6t;NP^@b0XNcBE
-c-:lfc-<VJHbGYrH[D!rprrl9H^+NS&VGGTc,GooH\8EEc$Of^c$Og:bm;:QH[CCHc%CB>c2W_%
-bnu([c-:lfc-:lfc-<VJHbIC_H[CCHc%CBBblNHDqook.Hd0ffHd0ffHd0g:K7gO`Hd0ffHhbi%
-["E^qUjJWVXG_FPMoErJK6t;5K6r6PrlkIrHiD7qP_4=0Pf:n*Mh0.EblGHTeH!;YS,g7reb>U,
-ec20<ec20;eH)`OJ,~>
-!<E/fc2bTUapQ"NJUN6Tb-HSL])'PWWel.PM8%-/KmeZTrlY7ls2t@ms2l=eJUtDLQ%=@;Y0)<H
-b0#9db0%#@J\%+tI=[ZtprWZ3I?FNOs+13m)8_YiI>+iH`dN9Xb'e]Xb0%SdJUN6Tb(5-?b5[J$
-b5[%mb5[%mb5[%mapbS,J\&^`JUN6Tb(5-Cb5[%ib5[%mb5[%mb5[%mapG5%KsHD`b0#9dprXD]
-KmfMcI@86XM1'f/^<3a4J\%\3I>+^#b5[%lap=8`I=[Ztb)MC3b4EaU^AQ7V[eZ0g[eA#@Q1`H&
-Q2T#.Q2Jo.XoNt~>
-!<E/feH!;[bmMFSH[CCHc*W+M^&#t]XG_FPMoErBK6r6Prll^@Hd0ffHd0gBK6t;NP^@b0XNcBE
-c-:lfc-<VJHbGYrH[D!rprrl9H^+NS&VGGTc,GooH\8EEc$Of^c$Og:bm;:QH[CCHc%CB>c2W_%
-bnu([c-:lfc-:lfc-<VJHbIC_H[CCHc%CBBblNHDqook.Hd0ffHd0ffHd0g:K7gO`Hd0ffHhbi%
-["E^qUjJWVXG_FPMoErJK6t;5K6r6PrlkIrHiD7qP_4=0Pf:n*Mh0.EblGHTeH!;YS,g7reb>U,
-ec20<ec20;eH)`OJ,~>
-!<E/feH!;Qc2)be^!4guHN:b0blYk:XN\oiH\;4?qKi4Ugs#o%K>iDdo?@9K`74mi!.Y~>
-!<E/fc2bTKb5-Md]$8CoI/pk/ao]G2V9R-a`dNR<b5-Md]%kF0We&$<b4EaU^;S:tXoNt~>
-!<E/feH!;Qc2)be^!4guHN:b0blYk:XN\oiH\;4?qKi4Ugs#o%K>iDdo?@9K`74mi!.Y~>
-!<E/fblGG.`<+#lUs[-c[$7AfMgLu>`;udJJ]73!!56=q!NZ9O~>
-!<E/faoK/,`WF/oU!^ja[ZRSiNI@MG`W;dIJ]@9#!5?Co!NlEQ~>
-!<E/fblGG.`<+#lUs[-c[$7AfMgLu>`;udJJ]73!!56=q!NZ9O~>
-!<E/fblGG.`QlF+]p+.rK;=(;]Ysla`6A=a!.Y~>
-!<E/faoK/,`m2R-^6*tpKqX(;]Z'rc`6&+`!.Y~>
-!<E/fblGG.`QlF+]p+.rK;=(;]Ysla`6A=a!.Y~>
-!<E/fblGG.`IZ!\`;mTiblOmGJ,~>
-!<E/faoK/,`du-^`W3`kaoSXFJ,~>
-!<E/fblGG.`IZ!\`;mTiblOmGJ,~>
-!!%S&JV/N+YCcfTJ,~>
-!!%S$JUrB'YCQZRJ,~>
-!!%S&JV/N+YCcfTJ,~>
-!<E0!joD3.s+13$s1/.5V#TT>]`<Q~>
-!<E0!joD*+s+13$s1/.5U&X9;\c@6~>
-!<E0!joD3.s+13$s1/.5V#TT>]`<Q~>
-!<E0!joD3.s+13$s1847K;AP0k.LbF~>
-!<E0!joD*+s+13$s1847JYE,+k.1PC~>
-!<E0!joD3.s+13$s1847K;AP0k.LbF~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:A!!:[N!:889!<1OK!!:[N!;tCI!:/25!9Mc2!:SJ6!!^sR!7fU"!.i[Oe^)eG
-K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IF!!:jS!:8G>!<1^P!!:jS!;tRN!:/A:!9Mr7!:SY;!!_-W!8?-,!.ijTg<\LQ
-JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:A!!:[N!:889!<1OK!!:[N!;tCI!:/25!9Mc2!:SJ6!!^sR!7fU"!.i[Oe^)eG
-K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!;b7G!:889!<1OK!;Y1F!:889!<1OK!9Vi3!:SJ<!;b7G!<:UL!.i[Oe^)eG
-K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!;bFL!:8G>!<1^P!;Y@K!:8G>!<1^P!9W#8!:SYA!;bFL!<:dQ!.ijTg<\LQ
-JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!;b7G!:889!<1OK!;Y1F!:889!<1OK!9Vi3!:SJ<!;b7G!<:UL!.i[Oe^)eG
-K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTuo%!a?rmh#Ks4.&J
-rmgrIs4.,L"4[AOeboLJec,UNeGoU?ec,XJec,UOeGoU"r;clJr;clJrr</O!!(RJ!.i[Oe`,-Z
-K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<1^P!"7K\!8?-,!87DQg=lK*o%O*Drn@APs4[DO
-rn@;Ns4[JQ"53_TgAM$OgA_-Sg&M-DgA_0OgA_-Tg&M-,r;clOr;clOrr</T!!(aO!.ijTg>^id
-JH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTuo%!a?rmh#Ks4.&J
-rmgrIs4.,L"4[AOeboLJec,UNeGoU?ec,XJec,UOeGoU"r;clJr;clJrr</O!!(RJ!.i[Oe`,-Z
-K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)T?rW)oI
-rrE)Lrr<;S!!(R"!!(RG!<:UL!!(RK!!:[N!;"b@!<(IJ!"[T[!7fU"!7fU"!7fU"!7goGs4.,L
-J^o>%j440^"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Ern@AP#20%Wg&M-,rW!/V!!(a,!!)TDrW)oN
-rrE)Qrr<;X!!(a,!!(aL!<:dQ!!(aP!!:jS!;"qE!<(XO!"[c`!8?-,!8?-,!8?-,!8@8Ls4[JQ
-J_G\/j4aNa"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)T?rW)oI
-rrE)Lrr<;S!!(R"!!(RG!<:UL!!(RK!!:[N!;"b@!<(IJ!"[T[!7fU"!7fU"!7fU"!7goGs4.,L
-J^o>%j440^"f21\k.LbF~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ebT7WeGoU"!!(R"!!(OL!7fU"!:\P<!<:UL!<:UL
-!;tCI!!(RK!<:UL!;tCI!<:UL!;"b=!#!f^!7_&Le^XX"e^XX"e^XX"ec#RKec#Q"eUc9/ec17*
-V#TT>]`<Q~>
-!<E0!joV7Vs8(II!"@Q]!87DQg&M-,g&M-EgA1d\g&M-,!!(a,!!(^Q!8?-,!:\_A!<:dQ!<:dQ
-!;tRN!!(aP!<:dQ!;tRN!<:dQ!;"qB!#!uc!87DQg=cN,g=cN,g=cN,gAV*PgAV)'g4@u9gAc^-
-U&X9;\c@6~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ebT7WeGoU"!!(R"!!(OL!7fU"!:\P<!<:UL!<:UL
-!;tCI!!(RK!<:UL!;tCI!<:UL!;"b=!#!f^!7_&Le^XX"e^XX"e^XX"ec#RKec#Q"eUc9/ec17*
-V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo@<j@rmh#K$Io+VeGoU"eGoU"qZ-*8rVurKqZ-ZHqu?fK
-!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<>T!!(R"!!(R"qZ$]J!!)rIrW%N"J^rc1s+:KNs5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!CpT!8@;Mo@j3Ern@AP$JGI[g&M-,g&M-,qZ-*=rVurPqZ-ZMqu?fP
-!!*#PrrDuNrrE)QrrDZErrE#Orr<>Y!!(a,!!(a,qZ$]O!!)rNrW%N'J_K,;s+(?Is5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo@<j@rmh#K$Io+VeGoU"eGoU"qZ-*8rVurKqZ-ZHqu?fK
-!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<>T!!(R"!!(R"qZ$]J!!)rIrW%N"J^rc1s+:KNs5rIW!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Ln(%F<rmh#K%+P=XeGoU"eGoU"!!)K<rrE&Krr<,N!!)rI
-rrE)Lrr<,N!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<DV!!(R"!!(R"!!)rIrrDrHrW%N"J^rf2s+:KN
-s5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!V'V!87DQn(RdArn@AP%,([]g&M-,g&M-,!!)KArrE&Prr<,S!!)rN
-rrE)Qrr<,S!!*#PrrDuNrrE)QrrDZErrE#Orr<D[!!(a,!!(a,!!)rNrrDrMrW%N'J_K/<s+(?I
-s5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Ln(%F<rmh#K%+P=XeGoU"eGoU"!!)K<rrE&Krr<,N!!)rI
-rrE)Lrr<,N!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<DV!!(R"!!(R"!!)rIrrDrHrW%N"J^rf2s+:KN
-s5rIW!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)W@rrE&K
-rr<V\!!(R"!!(OL!7fU"!7_&Lrmh#Ks4.,L#1W\Re^XX"o@<j@rRLoJ#LreSe^XX"ec#RKec,UN
-eGoUKec,XLec,W#eUc92ec17*V#TT>]`<Q~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Ern@AP#20%Wg&M-,rW!/V!!(a,!!)WErrE&P
-rr<Va!!(a,!!(^Q!8?-,!87DQrn@APs4[JQ#20%Wg=cN,o@j3ErS%8O#MK.Xg=cN,gAV*PgA_-S
-g&M-PgA_0QgA_/(g4@u<gAc^-U&X9;\c@6~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)W@rrE&K
-rr<V\!!(R"!!(OL!7fU"!7_&Lrmh#Ks4.,L#1W\Re^XX"o@<j@rRLoJ#LreSe^XX"ec#RKec,UN
-eGoUKec,XLec,W#eUc92ec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTun^[O;rmgrIrmguJ
-!7h#JrRLiHs4.,Ls4.,Lo@<j@rRLoJ!n@8Nrmh#Ks4.&Js4.,LrRLiHJ^o>%imn']"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<1^P!"7K\!8?-,!87DQg=lK*n_3m@rn@;Nrn@>O
-!8@AOrS%2Ms4[JQs4[JQo@j3ErS%8O!nmVSrn@APs4[DOs4[JQrS%2MJ_G\/inFE`"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTun^[O;rmgrIrmguJ
-!7h#JrRLiHs4.,Ls4.,Lo@<j@rRLoJ!n@8Nrmh#Ks4.&Js4.,LrRLiHJ^o>%imn']"f21\k.LbF~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@tkgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc8aec17*V#TT>]`<Q~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD*+g4@t/g:>o@U&X9;\c@6~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD3.eUc8%e]lY4K*Kl%s5rIW!.Y~>
-!<E0!joD*+g4@t/g<J@>JHji%s5rIT!.Y~>
-!<E0!joD3.eUc8%e]lY4K*Kl%s5rIW!.Y~>
-!<E0!joV@/eU_IdC4U-JCAucPK*VG,V#TT>]`<Q~>
-!<E0!joV71g4=g+JUrC#Jc=BlJHu5/U&X9;\c@6~>
-!<E0!joV@/eU`X0Mh-f7MuM8qK*VG,V#TT>]`<Q~>
-!<E0!joV@/eU_IdC4U-KC&m]$ec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!joV71g4=g+JUrC$JH5`LgAca#_>o/`_Z0W?g7eQ/k.1PC~>
-!<E0!joV@/eU`X0Mh-f8MZEeVec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDW=_s+C0]s8N;RV#TT>]`<Q~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc!:bs+1$`s8N;WU&X9;\c@6~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDW=_s+C0]s8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc!:cs+,au_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KD`F_s8R`K^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc*Cbs8RZI_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKD`F_s8R`K^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXT#=$!;rqs!.h5&XQ6J_mf(c:KD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+gA]h+!;tRL!.ijTg>pufs8LaPJc*CbrrUo*Jc*Cbrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k5ONC!;u!X!.j9`k2b\)s8LRKKD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!joqR2eS8j#qZ-Srq>gPsq>gMrrW)hsquHbuquHAjquHYrq>^MsrW)r!rVur"q>^MsquGr^
-!W];%rN#u!rN#u!JZOF(jfJLMrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~>
-!<E0!joqI4g4=h/qZ-TKq>gQLq>gNKrW)iLquHcNquHBCquHZKq>^NLrW)rOrVurPq>^NLquGs7
-!W^pSrRq5OrRq5OJ_G\/jkBb7rn@C'rPJU7s4[L(r5/L6#25dNk2s5TJ,~>
-!<E0!joqR2eVf@JqZ-TWq>gQXq>gNWrW)iXquHcZquHBOquHZWq>^NXrW)r[rVur\q>^NXquGsC
-!W_?_rT4([rT4([J`_OGjlZUCrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!)u!#lq'.!3E7%XK2F"X8i7rX8i7tX8i7iX8i7rX8i8!X9/I(
-X8r1"!!*#"!!)u!!!*#"!!)/_!W];%rN#u!rN#u!JZOF(jfJLMrmh%$rOr72rmh%$rOr72#1]OL
-k2s>WJ,~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!)uO#lr]5!8?-,g=cQ)g&M-Kg&M-Mg&M-Bg&M-Kg&M-Og&h?/
-g&V')!!*#P!!)uO!!*#P!!)08!W^pSrRq5OrRq5OJ_G\/jkBb7rn@C'rPJU7rn@C'rPJU7#25dN
-k2s5TJ,~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!)u[#ls,M!9WDDk2l[Ajo>DWjo>DYjo>DNjo>DWjo>D[joYVG
-joG>A!!*#\!!)u[!!*#\!!)0D!W_?_rT4([rT4([J`_OGjlZUCrmh%$rOr72rmh%$rOr72#1]OL
-k2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!!)u!#lq'.!3E7%XK2F#X9&C'!;`bs!;iht!:[&i!;W\r!<&u$
-!3E7%r2]kuri?)"rN#u!ri?)"poOJqnuMonXK2F#X8i8!X8i6OXF[J7XT._fec1:$^&S-2ec1:#
-^&S*:eYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V')!!*#P!!)uO#lr]5!8?-,g=cQ*g&_9.!;bCL!;kIM!:\\B!;Y=K!<(UR
-!8?-,r7V,Nrn7>PrRq5Orn7>PptG`Jo%F0Gg=cQ*g&M-Og&M,(g4@u>gAh3PgAca'_Z0Z7gAca&
-_Z0W?g7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!!)u[#ls,M!9WDDk2l[BjoPPF!;bgX!;kmY!:]+N!;YaW!<)$^
-!9WDDr8mtZroO1\rT4([roO1\pu_SVo&^#Sk2l[Bjo>D[jo>C4k(2[Vk5YJ\ec1:$^&S-2ec1:#
-^&S*:eYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!s#F(!;`bs!;`bu!3?1sX8i7tX8i7iX8i7rX9/I(X8r1"!!*#"
-!!)u!!s#F(!;rnu!;NYq!:m2n!3E7%rN#u!rN#u!JZOF(jfJLMrmh%$rk8@3r71h"rk8@3#1]OL
-k2s>WJ,~>
-!<E0!jp.U6g4=h/g&V')!!*#P!s%'/!;bCL!;bCN!87GLg&M-Mg&M-Bg&M-Kg&h?/g&V')!!*#P
-!!)uO!s%'/!;tON!;P:J!:nhG!8?-,rRq5OrRq5OJ_G\/jkBb7rn@C'rke^8r7_1%rke^8#25dN
-k2s5TJ,~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!s%KG!;bgX!;bgZ!9O:Xjo>DYjo>DNjo>DWjoYVGjoG>A!!*#\
-!!)u[!s%KG!;tsZ!;P^V!:o7S!9WDDrT4([rT4([J`_OGjlZUCrmh%$rk8@3r71h"rk8@3#1]OL
-k2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!!*#"r;c\q!!)nt!!*#"!!)nt!!)nt!!)Mi!!)hrr;cbs!!*#"!!)u!
-r;cbs!!)5a!!*#"!!)u!!!)u!!!%SOJZRt7s6fm:s+C?bs8VuHs+C<as8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V')!!*#Pr;c]J!!)oM!!*#P!!)oM!!)oM!!)NB!!)iKr;ccL!!*#P!!)uO
-r;ccL!!)6:!!*#P!!)uO!!)uO!!%T(J_K5>s8W)Ps+13es8VuMs+10ds8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG>A!!*#\r;c]V!!)oY!!*#\!!)oY!!)oY!!)NN!!)iWr;ccX!!*#\!!)u[
-r;ccX!!)6F!!*#\!!)u[!!)u[!!%T4J`c(Vs8W)Ks+C?bs8VuHs+C<as8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!s#F(!;`bs!;ikq!;iht!;iht!<&u!!;3Dn!<&u!!<0&%!3E7%
-qlBi!X8r1"!s#F(!;rnu!<&u!!:?if!<0&"!<&u!!<&u!!.h5&XQ?P`mf(c:KE&Xbs8(:GKE&Xb
-rs%#Ls5rIW!.Y~>
-!<E0!jp.U6g4=h/g&V')!!*#P!s%'/!;bCL!;kLJ!;kIM!;kIM!<(UO!;5%G!<(UO!<1[S!8?-,
-qq;)Og&V')!s%'/!;tON!<(UO!:AJ?!<1[P!<(UO!<(UO!.ijTg?%&gs8LaPJcEUes8(ILJcEUe
-rs%2Ns5rIT!.Y~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!s%KG!;bgX!;kpV!;kmY!;kmY!<)$[!;5IS!<)$[!<2*_!9WDD
-qrRq[joG>A!s%KG!;tsZ!<)$[!:AnK!<2*\!<)$[!<)$[!.j9`k2kb*s8LRKKE&Xbs8(:GKE&Xb
-rs%#Ls5rIW!.Y~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!!)u!!!)qu!!)qu!!)qu!!)qu!!)nt!!)u!!!)\n!!)u!!!*#"
-!!)u!!!)u!!W];%r2]kurN#u!ri?)"rN#u!mB$0bri?)"rN#u!JZOF(jfJLMrmh%$!knX6q:5Lt
-s1SI4#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V')!!*#P!!)uO!!)rN!!)rN!!)rN!!)rN!!)oM!!)uO!!)]G!!)uO!!*#P
-!!)uO!!)uO!W^pSr7V,NrRq5Orn7>PrRq5OmFqF;rn7>PrRq5OJ_G\/jkBb7rn@C'!lG!;q:bk"
-s2+g9#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\
-!!)u[!!)u[!W_?_r8mtZrT4([roO1\rT4([mH49GroO1\rT4([J`_OGjlZUCrmh%$!knX6q:5Lt
-s1SI4#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!)u!!!)qu!!)qu!!)qu!!)qu!!)nt!!)u!!!)\n!!)u!!!*#"
-!!)u!!!)qu!!)nt!!)u!!!*#"!!)u!!!)u!rrDMh!!)u!!!)u!!!%SOJZRt7s6fm:s+:Bds8VlE
-s+:Wks8UWFs5rIW!.Y~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!)uO!!)rN!!)rN!!)rN!!)rN!!)oM!!)uO!!)]G!!)uO!!*#P
-!!)uO!!)rN!!)oM!!)uO!!*#P!!)uO!!)uOrrDNA!!)uO!!)uO!!%T(J_K5>s8W)Ps+(6gs8VlJ
-s+(Kns8UfHs5rIT!.Y~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\
-!!)u[!!)rZ!!)oY!!)u[!!*#\!!)u[!!)u[rrDNM!!)u[!!)u[!!%T4J`c(Vs8W)Ks+:Bds8VlE
-s+:Wks8UWFs5rIW!.Y~>
-!<E0!joqR2eS8j#qZ-Srq>gMrquHbur;Zi!r;cl!quHbuq#L/jq#LGrq>gGp!!)quq>^Msq#LAp
-rrDPirW)nur;_DMJZRq6s6fm:s+C@Oon*Ras8UWFs5rIW!.Y~>
-!<E0!joqI4g4=h/qZ-TKq>gNKquHcNr;ZiOr;clOquHcNq#L0Cq#LHKq>gHI!!)rNq>^NLq#LBI
-rrDQBrW)oNr;_E&J_K2=s8W)Ps+14MommFds8UfHs5rIT!.Y~>
-!<E0!joqR2eVf@JqZ-TWq>gNWquHcZr;Zi[r;cl[quHcZq#L0Oq#LHWq>gHU!!)rZq>^NXq#LBU
-rrDQNrW)oZr;_E2J`c%Us8W)Ks+C@Oon*Ras8UWFs5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:K)krCKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJH5`AJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKK)krCKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCJmFeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJai[Dg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCJmFeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCf*LKE(u%V#TT>]`<Q~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJb/mJJcGc(U&X9;\c@6~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCf*LKE(u%V#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXO4*L!;NYq!.h57XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g<nUS!;P:J!.ijegAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k0`;k!;P^V!.j9qk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!joqR2eS8j#quHVqrW)ktqZ-Vsq>^MsquDJQ!!)bp!!)bp!!%SOP-"]Ormh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!joqI4g4=h/quHWJrW)lMqZ-WLq>^NLquDK*!!)cI!!)cI!!%T(P1os9rn@C's8VfHs+14M
-#25dNk2s5TJ,~>
-!<E0!joqR2eVf@JquHWVrW)lYqZ-WXq>^NXquDK6!!)cU!!)cU!!%T4P32fErmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i7pX8i7tX8i8!X8i8"X8i8!X8i8"X8i6RX8i7eX8i6OXHK[bmf(c:KE(uF
-ec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Ig&M-Mg&M-Og&M-Pg&M-Og&M-Pg&M,+g&M->g&M,(g611is8LaPJcGcD
-gAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DUjo>DYjo>D[jo>D\jo>D[jo>D\jo>C7jo>DJjo>C4k*"m,s8LRKKE(uF
-ec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i7qX9&C'!;rnu!<&u!!<0&"!<&u!!<0&"!;NYq!4Ap.!!',"!;iks!<0)!
-!<0)!!;ESm!;rqt!;iks!!0/$JZP$9s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Jg&_9.!;tON!<(UO!<1[P!<(UO!<1[P!;P:J!4CP\!!(aP!;kLL!<1^O
-!<1^O!;G4F!;tRM!;kLL!!1dRJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>DVjoPPF!;tsZ!<)$[!<2*\!<)$[!<2*\!;P^V!4Cth!!)0\!;kpX!<2-[
-!<2-[!;GXR!;u!Y!;kpX!!23^J``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i7qX9&C'!;rnu!<&u!!<0&%!3E7%r2]kupoOJq[&j9-ri?)"rN#u!ri?)"
-ri?)"r2]kuorJ,npT+>pr2]kuriH,"JZP$9s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Jg&_9.!;tON!<(UO!<1[S!8?-,r7V,NptG`J[+bN[rn7>PrRq5Orn7>P
-rn7>Pr7V,Np"BBGpY#TIr7V,Nrn@APJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>DVjoPPF!;tsZ!<)$[!<2*_!9WDDr8mtZpu_SV[-%AgroO1\rT4([roO1\
-roO1\r8mtZp#Z5SpZ;GUr8mtZroX4\J``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i7rX8i8"X8i8!XS`(sXSi.sX8i7"X8i8!X8i8"X8i7uX9em.X8o?'!3E7%
-orJ,npT+>prN#u!r2]kuJZP$9s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Kg&M-Pg&M-OgACsLgAM$Lg&M,Pg&M-Og&M-Pg&M-Ng'Ic5g&Tj\!8?-,
-p"BBGpY#TIrRq5Or7V,NJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>DWjo>D\jo>D[k555Xk5>;Xjo>C\jo>D[jo>D\jo>DZjp;%MjoFQ+!9WDD
-p#Z5SpZ;GUrT4([r8mtZJ``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X8i8"XS`(sX8i8!X8i8"X9/I(X8r1"!!)u!!!'1'!!)u!!!*#"q>gPs
-"ota+!3E7%orJ,npT+>prN#u!r2]kuJZP$9s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&M-PgACsLg&M-Og&M-Pg&h?/g&V')!!)uO!!'1U!!)uO!!*#Pq>gQL
-"p!B2!8?-,p"BBGpY#TIrRq5Or7V,NJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[jo>D\k555Xjo>D[jo>D\joYVGjoG>A!!)u[!!'1a!!)u[!!*#\q>gQX
-"p!fJ!9WDDp#Z5SpZ;GUrT4([r8mtZJ``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!'1'!!)u!!!*#"
-!!)eq"9>M'X8qmo!!)bp!!)u!!!)qu!!%SOP-"]Ormh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!'1U!!)uO!!*#P
-!!)fJ"9@-Ug&Ud!!!)cI!!)uO!!)rN!!%T(P1os9rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!'1a!!)u[!!*#\
-!!)fV"9@QajoG&9!!)cU!!)u[!!)rZ!!%T4P32fErmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!)u!rrBF-!!)u!
-!!)u!!!)u!!!*#"rr<,%!!)Ym!!*#"!!)nt!!)qu!!*#"rr@VOP-"]Ormh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!)uOrrBF[!!)uO
-!!)uO!!)uO!!*#Prr<,S!!)ZF!!*#P!!)oM!!)rN!!*#Prr@W(P1os9rn@C's8VfHs+14M#25dN
-k2s5TJ,~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)u[rrBFg!!)u[
-!!)u[!!)u[!!*#\rr<,_!!)ZR!!*#\!!)oY!!)rZ!!*#\rr@W4P32fErmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!joqR2eS8j#q#CDrr;Zi!r;Zi!qZ-Vsq>^Msq#LAprrBI.rW)u"rW)nur;cetrr<,%!!)Vl
-rW)ktquH\srW!#$!!%SOPH=fPrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!joqI4g4=h/q#CEKr;ZiOr;ZiOqZ-WLq>^NLq#LBIrrBI\rW)uPrW)oNr;cfMrr<,S!!)WE
-rW)lMquH]LrW!#R!!%T(PM6':rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!joqR2eVf@Jq#CEWr;Zi[r;Zi[qZ-WXq>^NXq#LBUrrBIhrW)u\rW)oZr;cfYrr<,_!!)WQ
-rW)lYquH]XrW!#^!!%T4PNMoFrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXQQ\[!.h5&XSJstmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g?72b!.ijTgA0J&s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k3(n%!.j9`k5"0>s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSMnsXSW"qXSi.uXSr5!XSr3rX8i6OXF[J*XT._fec1:%s7Y"CKE(rUeYN6-
-k.LbF~>
-!<E0!jp%O5g4=h/gA1dLgA:mJgAM$NgAV*OgAV)Kg&M,(g4@u1gAh3PgAca(s7Y1HJcG`Sg7eQ/
-k.1PC~>
-!<E0!jp%X3eVf@Jk5#&Xk5,/Vk5>;Zk5GA[k5G@Wjo>C4k(2[Ik5YJ\ec1:%s7Y"CKE(rUeYN6-
-k.LbF~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!!*#"!!)u!!!*#"rrE&"rrAjr!!%SOJZRM*s6fm:s+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!!*#P!!)uO!!*#PrrE&PrrAkK!!%T(J_Jc1s8W)Ps+14M
-p=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!!*#\!!)u[!!*#\rrE&\rrAkW!!%T4J`bVIs8W)Ks+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!s#F(!;ii%!3E7%X8o@$!<'#!!3<4!!<'#!!<9/#!<'"t
-!<0)"!!',"!;rqr!;<Mo!!TG(!3?/#riH)!$EO4-XK2C%XK2C%JZPZKs6fm:s+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!s%'/!;kIS!8?-,g&Tk+!<(XO!3=iO!<(XO!<:dQ!<(XM
-!<1^P!!(aP!;tRK!;>.H!!V'V!87DQrn@>O$JGI[g=cN,g=cN,J_HpRs8W)Ps+14Mp=fOts8N;W
-U&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!s%KG!;km_!9WDDjoFQC!<)'[!3>8[!<)'[!<;3]!<)'Y
-!<2-\!!)0\!;u!W!;>RT!!VKb!9O7]roX1[$K_<gk2lXDk2lXDJ``cjs8W)Ks+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johL1eS8juX9/I(X8r4#!!)u!!s#F(!;ii(!3E7%X8o=%X8r4#rrB(#!!)hr#QUq+XK2E'
-X8r4#!!*#"rrE&"!!*#"!!)u!!!)\nrr<;*!!')#XK2F$XT&;!X9AU*!3E7%JZP]Ls6fm:s+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&h?/g&V**!!)uO!s%'/!;kIV!8?-,g&Th,g&V**rrB(Q!!)iK#QWQYg=cP\
-g&V**!!*#PrrE&P!!*#P!!)uO!!)]Grr<;X!!(^Qg=cQ+gA_0Og'%K1!8?-,J_HsSs8W)Ps+14M
-p=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjoYVGjoGAB!!)u[!s%KG!;kmb!9WDDjoFNDjoGABrrB(]!!)iW#QWuek2l[+
-joGAB!!*#\rrE&\!!*#\!!)u[!!)]Srr<;d!!)-]k2l[Ck5PG[jokbI!9WDDJ``fks8W)Ks+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juXSi.tX8i8"X8i8"X8i7tX9em.X8o?'!3E7%UoXOrq5jSrp8e5ori?)"rN#u!
-ri?)"n>llqXK2E'X8o=%r2]kurN-#!JZPQHs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSgAM$Mg&M-Pg&M-Pg&M-Mg'Ic5g&Tj\!8?-,UtPeKq:biKp=]KHrn7>PrRq5O
-rn7>PnCe-Jg=cP\g&Th,r7V,NrS%8OJ_HgOs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bk5>;Yjo>D\jo>D\jo>DYjp;%MjoFQ+!9WDDUuhXWq<%\Wp>u>TroO1\rT4([
-roO1\nE'uVk2l[+joFNDr8mtZrT=+[J``Zgs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX9/I(X8r4#r;cet!!)nt#lq'.!3E7%XK2DtX8i7rX8i7rXS`(tX8i8!X8i8!
-XSi.kX9\g-X8o?'!3?1uX8i8!X8i6OXIuZpmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&h?/g&V**r;cfM!!)oM#lr]5!8?-,g=cP&g&M-Kg&M-KgACsMg&M-Og&M-O
-gAM$Dg'@]4g&Tj\!87GNg&M-Og&M,(g7[1"s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjoYVGjoGABr;cfY!!)oY#ls,M!9WDDk2lZ>jo>DWjo>DWk555Yjo>D[jo>D[
-k5>;Pjp1tLjoFQ+!9O:Zjo>D[jo>C4k+Ll:s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i7sX8i8"X8i8"X8i7tX9/I(X8r1"!!&gr!!)hr!!)ks!!)u!!!*#"!!)u!
-!!)hr!!)\n#QUs-!3E7%X8r1"!!)u!!!%SOTWJ1]rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Lg&M-Pg&M-Pg&M-Mg&h?/g&V')!!&hK!!)iK!!)lL!!)uO!!*#P!!)uO
-!!)iK!!)]G#QWT4!8?-,g&V')!!)uO!!%T(T\BGGrn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>DXjo>D\jo>D\jo>DYjoYVGjoG>A!!&hW!!)iW!!)lX!!)u[!!*#\!!)u[
-!!)iW!!)]S#QX#L!9WDDjoG>A!!)u[!!%T4T]Z:Srmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i7sX8i8!X8i8"X8i8!X8i8"X8i7uX8i8!XT&:#X8i8"X8i8!X8i7sX8i8"
-XT&;"X8i8!X8i8"X8i8!X8i7nX9em.X8o?'!3E7%riH,"rN#u!JZPNGs6fm:s+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Lg&M-Og&M-Pg&M-Og&M-Pg&M-Ng&M-OgA_/Qg&M-Pg&M-Og&M-Lg&M-P
-gA_0Pg&M-Og&M-Pg&M-Og&M-Gg'Ic5g&Tj\!8?-,rn@APrRq5OJ_HdNs8W)Ps+14Mp=fOts8N;W
-U&X9;\c@6~>
-!<E0!johL1eVf@bjo>DXjo>D[jo>D\jo>D[jo>D\jo>DZjo>D[k5PF]jo>D\jo>D[jo>DXjo>D\
-k5PG\jo>D[jo>D\jo>D[jo>DSjp;%MjoFQ+!9WDDroX4\rT4([J``Wfs8W)Ks+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!jp%X3eS8j#XSi.tXSr4uX8i8"XSi.uXSr5!XSr5!XT&:"XSr4uXSi.rXSr2%X8i7%rW)u"
-rW)u"quHDkrW!2)!!')#!3E:$!!0/$riH%uJZPTIs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp%O5g4=h/gAM$MgAV*Ng&M-PgAM$NgAV*OgAV*OgA_/PgAV*NgAM$KgAV'Sg&M-,rW)uP
-rW)uPquHEDrW!2W!!(^Q!8?0+!!1dRrn@;NJ_HjPs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp%X3eVf@Jk5>;Yk5GAZjo>D\k5>;Zk5GA[k5GA[k5PF\k5GAZk5>;Wk5G>_jo>DDrW)u\
-rW)u\quHEPrW!2c!!)-]!9WGC!!23^roX.ZJ``]hs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXM(\8!.h5@XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g:c2?!.ijngAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k.TmW!.j:%k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXM1b9!.h5?XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g:l8@!.ijmgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k.]sX!.j:$k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXOXEI!;ESn!.h5>XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g==pP!;G4G!.ijlgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k1/Vh!;GXS!.j:#k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXPU&Y!.h5&XS]+!mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g>:Q`!.ijTgABV(s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k2,8#!.j9`k54<@s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSMqrXSi-MXR3(h!:R#g!;iks!.h5>XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%O5g4=h/gA1gKgAM#&g?mSo!:SY@!;kLL!.ijlgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp%X3eVf@Jk5#)Wk5>:2k3_:2!:T(L!;kpX!.j:#k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jq+?=eS8j#X8o?'!3E7%XK2F#X8i6OXR<.i!:?if!;W\r!.h5>XT._fec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!jq+6?g4=h/g&Tj\!8?-,g=cQ*g&M,(g@!Yp!:AJ?!;Y=K!.ijlgAh3PgAca(s7Y1HJcG`S
-g7eQ/k.1PC~>
-!<E0!jq+?=eVf@JjoFQ+!9WDDk2l[Bjo>C4k3h@3!:AnK!;YaW!.j:#k5YJ\ec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!jq"9<eS8j#X8o?'!3E7%X8r.!!!)u!rrALhrr<8)!!')#!3H/"s/c2"orS&kri?,#XSr4s
-XSr4rX8i7rX8i6OXI60imf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jq"0>g4=h/g&Tj\!8?-,g&V$(!!)uOrrAMArr<8W!!(^Q!8@DPs4[GPp"K<Drn7AQgAV*L
-gAV*Kg&M-Kg&M,(g6p[ps8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jq"9<eVf@JjoFQ+!9WDDjoG;@!!)u[rrAMMrr<8c!!)-]!9X7\s5s:\p#c/ProO4]k5GAX
-k5GAWjo>DWjo>C4k*bB3s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i8!XT&9gXT&8*X8i7%!3E7%rN#u!orJ,nrN#u!riH,"ri?)"
-rN#u!ri?)"qlBbtq5aPrJZP9@s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M-OgA_/@gA_-Xg&M-,!8?-,rRq5Op"BBGrRq5Orn@APrn7>P
-rRq5Orn7>Pqq;#Mq:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>D[k5PFLk5PDdjo>DD!9WDDrT4([p#Z5SrT4([roX4\roO1\
-rT4([roO1\qrRkYq;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX9em.X8o?'!3E7%rN#u!orJ,nq5aPrrN#u!ri?)"r2]ku
-r2]kuq5aPrJZP9@s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g'Ic5g&Tj\!8?-,rRq5Op"BBGq:YfKrRq5Orn7>Pr7V,N
-r7V,Nq:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([p#Z5Sq;qYWrT4([roO1\r8mtZ
-r8mtZq;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX9J[+X8o?'!<0&%!3E7%o;qljrN#u!rN#u!riGqrr2]ku
-q5aPrJZP9@s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g'.Q2g&Tj\!<1[S!8?-,o@j-CrRq5OrRq5Orn@2Kr7V,N
-q:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjothJjoFQ+!<2*_!9WDDoB,uOrT4([rT4([roX%Wr8mtZ
-q;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX9J[+X8o?'!<0&%!3E7%n#QKhri?)"rN#u!ri?)"p8e5o
-q5aPrJZP9@s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g'.Q2g&Tj\!<1[S!8?-,n(IaArn7>PrRq5Orn7>Pp=]KH
-q:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjothJjoFQ+!<2*_!9WDDn)aTMroO1\rT4([roO1\p>u>T
-q;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jsX8i7uX8i8!X8i7uXT&9gX9J[+X8o?'!<'#!!;!8l!<&u!!<0&"!<&u!!<&u!
-!<&u!!;rnu!;W\r!.h5>XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hQg&M-Ng&M-Og&M-NgA_/@g'.Q2g&Tj\!<(XO!;"nE!<(UO!<1[P!<(UO!<(UO
-!<(UO!;tON!;Y=K!.ijlgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@`jo>DZjo>D[jo>DZk5PFLjothJjoFQ+!<)'[!;#=Q!<)$[!<2*\!<)$[!<)$[
-!<)$[!;tsZ!;YaW!.j:#k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juXS`(sXSi.rXT&9hXSr2'X8i7%!!)u!!!)VlquH_trW)u"rW)nur;cetquH\s
-quD;LS#lYXrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSgACsLgAM$KgA_/AgAV'Ug&M-,!!)uO!!)WEquH`MrW)uPrW)oNr;cfMquH]L
-quD<%S(doBrn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bk555Xk5>;Wk5PFMk5G>ajo>DD!!)u[!!)WQquH`YrW)u\rW)oZr;cfYquH]X
-quD<1S*'bNrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXS/^q!.h5&XQ$>]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g@j5#!.ijTg>^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k4[p;!.j9`k2PP's8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXS/^q!.h5&XQ$>]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g@j5#!.ijTg>^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k4[p;!.j9`k2PP's8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXSAmq!<'"o!.h5&XRN=kmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+gA'D#!<(XH!.ijTg@3hrs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k4n*;!<)'T!.j9`k4%O5s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMX8o@#!;rqs!;rqs!;rqs!:m2k!;`eq!:m2k!;NYq!:m2k!;NYq!;!;j!<'"r
-!:m5k!;rqt!:m5i!;iks!;iht!;W_q!;rqs!;rqs!5,E5mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g&Tk*!;tRL!;tRL!;tRL!:nhD!;bFJ!:nhD!;P:J!:nhD!;P:J!;"qC!<(XK
-!:nkD!;tRM!:nkB!;kLL!;kIM!;Y@J!;tRL!;tRL!5.%cs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:joFQB!;u!X!;u!X!;u!X!:o7P!;bjV!:o7P!;P^V!:o7P!;P^V!;#@O!<)'W
-!:o:P!;u!Y!:o:N!;kpX!;kmY!;YdV!;u!X!;u!X!5.Ios8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSW"rXSr4uXSW"qXSr2#X8r7$q>^MsqZ+%*!!)u!!!*#"!!)u!!!*#"!!)u!
-!!*#"!!)u!!!)YmrrDqt!!)u!!!)YmrrDkr!W];%o;qrlq5aVtX8qmo!!)u!!!*#"!!)u!!!)Vl
-!W];%rN#u!ri?)"oW/#mrN#u!rN#u!q5jSrqQ'YsqQ'YsrN#u!ri?)"rN#u!]r_8%rmh%$s8VfC
-s+C@O#1]OLk2s>WJ,~>
-!<E0!jp%O5g4=h/gA:mKgAV*NgA:mJgAV'Qg&V-+q>^NLqZ+%X!!)uO!!*#P!!)uO!!*#P!!)uO
-!!*#P!!)uO!!)ZFrrDrM!!)uO!!)ZFrrDlK!W^pSo@j3Eq:YlMg&Ud!!!)uO!!*#P!!)uO!!)WE
-!W^pSrRq5Orn7>Po\'9FrRq5OrRq5Oq:biKqUtoLqUtoLrRq5Orn7>PrRq5O^"WMdrn@C's8VfH
-s+14M#25dNk2s5TJ,~>
-!<E0!jp%X3eVf@Jk5,/Wk5GAZk5,/Vk5G>]joGDCq>^NXqZ+%d!!)u[!!*#\!!)u[!!*#\!!)u[
-!!*#\!!)u[!!)ZRrrDrY!!)u[!!)ZRrrDlW!W_?_oB-&Qq;q_YjoG&9!!)u[!!*#\!!)u[!!)WQ
-!W_?_rT4([roO1\o]?,RrT4([rT4([q<%\WqW7bXqW7bXrT4([roO1\rT4([^#o@prmh%$s8VfC
-s+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X8i7uX8i7uX8i8!X8i8"X8i8"XT&;!X8i8!X9/I(X8r4#!!'I/!!)u!
-!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!)\n!W];%qlBbtrN#u!orJ2pX8r't!W];%oW/)oX8r't
-!W];%oW/#mrN#u!q5aPro;hunX8r4#!!)u!!!)\n!!)u!!!*#"!!)hr!W];%qlBbtq5aPrrN#u!
-ri?)"rN#u!]r_8%rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&M-Ng&M-Ng&M-Og&M-Pg&M-PgA_0Og&M-Og&h?/g&V**!!'I]!!)uO
-!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!)]G!W^pSqq;#MrRq5Op"BHIg&Us&!W^pSo\'?Hg&Us&
-!W^pSo\'9FrRq5Oq:YfKo@a6Gg&V**!!)uO!!)]G!!)uO!!*#P!!)iK!W^pSqq;#Mq:YfKrRq5O
-rn7>PrRq5O^"WMdrn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D[jo>DZjo>DZjo>D[jo>D\jo>D\k5PG[jo>D[joYVGjoGAB!!'Ii!!)u[
-!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)]S!W_?_qrRkYrT4([p#Z;UjoG5>!W_?_o]?2TjoG5>
-!W_?_o]?,RrT4([q;qYWoB$)SjoGAB!!)u[!!)]S!!)u[!!*#\!!)iW!W_?_qrRkYq;qYWrT4([
-roO1\rT4([^#o@prmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X8i8!X9&C'!<&u!!<&u!!<0&"!<&u!!<&u!!<&u$!3E7%r2]kurN-#!
-\?#Z1ri?)"rN#u!ri?)"rN#u!q5aPro;holqlBbtrN#u!o;holqQ'c!XK2EmX8i7sX9/I(X8q^j
-!!)ks!!)Vl!s#F(!<&u!!<&u!!:[&i!<0&"!;EPp!;iht!;*>m!;W\r!55K6mf(c:KE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Og&M-Og&_9.!<(UO!<(UO!<1[P!<(UO!<(UO!<(UR!8?-,r7V,NrS%8O
-\Cpo_rn7>PrRq5Orn7>PrRq5Oq:YfKo@a0Eqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UTq
-!!)lL!!)WE!s%'/!<(UO!<(UO!:\\B!<1[P!;G1I!;kIM!;+tF!;Y=K!57+ds8LaPJcGcDgAca(
-rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>D[jo>D[joPPF!<)$[!<)$[!<2*\!<)$[!<)$[!<)$^!9WDDr8mtZrT=+[
-\E3bkroO1\rT4([roO1\rT4([q;qYWoB$#QqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFl4
-!!)lX!!)WQ!s%KG!<)$[!<)$[!:]+N!<2*\!;GUU!;kmY!;,CR!;YaW!57Ops8LRKKE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i8!X8i8!X9&C'!<&u!!<&u!!<0&"!;NVt!3E7%rN#u!r2]kurN-#!\Z>c2
-rN#u!rN#u!ri?)"rN#u!qQ'YsnuMfkqlBbtrN#u!o;holqQ'c!XK2EmX8i7sX9/I(X8qak!!)hr
-!!)Vl!s#F(!<&u!!<0)"!:d,j!<&u"!3H/"qlBbtqlBeuXSr4qX8i7rX8i75XT._fec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Og&M-Og&_9.!<(UO!<(UO!<1[P!;P7M!8?-,rRq5Or7V,NrS%8O\_7#`
-rRq5OrRq5Orn7>PrRq5OqUtoLo%F'Dqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UWr!!)iK
-!!)WE!s%'/!<(UO!<1^P!:ebC!<(UP!8@DPqq;#Mqq;&NgAV*Jg&M-Kg&M,cgAh3PgAca(s7Y1H
-JcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>D[jo>D[joPPF!<)$[!<)$[!<2*\!;P[Y!9WDDrT4([r8mtZrT=+[\`Nkl
-rT4([rT4([roO1\rT4([qW7bXo&]oPqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFo5!!)iW
-!!)WQ!s%KG!<)$[!<2-\!:f1O!<)$\!9X7\qrRkYqrRnZk5GAVjo>DWjo>Cok5YJ\ec1:%s7Y"C
-KE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i8!X8i8"X8i8"X8i8"X8i8"X8i7uXSi.sXSi.tX8i7uX8i7-X8i7uX8i8!
-X8i8"X8i8!X8i7tX8i7uXSW"qX8i7tX8i8!X8i8"XSW"qX8i7tX8i8"X8i7kX8i7tX8i8"X8i7j
-X8i7qX8i7mX8i8"X8i7uXSr2#X8qgm!!)qurrE&"!!)qu!!)ntrrE&"!!)nt!!)hr!!'X4s6fm:
-s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&M-Pg&M-Pg&M-Pg&M-Pg&M-NgAM$LgAM$Mg&M-Ng&M,[g&M-Ng&M-O
-g&M-Pg&M-Og&M-Mg&M-NgA:mJg&M-Mg&M-Og&M-PgA:mJg&M-Mg&M-Pg&M-Dg&M-Mg&M-Pg&M-C
-g&M-Jg&M-Fg&M-Pg&M-NgAV'Qg&U]t!!)rNrrE&P!!)rN!!)oMrrE&P!!)oM!!)iK!!'Xbs8W)P
-s+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[jo>D\jo>D\jo>D\jo>D\jo>DZk5>;Xk5>;Yjo>DZjo>Cgjo>DZjo>D[
-jo>D\jo>D[jo>DYjo>DZk5,/Vjo>DYjo>D[jo>D\k5,/Vjo>DYjo>D\jo>DPjo>DYjo>D\jo>DO
-jo>DVjo>DRjo>D\jo>DZk5G>]joFu7!!)rZrrE&\!!)rZ!!)oYrrE&\!!)oY!!)iW!!'Xns8W)K
-s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juXS`(sXS`(tXSi.nX8i8!X9/I(X8r4#!!)qu!!'F.!!)nt!!)u!!!*#"!!)u!
-!!)qu!!)Mi!!)nt!!)u!!!)Vl!!)nt!!*#"!!)Sk!!)nt!!*#"!!)Sk!!)eq!!)Vl!!*#"!!)eq
-!!)Vl!!)nt!!)u!!!)qu!!)nt!!)u!!!)qu!!)hr!!'U3s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSgACsLgACsMgAM$Gg&M-Og&h?/g&V**!!)rN!!'F\!!)oM!!)uO!!*#P!!)uO
-!!)rN!!)NB!!)oM!!)uO!!)WE!!)oM!!*#P!!)TD!!)oM!!*#P!!)TD!!)fJ!!)WE!!*#P!!)fJ
-!!)WE!!)oM!!)uO!!)rN!!)oM!!)uO!!)rN!!)iK!!'Uas8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bk555Xk555Yk5>;Sjo>D[joYVGjoGAB!!)rZ!!'Fh!!)oY!!)u[!!*#\!!)u[
-!!)rZ!!)NN!!)oY!!)u[!!)WQ!!)oY!!*#\!!)TP!!)oY!!*#\!!)TP!!)fV!!)WQ!!*#\!!)fV
-!!)WQ!!)oY!!)u[!!)rZ!!)oY!!)u[!!)rZ!!)iW!!'Ums8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i7sX8i7uX9/I(X8r7$!!)u!!!)u!!!)u!!!)u!!s#F(!;rnu!4Js/!;`bs
-!<&u!!<0&"!<&u!!<&u!!:Quh!;iht!<&u!!;!8l!;ikp!;!8l!;ikp!;*>m!;EPp!;!;h!;W\r
-!;*>m!;`bs!<&u!!;rnu!;iht!<&u!!<&u!!;W\r!4f32mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Lg&M-Ng&h?/g&V-+!!)uO!!)uO!!)uO!!)uO!s%'/!;tON!4LS]!;bCL
-!<(UO!<1[P!<(UO!<(UO!:SVA!;kIM!<(UO!;"nE!;kLI!;"nE!;kLI!;+tF!;G1I!;"qA!;Y=K
-!;+tF!;bCL!<(UO!;tON!;kIM!<(UO!<(UO!;Y=K!4gh`s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DXjo>DZjoYVGjoGDC!!)u[!!)u[!!)u[!!)u[!s%KG!;tsZ!4M"i!;bgX
-!<)$[!<2*\!<)$[!<)$[!:T%M!;kmY!<)$[!;#=Q!;kpU!;#=Q!;kpU!;,CR!;GUU!;#@M!;YaW
-!;,CR!;bgX!<)$[!;tsZ!;kmY!<)$[!<)$[!;YaW!4h7ls8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i7sX8i7uX9/I(X8r4#!!*#"rrE&"!!)u!!!)u!!s#F(!<&u!!;rqu!55H6
-!<&u!!<0&"!<&u!!<0&"!<&u!!<0&"!<&u!!;!8l!;iht!<&u!!;!8l!;EPp!:m2k!;EPp!;ikt
-!;rnu!<&u!!;iht!;`es!;NVq!;W\r!;ikt!;rnu!<&u!!<&u!!<0&"!;rnu!;`bs!<0&"!<0&"
-!<&u!!<0&"!<&u!!55K6mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Lg&M-Ng&h?/g&V**!!*#PrrE&P!!)uO!!)uO!s%'/!<(UO!;tRN!57(d
-!<(UO!<1[P!<(UO!<1[P!<(UO!<1[P!<(UO!;"nE!;kIM!<(UO!;"nE!;G1I!:nhD!;G1I!;kLM
-!;tON!<(UO!;kIM!;bFL!;P7J!;Y=K!;kLM!;tON!<(UO!<(UO!<1[P!;tON!;bCL!<1[P!<1[P
-!<(UO!<1[P!<(UO!57+ds8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DXjo>DZjoYVGjoGAB!!*#\rrE&\!!)u[!!)u[!s%KG!<)$[!;u!Z!57Lp
-!<)$[!<2*\!<)$[!<2*\!<)$[!<2*\!<)$[!;#=Q!;kmY!<)$[!;#=Q!;GUU!:o7P!;GUU!;kpY
-!;tsZ!<)$[!;kmY!;bjX!;P[V!;YaW!;kpY!;tsZ!<)$[!<)$[!<2*\!;tsZ!;bgX!<2*\!<2*\
-!<)$[!<2*\!<)$[!57Ops8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSi.tXSi,!XSMqqX98O)X8o@$!<'"q!!'+t!;ikt!55K2!<'"t!;rqs!<'"r
-!;3Gk!;rqs!;*Aj!;`er!;3Gk!;`er!;rqu!;rqq!;iht!;`es!;W_q!<'"u!;`es!;rqq!;rqt
-!<'"s!;iks!<'"r!<0(s!55K6mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%O5g4=h/gAM$MgAM!OgA1gJg&qE0g&Tk+!<(XJ!!(aM!;kLM!57+`!<(XM!;tRL!<(XK
-!;5(D!;tRL!;,"C!;bFK!;5(D!;bFK!;tRN!;tRJ!;kIM!;bFL!;Y@J!<(XN!;bFL!;tRJ!;tRM
-!<(XL!;kLL!<(XK!<1^L!57+ds8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jp%X3eVf@Jk5>;Yk5>8[k5#)Vjob\HjoFQC!<)'V!!)0Y!;kpY!57Ol!<)'Y!;u!X!<)'W
-!;5LP!;u!X!;,FO!;bjW!;5LP!;bjW!;u!Z!;u!V!;kmY!;bjX!;YdV!<)'Z!;bjX!;u!V!;u!Y
-!<)'X!;kpX!<)'W!<2-X!57Ops8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtXSr2#X8r7$r;churW)u"rW)u"q>gPsq>^MsrW)u"rW)u"q>gMrrVuu#!.h5&
-XIZHmmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRgAV'Qg&V-+r;ciNrW)uPrW)uPq>gQLq>^NLrW)uPrW)uPq>gNKrVuuQ!.ijT
-g7?sts8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ak5G>]joGDCr;ciZrW)u\rW)u\q>gQXq>^NXrW)u\rW)u\q>gNWrVuu]!.j9`
-k+1Z7s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i8"XT&;#X8i8!X8i8"XT&;"X8i8"X9J[+X8o?'!<0&"!<&u%!3E7%!<0&"
-!<0&+!3E7%XK2E'X8r7$rr@VOJZPEDs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-PgA_0Qg&M-Og&M-PgA_0Pg&M-Pg'.Q2g&Tj\!<1[P!<(US!8?-,!<1[P
-!<1[Y!8?-,g=cP\g&V-+rr@W(J_H[Ks8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D\k5PG]jo>D[jo>D\k5PG\jo>D\jothJjoFQ+!<2*\!<)$_!9WDD!<2*\
-!<2*e!9WDDk2l[+joGDCrr@W4J``Ncs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r1"!W];%qlC&'XK2E'!3E7%ri?;(XK2E'X8r7$!!)u!#QUs-!3?1%X8r7$
-#lq'.!3E7%XK2F#X8i7uXT&9OXF[IKXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V')!W^pSqq;;Ug=cP\!8?-,rn7PVg=cP\g&V-+!!)uO#QWT4!87G,g&V-+
-#lr]5!8?-,g=cQ*g&M-NgA_/(g4@tRgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoG>A!W_?_qrS.ak2l[+!9WDDroOCbk2l[+joGDC!!)u[#QX#L!9O:DjoGDC
-#ls,M!9WDDk2l[Bjo>DZk5PF4k(2Zjk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3?1%X8r.!!!)nt!s#F(!<&u&!3?1%X8r.!!!)qu!!)bp
-rr@VOJZPZKs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!87G,g&V$(!!)oM!s%'/!<(UT!87G,g&V$(!!)rN!!)cI
-rr@W(J_HpRs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9O:DjoG;@!!)oY!s%KG!<)$`!9O:DjoG;@!!)rZ!!)cU
-rr@W4J``cjs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3E7%X8r.!!!)ntr;cet"TYX*!3?1tX8i7tXSi-MXF[IC
-XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!8?-,g&V$(!!)oMr;cfM"T[91!87GMg&M-MgAM#&g4@tJ
-gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9WDDjoG;@!!)oYr;cfY"T[]I!9O:Yjo>DYk5>:2k(2Zb
-k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3E7%X8r.!!!)nt!s#F(!<&u&!3E7%X8r.!!!)bp!!%SO
-JZPEDs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!8?-,g&V$(!!)oM!s%'/!<(UT!8?-,g&V$(!!)cI!!%T(
-J_H[Ks8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9WDDjoG;@!!)oY!s%KG!<)$`!9WDDjoG;@!!)cU!!%T4
-J``Ncs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r*u!!)nt!s#F(!<0)"!;iht!;iht!<&u$!3E7%riH,"qlBbtr2]kurN#u!
-JZOF(SZMkZrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V!'!!)oM!s%'/!<1^P!;kIM!;kIM!<(UR!8?-,rn@APqq;#Mr7V,NrRq5O
-J_G\/S_F,Drn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG8?!!)oY!s%KG!<2-\!;kmY!;kmY!<)$^!9WDDroX4\qrRkYr8mtZrT4([
-J`_OGS`]tPrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!!*#"!!*#"rrDqt!!)nt!!)u!!s#F(!<0)"!;iht!;rqu
-!<0&"!;rqu!.h5&XJDrtmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!!*#P!!*#PrrDrM!!)oM!!)uO!s%'/!<1^P!;kIM!;tRN
-!<1[P!;tRN!.ijTg8*I&s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!!*#\!!*#\rrDrY!!)oY!!)u[!s%KG!<2-\!;kmY!;u!Z
-!<2*\!;u!Z!.j9`k+q/>s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtXSi.tXSi.uXSr5!X8i8!XS`(tXSMnsXSr5!X8i8!XS`(tX8r=&rW)hsrr@VO
-JZPZKs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hRgAM$MgAM$NgAV*Og&M-OgACsMgA1dLgAV*Og&M-OgACsMg&V3-rW)iLrr@W(
-J_HpRs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@ak5>;Yk5>;Zk5GA[jo>D[k555Yk5#&Xk5GA[jo>D[k555YjoGJErW)iXrr@W4
-J``cjs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtXSr4qX8i7aX8i7`XSi.+X8i7PX8i6OXI$$gmf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=hRgAV*Jg&M-:g&M-9gAM#Yg&M-)g&M,(g6^Ons8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@ak5GAVjo>DFjo>DEk5>:ejo>D5jo>C4k*P61s8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8jtX8i7qX8i7`X8i7aX8i7)X8i7bX8i7hX8i6OXI-*hmf(c:KE(uFec1:%rs%#L
-s5rIW!.Y~>
-!<E0!johC3g4=hRg&M-Jg&M-9g&M-:g&M,Wg&M-;g&M-Ag&M,(g6gUos8LaPJcGcDgAca(rs%2N
-s5rIT!.Y~>
-!<E0!johL1eVf@ajo>DVjo>DEjo>DFjo>Ccjo>DGjo>DMjo>C4k*Y<2s8LRKKE(uFec1:%rs%#L
-s5rIW!.Y~>
-!<E0!johL1eS8jtX8i7qX8i7FX8i6eX8i7hX8i6OXI-*hmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M-Jg&M,tg&M,>g&M-Ag&M,(g6gUos8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>DVjo>D+jo>CJjo>DMjo>C4k*Y<2s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i7qX8i7tXSi.tXT&;#XT&;!XSr4sXSr2$X8i7oXSW"sXT&;#XT&;!XSi.u
-XT&8(X8i7%!!)bprr<A,!!')#!3?/#XSr4sXSr4tXS`(sXSr4sXSi.kXS`(tXT&8(X8i7%!!)u!
-!!%SOR&p>Urmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hRg&M-Jg&M-MgAM$MgA_0QgA_0OgAV*LgAV'Rg&M-HgA:mLgA_0QgA_0OgAM$N
-gA_-Vg&M-,!!)cIrr<AZ!!(^Q!87DQgAV*LgAV*MgACsLgAV*LgAM$DgACsMgA_-Vg&M-,!!)uO
-!!%T(R+hT?rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@ajo>DVjo>DYk5>;Yk5PG]k5PG[k5GAXk5G>^jo>DTk5,/Xk5PG]k5PG[k5>;Z
-k5PDbjo>DD!!)cUrr<Af!!)-]!9O7]k5GAXk5GAYk555Xk5GAXk5>;Pk555Yk5PDbjo>DD!!)u[
-!!%T4R-+GKrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8jtX8i7qX8i7uX8i8!X8i8!X9AU*!3E7%r2]kur2]kuriH,"o;holqQ'r&X8o?'
-!3E7%rN#u!riH,""KVS'X8qsqrr<>+!!')#XK2C%ri?)"rN#u!ri?)"ri?)"rN#u!qlBbtr2]ku
-rN#u!oW/#mqQ0\s"KVS'X8r4#!!%SOR&p>Urmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hRg&M-Jg&M-Ng&M-Og&M-Og'%K1!8?-,r7V,Nr7V,Nrn@APo@a0EqUu2Tg&Tj\
-!8?-,rRq5Orn@AP"PNhUg&Uj#rr<>Y!!(^Qg=cN,rn7>PrRq5Orn7>Prn7>PrRq5Oqq;#Mr7V,N
-rRq5Oo\'9FqV(rL"PNhUg&V**!!%T(R+hT?rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@ajo>DVjo>DZjo>D[jo>D[jokbI!9WDDr8mtZr8mtZroX4\oB$#QqW8%`joFQ+
-!9WDDrT4([roX4\"Qf[ajoG,;rr<>e!!)-]k2lXDroO1\rT4([roO1\roO1\rT4([qrRkYr8mtZ
-rT4([o]?,RqW@eX"Qf[ajoGAB!!%T4R-+GKrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8jtX8i7rX8i7uX8i7tX8i8"XT&:qX8i8!X8i7uX8i7lX8i7sXT&:uX8i7tX9em.
-X8o?'!3E7%p8eQ#XK2E'X8o?'!<&u!!<0&"!;ro#!3E7%p8e5opT+>poW/#mqQ'l$XK2E'X8r1"
-!!%SORB6GVrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hRg&M-Kg&M-Ng&M-Mg&M-PgA_0Jg&M-Og&M-Ng&M-Eg&M-LgA_0Ng&M-Mg'Ic5
-g&Tj\!8?-,p=]fQg=cP\g&Tj\!<(UO!<1[P!;tOQ!8?-,p=]KHpY#TIo\'9FqUu,Rg=cP\g&V')
-!!%T(RG.]@rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@ajo>DWjo>DZjo>DYjo>D\k5PGVjo>D[jo>DZjo>DQjo>DXk5PGZjo>DYjp;%M
-joFQ+!9WDDp>uY]k2l[+joFQ+!<)$[!<2*\!;ts]!9WDDp>u>TpZ;GUo]?,RqW7t^k2l[+joG>A
-!!%T4RHFPLrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8jtX8i7qX8i8!X8i7tX8i8"X8i7pX8i8!X8i7uX8i7lX8i7sX8i7tX8i7tX9em.
-X8o?'!3E7%p8eQ#XK2E'X8o?'!<&u!!<0(r!<0(u!;`bs!;ikq!;*>m!;`c$!3E7%XK2F#X8i6O
-XI-*hmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M-Jg&M-Og&M-Mg&M-Pg&M-Ig&M-Og&M-Ng&M-Eg&M-Lg&M-Mg&M-Mg'Ic5
-g&Tj\!8?-,p=]fQg=cP\g&Tj\!<(UO!<1^K!<1^N!;bCL!;kLJ!;+tF!;bCR!8?-,g=cQ*g&M,(
-g6gUos8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>DVjo>D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DQjo>DXjo>DYjo>DYjp;%M
-joFQ+!9WDDp>uY]k2l[+joFQ+!<)$[!<2-W!<2-Z!;bgX!;kpV!;,CR!;bg^!9WDDk2l[Bjo>C4
-k*Y<2s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i7qX8i8!X8i7tX8i8"X8i7pX8i8!X8i7uX8i7lX8i7sX8i7tX8i7tX9em.
-X8o?'!3E7%p8eQ#XK2E'X8o?'!<&u!!<0&"!;*>m!;iht!;rnu!<&u!!;*>m!;`c$!3E7%XK2F#
-X8i6OXI-*hmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M-Jg&M-Og&M-Mg&M-Pg&M-Ig&M-Og&M-Ng&M-Eg&M-Lg&M-Mg&M-Mg'Ic5
-g&Tj\!8?-,p=]fQg=cP\g&Tj\!<(UO!<1[P!;+tF!;kIM!;tON!<(UO!;+tF!;bCR!8?-,g=cQ*
-g&M,(g6gUos8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>DVjo>D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DQjo>DXjo>DYjo>DYjp;%M
-joFQ+!9WDDp>uY]k2l[+joFQ+!<)$[!<2*\!;,CR!;kmY!;tsZ!<)$[!;,CR!;bg^!9WDDk2l[B
-jo>C4k*Y<2s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i7qX8i7uX8i8!X8i8!X8i7pX8i7uX8i8"XT&:lX8i7sX8i7sX8i8!X8i8"
-X9J[+X8o?'!<'#!!;ro)!3E7%XK2E'X8r4#!!)u!!!)u!!s#F(!<&u!!;iht!;rnu!<0)"!;*>m
-!<0&"!<0&(!3E7%XK2F#X8i7rXT&9OXJ2frmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M-Jg&M-Ng&M-Og&M-Og&M-Ig&M-Ng&M-PgA_0Eg&M-Lg&M-Lg&M-Og&M-P
-g'.Q2g&Tj\!<(XO!;tOW!8?-,g=cP\g&V**!!)uO!!)uO!s%'/!<(UO!;kIM!;tON!<1^P!;+tF
-!<1[P!<1[V!8?-,g=cQ*g&M-KgA_/(g7m=$s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>DVjo>DZjo>D[jo>D[jo>DUjo>DZjo>D\k5PGQjo>DXjo>DXjo>D[jo>D\
-jothJjoFQ+!<)'[!;tsc!9WDDk2l[+joGAB!!)u[!!)u[!s%KG!<)$[!;kmY!;tsZ!<2-\!;,CR
-!<2*\!<2*b!9WDDk2l[Bjo>DWk5PF4k+_#<s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i7qX8i7tXSi.tXSi.rXS`(sXSr2#X8qppquH\sr;c_rr;churW!,'!!')#
-!<0)"!<'"u!!B;&!3H(us/c2"rN,qtriH"tr2ferrN,tu!iuA%oW8#lriH)!"fq\(X8i8"X8i7r
-XT&9OXJ2frmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRg&M-Jg&M-MgAM$MgAM$KgACsLgAV'Qg&Ug"quH]Lr;c`Kr;ciNrW!,U!!(^Q
-!<1^P!<(XN!!CpT!8@>Ns4[GPrS%2Mrn@8Mr7_&KrS%5N!nmVSo\09Ern@>O"kiqVg&M-Pg&M-K
-gA_/(g7m=$s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ajo>DVjo>DYk5>;Yk5>;Wk555Xk5G>]joG):quH]Xr;c`Wr;ciZrW!,a!!)-]
-!<2-\!<)'Z!!D?`!9X1Zs5s:\rT=%YroX+Yr9!nWrT=(Z!p0I_o]H,QroX1["m,dbjo>D\jo>DW
-k5PF4k+_#<s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtX8i7qX8i7UX8i7IXT&:!X8i7sXT&9OXJ)`qmf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=hRg&M-Jg&M-.g&M-"gA_/Og&M-LgA_/(g7d7#s8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@ajo>DVjo>D:jo>D.k5PF[jo>DXk5PF4k+Ur;s8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8jtXSr4qX8i7WX8i7HX8i7!X8i7rX8i6OXIuZpmf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=hRgAV*Jg&M-0g&M-!g&M,Og&M-Kg&M,(g7[1"s8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@ak5GAVjo>D<jo>D-jo>C[jo>DWjo>C4k+Ll:s8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8jIXSi.tXS;deXS;dHXFdPRmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=h'gAM$Mg@tZ>g@tZ!g4J&Ys8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@6k5>;Yk4eqJk4eq-k(;aqs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jiX8i7aX8i7%XT&:VX8i6OXF[JNXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hGg&M-:g&M,SgA_0/g&M,(g4@uUgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@Vjo>DFjo>C_k5PG;jo>C4k(2[mk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jjX8i7`X8i7bX8i7=X8i7hXSr4sXSr4rX8i6OXF[JOXT._fec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!johC3g4=hHg&M-9g&M-;g&M,kg&M-AgAV*LgAV*Kg&M,(g4@uVgAh3PgAca(s7Y1HJcG`S
-g7eQ/k.1PC~>
-!<E0!johL1eVf@Wjo>DEjo>DGjo>D"jo>DMk5GAXk5GAWjo>C4k(2[nk5YJ\ec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!johL1eS8jjX8i7GX8i7=X8i7fX8i7rX8i7sX8i6OXF[JOXT._fec1:%s7Y"CKE(rUeYN6-
-k.LbF~>
-!<E0!johC3g4=hHg&M,ug&M,kg&M-?g&M-Kg&M-Lg&M,(g4@uVgAh3PgAca(s7Y1HJcG`Sg7eQ/
-k.1PC~>
-!<E0!johL1eVf@Wjo>D,jo>D"jo>DKjo>DWjo>DXjo>C4k(2[nk5YJ\ec1:%s7Y"CKE(rUeYN6-
-k.LbF~>
-!<E0!johL1eS8jjX8i7tXSi.tXT&;#XT&;!XSr4sXSr2$X8i7oXS`(rXSi.lXT&8)X8i7%!!',"
-!<9/"!;3Gk!<0&#!3H/"qlKbsqQ'Ysq5aPrqQ'YsJZOF(rN-%ermh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!johC3g4=hHg&M-MgAM$MgA_0QgA_0OgAV*LgAV'Rg&M-HgACsKgAM$EgA_-Wg&M-,!!(aP
-!<:dP!;5(D!<1[Q!8@DPqqD#LqUtoLq:YfKqUtoLJ_G\/rS%;Orn@C's8VfHs+14M#25dNk2s5T
-J,~>
-!<E0!johL1eVf@Wjo>DYk5>;Yk5PG]k5PG[k5GAXk5G>^jo>DTk555Wk5>;Qk5PDcjo>DD!!)0\
-!<;3\!;5LP!<2*]!9X7\qr[kXqW7bXq;qYWqW7bXJ`_OGrT=.[rmh%$s8VfCs+C@O#1]OLk2s>W
-J,~>
-!<E0!johL1eS8jjX8i7uX8i8!X8i8!X9AU*!3E7%r2]kur2]kuriH,"oW/#mqQ'YsrN#u!orS/n
-#HRn*X8o?'!<&u!!;3Dn!<&u!!<0)"!<0&"!<&u!!<0&"!;iht!;W\r!;`bs!.h5&XSo7#mf(c:
-KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hHg&M-Ng&M-Og&M-Og'%K1!8?-,r7V,Nr7V,Nrn@APo\'9FqUtoLrRq5Op"KEG
-#MK.Xg&Tj\!<(UO!;5%G!<(UO!<1^P!<1[P!<(UO!<1[P!;kIM!;Y=K!;bCL!.ijTgATb*s8LaP
-JcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@Wjo>DZjo>D[jo>D[jokbI!9WDDr8mtZr8mtZroX4\o]?,RqW7bXrT4([p#c8S
-#Nc!djoFQ+!<)$[!;5IS!<)$[!<2-\!<2*\!<)$[!<2*\!;kmY!;YaW!;bgX!.j9`k5FHBs8LRK
-KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jkX8i7uX8i7tX8i8"XT&:qX8i8!X8i7uX8i7mX8i7tX8i7tX8i7oX9em.X8o?'
-!3E7%rN#u!orJ,nq5aPrrN#u!ri?)"r2]kur2]kuq5aPrq5aPrJZOF(riH.frmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!johC3g4=hIg&M-Ng&M-Mg&M-PgA_0Jg&M-Og&M-Ng&M-Fg&M-Mg&M-Mg&M-Hg'Ic5g&Tj\
-!8?-,rRq5Op"BBGq:YfKrRq5Orn7>Pr7V,Nr7V,Nq:YfKq:YfKJ_G\/rn@DPrn@C's8VfHs+14M
-#25dNk2s5TJ,~>
-!<E0!johL1eVf@Xjo>DZjo>DYjo>D\k5PGVjo>D[jo>DZjo>DRjo>DYjo>DYjo>DTjp;%MjoFQ+
-!9WDDrT4([p#Z5Sq;qYWrT4([roO1\r8mtZr8mtZq;qYWq;qYWJ`_OGroX7\rmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!johL1eS8jjX8i8!X8i7tX8i8"X8i7pX8i8!X8i7uX8i7mX8i7tX8i7tX8i7oX9J[+X8o?'
-!<0&%!3E7%o;qljrN#u!rN#u!riGqrr2]kuq5aPrqQ'YsJZOF(rN-%ermh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johC3g4=hHg&M-Og&M-Mg&M-Pg&M-Ig&M-Og&M-Ng&M-Fg&M-Mg&M-Mg&M-Hg'.Q2g&Tj\
-!<1[S!8?-,o@j-CrRq5OrRq5Orn@2Kr7V,Nq:YfKqUtoLJ_G\/rS%;Orn@C's8VfHs+14M#25dN
-k2s5TJ,~>
-!<E0!johL1eVf@Wjo>D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DRjo>DYjo>DYjo>DTjothJjoFQ+
-!<2*_!9WDDoB,uOrT4([rT4([roX%Wr8mtZq;qYWqW7bXJ`_OGrT=.[rmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johL1eS8jjX8i8!X8i7tX8i8"X8i7pX8i8!X8i7uX8i7mX8i7tX8i7tX8i7oX9J[+X8o?'
-!<0&%!3E7%n#QKhri?)"rN#u!ri?)"p8e5oq5aPrqQ'YsJZOF(rN-%ermh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johC3g4=hHg&M-Og&M-Mg&M-Pg&M-Ig&M-Og&M-Ng&M-Fg&M-Mg&M-Mg&M-Hg'.Q2g&Tj\
-!<1[S!8?-,n(IaArn7>PrRq5Orn7>Pp=]KHq:YfKqUtoLJ_G\/rS%;Orn@C's8VfHs+14M#25dN
-k2s5TJ,~>
-!<E0!johL1eVf@Wjo>D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DRjo>DYjo>DYjo>DTjothJjoFQ+
-!<2*_!9WDDn)aTMroO1\rT4([roO1\p>u>Tq;qYWqW7bXJ`_OGrT=.[rmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johL1eS8jjX8i7uX8i8!X8i8!X8i7pX8i7uX8i8"XT&:mX8i8"X8i8"X8i8!X8i7uXT&:u
-X9J[+X8o?'!<'#!!;!8l!<&u!!<0&"!<&u!!<&u!!<&u!!;rnu!;W\r!;`bs!;W_r!.h5,XT._f
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hHg&M-Ng&M-Og&M-Og&M-Ig&M-Ng&M-PgA_0Fg&M-Pg&M-Pg&M-Og&M-NgA_0N
-g'.Q2g&Tj\!<(XO!;"nE!<(UO!<1[P!<(UO!<(UO!<(UO!;tON!;Y=K!;bCL!;Y@K!.ijZgAh3P
-gAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@Wjo>DZjo>D[jo>D[jo>DUjo>DZjo>D\k5PGRjo>D\jo>D\jo>D[jo>DZk5PGZ
-jothJjoFQ+!<)'[!;#=Q!<)$[!<2*\!<)$[!<)$[!<)$[!;tsZ!;YaW!;bgX!;YdW!.j9fk5YJ\
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jjX8i7tXSi.tXSi.rXS`(sXSr2#X8qjnrW)ktr;c_rrrE#!rW!,'!!')#!<&u!
-!;!;i!<0)!!<9/"!<'"t!<'"s!<'"s!;rnu!;W_r!.h5,XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hHg&M-MgAM$MgAM$KgACsLgAV'Qg&U`urW)lMr;c`KrrE#OrW!,U!!(^Q!<(UO
-!;"qB!<1^O!<:dP!<(XM!<(XL!<(XL!;tON!;Y@K!.ijZgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@Wjo>DYk5>;Yk5>;Wk555Xk5G>]joG#8rW)lYr;c`WrrE#[rW!,a!!)-]!<)$[
-!;#@N!<2-[!<;3\!<)'Y!<)'X!<)'X!;tsZ!;YdW!.j9fk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jjX8i7UX8i7[XT&:iX8i7<X8i7sXT&9OXG3hVmf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=hHg&M-.g&M-4gA_0Bg&M,jg&M-LgA_/(g4n>]s8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@Wjo>D:jo>D@k5PGNjo>D!jo>DXk5PF4k(`$us8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8jiX8i7WX8i7ZX8i7hX8i7=X8i7rX8i6OXG*bUmf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=hGg&M-0g&M-3g&M-Ag&M,kg&M-Kg&M,(g4e8\s8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@Vjo>D<jo>D?jo>DMjo>D"jo>DWjo>C4k(Vsts8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8jIXSi.tXS;eNXSi.tXS;dHXF[IsXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=h'gAM$Mg@t['gAM$Mg@tZ!g4@u%gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@6k5>;Yk4er3k5>;Yk4eq-k(2[=k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jiX8i7aX8i6OXJ)]q!8adW!;NYq!:m2k!9^H`!<'"r!;rnu!;W\r!:d,j!;W_q
-!:d/jmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hGg&M-:g&M,(g7d4#!8cE0!;P:J!:nhD!9`)9!<(XK!;tON!;Y=K!:ebC!;Y@J
-!:eeCs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@Vjo>DFjo>C4k+Uo;!8ci<!;P^V!:o7P!9`ME!<)'W!;tsZ!;YaW!:f1O!;YdV
-!:f4Os8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jjX8i7`X8i7GX8i7`X8i7`X9/I(X8r7$rW)u"rW(u[!!'p<!!)bp!!(lW!!)bp
-!!)Sk!!)5a!W];%rN#u!rN#u!rN-#!qQ0\sqQ'c!XK2F!X8i7qX8i7jXT._fec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!johC3g4=hHg&M-9g&M,ug&M-9g&M-9g&h?/g&V-+rW)uPrW)!4!!'pj!!)cI!!(m0!!)cI
-!!)TD!!)6:!W^pSrRq5OrRq5OrS%8OqV(rLqUu#Og=cQ(g&M-Jg&M-CgAh3PgAca(s7Y1HJcG`S
-g7eQ/k.1PC~>
-!<E0!johL1eVf@Wjo>DEjo>D,jo>DEjo>DEjoYVGjoGDCrW)u\rW)!@!!'q!!!)cU!!(m<!!)cU
-!!)TP!!)6F!W_?_rT4([rT4([rT=+[qW@eXqW7k[k2l[@jo>DVjo>DOk5YJ\ec1:%s7Y"CKE(rU
-eYN6-k.LbF~>
-!<E0!johL1eS8jjX8i7,X8i7`X8i7`X9/I(X8r4#rrE&"!!)#[!!'p<!!(*A!!(ZQ!W];%poFGq
-ri?/$X8r.!!W];%qQ'c!XK2F!X8i7qX8i7jXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hHg&M,Zg&M-9g&M-9g&h?/g&V**rrE&P!!)$4!!'pj!!(*o!!([*!W^pSpt>]J
-rn7DRg&V$(!W^pSqUu#Og=cQ(g&M-Jg&M-CgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@Wjo>Cfjo>DEjo>DEjoYVGjoGABrrE&\!!)$@!!'q!!!(+&!!([6!W_?_puVPV
-roO7^joG;@!W_?_qW7k[k2l[@jo>DVjo>DOk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jjX8i7tXSi.tXT&;#XT&;!XSr4sXSr2$X8i7mXSr2#X8r7$r;churr<&#rW)nu
-quHVqrW)r!rr<&#rW)nuquHYrquHAj!s#F(!<&u&!3?1%X8r1"rW)r!rW)r!rW)\oquH\srrE)#
-rrE#!r;churr<&#rW)ktquH\sr;c_rrW!&%!3E:"!;rqt!;ikr!<0)"!!',"!;!;k!;iks!!0/$
-oW8#lqlK\qoW/,pXK2EtX8i7tX8i7rX8i7sX9/I(X8r.!!!)eq!!)Pjs6fm:s+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johC3g4=hHg&M-MgAM$MgA_0QgA_0OgAV*LgAV'Rg&M-FgAV'Qg&V-+r;ciNrr<&QrW)oN
-quHWJrW)rOrr<&QrW)oNquHZKquHBC!s%'/!<(UT!87G,g&V')rW)rOrW)rOrW)]HquH]LrrE)Q
-rrE#Or;ciNrr<&QrW)lMquH]Lr;c`KrW!&S!8?0)!;tRM!;kLK!<1^P!!(aP!;"qD!;kLL!!1dR
-o\09EqqCrJo\'BIg=cQ&g&M-Mg&M-Kg&M-Lg&h?/g&V$(!!)fJ!!)QCs8W)Ps+14Mp=fOts8N;W
-U&X9;\c@6~>
-!<E0!johL1eVf@Wjo>DYk5>;Yk5PG]k5PG[k5GAXk5G>^jo>DRk5G>]joGDCr;ciZrr<&]rW)oZ
-quHWVrW)r[rr<&]rW)oZquHZWquHBO!s%KG!<)$`!9O:DjoG>ArW)r[rW)r[rW)]TquH]XrrE)]
-rrE#[r;ciZrr<&]rW)lYquH]Xr;c`WrW!&_!9WGA!;u!Y!;kpW!<2-\!!)0\!;#@P!;kpX!!23^
-o]H,Qqr[eVo]?5Uk2l[>jo>DYjo>DWjo>DXjoYVGjoG;@!!)fV!!)QOs8W)Ks+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johL1eS8jjX8i7uX8i8!X8i8!X9AU*!3E7%r2]kur2]kuriH,"oW/#mriH,"s/Z2#rN#u!
-riH,"ri?)"rN#u!q5aPrri?)"riH,"ri?)"rN#u!qQ'YsrN#u!oW/,pXK2F#X9AU*!3E7%rN#u!
-ri?)"ri?)"r2]kuorJ,nq5ai%X8o?'!3E7%rN#u!riH,"ri?)"ri?)"rN#u!ri?)"rN#u!rN#u!
-riH,"ri?)"pT+>pr2]kurN#u!riH,"ri?)"nuMfkr2]kuriH,"nuMfkr2]kurN#u!oW/,pXK2Et
-X8i7tX8i7rX8i7sX9/I(X8r.!!!)eq!!)Pjs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hHg&M-Ng&M-Og&M-Og'%K1!8?-,r7V,Nr7V,Nrn@APo\'9Frn@APs4RGQrRq5O
-rn@APrn7>PrRq5Oq:YfKrn7>Prn@APrn7>PrRq5OqUtoLrRq5Oo\'BIg=cQ*g'%K1!8?-,rRq5O
-rn7>Prn7>Pr7V,Np"BBGq:Z)Sg&Tj\!8?-,rRq5Orn@APrn7>Prn7>PrRq5Orn7>PrRq5OrRq5O
-rn@APrn7>PpY#TIr7V,NrRq5Orn@APrn7>Po%F'Dr7V,Nrn@APo%F'Dr7V,NrRq5Oo\'BIg=cQ&
-g&M-Mg&M-Kg&M-Lg&h?/g&V$(!!)fJ!!)QCs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@Wjo>DZjo>D[jo>D[jokbI!9WDDr8mtZr8mtZroX4\o]?,RroX4\s5j:]rT4([
-roX4\roO1\rT4([q;qYWroO1\roX4\roO1\rT4([qW7bXrT4([o]?5Uk2l[BjokbI!9WDDrT4([
-roO1\roO1\r8mtZp#Z5Sq;qq_joFQ+!9WDDrT4([roX4\roO1\roO1\rT4([roO1\rT4([rT4([
-roX4\roO1\pZ;GUr8mtZrT4([roX4\roO1\o&]oPr8mtZroX4\o&]oPr8mtZrT4([o]?5Uk2l[>
-jo>DYjo>DWjo>DXjoYVGjoG;@!!)fV!!)QOs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8jkX8i7uX8i7tX8i8"XT&:qX8i8!X8i7uX8i7nX8i7uX9&C'!;ii"!3E7%rN#u!
-rN#u!qQ'Ysr2]u#XK2F#X8i8!X8i7sX8i7`X9AU*X8o=%ri?)"r2^2)XK2E'X8o?'!;3Dn!;W_r
-!;<Jo!<0&"!<&u!!<0&"!;*>m!<0&"!;rnu!<0&"!;EPp!<&u!!;ii"!3E7%rN#u!nuMfkrN#u!
-r2]kunuMfkr2]kun>lTiri?)"q5aPrqlBbtq5aPrn#QKhq5aPrnZ;cYrmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johC3g4=hIg&M-Ng&M-Mg&M-PgA_0Jg&M-Og&M-Ng&M-Gg&M-Ng&_9.!;kIP!8?-,rRq5O
-rRq5OqUtoLr7V5Qg=cQ*g&M-Og&M-Lg&M-9g'%K1g&Th,rn7>Pr7VGWg=cP\g&Tj\!;5%G!;Y@K
-!;>+H!<1[P!<(UO!<1[P!;+tF!<1[P!;tON!<1[P!;G1I!<(UO!;kIP!8?-,rRq5Oo%F'DrRq5O
-r7V,No%F'Dr7V,NnCdjBrn7>Pq:YfKqq;#Mq:YfKn(IaAq:YfKn_4$Crn@C's8VfHs+14M#25dN
-k2s5TJ,~>
-!<E0!johL1eVf@Xjo>DZjo>DYjo>D\k5PGVjo>D[jo>DZjo>DSjo>DZjoPPF!;km\!9WDDrT4([
-rT4([qW7bXr8n(]k2l[Bjo>D[jo>DXjo>DEjokbIjoFNDroO1\r8n:ck2l[+joFQ+!;5IS!;YdW
-!;>OT!<2*\!<)$[!<2*\!;,CR!<2*\!;tsZ!<2*\!;GUU!<)$[!;km\!9WDDrT4([o&]oPrT4([
-r8mtZo&]oPr8mtZnE']NroO1\q;qYWqrRkYq;qYWn)aTMq;qYWn`KlOrmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johL1eS8jjX8i8!X8i7tX8i8"X8i7pX8i8!X8i7uX8i7nX8i7sX8i7tX9/I(X8r4#!!)u!
-!!)ksq>gPs!!)u!!!)u!!!)hrr;c/b"TYX*!3?2"XSMqsX9J[+X8o?'!;3Dn!;W\r!;W_o!<0&"
-!<&u!!<'"t!;rqr!<0&"!;NVq!;EPp!<&u!!;ii"!3E7%rN#u!nuMfkrN#u!r2]kunuMfkqlK_r
-oW/#mri?)"qQ'YsqQ'Ysq5aPrn>lTipoFGqnZ;cYrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hHg&M-Og&M-Mg&M-Pg&M-Ig&M-Og&M-Ng&M-Gg&M-Lg&M-Mg&h?/g&V**!!)uO
-!!)lLq>gQL!!)uO!!)uO!!)iKr;c0;"T[91!87GPgA1gLg'.Q2g&Tj\!;5%G!;Y=K!;Y@H!<1[P
-!<(UO!<(XM!;tRK!<1[P!;P7J!;G1I!<(UO!;kIP!8?-,rRq5Oo%F'DrRq5Or7V,No%F'DqqCuK
-o\'9Frn7>PqUtoLqUtoLq:YfKnCdjBpt>]Jn_4$Crn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@Wjo>D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DSjo>DXjo>DYjoYVGjoGAB!!)u[
-!!)lXq>gQX!!)u[!!)u[!!)iWr;c0G"T[]I!9O:\k5#)XjothJjoFQ+!;5IS!;YaW!;YdT!<2*\
-!<)$[!<)'Y!;u!W!<2*\!;P[V!;GUU!<)$[!;km\!9WDDrT4([o&]oPrT4([r8mtZo&]oPqr[hW
-o]?,RroO1\qW7bXqW7bXq;qYWnE']NpuVPVn`KlOrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8jjX8i8!X8i7tX8i8"X8i7pX8i8!X8i7uX8i7nX8i7sX8i7tX9/I(X8r4#!!)u!
-!!)ks!!)hr!!)u!!!)u!!!)\n!!)Ae!!*#"rrE&"!!)eq"9>M'X8qmo!!)hr!!)ks!!)u!!!*#"
-!!)u!!!)hr!!*#"!!)u!!!*#"!!)eq!!)bp!!)u!!!)nt!s#F(!<&u!!:m2k!<&u!!;rnu!:m2k
-!;EPp!;3Gj!;iht!;`bs!;W\r!:[&i!;NVq!:d/jmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hHg&M-Og&M-Mg&M-Pg&M-Ig&M-Og&M-Ng&M-Gg&M-Lg&M-Mg&h?/g&V**!!)uO
-!!)lL!!)iK!!)uO!!)uO!!)]G!!)B>!!*#PrrE&P!!)fJ"9@-Ug&Ud!!!)iK!!)lL!!)uO!!*#P
-!!)uO!!)iK!!*#P!!)uO!!*#P!!)fJ!!)cI!!)uO!!)oM!s%'/!<(UO!:nhD!<(UO!;tON!:nhD
-!;G1I!;5(C!;kIM!;bCL!;Y=K!:\\B!;P7J!:eeCs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@Wjo>D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DSjo>DXjo>DYjoYVGjoGAB!!)u[
-!!)lX!!)iW!!)u[!!)u[!!)]S!!)BJ!!*#\rrE&\!!)fV"9@QajoG&9!!)iW!!)lX!!)u[!!*#\
-!!)u[!!)iW!!*#\!!)u[!!*#\!!)fV!!)cU!!)u[!!)oY!s%KG!<)$[!:o7P!<)$[!;tsZ!:o7P
-!;GUU!;5LO!;kmY!;bgX!;YaW!:]+N!;P[V!:f4Os8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jjX8i7uX8i8!X8i8!X8i7pX8i7uX8i8"XT&:mX8i8!X9/I(X8r4#!!*#"!!)u!
-!!)u!!!*#"!!)u!!!)u!!s#F(!<&u!!<&u!!<0&"!<0&"!<&u!!;rqu!;!8l!<0)"!<&u!!<&u!
-!<0)"!!95%!;*>m!<0&"!<&u!!;`bs!<0)"!<0&"!<&u!!<0&"!<&u!!<0&"!<0)"!<&u!!<&u!
-!<0&"!<0&"!;iht!;rnu!<&u!!<0&"!<&u!!:m2k!;rnu!<0)"!:m2k!;rnu!<&u!!:d,j!;`bs
-!;`bs!;W\r!:[&i!;NVq!:d/jmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hHg&M-Ng&M-Og&M-Og&M-Ig&M-Ng&M-PgA_0Fg&M-Og&h?/g&V**!!*#P!!)uO
-!!)uO!!*#P!!)uO!!)uO!s%'/!<(UO!<(UO!<1[P!<1[P!<(UO!;tRN!;"nE!<1^P!<(UO!<(UO
-!<1^P!!:jS!;+tF!<1[P!<(UO!;bCL!<1^P!<1[P!<(UO!<1[P!<(UO!<1[P!<1^P!<(UO!<(UO
-!<1[P!<1[P!;kIM!;tON!<(UO!<1[P!<(UO!:nhD!;tON!<1^P!:nhD!;tON!<(UO!:ebC!;bCL
-!;bCL!;Y=K!:\\B!;P7J!:eeCs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@Wjo>DZjo>D[jo>D[jo>DUjo>DZjo>D\k5PGRjo>D[joYVGjoGAB!!*#\!!)u[
-!!)u[!!*#\!!)u[!!)u[!s%KG!<)$[!<)$[!<2*\!<2*\!<)$[!;u!Z!;#=Q!<2-\!<)$[!<)$[
-!<2-\!!;9_!;,CR!<2*\!<)$[!;bgX!<2-\!<2*\!<)$[!<2*\!<)$[!<2*\!<2-\!<)$[!<)$[
-!<2*\!<2*\!;kmY!;tsZ!<)$[!<2*\!<)$[!:o7P!;tsZ!<2-\!:o7P!;tsZ!<)$[!:f1O!;bgX
-!;bgX!;YaW!:]+N!;P[V!:f4Os8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jjX8i7tXSi.tXSi.rXS`(sXSr2#X8qjnr;cetr;churW)u"rW)nurW)hsr;cl!
-rW)u"rW)nurW)nuquHVqrrD\mrW)r!!!)qur;cetrr<,%!!)VlrW)nur;c_rrW!&%!!',"!<9/"
-!<9.u!;rqt!!95%!<'"t!;rqt!;rqr!<'"t!<0)!!<9/"!;3Gk!<'"u!!95%!;3Gk!<0(t!:d/i
-!;iht!;rqr!<'"s!:m2k!;NVq!:d/jmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hHg&M-MgAM$MgAM$KgACsLgAV'Qg&U`ur;cfMr;ciNrW)uPrW)oNrW)iLr;clO
-rW)uPrW)oNrW)oNquHWJrrD]FrW)rO!!)rNr;cfMrr<,S!!)WErW)oNr;c`KrW!&S!!(aP!<:dP
-!<:dN!;tRM!!:jS!<(XM!;tRM!;tRK!<(XM!<1^O!<:dP!;5(D!<(XN!!:jS!;5(D!<1^M!:eeB
-!;kIM!;tRK!<(XL!:nhD!;P7J!:eeCs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@Wjo>DYk5>;Yk5>;Wk555Xk5G>]joG#8r;cfYr;ciZrW)u\rW)oZrW)iXr;cl[
-rW)u\rW)oZrW)oZquHWVrrD]RrW)r[!!)rZr;cfYrr<,_!!)WQrW)oZr;c`WrW!&_!!)0\!<;3\
-!<;3Z!;u!Y!!;9_!<)'Y!;u!Y!;u!W!<)'Y!<2-[!<;3\!;5LP!<)'Z!!;9_!;5LP!<2-Y!:f4N
-!;kmY!;u!W!<)'X!:o7P!;P[V!:f4Os8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jjX8i7UX8i7%XT&9OXF[JOX8i7qX8i7jXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hHg&M-.g&M,SgA_/(g4@uVg&M-Jg&M-CgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@Wjo>D:jo>C_k5PF4k(2[njo>DVjo>DOk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jiX8i7WX8i7$X8i6OXF[JOX8i7rXSr4iXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hGg&M-0g&M,Rg&M,(g4@uVg&M-KgAV*BgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@Vjo>D<jo>C^jo>C4k(2[njo>DWk5GANk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jIXSi.tXS;dHXF[I=XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=h'gAM$Mg@tZ!g4@tDgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@6k5>;Yk4eq-k(2Z\k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE(uDKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcGcBJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE(uDKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:K)krCKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJH5`AJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKK)krCKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJb$\Xrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCZ_Urs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KCJmFeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJai[Dg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKCJmFeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:K)iUWrs=>Xs4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJH3RZrs=8Vs4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKK)iUWrs=>Xs4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:K*&ads7k.EK*f6ks4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJHE^gs7k=JJI03ns4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKK*&ads7k.EK*f6ks4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE&Xbs7t4FK*f6ks4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcEUes7tCKJI03ns4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE&Xbs7t4FK*f6ks4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KE&Xbs8(:GKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJcEUes8(ILJcEUers%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKE&Xbs8(:GKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDrRas81@HKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc<Ods81OMJcEUers%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDrRas81@HKE&Xbrs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDrRas8:FIKDrRars%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc<Ods8:UNJc<Odrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDrRas8:FIKDrRars%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDiL`s8CLJKDrRars%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc3Ics8C[OJc<Odrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDiL`s8CLJKDrRars%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDiL`s8LRKKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc3Ics8LaPJc3Icrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDiL`s8LRKKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KD`F_s8UXLKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc*Cbs8UgQJc3Icrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKD`F_s8UXLKDiL`rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc*CbrrUo*Jc*Cbrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKD`F_rrU`'KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDW=^s8IZK^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc!:as8ITI_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDW=^s8IZK^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJc!:cs+,au_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDW=`s+>t$^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I(XOaKQmf(c:KDN:]KDW@^rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t/g=G!Xs8LaPJbm7`Jc!=ars%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZGk18\ps8LRKKDN:]KDW@^rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMmXaeWmaU\(ec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+s+13$s4%)JgAca#_>o/`_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:s+13$s4%)Jec19u]`<]]^&S*:eYN6-k.LbF~>
-!<E0!jo_F0eS9['JaS*We*d4cs+Bh@#1]OLk2s>WJ,~>
-!<E0!jo_=2g4=hTJcC<$e,TF$s+0\>#25dNk2s5TJ,~>
-!<E0!jo_F0eVf"YJcC<$e,TEts+Bh@#1]OLk2s>WJ,~>
-!<E0!joD3.eUc8%e]lVEKCAgEeYN6-k.LbF~>
-!<E0!joD*+g4@t/g<J=OJa`UCg7eQ/k.1PC~>
-!<E0!joD3.eUc8%e]lVEKCAgEeYN6-k.LbF~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD*+g4@t/g:>o@U&X9;\c@6~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joD*+g4@t/g:>o@U&X9;\c@6~>
-!<E0!joD3.eUc8%e[a36V#TT>]`<Q~>
-!<E0!joM:.JV/N+JV2=%ldZ07s5rIW!.Y~>
-!<E0!joM10JUrB'JUu1!le2N9s5rIT!.Y~>
-!<E0!joM:.JV/N+JV2=%ldZ07s5rIW!.Y~>
-!<E0!joM:.JV/N+JV2@&!<;B8"f21\k.LbF~>
-!<E0!joM10JUrB'JUu4"!<;B="ektYk.1PC~>
-!<E0!joM:.JV/N+JV2@&!<;B8"f21\k.LbF~>
-!<E0!jo_F0K7id/!WTias+13$s7H<m^&S-)^&S,ueHMcKk2s>WJ,~>
-!<E0!jo_=2JV!F0!WU#fs+13$s7H<m_Z0Z._Z0Z%g'+2Mk2s5TJ,~>
-!<E0!jo_F0K7id/!WTias+13$s7H<m^&S-)^&S,ueHMcKk2s>WJ,~>
-!<E0!jo_F0K7ij1s8N+P]n-37s+14CrrIbcrVuT)s8VE8"f21\k.LbF~>
-!<E0!jo_=2JV!L2s8N+N_L_`<s+14CrrI\frVuT.s8VE="ektYk.1PC~>
-!<E0!jo_F0K7ij1s8N+P]n-37s+14CrrIbcrVuT)s8VE8"f21\k.LbF~>
-!<Bh3S-%5nKD3(Ys8R]Q^&S+`eUc8%ebI\pK)iU^s7j;-s6J2=S@tG_!!%N~>
-!<B_0R0))nJbR%\s8RWO_Z0Xeg4@t/gA'D%JH3Ras7jJ2s6JABRC\fS!!%N~>
-!<Bh3S-%5nKD3(Ys8R]Q^&S+`eUc8%ebI\pK)iU^s7j;-s6J2=S@tG_!!%N~>
-!!)uB".[noKDE4Zrrpr*K>%<bJ^o>%J^sPGs+:Hfs8UX"rVu`-s8VE8"e<iN]po(Q~>
-!!)u?".@koJbd1]rrq,-J\qHeJ_G\/J_KnQs+(<is8Ug,rVu`2s8VE="e!NE\sWPK~>
-!!)uB".[noKDE4Zrrpr*K>%<bJ^o>%J^sPGs+:Hfs8UX"rVu`-s8VE8"e<iN]po(Q~>
-!<CCD]`XeTK7j'7rVulIs+:Bds8RZ#J^o>%psoCs!knX6rRLlHr4W.1ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!^8rVulNs+(6gs8RZ(J_G\/ptGb!!lG!;rS%5Mr5/L6le2N1b.>0P!.Y~>
-!<CCD]`XeTK7j'7rVulIs+:Bds8RZ#J^o>%psoCs!knX6rRLlHr4W.1ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7j-9rVufGs+:Bds8RZ#J^o>%psoCs!knX6qpkZFrk8@3ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!d:rVufLs+(6gs8RZ(J_G\/ptGb!!lG!;qqD#Krke^8le2N1b.>0P!.Y~>
-!<CCD]`XeTK7j-9rVufGs+:Bds8RZ#J^o>%psoCs!knX6qpkZFrk8@3ldZ0/c+Uf\!.Y~>
-!<CCD]`jqVK7gkNrVu`Es+:Bds8RZ#J^o>%psoCs!knX6q:5HD!knX6ldZ0/c+Uf\!.Y~>
-!<C:A\cnMUJUt\TrVu`Js+(6gs8RZ(J_G\/ptGb!!lG!;q:bfI!lG!;le2N1b.>0P!.Y~>
-!<CCD]`jqVK7gkNrVu`Es+:Bds8RZ#J^o>%psoCs!knX6q:5HD!knX6ldZ0/c+Uf\!.Y~>
-!<CCD]`FYRqh+[os+:Bds8RZ#J^o>%psoCs!knX6pso=qs8VE8"e<iN]po(Q~>
-!<C:A\cJ5QqgnOrs+(6gs8RZ(J_G\/ptGb!!lG!;ptG[ts8VE="e!NE\sWPK~>
-!<CCD]`FYRqh+[os+:Bds8RZ#J^o>%psoCs!knX6pso=qs8VE8"e<iN]po(Q~>
-!<CCD]`jqVK7gkNrIasss+:Bds8RZ#J^o>%psoCs!knX6q:5Fr!knX6ldZ0/c+Uf\!.Y~>
-!<C:A\cnMUJUt\TrIOh!s+(6gs8RZ(J_G\/ptGb!!lG!;q:bdu!lG!;le2N1b.>0P!.Y~>
-!<CCD]`jqVK7gkNrIasss+:Bds8RZ#J^o>%psoCs!knX6q:5Fr!knX6ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7j-9rIb$us+:Bds8RZ#J^o>%psoCs!knX6qpkXtrk8@3ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!d:rIOn#s+(6gs8RZ(J_G\/ptGb!!lG!;qqD""rke^8le2N1b.>0P!.Y~>
-!<CCD]`XeTK7j-9rIb$us+:Bds8RZ#J^o>%psoCs!knX6qpkXtrk8@3ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7j'7rIb+"s+:Bds8RZ#J^o>%psoCs!knX6rRLk!r4W.1ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!^8rIOt%s+(6gs8RZ(J_G\/ptGb!!lG!;rS%4$r5/L6le2N1b.>0P!.Y~>
-!<CCD]`XeTK7j'7rIb+"s+:Bds8RZ#J^o>%psoCs!knX6rRLk!r4W.1ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7j!5rIY:(K7gl;s+/^OeUc9Gec17)^&S,_ebt-s^&S,ueHMJf]tKp9J,~>
-!<C:A\c\ASJV!X6rIG.+JUt]<s+/mTg4@uQgAc^,_Z0YigAQU!_Z0Z%g'*ne]"4:0J,~>
-!<CCD]`XeTK7j!5rIY:(K7gl;s+/^OeUc9Gec17)^&S,_ebt-s^&S,ueHMJf]tKp9J,~>
-!<CCD]`XeTK7ip3r.>'as8RZ#J^o>%psoCs!knX6rIamYs8VE8"e<iN]po(Q~>
-!<C:A\c\ASJV!R4r.+pds8RZ(J_G\/ptGb!!lG!;rIOa\s8VE="e!NE\sWPK~>
-!<CCD]`XeTK7ip3r.>'as8RZ#J^o>%psoCs!knX6rIamYs8VE8"e<iN]po(Q~>
-!<CCD]`XeTK7ij1rdt9cs8RY&JV/N+p4EL]s8R_(p:^M+ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!L2rdb-fs8RY$JUrB'p43@`s8RY$p;6k0le2N1b.>0P!.Y~>
-!<CCD]`XeTK7ij1rdt9cs8RY&JV/N+p4EL]s8R_(p:^M+ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7id/!e\2dJV/N+JV3WJ!knVdoY(;)ldZ0/c+Uf\!.Y~>
-!<C:A\c\ASJV!F0!eJ5gJUrB'JV!KF!lFtgoYUY.le2N1b.>0P!.Y~>
-!<CCD]`XeTK7id/!e\2dJV/N+JV3WJ!knVdoY(;)ldZ0/c+Uf\!.Y~>
-!<CCD]`XeTK7eaTJcC<$df8X`"e<iN]po(Q~>
-!<C:A\c\ASJUrCPJcC<$df8Xe"e!NE\sWPK~>
-!<CCD]`XeTK7eaTJcC<$df8X`"e<iN]po(Q~>
-!<CCD]`O_SK7X&Rs+13ts6J2=SB\a\S,e'~>
-!<C:A\cS;RJV!iPs+13ts6JABREE+PR/ha~>
-!<CCD]`O_SK7X&Rs+13ts6J2=SB\a\S,e'~>
-!<CCD]`=RReUc8%e[a36SB\a\S,e'~>
-!<C:A\cA.Lg4@t/g:>o@REE+PR/ha~>
-!<CCD]`=RReUc8%e[a36SB\a\S,e'~>
-!<CCC^%%VDUk,=mUtMOD^%.Znc2PBWS,e'~>
-!<C:@]()2>Tn/ngU"Q+>](26hb5SsQR/ha~>
-!<CCC^%%VDUk,=mUtMOD^%.Znc2PBWS,e'~>
-!]^8*rOqgI!53s`JcC<$g&LTerk/B'!7cT~>
-!^m%2rOVUC!4ma]JcC<$g&LTbrji0!!8;r~>
-!cn@drOqgI!53s`JcC<$g&LTerk/B'!7cT~>
-!\j]"n%A^kJ`_OGJ`bYJ!6suG!h98@J,~>
-!^m%2n%&LeJ`_OGJ`bYJ!6XcA!gs&BJ,~>
-!bq_[n%A^kJ`_OGJ`bYJ!6suG!h98@J,~>
-s#C,\S=K,_!1\W&J`_OGg#`:Zn\+sm!W^d$J,~>
-s$QngR@3TV!1AE#J`_OGg#`:Wn[eag!W^s.J,~>
-s)S5AS=K,_!1\W&J`_OGg#`:Zn\+sm!W^d$J,~>
-r\=EQn=5'CJ\?WJfY-gFrrE&KJ,~>
-r^?bdn<nj=J\$EDfXgU@rrE&PJ,~>
-rcA)>n=5'CJ\?WJfY-gFrrE&KJ,~>
-r](!63Iq0]!.b-Z!<:RNs4,YM~>
-r'Z)9JH16$[fHH^!W^s.J,~>
-r,[DhJH16$[fHHY!W^d$J,~>
-%%EndData
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/lib/et/doc/src/sim_trans_mgr_actors.gif b/lib/et/doc/src/sim_trans_mgr_actors.gif
deleted file mode 100644
index b954a45bba..0000000000
--- a/lib/et/doc/src/sim_trans_mgr_actors.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_mgr_actors.png b/lib/et/doc/src/sim_trans_mgr_actors.png
new file mode 100644
index 0000000000..e42e82adad
--- /dev/null
+++ b/lib/et/doc/src/sim_trans_mgr_actors.png
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_mgr_actors.ps b/lib/et/doc/src/sim_trans_mgr_actors.ps
deleted file mode 100644
index 9bfa4ab544..0000000000
--- a/lib/et/doc/src/sim_trans_mgr_actors.ps
+++ /dev/null
@@ -1,1705 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner
-%%Title: /home/hakan/picts/sim_trans_mgr_actors.ps
-%%CreationDate: Mon Oct 14 17:07:53 2002
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 443 371
-%%EndComments
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-10 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.173228 14.173228 translate
-% Translate to begin of first scanline
-0.000000 356.135581 translate
-428.031496 -356.135581 scale
-% Image geometry
-512 426 8
-% Transformation matrix
-[ 512 0 0 426 0 0 ]
-% Strings to hold RGB-samples per scanline
-/rstr 512 string def
-/gstr 512 string def
-/bstr 512 string def
-{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
-true 3
-%%BeginData: 92674 ASCII Bytes
-colorimage
-r.BP#JH16$MZE\TJ,~>
-r.0D!JH16$MZE\TJ,~>
-r.BP#JH16$MZE\TJ,~>
-rk8=3nc&U&JcC<$JcF@%!56GQquD6~>
-rke[8nc&U'JcC<$JcF@%!5?MRquD6~>
-rk8=3nc&U&JcC<$JcF@%!56GQquD6~>
-s1JI6s8VWG!53s6J^o>%f@9l7a56ja!W`9#J,~>
-s2"g;s8VWC!5=$8J_#D'f@Br9a4gR]!W`9#J,~>
-s1JI6s8VWG!53s6J^o>%f@9l7a56ja!W`9#J,~>
-!keU6n(n&XJ^o>%J^rB&!56A.!lY0>J,~>
-!l=s;n(IcUJ_#D'J_&H(!5?G+!l=s;J,~>
-!keU6n(n&XJ^o>%J^rB&!56A.!lY0>J,~>
-!keU6n(n&X\((JtJ^o>%U=B7W`SL[8!<7Q~>
-!l=s;n(IcU\(1T&dXfu#et^dr^;\e-_>sUd~>
-!keU6n(n&X\((JtJ^o>%U=B7W`SL[8!<7Q~>
-!<E/fh>k7Kec1lieHNpfe\-<VrfmH5!J>`neH)JZJ^oY.!57RPpRLp5s.'&Es.'#D!NZ9O~>
-!<E/fg&SkHf)LlgedTEhf"Q]`R?<W_eq&CHecDJYJ_#_0!5@XMpR1^.s-`i>s-`f=!NlEQ~>
-!<E/fh>k7Kec1lieHNpfe\-<VrfmH5!J>`neH)JZJ^oY.!57RPpRLp5s.'&Es.'#D!NZ9O~>
-!<E/thZ',ChZ',Eh>k7]eH*Y&n^[Z(hUN4WHaM=]Hc=O"Ph"<:He$Zc]tMqs`P(Wg!jm<nJ^o\/
-!57RPpRLs6rLEoErLEiC!NZ9O~>
-!<E/tf)M08f)M0:ec<GVdK.4nn^@H"hU3"QJ[X!dIE'QpOj_[/J^Vu`[_:)i_RAgZ!k*NkJ^TJ)
-!5@XIpR1a+rL*]:rL*W8!NlEQ~>
-!<E/thZ',ChZ',Eh>k7]eH*Y&n^[Z(hUN4WHaM=]Hc=O"Ph"<:He$Zc]tMqs`P(Wg!jm<nJ^o\/
-!57RPpRLs6rLEoErLEiC!NZ9O~>
-!<E/uhYiuChYiuDh>k7]eH(;LbgclTPh"<:Hi)=sK6u/!K6t;^!J>abeH(nmJ^o\/!57RPpRLs6
-pRM3=!NZ9O~>
-!<E/uf);$8f);$9ec<GVdf4mBdKPJmdaE\tqpPLqs3gpu^!cq3ld>g!M1O*5dK%#Ef(YU+f(YU2
-ecDoRJ,~>
-!<E/uhYiuChYiuDh>k7]eH(;LbgclTPh"<:Hi)=sK6u/!K6t;^!J>abeH(nmJ^o\/!57RPpRLs6
-pRM3=!NZ9O~>
-!<E/uhY`oDhY`oCh>k7deHX!NH\8]UV#G]@`V\15S9qs"eZ=DRK6u/!`J](q[+27)`RUK*`RUKS
-e]!GnK='1ZMi4ZprRD%aHbIt"rd+pqK6u/!K6u.Erd4[a%#]Ib[+3]bMl_ieK7!LGs,.8uK6su4
-K6suUe]!dOHiMXrMZKo;qUH(pP^@b8`RWM?MgKf/c(t>c"i[R$H],!)ec1O9XGbWJMgKf'^"'fC
-]n+^meH!;GhY3Q5hYE]>h>s\XJ,~>
-!<E/uf)1s9f)1s8ec<G]dK[RNI>+uTU&KH?_Y_b/R=2Zpd\VZGJUu7t_NB8#ZI5b$_U=j#_U=jG
-d__,pKsK.TNK'corR(h[ICdjprd>'pJUu7tJUu7CrdFg`%$>slZI70\NMVW_JV!^Hs,@DpKn6D8
-Kn6PXd__.FIK.aqN<,l8qU,knOb%q?^=(H4M1'f/b+\f_"i@F!I>P-+df5:8V2`p?Ob%q7[aMU4
-\q/:gdK%#Ef(YU*f(ka3ecDoRJ,~>
-!<E/uhY`oDhY`oCh>k7deHX!NH\8]UV#G]@`V\15S9qs"eZ=DRK6u/!`J](q[+27)`RUK*`RUKS
-e]!GnK='1ZMi4ZprRD%aHbIt"rd+pqK6u/!K6u.Erd4[a%#]Ib[+3]bMl_ieK7!LGs,.8uK6su4
-K6suUe]!dOHiMXrMZKo;qUH(pP^@b8`RWM?MgKf/c(t>c"i[R$H],!)ec1O9XGbWJMgKf'^"'fC
-]n+^meH!;GhY3Q5hYE]>h>s\XJ,~>
-!<E/teb>U4eH!;\bmMFBK>!Lr`Pm1N^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifV
-P^CBoK6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO(P@'mS9oU@S9on5
-c%CYfc%CAfc%CA$V#&=b]r\oSH]-.EH],8<UrC<"HbH5%PeE<.XNf"BH]+]EMgMhE[(X`'H^oZ3
-N6M@9kLBR&q:,J8o[Wi/qpb_K!.Y~>
-!<E/tdeB1.dK%#Zc3h^FKt<Ot`l<RX_YVP*[XFRhcAACCJUu+hJVC\#IE&jHWm6<HWm61(b(58X
-Q$pZtJUNBOrQZU\IE'RPJUPD\JUu+lJUu+dJUPDTJVC\#IE'Q`I>OfGM2D,T(P.!oTm_?KTm_X?
-b(58`c@p\lc@LD#V>AId^952YI>Q7GI>P8<WlE&0IDW"4Q+iN3Wm8n@I>OfGM1)hH[_C&,IA)5;
-N6VF;kL'?uq9f82o[<W)qpGMJ!.Y~>
-!<E/teb>U4eH!;\bmMFBK>!Lr`Pm1N^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifV
-P^CBoK6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO(P@'mS9oU@S9on5
-c%CYfc%CAfc%CA$V#&=b]r\oSH]-.EH],8<UrC<"HbH5%PeE<.XNf"BH]+]EMgMhE[(X`'H^oZ3
-N6M@9kLBR&q:,J8o[Wi/qpb_K!.Y~>
-!<E/sebPa5eH!;\bmCIuSB\-^XNcBEprt(:Hd06N`Qa$^c)c8^c)c8nc$P\oH\7QrHd/X=SB\-^
-XNcBEqoo/+HiD8,K6tkfK6tkfK6tkfK6tkEH^r?^H`YJEHhP]!K6tS^H[E`VH[F#=H^r@*K6tkf
-K7!=:#K=B/K?]$q`VdsiK6tjqHc=7KH\9SfK7!UB",hMr^&?1VH^'*+N6M@9kLBR&q:,J8o[Wi/
-qpb_K!.Y~>
-!<E/sdeT=/dK%#Zc3^Y%TusNdY0MTLps/nj,Kd`K_Tm^`cE;Shb-$/qc@(ttI>+*+IEJ^@TusNd
-Y0MTHb5BNcQ$rYWs+13qs+13qs+13qs+(R'Y'm"dY'mIuJUP]8c5(tZb0GQdb0GQhcE_khcH_,l
-cH^uhb4j0d_S1STc@p\`r6G=n'$c>^`m2SPM9aCtIEKj\M1(r3rQYFlQ%@5>c2bTAdK#^2dK#^-
-defI0dK-KNJ,~>
-!<E/sebPa5eH!;\bmCIuSB\-^XNcBEprt(:Hd06N`Qa$^c)c8^c)c8nc$P\oH\7QrHd/X=SB\-^
-XNcBEqoo/+HiD8,K6tkfK6tkfK6tkfK6tkEH^r?^H`YJEHhP]!K6tS^H[E`VH[F#=H^r@*K6tkf
-K7!=:#K=B/K?]$q`VdsiK6tjqHc=7KH\9SfK7!UB",hMr^&?1VH^'*+N6M@9kLBR&q:,J8o[Wi/
-qpb_K!.Y~>
-!<E/rebbm6eH!;\blFR;HNU(gK7!C<$ClIES;YY:K6tk=r-JgIc&74UPa$g%Mp8'qHNU(gK7!L?
-!L.s1bn#GRc-:lfc-:lfc-:lfc(t8a"/O1oHhP]!K6tkfK6tkfK6tk=H_ep2K6tkfK7!C<#ebkC
-MgL*$H[GY7"G;'GH[Gb:s*Odj!J>aubmD@RH[C[ac-:U"J^'.u!58<\!582u!58*V!1`l8!1``4
-q4.B5!NZ9O~>
-!<E/rdefI0dK%#Zc2a^=I06=kJV!UA$CuUJSW1q?JUu+Cr-\sLcB3[\OdUp'NR"BuI06=kJV!^D
-!L8*4cMrIqcMrIqcMrIqcMrFrcDCGe"/X:oJbIChJcF$qJcF$qJIBc"IA+s3Kmh7lJV!UA#eG_@
-NI?N+I=;"<s+(6sJUROCs*apms+10p$,VsUI>ttdc@(t/cA^$K^AQCZ](q`o](XPPRJG82RJ##(
-RJbJ6XoNt~>
-!<E/rebbm6eH!;\blFR;HNU(gK7!C<$ClIES;YY:K6tk=r-JgIc&74UPa$g%Mp8'qHNU(gK7!L?
-!L.s1bn#GRc-:lfc-:lfc-:lfc(t8a"/O1oHhP]!K6tkfK6tkfK6tk=H_ep2K6tkfK7!C<#ebkC
-MgL*$H[GY7"G;'GH[Gb:s*Odj!J>aubmD@RH[C[ac-:U"J^'.u!58<\!582u!58*V!1`l8!1``4
-q4.B5!NZ9O~>
-!<E/qebu$7eH!;\blXtnSG^V4K7!C<%)%"GK<3>BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?
-(8Q;rc-:lfc-:lfc-:lfc-:lfc)c8^r657pHhP]!K6tkfK6tkfK6tkEH^r@*H[F#^K7!C<$&a/T
-c%CYnK6t<0bmf;Pc%CA^c,G$^c-:lfr65JcUjIa=`I",+c&BmI^&6FTSG(J5SGC\8SG(M-SGgt=
-X8mb~>
-!<E/qdf#U1dK%#Zc2t.sU&<49Jb[M!\p]QhWm8n@J^1EHU&<1DTm_osWdTl#cE;Shr6G=nqp#tN
-IE'RXJUu+lJUu+lJUu+lJUu+LIA-Sas+0mhs+13qs+13qs+(R'Y'l_`b(4udc@LQAc3]J]b0G]p
-c@p\\r6G=n$dOTW`m2SPM9aCtJc*du`h@g7cGk:+J^05"!5ABZpR1a'!1EZ2!1EQ/pR2!.!NlEQ~>
-!<E/qebu$7eH!;\blXtnSG^V4K7!C<%)%"GK<3>BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?
-(8Q;rc-:lfc-:lfc-:lfc-:lfc)c8^r657pHhP]!K6tkfK6tkfK6tkEH^r@*H[F#^K7!C<$&a/T
-c%CYnK6t<0bmf;Pc%CA^c,G$^c-:lfr65JcUjIa=`I",+c&BmI^&6FTSG(J5SGC\8SG(M-SGgt=
-X8mb~>
-!<E/pec208eH!;[bmB#LUpR51c%CAMprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51
-c%CB?boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWn.K6tkfK6tkfK6tk^H[DQH
-H[F#^K7!C<*/f0FXF#<-XF#T$]r]2tK6su$H^)4.H`YK:K7!UB$)FrA[!R_U[!TK;c&BmI^&6FT
-SG(J5SGC\8SG(M3SH%.<SGgt=X8mb~>
-!<E/pcMs1*c2bTVapZ4CIAOBTZHA#P[`8-c,DCPo`lcGTJ]budIAOBTZHBV(IC?_8IC@;<Kmff+
-Y-Q3$Jc!S1\p^a(b(5,db(5,db(5,db)(PT_M*E7[]ZpYJV!gCs,$Wqs+13ms+13ms+(R#_L6j+
-M1'fpb(5-=arH7dWiCJq^8cU8Y-t@Ib)(PTV1"W?Q$oLOb(5-CapFcI^9W0Db-$0$J]`qo!5ABV
-pQbHt!1!B*!1!9'rK[E.rK[?,!NlEQ~>
-!<E/pec208eH!;[bmB#LUpR51c%CAMprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51
-c%CB?boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWn.K6tkfK6tkfK6tk^H[DQH
-H[F#^K7!C<*/f0FXF#<-XF#T$]r]2tK6su$H^)4.H`YK:K7!UB$)FrA[!R_U[!TK;c&BmI^&6FT
-SG(J5SGC\8SG(M3SH%.<SGgt=X8mb~>
-!<E/feH!;[bmMFSH[CCHc*W+M^%onSUjJ@*bn5STc-=4lH[CCHc-:T^c-:T^rlk_fP^@b0XNcBE
-qT]%us32C5Hd0ffHd0ffHd0gBK6t;NP^@b0XNcBErlkIrHi)&&K6tkfK6tkfK6tkfXFl/4K6tkf
-K7!C<(USgAS>:M%c)chMH],kf["E_=XFkkPXT$HFK7!UB#aBsgH^)LoMi3/2Mp278r7(e\q4%Gu
-p=8o-p!s)4rRLq<r7(hL!.Y~>
-!<E/fc2bTUapQ"NJUN6Tb-HSL](sJMTm`(&b5[%mar/']JUN6Tb/SjXb0#-\`lcH@Q%=@;Y0)<H
-qTAhts2t@ms2t@ms2t@ms2kbUJUtDLQ%=@;Y0)<HrlY7lqo\qis2t@ms2t@ms2kYNJVCC`J]c,d
-Jb[A([Y9.#Tm`?OWel.PM8%-<JUtD/KmeZTrlY7lrlPM3JUN*7^<2FpJ]`nn!5ABV!4M]g!4MUH
-pQbEss-<Q.s-<N-!NlEQ~>
-!<E/feH!;[bmMFSH[CCHc*W+M^%onSUjJ@*bn5STc-=4lH[CCHc-:T^c-:T^rlk_fP^@b0XNcBE
-qT]%us32C5Hd0ffHd0ffHd0gBK6t;NP^@b0XNcBErlkIrHi)&&K6tkfK6tkfK6tkfXFl/4K6tkf
-K7!C<(USgAS>:M%c)chMH],kf["E_=XFkkPXT$HFK7!UB#aBsgH^)LoMi3/2Mp278r7(e\q4%Gu
-p=8o-p!s)4rRLq<r7(hL!.Y~>
-!<E/feH!;Qc2)be^"(@/`Ik89blN0Dqp"ta!5714!j%$nJ^'+t!56>$!NZ9O~>
-!<E/fc2bTKb5-Md]%+q)_L\Q.ao]S2L&9$hI/pk6ao\So_L]jfaoK/oc2k'JJ,~>
-!<E/feH!;Qc2)be^"(@/`Ik89blN0Dqp"ta!5714!j%$nJ^'+t!56>$!NZ9O~>
-!<E/fblGGi`<!ZJdDZ<sPbbC=H^rC#!MmD[`JVV7]u8.rX8mb~>
-!<E/faoK/g`W<fIdDcC!OfGF@IA+s+!MR5Y`eqb9^;S.pXoNt~>
-!<E/fblGGi`<!ZJdDZ<sPbbC=H^rC#!MmD[`JVV7]u8.rX8mb~>
-!<E/fblGG7`<Er>K6r6HJ]32ZeAVF$`6A=a!.Y~>
-!<E/faoK/5`Wa)=JUN6GJ]<8\eA_L&`6&+`!.Y~>
-!<E/fblGG7`<Er>K6r6HJ]32ZeAVF$`6A=a!.Y~>
-!<E/fblGG.`IZ!Z`Ri'/]u8.rX8mb~>
-!<E/faoK/,`du-\`n/31^;S.pXoNt~>
-!<E/fblGG.`IZ!Z`Ri'/]u8.rX8mb~>
-!!%S&JV/N+K7a.(J,~>
-!!%S$JUrB'K7O"&J,~>
-!!%S&JV/N+K7a.(J,~>
-!<E0!joD3.s+13$s,I$^V#TT>]`<Q~>
-!<E0!joD*+s+13$s,I$^U&X9;\c@6~>
-!<E0!joD3.s+13$s,I$^V#TT>]`<Q~>
-!<E0!joD3.s+13$s,R*`K;AP0k.LbF~>
-!<E0!joD*+s+13$s,R*`JYE,+k.1PC~>
-!<E0!joD3.s+13$s,R*`K;AP0k.LbF~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:A!!:[N!:A>:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK
-!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IF!!:jS!:AM?!<(XM!7T[#!;Y@K!!:jS!:eeC!9W#2!!_-W!8?-,!9W#8!<1^P
-!;Y@K!.ijTg?@8jJH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:A!!:[N!:A>:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK
-!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!;b7G!:A>:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3
-!<1OK!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!;bFL!:AM?!<(XO!7KU$!<:dQ!;bFL!!:jS!:eeC!9W#8!;bFL!<:dQ!9W#8
-!<1^P!;Y@K!.ijTg?@8jJH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!;b7G!:A>:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3
-!<1OK!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<:UL!!LgP!7fWu!<:UL!<:UL!<:UL!<:UJ!<:UL
-!!:[N!;+hA!;k=F!<:UL!!LgP!7fWu!<1OI!<:UJ!<:UJ!<:UL!!:[N!;+hA!<(IJ!!CaO!7h#J
-s4.&Js4.,L!n@8No[WsArmh#Ks4.&Js4.,L"k<SQeGoT#eUc9=ec17*V#TT>]`<Q~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<:dQ!!M!U!8?0*!<:dQ!<:dQ!<:dQ!<:dO!<:dQ
-!!:jS!;,"F!;kLK!<:dQ!!M!U!8?0*!<1^N!<:dO!<:dO!<:dQ!!:jS!;,"F!<(XO!!CpT!8@AO
-s4[DOs4[JQ!nmVSo\0<Frn@APs4[DOs4[JQ"kiqVg&M,(g4@uGgAc^-U&X9;\c@6~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<:UL!!LgP!7fWu!<:UL!<:UL!<:UL!<:UJ!<:UL
-!!:[N!;+hA!;k=F!<:UL!!LgP!7fWu!<1OI!<:UJ!<:UJ!<:UL!!:[N!;+hA!<(IJ!!CaO!7h#J
-s4.&Js4.,L!n@8No[WsArmh#Ks4.&Js4.,L"k<SQeGoT#eUc9=ec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@s4.,L*7Y#heGoU"eGoU"!!(R"!!(R"!!(OL
-!7fU"!7guIo[WsAr71fIs4.,L+OpGleGoU"!!(R"!!(OL!7fU"!7fU"!7fU"!7fU"!7guIo[WsA
-rRLoJ&(LX[e^XX"e^XX"e^XX"ebfF>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(N
-k2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Es4[JQ*81Amg&M-,g&M-,!!(a,!!(a,!!(^Q
-!8?-,!8@>No\0<Fr7_/Ns4[JQ+PHeqg&M-,!!(a,!!(^Q!8?-,!8?-,!8?-,!8?-,!8@>No\0<F
-rS%8O&)%!`g=cN,g=cN,g=cN,gACsCgA_0PgA_-[g&M-,g&M-,!!(aP!!:jS!.ijTg@*bqJH_bI
-k2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@s4.,L*7Y#heGoU"eGoU"!!(R"!!(R"!!(OL
-!7fU"!7guIo[WsAr71fIs4.,L+OpGleGoU"!!(R"!!(OL!7fU"!7fU"!7fU"!7fU"!7guIo[WsA
-rRLoJ&(LX[e^XX"e^XX"e^XX"ebfF>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(N
-k2s>WJ,~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ec,XLec,UheGoU"!!(R"!!(R"!!(OL!7_&Le^XX"
-e^XX"ec#R>ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^
-eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%n(%Gj"f21\k.LbF~>
-!<E0!joV7Vs8(II!"@Q]!87DQg&M-,g&M-EgA_0QgA_-mg&M-,!!(a,!!(a,!!(^Q!87DQg=cN,
-g=cN,gAV*CgA_0NgA_0QgA_-`g&M-,!!(^Q!8?-,!87DQqqD&Ms4[JQs4[JQ!8@DPo%O!A'&!<c
-g&M-,g&M-,g&M-,g&M-,rW)NCq>_)\!!(a,!!(^Q!87DQg=cN,J_G\/n(Rem"ektYk.1PC~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ec,XLec,UheGoU"!!(R"!!(R"!!(OL!7_&Le^XX"
-e^XX"ec#R>ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^
-eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%n(%Gj"f21\k.LbF~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo$n!Ge^XZMeGoU"qZ-ZHrr<;S!!(OL!7fWs!!:[N!:eV>
-!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J
-eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^s5>s+:KNs5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!CpT!8@;Mo%F?Lg=cP\g&M-,qZ-ZMrr<;X!!(^Q!8?0(!!:jS!:eeC
-!;tRN!<:dQ!!_-W!87DQgA:jOg&M-MgA_0QgA_0QgA_-Sg&M-CgA_0OgA_-Yg&M-,g&M-,gA:jO
-g&M-CgA_0PgA_-QgA:jVg&M-,!!(a,!!%T(J_KSHs+(?Is5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo$n!Ge^XZMeGoU"qZ-ZHrr<;S!!(OL!7fWs!!:[N!:eV>
-!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J
-eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^s5>s+:KNs5rIW!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Lma_79s4.,L!n@8Nqpk]H$.T"UeGoU"eGoUIec,X>ec,XI
-ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI
-!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[OeaM&gK*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!!V'V!87DQmb7U>s4[JQ!nmVSqqD&M$/,@Zg&M-,g&M-NgA_0CgA_0N
-gA_0QgA_-Yg&M-,!!(^Q!;tRN!;kLM!<:dQ!<:dQ!!:jS!:eeC!<(XO!".E[!8?-,!8?-,!;tRN
-!:eeC!<1^P!!:jS!;tRN!!_-W!8?-,!.ijTg@*bqJH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Lma_79s4.,L!n@8Nqpk]H$.T"UeGoU"eGoUIec,X>ec,XI
-ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI
-!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[OeaM&gK*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"n^[X>rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L
-!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ
-#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(Nk2s>W
-J,~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,n_4!Crn@AP#20%Wg=cN,rn@APs4[JQrn@APs4[JQ
-!nmVSnCmmBs4[DOs4[JQ(tnrig&M-,!!(a,!!(^Q!8?-,!8?-,!8@DPs4[JQ!nmVSn_4!CrS%8O
-#MK.Xg=cN,gAV*PgA_-Sg&M-CgA_0PgA_-[g&M-,g&M-,!!(aP!!:jS!.ijTg@*bqJH_bIk2s5T
-J,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"n^[X>rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L
-!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ
-#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(Nk2s>W
-J,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:\P=!<1OK!<:UJ!<(IJ!<:UL!<(IH!<:UL!:SJ:!<:UJ
-!<:UL!!LgP!7fWu!<1OI!<(IJ!<:UJ!<:UL!:eV>!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK
-!<:UJ!<:UL!!UmQ!7_&LJ^o>%ma_>i"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:\_B!<1^P!<:dO!<(XO!<:dQ!<(XM!<:dQ!:SY?!<:dO
-!<:dQ!!M!U!8?0*!<1^N!<(XO!<:dO!<:dQ!:eeC!<(XO!!:jS!<1^P!<:dO!<:dQ!:eeC!<1^P
-!<:dO!<:dQ!!V'V!87DQJ_G\/mb7\l"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:\P=!<1OK!<:UJ!<(IJ!<:UL!<(IH!<:UL!:SJ:!<:UJ
-!<:UL!!LgP!7fWu!<1OI!<(IJ!<:UJ!<:UL!:eV>!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK
-!<:UJ!<:UL!!UmQ!7_&LJ^o>%ma_>i"f21\k.LbF~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/n'gA_/(g4@uDgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/n'gA_/(g4@uDgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/n'gA_/(g4@uDgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/_"ec,W#eUc9:ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@t?gAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc85ec17*V#TT>]`<Q~>
-!<E0!joV@Ys+,fRK7SZ9K*A(Nk2s>WJ,~>
-!<E0!joV7Vs+,`PJUrB5JH_bIk2s5TJ,~>
-!<E0!joV@Ys+,fRK7SZ9K*A(Nk2s>WJ,~>
-!<E0!joM:XJV/N+JV/u8"f21\k.LbF~>
-!<E0!joM1UJUrB'JUri4"ektYk.1PC~>
-!<E0!joM:XJV/N+JV/u8"f21\k.LbF~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.e`#'V!;=tC!;P+E!!:[N!;k=H!9_o4!.i[Oea_/nV#TT>]`<Q~>
-!<E0!joD*+g>Uc`!;>.H!;P:J!!:jS!;kLM!9`)9!.ijTg@<l#U&X9;\c@6~>
-!<E0!joD3.e`#'V!;=tC!;P+E!!:[N!;k=H!9_o4!.i[Oea_/nV#TT>]`<Q~>
-!<E0!joD3.e`#'Y!<:UL!;G%D!;4nB!;k=H!9_o4!.i[Oea_/nV#TT>]`<Q~>
-!<E0!joD*+g>Ucc!<:dQ!;G4I!;5(G!;kLM!9`)9!.ijTg@<l#U&X9;\c@6~>
-!<E0!joD3.e`#'Y!<:UL!;G%D!;4nB!;k=H!9_o4!.i[Oea_/nV#TT>]`<Q~>
-!<E0!joD4Keb9%=eb]?&ec,XKec,XLeboLJeboLJeboLJec,UNeGoUHec,XIeboLJec,XKec,XL
-eboLJec,W#eUc9@eHMcKk2s>WJ,~>
-!<E0!joD+Hg@kRBgA:l+gA_0PgA_0QgAM$OgAM$OgAM$OgA_-Sg&M-MgA_0NgAM$OgA_0PgA_0Q
-gAM$OgA_/(g4@uJg'+2Mk2s5TJ,~>
-!<E0!joD4Keb9%=eb]?&ec,XKec,XLeboLJeboLJeboLJec,UNeGoUHec,XIeboLJec,XKec,XL
-eboLJec,W#eUc9@eHMcKk2s>WJ,~>
-!<E0!joD4KebB(DKDF't!//o&!<1OK!#X5d!7fU"!7fU"!7fU"!7fU"!7_&LeGoUHec,XJec,XL
-ec,UNeGoUKec,UUeGoU"eGoU"!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD+Hg@tUIJbe%"!/0)+!<1^P!#XDi!8?-,!8?-,!8?-,!8?-,!87DQg&M-MgA_0OgA_0Q
-gA_-Sg&M-PgA_-Zg&M-,g&M-,!!%T(J_KYJ"ektYk.1PC~>
-!<E0!joD4KebB(DKDF't!//o&!<1OK!#X5d!7fU"!7fU"!7fU"!7fU"!7_&LeGoUHec,XJec,XL
-ec,UNeGoUKec,UUeGoU"eGoU"!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XJec,UOeGoU"r;ciIr;clJquHcIr;`_FrrE&Krr<DV!!(R"!!(R"
-!!)oHrr<5Q!!(OL!;k=H!<(IJ!<:UL!<:UL!"IHY!7fU"!7fU"!7_&LJ^o>%n^Rf=s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_-Tg&M-,r;ciNr;clOquHcNr;`_KrrE&Prr<D[!!(a,!!(a,
-!!)oMrr<5V!!(^Q!;kLM!<(XO!<:dQ!<:dQ!"IW^!8?-,!8?-,!87DQJ_G\/n_+/?s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,UOeGoU"r;ciIr;clJquHcIr;`_FrrE&Krr<DV!!(R"!!(R"
-!!)oHrr<5Q!!(OL!;k=H!<(IJ!<:UL!<:UL!"IHY!7fU"!7fU"!7_&LJ^o>%n^Rf=s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJebT:Gec,UReGoU"eGoUJec,UReGoU"eGoTIec,XKec,ULeb]@H
-ec,XKebfCNeGoU"!!)oHrrE#JqZ-ZHrr<2P!!(R"qZ$]J!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0OgA1gLgA_-Wg&M-,g&M-OgA_-Wg&M-,g&M,NgA_0PgA_-QgA:mM
-gA_0PgACpSg&M-,!!)oMrrE#OqZ-ZMrr<2U!!(a,qZ$]O!!%T(J_KYJ"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XJebT:Gec,UReGoU"eGoUJec,UReGoU"eGoTIec,XKec,ULeb]@H
-ec,XKebfCNeGoU"!!)oHrrE#JqZ-ZHrr<2P!!(R"qZ$]J!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tebfCIec#RKec,XLec,UReGoU"eGoUKec,XLec,XLec,WIec,XKec,UN
-eGoUHec,XLec,XLec,UQeGoU"!!)oHrrE#JrrDoGrW)rJrrDuIrr@W#J^s;@"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gACpNgAV*PgA_0QgA_-Wg&M-,g&M-PgA_0QgA_0QgA_/NgA_0PgA_-S
-g&M-MgA_0QgA_0QgA_-Vg&M-,!!)oMrrE#OrrDoLrW)rOrrDuNrr@W(J_KYJ"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tebfCIec#RKec,XLec,UReGoU"eGoUKec,XLec,XLec,WIec,XKec,UN
-eGoUHec,XLec,XLec,UQeGoU"!!)oHrrE#JrrDoGrW)rJrrDuIrr@W#J^s;@"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKeb]=Heb]@GeGoUKeb]?Eec,XLec,XLec,XLec,XLec,UL
-ec#RKec,UQeGoU"!!)oHrrE#JrrE)LrrE&KrW)rJrrE)Lrr<,N!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0PgA:jMgA:mLg&M-PgA:lJgA_0QgA_0QgA_0QgA_0QgA_-Q
-gAV*PgA_-Vg&M-,!!)oMrrE#OrrE)QrrE&PrW)rOrrE)Qrr<,S!!%T(J_KYJ"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKeb]=Heb]@GeGoUKeb]?Eec,XLec,XLec,XLec,XLec,UL
-ec#RKec,UQeGoU"!!)oHrrE#JrrE)LrrE&KrW)rJrrE)Lrr<,N!!%T#J^s;@"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XIec,XHec,XKec,WEebfFGeboLHec,XLec#OKeboIL
-eGoUHeb]=HeboLGeGoUIeboLJec,W#eUc9@eHMcKk2s>WJ,~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0PgA_0NgA_0MgA_0PgA_/JgACsLgAM$MgA_0QgAV'PgAM!Q
-g&M-MgA:jMgAM$Lg&M-NgAM$OgA_/(g4@uJg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XIec,XHec,XKec,WEebfFGeboLHec,XLec#OKeboIL
-eGoUHeb]=HeboLGeGoUIeboLJec,W#eUc9@eHMcKk2s>WJ,~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XLec,UUeGoU"eGoU"!!)uJrrE)Lrr@W#J^o>%e("Vt
-s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0PgA_0QgA_-Zg&M-,g&M-,!!)uOrrE)Qrr@W(J_G\/e(Ou!
-s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,XKec,XLec,UUeGoU"eGoU"!!)uJrrE)Lrr@W#J^o>%e("Vt
-s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XJec,XJeboLIeboLJebfFIeboK!eUc8%e^DtOV#TT>]`<Q~>
-!<E0!joD+HgAh3LgAca"gA_0OgA_0OgAM$NgAM$OgACsNgAM#&g4@t/g="[YU&X9;\c@6~>
-!<E0!joD4Kec5[Gec19tec,XJec,XJeboLIeboLJebfFIeboK!eUc8%e^DtOV#TT>]`<Q~>
-!<E0!joD4Kec5[EK7VR(eUc8JeHMcKk2s>WJ,~>
-!<E0!joD+HgAh3JJUuO+g4@tTg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[EK7VR(eUc8JeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XJeboLIeboK!e_em\V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0OgAM$NgAM#&g>CTfU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XJeboLIeboK!e_em\V#TT>]`<Q~>
-!<E0!joD3.eUc8feboLIec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tpgAM$NgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8feboLIec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD*+g4@tngA_0PgA_0QgA_-Wg&M-,g&M,(g>LZgU&X9;\c@6~>
-!<E0!joD3.eUc8dec,XKec,XLec,UReGoU"eGoT#e_ns]V#TT>]`<Q~>
-!<E0!joD4Keb9%=ec,XKec,UNeGoUIec,XAeb]@,ebK2reZ77#!<1OK!<:UL!!^sR!7fU"!.i\Y
-eHMcKk2s>WJ,~>
-!<E0!joD+Hg@kRBgA_0PgA_-Sg&M-NgA_0FgA:m1gA(`"g8is-!<1^P!<:dQ!!_-W!8?-,!.ik^
-g'+2Mk2s5TJ,~>
-!<E0!joD4Keb9%=ec,XKec,UNeGoUIec,XAeb]@,ebK2reZ77#!<1OK!<:UL!!^sR!7fU"!.i\Y
-eHMcKk2s>WJ,~>
-!<E0!joD4KebB(DKDF't!<1OK!;Y1F!;+hA!8Q-)!.i\!ec,XKec,XLec,UReGoU"eGoT#e_ns]
-V#TT>]`<Q~>
-!<E0!joD+Hg@tUIJbe%"!<1^P!;Y@K!;,"F!8Q<.!.ik&gA_0PgA_0QgA_-Wg&M-,g&M,(g>LZg
-U&X9;\c@6~>
-!<E0!joD4KebB(DKDF't!<1OK!;Y1F!;+hA!8Q-)!.i\!ec,XKec,XLec,UReGoU"eGoT#e_ns]
-V#TT>]`<Q~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#Jrr</O!!(RJ!<:RM!7h&K
-!7h&Kp!s'BrRLiHJ^q!TrrE#Jr;ciIr;_E!hphn+s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-\g&M-,g&M-,!!(a,r;c]JrrE#Orr</T!!(aO!<:aR!8@DP
-!8@DPp"KEGrS%2MJ_I?^rrE#Or;ciNr;_E&hqA7-s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#Jrr</O!!(RJ!<:RM!7h&K
-!7h&Kp!s'BrRLiHJ^q!TrrE#Jr;ciIr;_E!hphn+s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IE!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;kLM!<(XJ!<:dQ!".E[!8?-,
-!8?-,!;>.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IE!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD4Kec5[Gec19tebT7WeGoU"!!(R"!!(OL!7fU"!;k=E!!(RK!<:UL!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%J^sbM"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA1d\g&M-,!!(a,!!(^Q!8?-,!;kLJ!!(aP!<:dQ!<:dQ!"7K\!8?-,
-!8?-,!8@;MrS%8Orn@APs4[JQJ_G\/J_L+W"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tebT7WeGoU"!!(R"!!(OL!7fU"!;k=E!!(RK!<:UL!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%J^sbM"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<(IJ!<1OK!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-[g&M-,!!(a,!!(aM!;kLM!<(XO!<1^P!<:dQ!".E[!8?-,
-!8?-,!;>.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[Gec19tec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<(IJ!<1OK!<:UL!".6V!7fU"
-!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD4Kec5[Gec19tec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<(IJ!<1OK!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%J^sbM"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-]g&M-,!!(a,!!(^Q!;G4I!<(XO!<1^P!<:dQ!"7K\!8?-,
-!8?-,!8@;MrS%8Orn@APs4[JQJ_G\/J_L+W"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<(IJ!<1OK!<:UL!"7<W!7fU"
-!7fU"!7grHrRLoJrmh#Ks4.,LJ^o>%J^sbM"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IJ!<1OK!<:UL!".6V
-!7fU"!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;kLM!<(XO!<1^P!<:dQ!".E[
-!8?-,!8?-,!;>.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<(IJ!<1OK!<:UL!".6V
-!7fU"!7fU"!;=tC!<1OK!<:UL!.i[OeUc9MeHMcKk2s>WJ,~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#JrrE#Jr;clJrrE)LrrE)L
-rrDcCrrE#Jr;bI"JV1dkJ^rr6"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-\g&M-,g&M-,!!(a,r;c]JrrE#OrrE#Or;clOrrE)QrrE)Q
-rrDcHrrE#Or;bI'JUtXgJ_K;@"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE#JrrE#Jr;clJrrE)LrrE)L
-rrDcCrrE#Jr;bI"JV1dkJ^rr6"f21\k.LbF~>
-!<E0!joD4Kec5[EK7VPQeU`@iK)kq&e`YHdV#TT>]`<Q~>
-!<E0!joD+HgAh3JJUuMTg4=glJH5_$g?7/nU&X9;\c@6~>
-!<E0!joD4Kec5[EK7VPQeU`@iK)kq&e`YHdV#TT>]`<Q~>
-!<E0!joD3.e`YK_K7U_r^#B!Be`YHdV#TT>]`<Q~>
-!<E0!joD*+g?72iJUt\u_VtNGg?7/nU&X9;\c@6~>
-!<E0!joD3.e`YK_K7U_r^#B!Be`YHdV#TT>]`<Q~>
-!<E0!joD3.e`YK_K7U_r^#]1pKE(t&e`YHdV#TT>]`<Q~>
-!<E0!joD*+g?72iJUt\u_W:^uJcGb$g?7/nU&X9;\c@6~>
-!<E0!joD3.e`YK_K7U_r^#]1pKE(t&e`YHdV#TT>]`<Q~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD*+g?72iJUt\u_Z0Z/g&Zd)p"KFss8RZ(kLp*5s5rIT!.Y~>
-!<E0!joD3.e`YK_K7U_r^&S-*eH(=&p!s(ps8RZ#kLBa3s5rIW!.Y~>
-!<E0!joD4Keb9%=ec,XKec,UNeGoUIec,XAec,XKec,XFec,WYec18Q^#Qg+s7OnCKE(Vps+C@O
-J^rr6"f21\k.LbF~>
-!<E0!joD+Hg@kRBgA_0PgA_-Sg&M-NgA_0FgA_0PgA_0KgA_/^gAc_T_W/N5s7P(HJcGDss+14M
-J_K;@"ektYk.1PC~>
-!<E0!joD4Keb9%=ec,XKec,UNeGoUIec,XAec,XKec,XFec,WYec18Q^#Qg+s7OnCKE(Vps+C@O
-J^rr6"f21\k.LbF~>
-!<E0!joD4KebB(DKDF't!<1OK!;Y1F!;+hA!<1OK!;Y1F!4UMYK7U_r^&S-*eH(=&p!s(ps8RZ#
-kLBa3s5rIW!.Y~>
-!<E0!joD+Hg@tUIJbe%"!<1^P!;Y@K!;,"F!<1^P!;Y@K!4U\^JUt\u_Z0Z/g&Zd)p"KFss8RZ(
-kLp*5s5rIT!.Y~>
-!<E0!joD4KebB(DKDF't!<1OK!;Y1F!;+hA!<1OK!;Y1F!4UMYK7U_r^&S-*eH(=&p!s(ps8RZ#
-kLBa3s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE&Krr<__!!(OL!7fU"!7fU"
-!7_&LeGoUKeboLJec,XLec,XLec,UQeGoU"!!(a's+>m9j1YKmp!j(qs7OqBKE(t&e`YHdV#TT>
-]`<Q~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-\g&M-,g&M-,!!(a,r;c]JrrE&Prr<_d!!(^Q!8?-,!8?-,
-!87DQg&M-PgAM$OgA_0QgA_0QgA_-Vg&M-,!!(a,s+,a<j21irp"BFts7P+GJcGb$g?7/nU&X9;
-\c@6~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;c]ErrE&Krr<__!!(OL!7fU"!7fU"
-!7_&LeGoUKeboLJec,XLec,XLec,UQeGoU"!!(a's+>m9j1YKmp!j(qs7OqBKE(t&e`YHdV#TT>
-]`<Q~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<1OK!!(RK!".6V!7_&L
-eGoU"ec#O`eGoU"!!(R"!!(OL!7fU"!7fU"!7h&K!n@8NgXZ=VJ\C*Ws8V_D!<;YCs8RZ#kLBa3
-s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;kLM!<1^P!!(aP!".E[!87DQ
-g&M-,gAV'eg&M-,!!(a,!!(^Q!8?-,!8?-,!8@DP!nmVSgY2[YJ\pHas8V_B!<;YAs8RZ(kLp*5
-s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;k=H!<1OK!!(RK!".6V!7_&L
-eGoU"ec#O`eGoU"!!(R"!!(OL!7fU"!7fU"!7h&K!n@8NgXZ=VJ\C*Ws8V_D!<;YCs8RZ#kLBa3
-s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tebT7WeGoU"!!(R"!!(OL!7fU"!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>m9j1PHmjFdL4J^rr6"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA1d\g&M-,!!(a,!!(^Q!8?-,!;kLM!<1^P!!h3X!8?-,!8@AOrn@AP
-s4[JQ(tnrig=cN,g=cN,g&M-,!!(a,!!(a,!!(d-s+,a<j2(frjFR@2J_K;@"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tebT7WeGoU"!!(R"!!(OL!7fU"!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>m9j1PHmjFdL4J^rr6"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>n&_uG;<kLBa3s5rIW!.Y~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-[g&M-,!!(a,!!(aM!;kLM!<1^P!!h3X!8?-,!8@AOrn@AP
-s4[JQ(tnrig=cN,g=cN,g&M-,!!(a,!!(a,!!(d-s+,b$_uG;AkLp*5s5rIT!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UVeGoU"!!(R"!!(RH!;k=H!<1OK!!h$S!7fU"!7h#Jrmh#K
-s4.,L(tATde^XX"e^XX"eGoU"!!(R"!!(R"!!(d(s+>n&_uG;<kLBa3s5rIW!.Y~>
-!<E0!joD4Kec5[Gec19tec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<1OK!%l_$!7fU"!7_&LeGoU"
-eGoU"eGoU"!!(R"!!(R"!!(OL!7_&Le^XX"e^XX"gXQ:VJcEUeJ^rr6"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-]g&M-,!!(a,!!(^Q!;G4I!<1^P!%ln)!8?-,!87DQg&M-,
-g&M-,g&M-,!!(a,!!(a,!!(^Q!87DQg=cN,g=cN,gY)XYJcEUeJ_K;@"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UXeGoU"!!(R"!!(OL!;G%D!<1OK!%l_$!7fU"!7_&LeGoU"
-eGoU"eGoU"!!(R"!!(R"!!(OL!7_&Le^XX"e^XX"gXQ:VJcEUeJ^rr6"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;b7G!$B_k!7fU"!7fU"!7_&L
-e^XX"eGoU"eGoU"!!(R"!!*#KrrE)LrrE&KrrE)Lrr@W#J^o>%"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-Wg&M-,!!(aP!!_-W!8?-,!;bFL!$Bnp!8?-,!8?-,!87DQ
-g=cN,g&M-,g&M-,!!(a,!!*#PrrE)QrrE&PrrE)Qrr@W(J_G\/"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UReGoU"!!(RK!!^sR!7fU"!;b7G!$B_k!7fU"!7fU"!7_&L
-e^XX"eGoU"eGoU"!!(R"!!*#KrrE)LrrE&KrrE)Lrr@W#J^o>%"f21\k.LbF~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;cZDquHcIrrE)Lrr<,N!!*#Kr;clJ
-rrE)Lr;cfHrrE)LrrE&KrrE)Lrr@W#J^o>%"f21\k.LbF~>
-!<E0!joD+HgAh3LgAca"gA_0PgA_-\g&M-,g&M-,!!(a,r;cZIquHcNrrE)Qrr<,S!!*#Pr;clO
-rrE)Qr;cfMrrE)QrrE&PrrE)Qrr@W(J_G\/"ektYk.1PC~>
-!<E0!joD4Kec5[Gec19tec,XKec,UWeGoU"eGoU"!!(R"r;cZDquHcIrrE)Lrr<,N!!*#Kr;clJ
-rrE)Lr;cfHrrE)LrrE&KrrE)Lrr@W#J^o>%"f21\k.LbF~>
-!<E0!joD4Kec5[EK7VR(eUc8JeHMcKk2s>WJ,~>
-!<E0!joD+HgAh3JJUuO+g4@tTg'+2Mk2s5TJ,~>
-!<E0!joD4Kec5[EK7VR(eUc8JeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^mbKDX1&V#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<TlJc".)U&X9;\c@6~>
-!<E0!joD3.eUc8%eY^mbKDX1&V#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^mcK)krKeHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g8<TmJH5`Ig'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eY^mcK)krKeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eY^msKDN7]KDN:]s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jbm4`Jbm7`s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDN7]KDN:]s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDW=_s+C0]s8VuH"f21\k.LbF~>
-!<E0!joD*+g4@t/g8<U(Jc!:bs+1$`s8VuM"ektYk.1PC~>
-!<E0!joD3.eUc8%eY^msKDW=_s+C0]s8VuH"f21\k.LbF~>
-!<E0!joD3.eUc8%eY^msKDW=`s+>t$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g8<U(Jc!:cs+,au_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eY^msKDW=`s+>t$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eY^msKD`F_s8R`K^&S-0eHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g8<U(Jc*Cbs8RZI_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eY^msKD`F_s8R`K^&S-0eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eY^msKD`F_rrU`'KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc*CbrrUo*Jc*Cbs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKD`F_rrU`'KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDiL`s8UXLKD`F_s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc3Ics8UgQJc*Cbs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDiL`s8UXLKD`F_s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDiL`s8LRKKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc3Ics8LaPJc3Ics81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDiL`s8LRKKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDrRas8CLJKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc<Ods8C[OJc3Ics81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDrRas8CLJKDiL`s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKDrRas8:FIKDrRas81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jc<Ods8:UNJc<Ods81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKDrRas8:FIKDrRas81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE&Xbs81@HKDrRas81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcEUes81OMJc<Ods81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE&Xbs81@HKDrRas81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE&Xbs8(:GKE&Xbs81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcEUes8(ILJcEUes81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE&Xbs8(:GKE&Xbs81=MV#TT>]`<Q~>
-!<E0!joD3.e`>9\s7OqBs8CLJs0^AWs,,A,s7=e@s0'uQK*&ads7t4FKE&Xbs81=MV#TT>]`<Q~>
-!<E0!joD*+g>puf!;5(G!<(XO!4CM\!/fM1!;"qE!3b,VJHE^gs7tCKJcEUes81LRU&X9;\c@6~>
-!<E0!joD3.e`>9\!;4nB!<(IJ!4C>W!/f>,!;"b@!3arQK*&ads7t4FKE&Xbs81=MV#TT>]`<Q~>
-!<E0!joD4Lec5[Lec#LJeboFOec5["s8UXKs8UXLs8UXLrrCUIrrCUKs-hI<s7FhAs8:CIs0^AW
-s,#8+s74\?s0'uQK*&ads7k.EK*&ads81=MV#TT>]`<Q~>
-!<E0!joD+IgAe#LgARiJgAIcOg81Y"V5;oFV>o9LV>o9LV#]6IV#]6KV4-*<!;+tF!;tON!4CM\
-!/]D0!:nhD!3b,VJHE^gs7k=JJHE^gs81LRU&X9;\c@6~>
-!<E0!joD4Lec,XLeboIJebfCOeGoU"!!(RK!<:UL!<:UL!!(RI!!(RK!1MF<!;+eA!;t@I!4C>W
-!/]5+!:nY?!3arQK*&ads7k.EK*&ads81=MV#TT>]`<Q~>
-!<E0!joD4KeIMW0ec41Ms4,["e^a]Ms8LOVs4,["e^a]Mec42"rm_5Qe^a]Mec2r*s8NATs4,["
-s4./LpsoBDs4.,KrRLrJr7(fIr7(fI[ak?Vs4%/Mec,RMec5[KeH>j%s8W&Jrr;iFs8N,Ms8CLJ
-rrgmPec42!s1Hk^s8CLJs8CLJs8LONs4./LqUPWG!S.5Kec5XPec42"ec,Tlec1:%s7M!G^&S-0
-eHMcKk2s>WJ,~>
-!<E0!joD+Hg('t5g83NWV:sY"g=iCWV>f0VV:sY"g=iCWg83N"rn7RQg=iCWg82+/rr<>Y!8?-,
-!87DQptG]Is4[GPrS%8Or7V,Nr7V,N[bCZ[s4RJRgAV'Rg&M-Pg&h?/!!)uOrW)fKrr<)R!<(XO
-!!M!Ug&Tk+!5."c!<(XO!<(XO!<1[S!87DQqV(rL!SRPPgA_-Ug&Th,gAV)qgAca(s7LpE_Z0Z5
-g'+2Mk2s5TJ,~>
-!<E0!joD4KeIDT0eH".M!7fU"e^XZM!<1LV!7fU"e^XZMeH","rm_2Qe^XZMeGuo*rr<>T!7fU"
-!7_&Lpso?Ds4.)KrRLoJr7(cIr7(cI[ak<Vs4%,Mec#OMeGoUKeH5g%!!)uJrW)fFrr<)M!<(IJ
-!!LgPeH"/!!5-h^!<(IJ!<(IJ!<1LN!7_&LqUPTG!S%2Kec,UPeH","ec#Qlec1:%s7M!G^&S-0
-eHMcKk2s>WJ,~>
-!<E0!joD4KeIDQ/ec41Ms8UXLe^a^"rRLrJ'@m-5ec41Ms4./"s4./"ec5["s0C/^s4./"s4,["
-e^a]qeH#XIeHu9+ec41Ms4,["rRCoJr7(fI[FG9Wr7(fIqpb]Hrm_5Qe^a]Mec5Bo$NJZVec41M
-s4,["rm_#K\^^][rm_MYe^a]Mec41Ms4,["ec5Hq$NJZVec41Ms4,["rm_#KaOU<C!<;YCs8VuH
-"f21\k.LbF~>
-!<E0!joD+Hg'sn4g83NWV5;nBg=iC"rS%:J'AB;:g83NWV:qd"V:qd"g81Y"V6\e^!87G,!8?-,
-g=cQ&g&M-Ng'Ic5g&Tj\!8?-,rRq5Or7V,N[FtT\r7V,Nqq;#Mrn7PVg=cP\g&Um$$38c[g&Tj\
-!8?-,rn7>P\_7#`rn7h^g=cP\g&Tj\!8?-,g&Us&$38c[g&Tj\!8?-,rn7>PaP-ZF!<;YAs8VuM
-"ektYk.1PC~>
-!<E0!joD4KeI;N/eH".M!!(OLe^XX"rRLoJ'@d*5eH".M!7_)"!7_)"eGoU"!4(,^!7_)"!7fU"
-e^XZqeGoUIeHl6+eH".M!7fU"rRClJr7(cI[FG6Wr7(cIqpbZHrm_2Qe^XZMeH#?o$38TVeH".M
-!7fU"rm^uK\^^Z[rm_JYe^XZMeH".M!7fU"eH#Eq$38TVeH".M!7fU"rm^uKaOU<C!<;YCs8VuH
-"f21\k.LbF~>
-!<E0!joD4KeIMW0ec41Ms4./Le^a]Ms8LO`s4./Le^a]Mec42"ec42"e^a]Ms8TCT$NJZVec41M
-s4,["psoEErm_2Pe^a]Mec,UHeH#XIeH#WWeH#XIeH#XJec,UJeH>j%ec5X!s8VoF$NJZVec41M
-s4,["rm_#K\^^][rm_5Qe^a]Mec5Qts8VlE$NJZVec41Ms4,["rm_#KaOU<Co"G)'qpbkGs5rIW
-!.Y~>
-!<E0!joD+Hg('t5g83NWV:qcBg=iCWV>f0`V:qcBg=iCWg83N"g83N"g=iCWV5:KO$38c[g&Tj\
-!8?-,ptG`Jrn7MUg=cP\gAV*Mg&M-Ng&M,\g&M-Ng&M-OgAV*Og&h?/g&V-+rrDlK$38c[g&Tj\
-!8?-,rn7>P\_7#`rn7PVg=cP\g&V')rrDiJ$38c[g&Tj\!8?-,rn7>PaP-ZFo"tG,qq;4Is5rIT
-!.Y~>
-!<E0!joD4KeIDT0eH".M!7_&Le^XZM!<1L`!7_&Le^XZMeH","eH","e^XZM!!'=T$38TVeH".M
-!7fU"psoBErm_/Pe^XZMec#RHeGoUIeGoTWeGoUIeGoUJec#RJeH5g%eH#U!rrDlF$38TVeH".M
-!7fU"rm^uK\^^Z[rm_2Qe^XZMeH#NtrrDiE$38TVeH".M!7fU"rm^uKaOU<Co"G)'qpbkGs5rIW
-!.Y~>
-!<E0!joD4KeKFnBec41Ms4,["e^a]Mec41Ms4,["e^a]Mec41Ms4./KeH>j%ec2r*$NJZVec41M
-s4,["p=0TOe^a]Mec41Ms4,["rRCoJr7(fI[FGK]e^a]Mec5X!"96p%s8LONs4,["r7(fIqUGrQ
-ec42"e^a]Mec5X!!<9U[!<<&K%fb)0s4,["e^a]Mec42"q:,iPec42"e^a]Mec5X!!<:-js+Bh@
-qpbkGs5rIW!.Y~>
-!<E0!joD+Hg*!6Gg83NWV:sY"g=iCWg83NWV:sY"g=iCWg83NWV:qdFg&n2*g82+/$38c[g&Tj\
-!8?-,p=]oTg=cP\g&Tj\!8?-,rRq5Or7V,N[Ftfbg=cP\g&V-+!s%'/!<1[S!8?-,r7V,NqUu8V
-g&Th,g=cP\g&V-+!!'R`!!*#P%KP5:!8?-,g=cP\g&Th,q:Z/Ug&Th,g=cP\g&V-+!!(*os+0\>
-qq;4Is5rIT!.Y~>
-!<E0!joD4KeK=kBeH".M!7fU"e^XZMeH".M!7fU"e^XZMeH".M!7_)KeH5g%eGuo*$38TVeH".M
-!7fU"p=0QOe^XZMeH".M!7fU"rRClJr7(cI[FGH]e^XZMeH#U!!s$m%!<1LN!7fU"r7(cIqUGoQ
-eH","e^XZMeH#U!!!'R[!!*#K%KP&0!7fU"e^XZMeH","q:,fPeH","e^XZMeH#U!!!(*js+Bh@
-qpbkGs5rIW!.Y~>
-!<E0!joD4Jec5[Lec5[LeH,^#rr<#Krr<#K!<<&Ks8W)K$3/QUe^a^"e^a]*eHu9+s4./Le^a^"
-psoBDs4.,K#1`bRe^a^"rmgrH!7h#I[akEXs4.)Js4./L!nI>$rr3)Ns8UXKs7t1Ms4./"s8UX"
-rr<#KrVsR]r;ZfIs8W&Js8W,Ls8N/Ns8VrG#QN?Sec5["ec,UKec#Njec19nrrRiQs81=MV#TT>
-]`<Q~>
-!<E0!joD+GgAe#LgAe#Lg&\&(rh]YKrh]YK!2]\Ks/#_K$)Q@Pg=iC"g=iC/g'Ic5!87DQg=cN,
-ptG]Is4[GP#20%Wg=cN,rn@8M!8@>N[bC`]s4[DOs4[JQ!nmY.rW!&S!!(aP!;Y=R!87G,!!(a,
-rW)uPr;aObquHcNrrE#OrrE)Qrr<,S!!)lL#6<HXg&M-,gAV*PgAM#ogAc`qrrRcOs81LRU&X9;
-\c@6~>
-!<E0!joD4Jec,XLec,XLeH#[#rW)uKrW)uK!!*#KrrE&K#lrKUe^XX"e^XZ*eHl6+!7_&Le^XX"
-pso?Ds4.)K#1W\Re^XX"rmgoH!7guI[akBXs4.&Js4.,L!n@;$rW!&N!!(RK!;Y.M!7_)"!!(R"
-rW)uKr;aO]quHcIrrE#JrrE)Lrr<,N!!)lG#6<9SeGoU"ec#RKeboKjec19nrrRiQs81=MV#TT>
-]`<Q~>
-!<E0!joD3.eb%Als+/_]eH#W2eH#Wfec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD*+g@X)!!.ikbg&M,7g&M,kgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD3.eb%Al!.i\]eGoT2eGoTfec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD3.eb7Pns8CLFs+/`!ebfCCec,T@ebfCCec,Tdec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD*+g@j8#!<(XK!.il&gA:mHgAV)EgA:mHgAV)igAca(s7Y1HJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD3.eb7Pn!<(IF!.i]!eb]@Cec#Q@eb]@Cec#Qdec1:%s7Y"CKE(uKeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(JcGcDgAca(s81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKE(uFec1:%s81=MV#TT>]`<Q~>
-!<E0!joD3.eUc8%eY^msKE(uDKE(uKeHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g8<U(JcGcBJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eY^msKE(uDKE(uKeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eY^msK)krCKE(uKeHMcKk2s>WJ,~>
-!<E0!joD*+g4@t/g8<U(JH5`AJcGcIg'+2Mk2s5TJ,~>
-!<E0!joD3.eUc8%eY^msK)krCKE(uKeHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eY^msKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD*+g4@t/g8<U(Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD3.eUc8%eY^msKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X;eH#X=eH#X7eH#WjeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-@g&M-Bg&M-<g&M,og&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU;eGoU=eGoU7eGoTjeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X;eH#X=eH#X7eH#WjeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-@g&M-Bg&M-<g&M,og&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU;eGoU=eGoU7eGoTjeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAec,UKec#OJec5[JeH,^#rr2uKrVuZCs8W,Ls8N5Ps8UX"rVulIs8W)K
-!WU^Ls4>d$s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-FgAV*PgAM$OgA_0Og&V3-rVurPr;cWHrrE)Qrr<2U!!(a,r;ciNrrE&P
-!<CjQ!8#p)!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUAec#RKeboLJec,XJeH#[#rVurKr;cWCrrE)Lrr<2P!!(R"r;ciIrrE&K
-!<C[L!8#a$!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XBeH#XHeH#XHeH#XJeH#XIeH#XDeHu9+ec41Ms4,["rm_#KrRD#Me^a^!
-eH#X!eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Gg&M-Mg&M-Mg&M-Og&M-Ng&M-Ig'Ic5g&Tj\!8?-,rn7>PrRq>Rg=cQ+
-g&M-&g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBeGoUHeGoUHeGoUJeGoUIeGoUDeHl6+eH".M!7fU"rm^uKrRCuMe^X[!
-eGoU!eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAec5[JeH#XJec,UIeH#XIeH#XDeHu9+ec41Ms4,["rm_#KrRLoIrRCoJ
-eC=R!MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-FgA_0Og&M-OgAV*Ng&M-Ng&M-Ig'Ic5g&Tj\!8?-,rn7>PrS%5NrRq5O
-eCjm&MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAec,XJeGoUJec#RIeGoUIeGoUDeHl6+eH".M!7fU"rm^uKrRLlIrRClJ
-eC=O!MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#X?eH#XKeHc-)ec5["ec5Tu!<;uI"96p%s8(7Ps4,["e^a]Mec5X!#liH*
-s4./"ec5X!!<:R!!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Dg&M-Pg'7W3g&M-,g&V**!!)rN!s%'/!;bCU!8?-,g=cP\g&V-+#QWT4
-!87G,g&V-+!!(O&!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoU?eGoUKeHZ*)eGoU"eH#Qu!!)rI!s$m%!;b4P!7fU"e^XZMeH#U!#QWE*
-!7_)"eH#U!!!(O!!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBec,UHec5[Lec5XOec41MrVuiHs8VlEs8W&Js8N,Ms8LRKs8LRKs8LRI
-s45^#s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-GgAV*MgA_0QgA_-Tg&Tj\r;cfMrrDiJrrE#Orr<)R!<1^P!<1^P!<1^N
-!7oj(!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBec#RHec,XLec,UOeH".Mr;cfHrrDiErrE#Jrr<)M!<1OK!<1OK!<1OI
-!7o[#!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X%ebfBWeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-*gA:l\g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU%eb]?WeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gA_0Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5eboLGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gAM$Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5eboLGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gA:mMg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eVO8+s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g5#`dg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eVF3_eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gA:mMg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4ec#RHeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gAV*Mg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4ec#RHeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gA_0Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X)eH#XHeH#XIec5Z`eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-.g&M-Mg&M-NgA_/eg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU)eGoUHeGoUIec,W`eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X)eH#XAeH#W`eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-.g&M-Fg&M,eg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU)eGoUAeGoT`eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XCeH>j%s8W&Js8W,L"om-Qec5[Gec#OIec5[Jec,T_eH#W,eH#WHec19m
-^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Hg&h?/!!)uOrrE)Q"T[6Vg&M-LgAM$NgA_0OgAV)dg&M,1g&M,MgAc`p
-_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUCeH5g%!!)uJrrE)L"T['QeGoUGeboLIec,XJec#Q_eGoT,eGoTHec19m
-^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBeIV]1ec41Ms4,["ec42"ec5Ep!<;rH!<<&K"96p%s1["`s,,>,s/+?H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-Gg(+2;g&Tj\!8?-,g&Th,g&Up%!!)oM!!*#P!s%'/[email protected]!/fJ1!2eKM
-Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBeIMZ1eH".M!7fU"eH","eH#Bp!!)oH!!*#K!s$m%!5?t`!/f;,!2e<H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XBeHQ!'ec41Mrr<#K"TR$Pec5Ep!<;rH!<<&K"96p%s1["`s,,>,s/+?H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-Gg'%K1g&Tj\rW)uP"9@-Ug&Up%!!)oM!!*#P!s%'/[email protected]!/fJ1!2eKM
-Jb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBeHGs'eH".MrW)uK"9?sPeH#Bp!!)oH!!*#K!s$m%!5?t`!/f;,!2e<H
-KCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XBeIMW0ec41Ms4,["e^a]Ms7b%Gs4,["rm_#Krm_,Ne^a]6eH#W,eH#WH
-ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Gg(",:g&Tj\!8?-,g=cP\!;G1L!8?-,rn7>Prn7GSg=cP@g&M,1g&M,M
-gAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBeIDT0eH".M!7fU"e^XZM!;G"G!7fU"rm^uKrm_)Ne^XZ6eGoT,eGoTH
-ec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XCec,RQec5["ec5[KeH5d$s7Y"Cs8UXIs8UXLrrL[M^XW>aMU__,VUb^!
-o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-HgAV'Vg&M-,g&M-Pg&_9.!;>.H!<:dN!<:dQ!!1dR^Y/YfMV8%1VV;'$
-o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUCec#OQeGoU"eGoUKeH,a$!;=tC!<:UI!<:UL!!1UM^XW;aMU_\,VUb^!
-o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X1ebfBKeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-6gA:lPg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU1eb]?KeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XGec,W5eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-LgA_/:g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUGec,W5eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XJeboK2eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-OgAM#7g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUJeboK2eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH5d$eb]?0eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&_9.gA:l5g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eH,a$eb]?0eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eVO8+s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g5#`dg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eVF3_eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH5d$ebfE0eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&_9.gACr5g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eH,a$ebfE0eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XJeboK2eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-OgAM#7g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUJeboK2eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XGec,W5eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-LgA_/:g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUGec,W5eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAeH#X*eH#XJeH#X=ec5[@ec5[2eH#W,eH#WHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD+?g&Rt,g&M-Fg&M-/g&M-Og&M-BgA_0EgA_07g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T
-J,~>
-!<E0!joD4BeGoT,eGoUAeGoU*eGoUJeGoU=ec,X@ec,X2eGoT,eGoTHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD4BeH#W,eH#XAeH#X%eH#X<eH#X?eH#X2eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Fg&M-*g&M-Ag&M-Dg&M-7g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUAeGoU%eGoU<eGoU?eGoU2eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBec#OJeH,^#r;QiKs8VrG#liHTec5["s4.,Ks4./LrmguIrmh&Kp=00C
-rRLrJrRLrJrm_,Nec5[5eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-GgAM$Og&V3-qu?fP!!)lL#QWQYg&M-,!8@DPs4[JQrn@;Nrn@APp=]KH
-rS%8OrS%8Orn7GSg&M-:g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBeboLJeH#[#qu?fK!!)lG#QWBTeGoU"!7h&Ks4.,LrmgrIrmh#Kp=0-C
-rRLoJrRLoJrm_)NeGoU5eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAeH#XIeH#XJeH>j%ec5Kr"TR$Pec5X!!<;rH!<<#J!<<#J"96p%s7b%D
-s8LOYs4,["e^a]Mec41Ms4./4eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Fg&M-Ng&M-Og&h?/g&V!'"9@-Ug&V-+!!)oM!!)uO!!)uO!s%'/!;G1I
-!<1[^!8?-,g=cP\g&Tj\!87G9g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUAeGoUIeGoUJeH5g%eH#Hr"9?sPeH#U!!!)oH!!)uJ!!)uJ!s$m%!;G"D
-!<1LY!7fU"e^XZMeH".M!7_)4eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAeH#XIeH#XJeH>j%ec5Kr"TR$Pec5X!!<;rH!<<#J!<<#Jrr;]B!<<&K
-#636(s4,["r71iIk1'J3MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-Fg&M-Ng&M-Og&h?/g&V!'"9@-Ug&V-+!!)oM!!)uO!!)uOrW)ZG!!*#P
-"p!B2!8?-,r7_/Nk1Te8MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAeGoUIeGoUJeH5g%eH#Hr"9?sPeH#U!!!)oH!!)uJ!!)uJrW)ZB!!*#K
-"p!3(!7fU"r71fIk1'G3MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#XAeHZ'(ec41Ms8CIMs4,["q:,QHec5Tu!<;rH!<<#J#liH*s4./"ec5Bo
-!<<&K%fb)0s4,["e^a]Mec42"kLBS4MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-Fg'.Q2g&Tj\!<(UR!8?-,q:YlMg&V**!!)oM!!)uO#QWT4!87G,g&Um$
-!!*#P%KP5:!8?-,g=cP\g&Th,kLon9MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAeHQ$(eH".M!<(FM!7fU"q:,NHeH#Qu!!)oH!!)uJ#QWE*!7_)"eH#?o
-!!*#K%KP&0!7fU"e^XZMeH","kLBP4MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#X@ec5[Lec#OIec5[EeH5d$s8LRIs8UXIs8LRKs8LRKs7k.Bs8UXLs8CLJ
-s8UXLrrUaNs6.u5s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-EgA_0QgAM$NgA_0Jg&_9.!<1^N!<:dN!<1^P!<1^P!;P:G!<:dQ!<(XO
-!<:dQ!!:jS!9i,:!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoU@ec,XLeboLIec,XEeH,a$!<1OI!<:UI!<1OK!<1OK!;P+B!<:UL!<(IJ
-!<:UL!!:[N!9hr5!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#X5eH#WFeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-:g&M,Kg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU5eGoTFeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X7ec5[JebfC,ebfBoeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-<gA_0OgA:m1gA:ltg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU7ec,XJeb]@,eb]?oeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gA_0Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5eboLGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gAM$Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5eboLGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gA:mMg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eU[^_!!*%rec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g496c!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eU[^^!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gA:mMg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4ec#RHeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gAV*Mg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4ec#RHeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gA_0Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X)eH#XBec5Z`eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-.g&M-GgA_/eg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU)eGoUBec,W`eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X)eH#XAeH#W`eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-.g&M-Fg&M,eg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU)eGoUAeGoT`eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAec5XPec42"ec,RMec5[KeH>j%s8W)KrVulIs8W&Jrr9^_!<7r,!<8qH
-s+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-FgA_-Ug&Th,gAV'Rg&M-Pg&h?/!!*#Pr;ciNrrE#OrW'[d!!%o1!!&nM
-s+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUAec,UPeH","ec#OMeGoUKeH5g%!!*#Kr;ciIrrE#JrW'[_!!%o,!!&nH
-s+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBeH>j%ec5X!!<;rH!<<&K"96p%s8LOKs8CISs4,["e^a]Mec3A6!<7r,
-!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Gg&h?/g&V-+!!)oM!!*#P!s%'/!<1[P!<(UX!8?-,g=cP\g&Sk@!!%o1
-!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUBeH5g%eH#U!!!)oH!!*#K!s$m%!<1LK!<(FS!7fU"e^XZMeH!>6!!%o,
-!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBeH>j%ec5X!!<<#Jrr;uJ"96p%s8LOKs8CLIs8LONs4,["^=<5`MU__,
-VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-Gg&h?/g&V-+!!)uOrW)rO!s%'/!<1[P!<(XN!<1[S!8?-,^=iPeMV8%1
-VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUBeH5g%eH#U!!!)uJrW)rJ!s$m%!<1LK!<(II!<1LN!7fU"^=<2`MU_\,
-VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#XBeH>j%ec5X!!<<&K"96p%s8LONs4,["rm_MYe^a]Ms4,["e^a]Mec3A6
-!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Gg&h?/g&V-+!!*#P!s%'/!<1[S!8?-,rn7h^g=cP\!8?-,g=cP\g&Sk@
-!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUBeH5g%eH#U!!!*#K!s$m%!<1LN!7fU"rm_JYe^XZM!7fU"e^XZMeH!>6
-!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XAec,UKec#OJec5XNec42!rrUaNs8LRKs8LRKs8CLJrrL[M^XW>aMU__,
-VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-FgAV*PgAM$OgA_-Sg&Tk+!!:jS!<1^P!<1^P!<(XO!!1dR^Y/YfMV8%1
-VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAec#RKeboLJec,UNeH"/!!!:[N!<1OK!<1OK!<(IJ!!1UM^XW;aMU_\,
-VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#X?eH#W<eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Dg&M,Ag&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU?eGoT<eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBec,T:eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-GgAV)?g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBec#Q:eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XGec,W5eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-LgA_/:g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUGec,W5eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XJeboK2eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-OgAM#7g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUJeboK2eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH5d$eb]?0eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&_9.gA:l5g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eH,a$eb]?0eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eU[^_!!*%rec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g496c!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eU[^^!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH5d$ebfE0eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&_9.gACr5g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eH,a$ebfE0eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XJeboK2eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-OgAM#7g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUJeboK2eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XGec,W5eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-LgA_/:g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUGec,W5eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X@ec,X&eGoUJeGoTjeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-EgA_0+g&M-Og&M,og&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU@ec5[&eH#XJeH#WjeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X?eGoU!eGoTjeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Dg&M-&g&M,og&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU?eH#X!eH#WjeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAec#RJec,XDec,XJec,XLec,USeH".M!!(OLrRLoJrmgrIb1-LlMU__,
-VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-FgAV*OgA_0IgA_0OgA_0QgA_-Xg&Tj\!!(^QrS%8Orn@;Nb1ZgqMV8%1
-VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAec,UJec5[Dec5[Jec5[Lec5XSec41Ms8UXLrRLrJrmguIb1-IlMU_\,
-VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#XBeHl6+eH".M!7fU"q:-2[e^XZMeH".M!7_)"!7_)"!7_)"!<(FJ!<(FJ
-!6E[js,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-Gg'Ic5g&Tj\!8?-,q:ZP`g=cP\g&Tj\!87G,!87G,!87G,!<(UO!<(UO
-!6Ejo!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBeHu9+ec41Ms4,["q:-5[e^a]Mec41Ms4./"s4./"s4./"s8CIJs8CIJ
-s2`^j!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XBeHl6+eH".M!7fU"q:,HFr7);Xe^XZM!7_)"!7_)"!7_)JeGoUJeGoTj
-eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Gg'Ic5g&Tj\!8?-,q:YfKr7VY]g=cP\!87G,!87G,!87GOg&M-Og&M,o
-g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBeHu9+ec41Ms4,["q:,KFr7)>Xe^a]Ms4./"s4./"s4./JeH#XJeH#Wj
-eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBeHl6+eH".M!7fU"q:-2[e^XZMeH".M!7_)"!7_)"!7_)"!<(FJ!<(FM
-!7fU"bLHUmMU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-Gg'Ic5g&Tj\!8?-,q:ZP`g=cP\g&Tj\!87G,!87G,!87G,!<(UO!<(UR
-!8?-,bLuprMV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUBeHu9+ec41Ms4,["q:-5[e^a]Mec41Ms4./"s4./"s4./"s8CIJs8CIM
-s4,["bLHRmMU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#XAec,UQeH".M!!)cDrrE#JrrE)L!s$jOec#OPeH","!7guIrmh#Kb1-Ll
-MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-FgA_-Vg&Tj\!!)cIrrE#OrrE)Q!s%$TgAV'Ug&Th,!8@>Nrn@APb1Zgq
-MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAec5XQec41Ms8ViDs8W&Js8W,L"96pOec,RPec42"s4.&Irmh&Kb1-Il
-MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X7eb]?EeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-<gA:lJg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU7ebfBEeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X5ec5[,eH#XHeH#XIec5[#eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-:gA_01g&M-Mg&M-NgA_0(g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU5ec,X,eGoUHeGoUIec,X#eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X4eH#X,eH#XAeH#X#eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-9g&M-1g&M-Fg&M-(g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU4eGoU,eGoUAeGoU#eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBeH,^#rr<#Ks8W#I!<<#Js8W)Ks8W#Irr;uJs8VlErVulIs8W&Jrr:R"
-!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Gg&V3-rW)uPrrDuN!!)uOrrE&PrrDuNrW)rOrrDiJr;ciNrrE#OrW(O'
-!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUBeH#[#rW)uKrrDuI!!)uJrrE&KrrDuIrW)rJrrDiEr;ciIrrE#JrW(O"
-!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XAeH#XJeH>j%ec5Tu!<<&K"96p%s8CIJs8LOKs8:CLs4,["psfBEqpb]H
-rm_,Ne^a]NeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Fg&M-Og&h?/g&V**!!*#P!s%'/!<(UO!<1[P!;tOQ!8?-,pt>]Jqq;#M
-rn7GSg=cPXg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUAeGoUJeH5g%eH#Qu!!*#K!s$m%!<(FJ!<1LK!;t@L!7fU"psf?EqpbZH
-rm_)Ne^XZNeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAeH#XJec,UHeH#XKec,UJec,UIec5[Kec,UCeH#XHeH#XKeH>j%ec44N
-!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Fg&M-OgAV*Mg&M-PgAV*OgAV*NgA_0PgAV*Hg&M-Mg&M-Pg&h?/g&T^X
-!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUAeGoUJec#RHeGoUKec#RJec#RIec,XKec#RCeGoUHeGoUKeH5g%eH"1N
-!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XAeH#XJeH>j%ec5Tu!<<&K#liH*s4./"ec5Ns#636(s4,["psfKHe^a^!
-eH#XKeH>j%ec44N!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Fg&M-Og&h?/g&V**!!*#P#QWT4!87G,g&V$("p!B2!8?-,pt>fMg=cQ+
-g&M-Pg&h?/g&T^X!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUAeGoUJeH5g%eH#Qu!!*#K#QWE*!7_)"eH#Ks"p!3(!7fU"psfHHe^X[!
-eGoUKeH5g%eH"1N!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBec#OIec5[KeboIIec5[Kec5XOec41Mrr;rIs8VfCs8W,Lr;ZfIs8N,M
-s4>d$s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-GgAM$NgA_0PgACsNgA_0PgA_-Tg&Tj\rW)oNrrDcHrrE)QquHcNrr<)R
-!8#p)!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBeboLIec,XKebfFIec,XKec,UOeH".MrW)oIrrDcCrrE)LquHcIrr<)M
-!8#a$!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#WnebfBceH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,sgA:lhg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoTneb]?ceGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gA_0Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5eboLGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gAM$Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5eboLGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gA:mMg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eU[^_!!*%rec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g496c!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eU[^^!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W4eb]@HeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gA:mMg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4eb]@HeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W4ec#RHeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,9gAV*Mg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT4ec#RHeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W5ec,XGeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,:gA_0Lg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT5ec,XGeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X@ec5[Eec5[DeH#X=eH#X%eH#XHeH#X@eH#W,eH#WHec19m^&S-0eHMcK
-k2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-EgA_0JgA_0Ig&M-Bg&M-*g&M-Mg&M-Eg&M,1g&M,MgAc`p_Z0Z5g'+2M
-k2s5TJ,~>
-!<E0!joD4BeGoT,eGoU@ec,XEec,XDeGoU=eGoU%eGoUHeGoU@eGoT,eGoTHec19m^&S-0eHMcK
-k2s>WJ,~>
-!<E0!joD4BeH#W,eH#X?eH#XDeH#XDeH#X=eH#X%eH#X9eH#W,eH#WHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD+?g&Rt,g&M-Dg&M-Ig&M-Ig&M-Bg&M-*g&M->g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T
-J,~>
-!<E0!joD4BeGoT,eGoU?eGoUDeGoUDeGoU=eGoU%eGoU9eGoT,eGoTHec19m^&S-0eHMcKk2s>W
-J,~>
-!<E0!joD4BeH#W,eH#XAec,UJec5[IeH#XJec5[Kec#OIec5[Eec#OJeH,^#rr3&Ms8W)K"96pO
-s8CLIs8UXLs8:FIs8LRIs8LRKs8CLJs8UURs4./Le^a\WeH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-FgAV*OgA_0Ng&M-OgA_0PgAM$NgA_0JgAM$Og&V3-rW!#R!!*#P!s%$T
-!<(XN!<:dQ!;tRN!<1^N!<1^P!<(XO!<:aW!87DQg=cOag&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUAec#RJec,XIeGoUJec,XKeboLIec,XEeboLJeH#[#rW!#M!!*#K!s$jO
-!<(II!<:UL!;tCI!<1OI!<1OK!<(IJ!<:RR!7_&Le^XYWeGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XBeHu9+ec41Ms4,["rRCoJrm_,Ne^a^!eH#XJeH>j%ec5Ep!<;uI!<;rH
-!<<&K#636(s4,["qUGTGrm_,Ne^a^!eH#XHeH#XKeI2E-ec41Ms4,["ec1NW!<8qHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Gg'Ic5g&Tj\!8?-,rRq5Orn7GSg=cQ+g&M-Og&h?/g&Up%!!)rN!!)oM
-!!*#P"p!B2!8?-,qUtoLrn7GSg=cQ+g&M-Mg&M-Pg'[o7g&Tj\!8?-,g&R#a!!&nMs+0aXs8VuM
-"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUBeHl6+eH".M!7fU"rRClJrm_)Ne^X[!eGoUJeH5g%eH#Bp!!)rI!!)oH
-!!*#K"p!3(!7fU"qUGQGrm_)Ne^X[!eGoUHeGoUKeI)B-eH".M!7fU"eGtKW!!&nHs+BmUs8VuH
-"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBeHQ!'ec41Mrr;oH!<<&Krr;rI!<<#Jrr;`C!<;uI!<<#Jrr;uJ"96p%
-s8LRKs8LRJs8LOKs81=Hs81=Hs8LOVs4,["e^a]Mec42"MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-Gg'%K1g&Tj\rW)lM!!*#PrW)oN!!)uOrW)]H!!)rN!!)uOrW)rO!s%'/
-!<1^P!<1^O!<1[P!;kIM!;kIM!<1[[!8?-,g=cP\g&Th,MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUBeHGs'eH".MrW)lH!!*#KrW)oI!!)uJrW)]C!!)rI!!)uJrW)rJ!s$m%
-!<1OK!<1OJ!<1LK!;k:H!;k:H!<1LV!7fU"e^XZMeH","MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#XBeHu9+ec41Ms4,["rRCoJrm_,Ne^a^!eHl3*ec42"e^a]peHZ'(ec41M
-s8LONs4,["rm_,Ne^a]teHQ!'s4,["rm_,Ne^a^!eH>j%ec5X!!<<&K$iec-s4,["e^a]Ms,,>,
-s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-Gg'Ic5g&Tj\!8?-,rRq5Orn7GSg=cQ+g'@]4g&Th,g=cQ%g'.Q2g&Tj\
-!<1[S!8?-,rn7GSg=cQ)g'%K1!8?-,rn7GSg=cQ+g&h?/g&V-+!!*#P$NSo7!8?-,g=cP\!/fJ1
-!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBeHl6+eH".M!7fU"rRClJrm_)Ne^X[!eHc0*eH","e^XZpeHQ$(eH".M
-!<1LN!7fU"rm_)Ne^XZteHGs'!7fU"rm_)Ne^X[!eH5g%eH#U!!!*#K$NS`-!7fU"e^XZM!/f;,
-!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XAec5XQec41Ms8W)Kr;ZfIs8W#Is8W)Ks8VfCs8W,LrVuoJs8N/Ns4.,K
-"4dGOec,UJec5XMec5X!s8W#Is8W,Lr;ZfIs8W,Lrr2uKrr7l+!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-FgA_-Vg&Tj\!!*#PquHcNrrDuNrrE&PrrDcHrrE)Qr;clOrr<,S!8@DP
-"53_TgAV*OgA_-Rg&V-+rrDuNrrE)QquHcNrrE)QrVurPrW%i0!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUAec,UQeH".M!!*#KquHcIrrDuIrrE&KrrDcCrrE)Lr;clJrr<,N!7h&K
-"4[AOec#RJec,UMeH#U!rrDuIrrE)LquHcIrrE)LrVurKrW%i+!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#WtebfB]eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-$gA:lbg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoTteb]?]eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gA_0Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5eboLGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gAM$Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5eboLGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gA:mMg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eVO8+s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g5#`dg&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eVF3_eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4eb]@HeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gA:mMg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4eb]@HeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W4ec#RHeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,9gAV*Mg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT4ec#RHeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W5ec,XGeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,:gA_0Lg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT5ec,XGeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X4ec,X9eGoT^eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-9gA_0>g&M,cg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU4ec5[9eH#W^eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X3eGoU9eGoT^eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-8g&M->g&M,cg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU3eH#X9eH#W^eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAec,XLeH5g%!!)uJrW)`DrrE)Lrr<2P!!(R"r;ciIrrE&K!<C[L!6`mm
-s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-FgA_0Qg&h?/!!)uOrW)`IrrE)Qrr<2U!!(a,r;ciNrrE&P!<CjQ!6a'r
-!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUAec5[LeH>j%s8W&Jrr;cDs8W,Ls8N5Ps8UX"rVulIs8W)K!WU^Ls3&pm
-!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XBeIMZ1eH".M!7fU"e^XZMeH#Eq#lrN+!7fU"e^X[!eGoUJeH5g%eH#U!
-!!(*j!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD+?g&Rt,g&M-Gg(+2;g&Tj\!8?-,g=cP\g&Us&#lr]5!8?-,g=cQ+g&M-Og&h?/g&V-+
-!!(*o!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~>
-!<E0!joD4BeGoT,eGoUBeIV]1ec41Ms4,["e^a]Mec5Hq$3/Q+s4,["e^a^!eH#XJeH>j%ec5X!
-!<:-j!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~>
-!<E0!joD4BeH#W,eH#XBec#RJeHl6+eH".M!7fU"q:,cOe^XZMeH".M!<1LK!<(II!<(FJ!6E[j
-s,,>,s/+?HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M-GgAV*Og'Ic5g&Tj\!8?-,q:Z,Tg=cP\g&Tj\!<1[P!<(XN!<(UO!6Ejo
-!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoUBec,UJeHu9+ec41Ms4,["q:,fOe^a]Mec41Ms8LOKs8CLIs8CIJs2`^j
-!/f;,!2e<HKCZ_Us81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#XBeIMZ1eH".M!7fU"e^XZMeH#Eq#lrN+!7fU"e^X[!eHc0*eH","e^X[!
-eGoTjeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-Gg(+2;g&Tj\!8?-,g=cP\g&Us&#lr]5!8?-,g=cQ+g'@]4g&Th,g=cQ+
-g&M,og&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoUBeIV]1ec41Ms4,["e^a]Mec5Hq$3/Q+s4,["e^a^!eHl3*ec42"e^a^!
-eH#WjeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#XAec,XLec#OSeGoU"eGoU"!;Y1F!<(IJ!!1UMrmh#Krmh#KrmgrIb1-Ll
-MU__,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD+?g&Rt,g&M-FgA_0QgAV'Xg&M-,g&M-,!;Y@K!<(XO!!1dRrn@APrn@APrn@;Nb1Zgq
-MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~>
-!<E0!joD4BeGoT,eGoUAec5[Lec,RSec5["ec5["s7t4Fs8CLJrrL[Mrmh&Krmh&KrmguIb1-Il
-MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#X1eb]?KeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M-6gA:lPg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoU1ebfBKeGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19ks81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`ns81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19ks81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec17%^%D=+KE(uKeHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc^(_Y!j0JcGcIg'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec17%^%D=+KE(uKeHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec17'^&S--ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc^*_Z0Z2gAc^*_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec17'^&S--ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%^&S-.ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca(_Z0Z3gAc^*_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%^&S-.ec17'^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:%^&S-/ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca(_Z0Z4gAca(_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:%^&S-/ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:$^&S-0ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca'_Z0Z5gAca(_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:$^&S-0ec1:%^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:$^&S-1ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca'_Z0Z6gAca'_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:$^&S-1ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:#^&S-2ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca&_Z0Z7gAca'_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:#^&S-2ec1:$^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:#^&S-3ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca&_Z0Z8gAca&_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:#^&S-3ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:"^&S-4ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca%_Z0Z9gAca&_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:"^&S-4ec1:#^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:"^&S*6eUrMP^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca%_Z0W;g4=hQ_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:"^&S*6eUrMP^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:!]`A*3KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca$_>sW8Jc*Cbs81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:!]`A*3KD`F_s81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec1:!]`S4dKDW@^s81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca$_?0agJc!=as81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec1:!]`S4dKDW@^s81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19u^&N`^^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca#_Z,2a_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19u^&N`^^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19u]`<]]^&S-0eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAca#_>o/`_Z0Z5g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19u]`<]]^&S-0eHMcKk2s>WJ,~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHec19ks81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,MgAc`ns81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHec19ks81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#WHeGt6js81=MV#TT>]`<Q~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,Mg&Q]ms81LRU&X9;\c@6~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoTHeGt6js81=MV#TT>]`<Q~>
-!<E0!joD4BeH#W,eH#W,eH#W,eH#W/eHMcKk2s>WJ,~>
-!<E0!joD+?g&Rt,g&M,1g&M,1g&M,4g'+2Mk2s5TJ,~>
-!<E0!joD4BeGoT,eGoT,eGoT,eGoT/eHMcKk2s>WJ,~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD*+g4@t/g5XeiU&X9;\c@6~>
-!<E0!joD3.eUc8%eW&)_V#TT>]`<Q~>
-!<E0!joD4SeU`@(K7SZXKBC\fV#TT>]`<Q~>
-!<E0!joD+Pg4=g+JUrBTJ`bYiU&X9;\c@6~>
-!<E0!joD4SeU`@(K7SZXKBC\fV#TT>]`<Q~>
-!<E0!joD4SeU`@(K7SZYK)kr6eHMcKk2s>WJ,~>
-!<E0!joD+Pg4=g+JUrBUJH5`4g'+2Mk2s5TJ,~>
-!<E0!joD4SeU`@(K7SZYK)kr6eHMcKk2s>WJ,~>
-!<E0!joD4Sec19n]`J/HJcC<$`W(q2s8V`)s8V63"f21\k.LbF~>
-!<E0!joD+PgAc`q_?'\RJcC<$`W(q7s8V`.s8V68"ektYk.1PC~>
-!<E0!joD4Sec19n]`J/HJcC<$`W(q2s8V`)s8V63"f21\k.LbF~>
-!<E0!joD4Sec19p^&S*5K=uj9JcEai!/$9ErVuT)s8V63"f21\k.LbF~>
-!<E0!joD+PgAc`s_Z0W:J\m!<JcEai!.g-HrVuT.s8V68"ektYk.1PC~>
-!<E0!joD4Sec19p^&S*5K=uj9JcEai!/$9ErVuT)s8V63"f21\k.LbF~>
-!<Bh3SGUk:KD3(Ys8R]Q^&S+`eUc8mec18]^&.j)^&S,peHMJVS=BQZJ,~>
-!<B_0RJY_<JbR%\s8RWO_Z0Xeg4@u"gAc_`_YaB._Z0Yug'*nUR@+$TJ,~>
-!<Bh3SGUk:KD3(Ys8R]Q^&S+`eUc8mec18]^&.j)^&S,peHMJVS=BQZJ,~>
-!!)uB!1`r:s+C-\rVm&OK7gl;s+/^Oe]HAAK8mSEs8UXJs8'G/s5qi8SB\a\S,e'~>
-!!)u?!1E`<s+1!_rVm&TJUt]<s+/mTg<&(KJW7PHs8UgOs8'V4s5r#=REE+PR/ha~>
-!!)uB!1`r:s+C-\rVm&OK7gl;s+/^Oe]HAAK8mSEs8UXJs8'G/s5qi8SB\a\S,e'~>
-!<CCD]`=T"ec1:!^&A!1ec17'^&S+`eUc8mec18]^&S-2ec#OG^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca$_YsN6gAc^*_Z0Xeg4@u"gAc_`_Z0Z7gAV'L_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:!^&A!1ec17'^&S+`eUc8mec18]^&S-2ec#OG^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:#^&A!/ec17'^&S+`eUc8mec18]^&S-0ec#OI^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca&_YsN4gAc^*_Z0Xeg4@u"gAc_`_Z0Z5gAV'N_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:#^&A!/ec17'^&S+`eUc8mec18]^&S-0ec#OI^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:%^&A!-ec17'^&S+`eUc8mec18]^&S-.ec#LL^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca(_YsN2gAc^*_Z0Xeg4@u"gAc_`_Z0Z3gAV$Q_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:%^&A!-ec17'^&S+`eUc8mec18]^&S-.ec#LL^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ebb!oec17'^&S+`eUc8mec18]^&S--ebt.#s5qi8SB\a\S,e'~>
-!<C:A\cA/qgA?HrgAc^*_Z0Xeg4@u"gAc_`_Z0Z2gAQU&s5r#=REE+PR/ha~>
-!<CCD]`=T"ebb!oec17'^&S+`eUc8mec18]^&S--ebt.#s5qi8SB\a\S,e'~>
-!<CCD]`=T"ec1:%^&<T[ec17'^&S+`eUc8mec18]^&S-.ebt+%^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca(_Yo&^gAc^*_Z0Xeg4@u"gAc_`_Z0Z3gAQR(_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:%^&<T[ec17'^&S+`eUc8mec18]^&S-.ebt+%^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:#^&<T]ec17'^&S+`eUc8mec18]^&S-0ebt."^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca&_Yo&`gAc^*_Z0Xeg4@u"gAc_`_Z0Z5gAQU%_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:#^&<T]ec17'^&S+`eUc8mec18]^&S-0ebt."^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec1:!^&<T_ec17'^&S+`eUc8mec18]^&S-2ebt-u^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAca$_Yo&bgAc^*_Z0Xeg4@u"gAc_`_Z0Z7gAQU#_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec1:!^&<T_ec17'^&S+`eUc8mec18]^&S-2ebt-u^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec19t^&<QeeUrLfs8RZ#J^qlms+?<Es8W,LrIas[s8V63"e<iN]po(Q~>
-!<C:A\cA/qgAca"_Yo#hg4=gls8RZ(J_J6"s+-0Hs8W,QrIOg^s8V68"e!NE\sWPK~>
-!<CCD]`=T"ec19t^&<QeeUrLfs8RZ#J^qlms+?<Es8W,LrIas[s8V63"e<iN]po(Q~>
-!<CCD]`=T"ec19r^&3Ka^&S+`eUc8mec18]^&S-2KD<.[s5qi8SB\a\S,e'~>
-!<C:A\cA/qgAc`u_Yerd_Z0Xeg4@u"gAc_`_Z0Z7Jb[+^s5r#=REE+PR/ha~>
-!<CCD]`=T"ec19r^&3Ka^&S+`eUc8mec18]^&S-2KD<.[s5qi8SB\a\S,e'~>
-!<CCD]`=T"ec19p^&EWc^&S+`K7SZqK8mSEs8R`F^&S,peHMJf]tKp9J,~>
-!<C:A\cA/qgAc`s_Z#)f_Z0XeJUrBmJW7PHs8RZD_Z0Yug'*ne]"4:0J,~>
-!<CCD]`=T"ec19p^&EWc^&S+`K7SZqK8mSEs8R`F^&S,peHMJf]tKp9J,~>
-!<CCD]`=T"ec19n]`Ni"s+,fRK>rP']`J.coY(;)k1'X*c+Uf\!.Y~>
-!<C:A\cA/qgAc`q_?,;*s+,`PJ]<8#_?'[foYUY.k1U!,b.>0P!.Y~>
-!<CCD]`=T"ec19n]`Ni"s+,fRK>rP']`J.coY(;)k1'X*c+Uf\!.Y~>
-!<CCD]`=T"ec18Qs+13$s02OceHMJf]tKp9J,~>
-!<C:A\cA/qgAc_Ts+13$s02Ocg'*ne]"4:0J,~>
-!<CCD]`=T"ec18Qs+13$s02OceHMJf]tKp9J,~>
-!<CCD]`=T"eGt5Qs+13$s0)IbeHMJf]tKp9J,~>
-!<C:A\cA/qg&Q\Ts+13$s0)Ibg'*ne]"4:0J,~>
-!<CCD]`=T"eGt5Qs+13$s0)IbeHMJf]tKp9J,~>
-!<CCD]`=RReUc8%eW&)_SB\a\S,e'~>
-!<C:A\cA.Lg4@t/g5XeiREE+PR/ha~>
-!<CCD]`=RReUc8%eW&)_SB\a\S,e'~>
-!<CCC^%%VDUk,=mUogEm^%.Znc2PBWS,e'~>
-!<C:@]()2>Tn/ngTrk!g](26hb5SsQR/ha~>
-!<CCC^%%VDUk,=mUogEm^%.Znc2PBWS,e'~>
-rr<&DrOqgI!53s`JcC<$XoIq9rk/B'!<7Q~>
-rr<&ArOVUC!4ma]JcC<$XoIq6rji0!!<7Q~>
-rr<&DrOqgI!53s`JcC<$XoIq9rk/B'!<7Q~>
-rr<&Dn%A^kJ`_OGJ`a)s!6suG!h98jJ,~>
-rr<&An%&LeJ`_OGJ`a)s!6XcA!gs&gJ,~>
-rr<&Dn%A^kJ`_OGJ`a)s!6suG!h98jJ,~>
-"9AH%S=K,_!1\W&J`_OGXl]W.n\+sm!W`9#J,~>
-"9AH%R@3TV!1AE#J`_OGXl]W+n[eag!W`9#J,~>
-"9AH%S=K,_!1\W&J`_OGXl]W.n\+sm!W`9#J,~>
-"9AK%!!)MYJ\?WJJ\A.unXTUZrr7K~>
-"9AK%!!)MVJ\$EDJ\%qonX9CWrr7K~>
-"9AK%!!)MYJ\?WJJ\A.unXTUZrr7K~>
-"TJH%s8RWMJH16$MZE\TJ,~>
-"TJH%s8RWMJH16$MZE\TJ,~>
-"TJH%s8RWMJH16$MZE\TJ,~>
-%%EndData
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/lib/et/doc/src/sim_trans_move_actor.gif b/lib/et/doc/src/sim_trans_move_actor.gif
deleted file mode 100644
index f7185cada2..0000000000
--- a/lib/et/doc/src/sim_trans_move_actor.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_move_actor.png b/lib/et/doc/src/sim_trans_move_actor.png
new file mode 100644
index 0000000000..c642720a8b
--- /dev/null
+++ b/lib/et/doc/src/sim_trans_move_actor.png
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_move_actor.ps b/lib/et/doc/src/sim_trans_move_actor.ps
deleted file mode 100644
index b459735a82..0000000000
--- a/lib/et/doc/src/sim_trans_move_actor.ps
+++ /dev/null
@@ -1,6403 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: (ImageMagick)
-%%Title: (sim_trans_move_actor.ps)
-%%CreationDate: (Mon Oct 14 16:44:32 2002)
-%%BoundingBox: 0 0 512 426
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 1
-%%Orientation: Portrait
-%%PageOrder: Ascend
-%%Pages: 1
-%%EndComments
-
-%%BeginDefaults
-%%EndDefaults
-
-%%BeginProlog
-%
-% Display a color image. The image is displayed in color on
-% Postscript viewers or printers that support color, otherwise
-% it is displayed as grayscale.
-%
-/DirectClassPacket
-{
- %
- % Get a DirectClass packet.
- %
- % Parameters:
- % red.
- % green.
- % blue.
- % length: number of pixels minus one of this color (optional).
- %
- currentfile color_packet readhexstring pop pop
- compression 0 eq
- {
- /number_pixels 3 def
- }
- {
- currentfile byte readhexstring pop 0 get
- /number_pixels exch 1 add 3 mul def
- } ifelse
- 0 3 number_pixels 1 sub
- {
- pixels exch color_packet putinterval
- } for
- pixels 0 number_pixels getinterval
-} bind def
-
-/DirectClassImage
-{
- %
- % Display a DirectClass image.
- %
- systemdict /colorimage known
- {
- columns rows 8
- [
- columns 0 0
- rows neg 0 rows
- ]
- { DirectClassPacket } false 3 colorimage
- }
- {
- %
- % No colorimage operator; convert to grayscale.
- %
- columns rows 8
- [
- columns 0 0
- rows neg 0 rows
- ]
- { GrayDirectClassPacket } image
- } ifelse
-} bind def
-
-/GrayDirectClassPacket
-{
- %
- % Get a DirectClass packet; convert to grayscale.
- %
- % Parameters:
- % red
- % green
- % blue
- % length: number of pixels minus one of this color (optional).
- %
- currentfile color_packet readhexstring pop pop
- color_packet 0 get 0.299 mul
- color_packet 1 get 0.587 mul add
- color_packet 2 get 0.114 mul add
- cvi
- /gray_packet exch def
- compression 0 eq
- {
- /number_pixels 1 def
- }
- {
- currentfile byte readhexstring pop 0 get
- /number_pixels exch 1 add def
- } ifelse
- 0 1 number_pixels 1 sub
- {
- pixels exch gray_packet put
- } for
- pixels 0 number_pixels getinterval
-} bind def
-
-/GrayPseudoClassPacket
-{
- %
- % Get a PseudoClass packet; convert to grayscale.
- %
- % Parameters:
- % index: index into the colormap.
- % length: number of pixels minus one of this color (optional).
- %
- currentfile byte readhexstring pop 0 get
- /offset exch 3 mul def
- /color_packet colormap offset 3 getinterval def
- color_packet 0 get 0.299 mul
- color_packet 1 get 0.587 mul add
- color_packet 2 get 0.114 mul add
- cvi
- /gray_packet exch def
- compression 0 eq
- {
- /number_pixels 1 def
- }
- {
- currentfile byte readhexstring pop 0 get
- /number_pixels exch 1 add def
- } ifelse
- 0 1 number_pixels 1 sub
- {
- pixels exch gray_packet put
- } for
- pixels 0 number_pixels getinterval
-} bind def
-
-/PseudoClassPacket
-{
- %
- % Get a PseudoClass packet.
- %
- % Parameters:
- % index: index into the colormap.
- % length: number of pixels minus one of this color (optional).
- %
- currentfile byte readhexstring pop 0 get
- /offset exch 3 mul def
- /color_packet colormap offset 3 getinterval def
- compression 0 eq
- {
- /number_pixels 3 def
- }
- {
- currentfile byte readhexstring pop 0 get
- /number_pixels exch 1 add 3 mul def
- } ifelse
- 0 3 number_pixels 1 sub
- {
- pixels exch color_packet putinterval
- } for
- pixels 0 number_pixels getinterval
-} bind def
-
-/PseudoClassImage
-{
- %
- % Display a PseudoClass image.
- %
- % Parameters:
- % class: 0-PseudoClass or 1-Grayscale.
- %
- currentfile buffer readline pop
- token pop /class exch def pop
- class 0 gt
- {
- currentfile buffer readline pop
- token pop /depth exch def pop
- /grays columns 8 add depth sub depth mul 8 idiv string def
- columns rows depth
- [
- columns 0 0
- rows neg 0 rows
- ]
- { currentfile grays readhexstring pop } image
- }
- {
- %
- % Parameters:
- % colors: number of colors in the colormap.
- % colormap: red, green, blue color packets.
- %
- currentfile buffer readline pop
- token pop /colors exch def pop
- /colors colors 3 mul def
- /colormap colors string def
- currentfile colormap readhexstring pop pop
- systemdict /colorimage known
- {
- columns rows 8
- [
- columns 0 0
- rows neg 0 rows
- ]
- { PseudoClassPacket } false 3 colorimage
- }
- {
- %
- % No colorimage operator; convert to grayscale.
- %
- columns rows 8
- [
- columns 0 0
- rows neg 0 rows
- ]
- { GrayPseudoClassPacket } image
- } ifelse
- } ifelse
-} bind def
-
-/DisplayImage
-{
- %
- % Display a DirectClass or PseudoClass image.
- %
- % Parameters:
- % x & y translation.
- % x & y scale.
- % label pointsize.
- % image label.
- % image columns & rows.
- % class: 0-DirectClass or 1-PseudoClass.
- % compression: 0-none or 1-RunlengthEncoded.
- % hex color packets.
- %
- gsave
- /buffer 512 string def
- /byte 1 string def
- /color_packet 3 string def
- /pixels 768 string def
-
- currentfile buffer readline pop
- token pop /x exch def
- token pop /y exch def pop
- x y translate
- currentfile buffer readline pop
- token pop /x exch def
- token pop /y exch def pop
- currentfile buffer readline pop
- token pop /pointsize exch def pop
- /Times-Roman findfont pointsize scalefont setfont
- x y scale
- currentfile buffer readline pop
- token pop /columns exch def
- token pop /rows exch def pop
- currentfile buffer readline pop
- token pop /class exch def pop
- currentfile buffer readline pop
- token pop /compression exch def pop
- class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
- grestore
- showpage
-} bind def
-%%EndProlog
-%%Page: 1 1
-%%PageBoundingBox: 0 0 512 426
-DisplayImage
-0 0
-512 426
-12.000000
-512 426
-1
-0
-0
-64
-31446a
-394473
-314473
-000000
-ffffff
-bdbebd
-dedade
-d5d6d5
-949194
-ded6de
-9c999c
-d5d2d5
-c5c2c5
-bdb6bd
-838183
-7b817b
-8b918b
-7b7d7b
-838583
-b4b2b4
-a4a1a4
-bdbabd
-aca5ac
-acaaac
-cdcecd
-c5cac5
-949594
-c5c6c5
-bdc2bd
-b4b6b4
-949994
-838983
-a4a5a4
-acaeac
-9ca19c
-cdcacd
-9c9d9c
-8b8d8b
-d5ced5
-9c959c
-cdc6cd
-e6e6e6
-d5dad5
-8b898b
-b4aeb4
-c5bec5
-a4aaa4
-eeeeee
-ffa500
-ff0000
-0000ff
-ffffff
-ffffff
-ffffff
-ffffff
-ffffff
-ffffff
-ffffff
-ffffff
-ffffff
-ffffff
-ffffff
-ffffff
-ffffff
-000102000203030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303010201020101010103030404040404040404040404040404040405040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404050404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040403030101010202030404060606060606060606060606060606
-060507070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070705060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606062f2f030001010304060606060606060606
-060606060606060606050707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070506060606060606060606060606060606060606060606060606060606060606
-06060606060606060606060606060606060606060606060606060606060c030002030406
-060606060606060606060606060606060605070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-0707070707070707070707070707070707070707190b0707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707050606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606060606060606060606060606060606
-060c03010304060606060606060606060606060606060606060507070707070707070707
-070707070707070707070707070707070707070707080807070707070707070707070707
-07070707070707070707070707070707070707070707070c1407050f111e080807070e0f
-070707070707070707070707070707070707070707070707070707070707070707070707
-07070707070e0f07070e0f07070707070707070707070707070707070707070707070707
-070707070707071405070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070705060606060606060606060606060606
-06060606060606060606060a0a0a0a0a0a0a0a0a0a0606060606060606060606060a0a06
-0606060a0a06060606062103030409090909090a0a0909090909090a0a09090909050b0b
-0b0b0b0b0b0b0b0b0b0b0b0c0d0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b08080b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0f1d0b2511
-1b2608080b0b0e0f0b0b0c0d0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0e0f0b0b0e0f0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c
-0d0b0b0b0b0b0b0b0b0b0b0b0b0b0b1d112d0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0509090909090909
-090909090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a09090909090909
-090909090a0a0a0a09090a0a0a0a0909090921030304090909090a0a0a0a090909090a0a
-0a0a090909050b0b0b0b0b0b0b0b0b0b0b0b0b0e0f0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b2b1a0b0b0e0f0b0b0b0b0b0b0e0f0b0b0e0f0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0e0f0b0b0e0f0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0e0f0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b1a2b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0509090909090909090909090909090909090909090909090909090a0a0a0a0a0a0a0a0a
-0a09090909090909090909090a0a0a0a0a0a0a0a0a0a0909090921030304090909090a0a
-0a0a0a09090a0a0a0a0a090909050b0b0b0b0b0b0c101112130b141111110c0b0b0b0b0b
-0b0a11150b0b16120b0e0f0b0b0c101112130b17110c0b0a110c0b0a140b0c101112130b
-0b252516250b0b0b0b1511150b0a111111230e0f0b0b0e0f0b141111110c0c101112130b
-0b252516250b0e0f0b0b0b0b0b0b212b11112b230b212b112b210b0b0b0e0f0b0b0e0f0b
-0b0c101112130b0b212b11112b23141111110c212b112b210b0b0b252516250b0d11150b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0509090909090909090909090909090909090909090909090909090a
-0a0a0a0a0a0a0a0a0a0909090909090909090909090a0a0a0a0a0a0a0a09090909092103
-03040b0b0b0b0b0a0a0a0a0a0a0a0a0a0a0b0b0b0b051818181818190e12151a111b1b0f
-111c181818181818181d111e18181f20180e0f18190e12151a111b15111718121117180e
-1d190e12151a111b180e112b201818181822111b181b0f111c180e0f18180e0f181b0f11
-1c1b0e12151a111b180e112b20182b1f181818181820112b131d2e1b17111a051a111718
-180e0f18180e0f18190e12151a111b20112b131d2e1b1b0f111c2e111a051a111718180e
-112b20181b11221818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-18181818181818181818181818181818050b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0b0b0b0b0b0a0a0a0a0a0a
-0b0b0b0b0b0b210303040b0b0b0b0b0b0a0a0a0a0a0a0a0a0b0b0b0b0b05181818181821
-112223211121180e0f1818181818181818180e0f2305110c180e0f182111222321112118
-111a1b11121e1c112321112223211121180e112318181818181a111818180e0f18180e0f
-18180e0f18180e0f1821112223211121180e112318181818181818181812110c18181818
-1f111b181b111f18180e0f18180e0f182111222321112112110c18181818180e0f181f11
-1b181b111f18180e1123181818111a181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818050b0b0b0b0b0b0b0b0b0b0b
-0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0b0b0b
-0b0b0a0a0a0a0a0a0b0b0b0b0b0b210303040b0b0b0b0b0b0b0a0a0a0a0a0a0b0b0b0b0b
-0b05181818181820111111111120180e0f181818181818181818241121242518180e0f18
-2011111111112018100e21081e1217251820111111111120180e0f1818181818181a1118
-18180e0f18180e0f18180e0f18180e0f1820111111111120180e0f181818181818181818
-18111118181818180f11181818111118180e0f18180e0f18201111111111201111181818
-1818180e0f180f11181818111118180e0f18181818111a18181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-1818181818181818181818181818181818181818181818181818181818181818050b0b0b
-0b0b150a0a0a0a0a0a0a0a150b0b0b0b0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0a0b0b0b
-0b0b0b0b0b0b0b0b0b0a0a0a0a0a0a0a0a0b0b0b0b0b210303040b0b0b0b0b0b0b0b0a0a
-0a0a0b0b0b0b0b0b0b05181818181821112218181818180e0f1818181818181818181511
-250e1718180e0f18211122181818181814112520171125141821112218181818180e0f18
-181818181814111b18180e0f18180e0f18180e0f18180e0f1821112218181818180e0f18
-181818181818181818121105181818181f111b181b111f18180e0f18180e0f1821112218
-18181812110518181818180e0f181f111b181b111f18180e0f1818181b11221818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-181818181818181818181818181818181818181818181818181818181818181818181818
-18181818050b0b0b0b0b0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0a0b0b0b0b
-0b0b0b0b0a0b0b0b0b0b0b0b0b0b0b0b0a0a0a0a0a0a0a0a0a0a0b0b0b0b210303042626
-2626262626262627272626262626262626052323232323281211201d2113231f111d2823
-232323232323231211111b23230e0f23281211201d2113231d11110d1511111d23281211
-201d2113230e0f23232323232315112c23230e0f23230e0f23230e0f23231f111d0c1211
-201d2113230e0f2323232b1f2323232323171112210d170c17111a151a111623230e0f23
-230e0f23281211201d2113171112210d170c231f111d20111a151a111623230e0f232323
-2c110d232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323052626262626272727272727272727272626262626262626
-262626272626262626262626272626262626262626262626272727272626272727272626
-26262103030426262626262626262626262626262626262626052323232323230c1a0f11
-122123130e0f1523232323232323231411082323230e0f23230c1a0f1112212328111123
-2311112823230c1a0f111221230e0f23232323232323252523230e0f23230e0f23230e0f
-2323130e0f150c1a0f111221230e0f2323230e0f232323232323172b11112b2d23161211
-12172323230e0f23230e0f23230c1a0f11122123172b11112b2d23130e0f151612111217
-2323230e0f23232325252323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-23232323232323232323232323232323232323230526262626260d27272727272727270d
-262626262626262626262627272727272727272727262626262626262626262626272726
-262626272726262626262103030426262626262626262626262626262626262626052323
-232323232323232323232323232311111111111111152323232323232323232323232323
-2323232323232323232323232323232323232323232323232323232323230c0e16232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323170e0c232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323230526262626262626
-262626262626262626262626262626262626262626262626262626262626262626262626
-262626262626262626262626262626262626210303042323232323232323232323232323
-2323232323051b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b05141b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b14051b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-052323232323232323232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232321030304232323232323
-23232323232323232323232323051b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b05232323232323232323232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232103
-030423232323232323232323232323232323232323051b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b
-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b0523232323232323232323232323232323232323
-232323232323232323232323232323232323232323232323232323232323232323232323
-2323232323232103030e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e030304292929140404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404140429291503030429292914040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040e14042929150303042929
-291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404
-2929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404292915030304292929140404
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e140429291503
-03042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-0e0e14042929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a0303030303
-0303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03030303
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a030303032a2a2a2a2a2a2a2a03032a03032a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-03030303030303032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a
-2a2a2a03032a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303
-2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a03032a2a2a2a2a2a2a03032a03032a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929
-291404042a2a2a2a2a2a2a03032a2a2a2a03032a03032a2a030303032a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a03032a2a03032a03032a2a030303032a2a03032a2a03032a2a03032a2a
-030303032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a03030303
-2a2a03032a03032a2a030303032a2a2a030303032a2a030303032a2a030303032a2a0303
-2a03032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03032a03032a030303032a2a0303
-03032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a030303032a
-2a03032a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404
-2929150303042929291404042a2a2a2a2a2a2a03032a2a2a2a03032a03032a03032a2a03
-032a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a03032a03032a03032a2a03032a03032a2a
-03032a2a03032a03032a2a03032a03030303032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a
-2a2a2a03032a2a03032a03032a03032a03032a2a03032a03032a2a03032a2a03032a2a03
-032a2a03032a03030303032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03032a03032a
-2a03032a2a03032a2a03032a03030303032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03
-032a03032a2a03032a03032a0303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a03030303032a03032a
-03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a03032a03032a03032a
-2a03032a2a03032a03032a03032a2a03032a2a03032a0303032a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a03032a2a2a2a2a03032a2a03032a03032a03032a03032a2a03032a03032a2a2a
-2a2a2a03032a2a03032a2a03032a0303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303
-032a03032a03032a2a03032a2a03032a2a03032a0303032a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a030303030303032a03032a2a03032a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a03
-032a2a2a2a03032a03032a0303030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a032a2a03
-2a2a03032a0303030303032a2a03032a03032a03032a2a0303030303032a03032a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a03032a2a03032a03032a03032a03030303
-03032a03032a2a2a2a2a2a03032a2a03032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a03032a2a2a2a03032a03032a2a03032a2a0303030303032a03032a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a0303030303032a03032a03032a2a03032a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404292915030304292929140404
-2a2a2a2a2a2a2a03032a2a2a2a03032a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a030303032a2a03032a03032a2a2a2a2a2a03032a03032a03032a2a03032a2a2a
-2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a03032a2a03032a0303
-2a03032a03032a2a2a2a2a03032a2a2a2a2a2a03032a2a03032a2a03032a03032a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03032a03032a2a03032a2a03032a2a2a2a2a
-03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a2a2a2a03032a
-03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e140429291503
-03042929291404042a2a2a2a2a2a2a03032a2a2a2a03032a03032a03032a2a03032a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a2a2a03032a2a0303
-2a2a2a03032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a030303
-032a2a03032a03032a03032a03032a2a03032a03032a2a03032a2a03032a0303032a2a03
-032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03032a03032a2a03032a
-0303032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a0303
-2a2a03032a03032a0303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-0e0e14042929150303042929291404042a2a2a2a2a2a2a03032a2a2a2a03032a03032a2a
-030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a030303032a2a
-2a2a03032a2a03032a2a2a2a030303032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a030303032a2a030303032a2a03032a03032a2a030303032a2a2a030303032a2a2a2a
-03032a2a030303032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a0303
-2a03032a2a2a03032a2a030303032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303
-2a2a2a03032a2a030303032a2a03032a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929
-291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404
-2929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404292915030304292929140404
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e140429291503
-03042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-0e0e14042929150303042929291404040e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e140429291503030429292914040e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303032a2a2a2a2a2a2a2a2a2a2a0303
-2a2a2a2a2a2a2a2a2a03032a03032a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a03032a2a2a2a
-2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a03032a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04040404
-040404040404042a2a2a2a2a2a2a2a0303030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303
-2a2a2a03032a2a030303032a2a030303032a2a030303032a2a03032a03032a2a2a2a2a2a
-03032a2a2a2a2a030303032a2a03032a2a2a03032a2a030303032a2a03032a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a040404040404040404040e2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a2a03032a2a03032a2a03032a03032a
-03032a2a2a2a2a2a03032a2a2a2a03032a2a03032a03032a2a2a03032a03032a2a03032a
-03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a
-2a03032a03032a030303032a2a2a030303032a2a03030303032a2a030303032a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a2a03032a2a2a2a
-2a2a03032a03032a03032a2a2a2a2a2a03032a2a2a2a03032a2a03032a2a03032a03032a
-2a03032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a
-2a2a2a03032a2a2a2a030303030303032a2a03032a03032a2a03032a2a2a2a03032a0303
-2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a030303030303
-2a2a03032a2a2a03030303032a03032a03032a2a2a2a2a2a03032a2a2a2a030303030303
-2a2a03032a03032a2a0303030303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a
-2a0e0e2a2a2a2a2a2a2a2a03030303032a0303032a2a03032a2a03032a03032a2a03032a
-2a2a03032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03
-032a03032a2a2a2a2a2a03032a2a03032a2a03032a03032a03032a2a2a2a2a2a03032a2a
-2a2a03032a2a2a2a2a2a2a0303032a2a2a03032a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a2a03032a2a2a030303030303
-2a0303030303032a2a2a032a2a2a0303030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a03032a2a03032a2a03032a2a03032a2a03032a0303032a2a03032a03032a03032a2a
-2a2a2a2a03032a2a2a2a03032a2a03032a2a2a0303032a2a2a03032a2a03032a03032a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a2a03032a
-2a2a03032a2a2a2a2a03032a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a03030303032a2a2a2a030303032a2a2a2a03032a2a0303032a03
-0303032a03032a2a2a2a2a2a0303030303032a030303032a2a2a2a2a032a2a2a2a2a0303
-03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03
-032a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a03032a2a2a2a03032a2a0303
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a
-2a2a2a2a2a2a2a03032a2a2a2a03032a2a2a2a030303032a2a2a030303032a2a03030303
-032a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04040e0e
-0e0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a030303032a2a2a03030303
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a030303032a2a2a03032a2a
-03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03
-032a2a2a03032a2a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a03032a03
-032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a04040404040404040404042a2a2a2a2a2a2a2a03032a2a2a
-03032a03032a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a0303030303032a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303030303032a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a
-03032a2a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a040404040404040404040e2a2a2a2a2a
-2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a03032a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a
-2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a03032a2a030303032a2a
-2a2a2a2a2a03032a2a2a2a03032a03032a030303032a2a032a0303032a0303032a2a2a2a
-2a2a2a2a2a2a2a2a03032a2a2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a030303032a2a2a030303032a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a03032a030303
-2a03032a2a03032a2a2a2a2a2a03032a2a2a2a030303030303032a2a03032a03032a2a03
-032a2a03032a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a03032a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a030303030303032a03
-032a03032a2a03032a03032a2a03032a2a2a2a2a2a03030303032a0303032a2a03032a2a
-03032a03032a2a03032a2a03032a0303030303032a2a2a2a03032a2a2a03032a2a03032a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03
-032a2a2a03032a03032a03032a2a03032a0303030303032a2a2a2a2a2a03032a2a2a2a03
-032a2a2a03032a2a03032a03032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a03032a2a
-2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a
-2a2a2a2a2a2a2a03032a2a2a03032a03032a03032a2a03032a03032a2a2a2a2a2a2a2a2a
-2a03032a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a03032a030303030303
-2a2a2a2a03032a2a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a
-2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a03032a0303032a03032a
-2a03032a2a2a2a2a2a03032a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a03
-032a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03
-032a03032a2a030303032a2a2a2a2a2a2a03032a2a2a2a03032a2a2a2a030303032a2a03
-032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a030303032a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a04040e0e0e0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04040404
-040404040404040404040404040404040404040404040404040404042a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c04040404040404040404040404040404040404040404040404040404040e0404
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a
-2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e04
-2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a
-2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a
-0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a
-2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a
-2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a
-2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a0404040404040404
-0404042a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a2a2a2a03032a2a2a2a2a2a2a2a
-2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e0404
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-040404040404040404040e2a2a2a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a0303
-2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a
-2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03
-032a2a03032a03032a2a030303032a2a2a2a2a2a2a03032a2a2a03032a03032a03032a2a
-03032a2a03032a03032a03032a2a2a030303032a2a03032a2a03032a2a03032a03032a03
-032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e04
-2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03
-032a2a2a03032a03032a03032a0303032a03032a2a03032a2a2a2a2a2a03032a2a2a0303
-2a0303032a03032a03032a03032a2a0303032a03032a03032a2a03032a03032a2a03032a
-2a03032a0303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04040e0e0e0e0e0e
-0e0e0e0e0e0e0e040e0e0e0e0e0e0e0e0e0e0e0e0e0e04042a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a
-2a2a2a2a2a2a2a030303030303032a03032a03032a2a03032a03032a2a03032a2a2a2a2a
-2a03032a2a2a03032a03032a2a03032a030303032a2a2a03032a2a03032a03032a2a0303
-2a2a03032a03032a03032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-040e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e04042a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a
-2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a03032a2a03032a030303
-0303032a2a2a2a2a2a03032a2a2a03032a03032a2a03032a030303032a2a2a03032a2a03
-032a03032a2a03032a2a03032a03032a03032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a0303
-2a2a03032a03032a2a2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a03032a03
-032a2a03032a2a03032a03032a2a03032a2a03032a03032a03032a2a03032a2a03032a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-0e0404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-0404040404040404040404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a
-03032a03032a03032a0303032a03032a2a03032a2a2a2a2a2a2a03032a03032a2a03032a
-2a03032a03032a2a03032a03032a2a03032a03032a2a03032a2a2a03032a2a03032a2a2a
-03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a
-2a2a2a03032a2a2a03032a03032a2a03032a03032a2a030303032a2a2a2a2a2a2a2a0303
-0303032a2a03032a2a03032a03032a2a2a030303032a2a03032a2a030303032a2a2a2a03
-032a2a03032a2a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04040e0e0e0e0e0e
-0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e2a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c0e1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c040e1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c040e0e1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c04040e0e1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c04042a0e0e1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c04042a2a0e0e1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c04
-042a2a2a0e0e1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c04042a2a2a2a0e0e1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c04042a2a2a2a2a0e0e1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a2a0e0e1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a
-2a2a0e0e1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31
-312a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-04042a2a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a30302a2a303030302a30303030302a30302a30302a3030302a
-2a30302a2a30302a30303030302a3030302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a312a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a0e0e1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a302a2a302a2a302a2a302a302a
-2a2a302a2a302a2a302a2a302a302a2a2a302a2a302a2a302a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a312a
-2a31312a31312a2a2a2a2a2a2a2a2a3131312a2a3131312a2a2a2a31312a2a2a2a2a312a
-2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a31312a312a2a312a31312a2a2a2a31312a2a2a2a3131312a2a2a31312a
-2a2a31312a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a31312a2a2a2a31312a2a2a312a3131
-2a2a2a31312a2a2a312a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a312a2a312a31312a2a2a2a31312a
-2a2a2a3131312a2a2a31312a2a2a31312a2a2a2a2a2a2a2a2a2a313131312a31312a312a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04040e0e0e0e0e0e0e0e0e0e0e0e1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a302a2a3030
-2a302a2a30302a2a2a2a30302a302a2a302a2a302a302a302a302a2a30302a302a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a312a312a312a2a312a2a312a2a2a2a2a2a2a2a312a2a2a2a2a312a2a312a2a312a
-2a312a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a312a2a312a2a312a
-2a2a2a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a312a2a2a312a2a312a2a312a
-2a312a2a312a312a2a2a312a2a312a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a
-2a312a2a312a2a312a2a312a2a2a2a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a2a2a2a31
-2a2a2a312a312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e040e0e0e0e0e0e0e0e0e0e0e0e
-0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-302a2a302a2a302a30302a2a302a302a2a2a302a30302a2a302a2a302a302a302a302a2a
-302a30302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a2a2a2a2a2a2a2a31312a2a2a
-312a2a312a2a3131312a2a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a
-3131312a2a2a2a31312a2a2a2a2a312a2a2a3131312a2a2a2a2a2a2a2a2a2a2a312a2a2a
-312a2a312a2a312a2a2a2a2a31312a2a2a2a3131312a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31
-2a312a312a2a312a2a312a2a3131312a2a2a2a31312a2a2a2a2a312a2a2a3131312a2a2a
-2a2a2a2a2a2a2a312a2a2a312a312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a302a2a302a2a302a2a302a2a302a2a302a2a302a2a302a2a302a2a30
-2a2a302a302a2a2a302a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a2a2a2a2a
-2a2a2a2a2a312a2a312a2a312a2a312a2a312a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a31
-2a2a312a2a312a2a312a2a312a2a2a2a2a312a2a2a2a312a2a312a2a312a2a2a2a2a2a2a
-2a2a2a2a312a2a2a312a2a312a2a312a2a312a2a312a312a2a2a312a2a312a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a312a2a312a2a2a2a2a312a2a2a2a312a
-2a312a2a312a2a2a2a2a2a2a2a2a2a312a2a31312a312a312a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e04040404040404040404040404040404042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a30302a2a30302a2a302a3030302a2a3030302a
-2a302a2a2a30302a2a2a302a302a2a30302a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a31312a2a31
-312a2a2a2a2a2a2a2a2a3131312a2a3131312a31312a2a31312a2a2a31313131312a3131
-3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a312a312a31313131312a31312a2a31312a2a2a3131312a2a2a31313131312a3131
-2a312a2a2a2a2a2a2a2a31313131312a2a31312a2a2a2a31312a2a31312a31312a2a2a31
-312a2a2a313131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a31313131312a31312a2a31312a2a2a3131
-312a2a2a31313131312a31312a312a2a2a2a2a2a2a2a2a2a31312a312a312a31312a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e04040404040404040404040404040e04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a3131313131312a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3131313131312a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3131313131
-312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a
-2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04
-042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a
-0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a
-2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a
-2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04
-042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a
-0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a
-2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04040e0e0e0e0e0e0e
-0e0e0e0e0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a2a2a31312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a312a31312a2a2a2a31312a2a312a312a31312a2a2a2a2a2a2a313131312a2a
-2a31312a2a2a2a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a312a2a312a312a312a312a2a2a2a2a2a
-2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a3131312a2a312a31
-2a312a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a
-312a2a312a2a312a312a2a2a2a2a2a2a2a2a2a312a2a312a2a2a312a2a2a312a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a3131312a31312a2a31312a2a2a312a312a2a2a2a2a2a2a2a2a2a2a31312a2a31313131
-312a2a31312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31
-31313131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a0303030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-0303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a03030303032a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a313131312a2a
-312a31313131312a31312a2a2a2a2a2a2a312a312a31312a312a3131312a2a31312a2a2a
-313131312a2a2a31312a2a2a2a2a2a2a2a2a2a2a312a2a2a2a31312a2a2a2a31312a2a2a
-312a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a312a2a2a2a2a312a2a2a2a312a2a312a2a2a2a2a2a2a312a312a312a2a2a312a2a
-2a2a2a2a312a2a2a2a312a2a2a2a312a2a312a2a2a2a2a2a2a2a2a2a312a2a2a312a2a31
-2a2a312a2a312a2a312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a312a2a2a2a312a2a312a2a2a2a2a2a2a312a31
-2a312a2a2a312a2a2a2a2a2a312a2a2a2a312a2a2a2a3131312a2a2a2a2a2a2a2a2a2a2a
-312a2a2a312a2a312a2a312a2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a312a2a2a2a312a2a312a2a
-2a2a2a2a2a2a312a312a2a2a2a312a2a2a2a2a2a312a2a2a2a312a2a312a312a2a312a2a
-2a2a2a2a2a2a2a2a312a2a2a312a2a312a2a312a2a312a2a312a312a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a31313131
-2a2a2a31312a2a2a2a2a2a2a2a2a312a312a2a2a313131312a2a31313131312a2a2a3131
-2a2a2a31312a2a2a2a2a2a2a2a2a31313131312a2a31312a2a2a2a31312a2a31312a3131
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a3131313131312a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3131313131312a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a030303032a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a03030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-0303030303030303030303030303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303032a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a
-2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a31312a312a312a3131312a31312a2a2a31
-2a31312a2a2a313131312a2a2a31312a2a2a2a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a2a312a2a
-2a2a2a2a312a2a2a312a2a312a2a2a312a2a2a2a312a2a312a2a312a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a
-2a312a2a2a312a2a2a2a3131312a2a2a312a2a312a2a2a312a2a2a2a3131312a2a2a312a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a312a2a312a2a2a312a2a2a312a2a312a2a2a312a2a312a2a2a312a2a312a
-312a2a312a2a312a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a3131312a2a313131312a2a31312a312a3131312a31
-312a2a2a31312a2a2a31312a2a2a2a31312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a3131312a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a0303030303032a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-0303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a03030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a32322a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a322a
-2a2a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a3232322a2a2a32322a2a2a2a2a2a2a2a2a2a32322a2a2a2a32322a2a32
-322a322a2a32322a322a2a2a2a32322a2a2a323232322a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a2a2a2a2a2a2a322a2a32
-2a2a322a2a322a322a322a322a322a322a322a2a2a2a322a2a2a2a322a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a2a2a
-2a2a2a2a322a2a2a2a2a322a2a322a322a322a322a322a322a322a2a2a2a322a2a2a2a32
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a
-322a2a322a2a2a2a2a2a2a2a322a2a322a2a322a2a322a322a322a322a322a322a322a2a
-2a2a322a2a2a2a322a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a32322a322a2a32322a2a2a2a2a2a2a2a2a2a32322a2a2a2a32322a2a322a322a32
-32322a322a32322a32323232322a2a2a32322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3232323232322a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a
-2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a3131312a
-2a31312a2a2a2a2a312a2a2a2a31312a2a2a31312a2a2a2a2a3131312a2a2a31312a2a2a
-2a2a2a2a2a2a313131312a2a2a31312a2a2a2a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a312a2a2a2a312a2a312a2a2a2a312a2a2a312a2a312a2a2a2a312a2a2a312a2a2a
-2a2a312a2a312a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a3131312a2a2a2a2a312a2a2a3131312a2a2a3131
-312a2a2a2a31312a2a2a3131312a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a312a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a312a2a312a2a2a2a312a2a2a
-312a2a312a312a2a312a2a2a2a2a2a312a2a312a2a312a2a2a2a2a2a2a2a2a312a2a312a
-2a2a312a2a2a312a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a313131312a2a2a31312a
-2a2a31313131312a2a31312a2a2a31312a312a2a3131312a2a2a2a31312a2a2a2a2a2a2a
-2a2a2a2a31312a2a31313131312a2a31312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a3131313131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a030303032a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a03030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-0303030303030303030303030303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303032a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a31312a2a2a2a2a2a2a2a2a31312a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a31
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a3131312a2a2a31312a2a2a2a2a312a2a2a
-2a31312a2a2a313131312a2a2a31312a2a2a2a2a2a2a2a2a313131312a2a312a3131312a
-31312a2a2a312a31312a2a2a2a3131312a2a31312a2a2a2a2a31312a2a2a313131312a2a
-2a31312a2a2a2a31312a2a312a31312a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a312a2a31
-2a2a2a2a312a2a2a312a2a312a2a2a312a2a2a2a312a2a312a2a2a2a2a2a2a2a2a312a2a
-2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a312a2a2a2a2a2a2a312a2a2a312a2a31
-2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a312a2a312a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a
-2a312a2a3131312a2a2a2a2a312a2a2a3131312a2a2a2a312a2a2a2a3131312a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a312a2a2a2a3131312a2a2a312a2a312a2a2a31312a2a2a3131
-312a2a2a312a2a2a2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a312a2a312a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a312a2a312a2a312a2a312a2a2a2a312a2a2a312a2a312a2a2a312a2a312a
-312a2a312a2a2a2a2a2a2a2a2a312a2a312a2a312a2a2a312a2a312a2a2a312a2a312a2a
-2a2a2a312a312a2a312a2a2a312a2a312a2a2a312a2a312a2a2a312a2a2a312a2a312a2a
-312a2a312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a31312a312a2a31312a2a2a31313131312a2a31312a
-2a2a2a2a31312a2a2a31312a2a2a2a2a2a2a2a2a2a2a31312a2a313131312a2a31312a31
-2a3131312a31312a3131312a2a2a31312a312a2a2a31312a2a2a2a2a31312a2a31313131
-312a2a31312a2a3131312a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3131313131312a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a030303032a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-0303030303030303030303030303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303032a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a32322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a322a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a32
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a32322a2a322a32322a2a2a2a3232322a2a2a2a2a2a2a2a2a32322a2a32
-322a32322a2a323232322a2a2a32322a2a2a322a3232322a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a322a2a322a2a2a2a2a2a
-2a2a322a2a322a2a322a2a322a2a2a322a2a2a2a322a2a322a2a2a322a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a3232322a2a2a322a2a322a2a322a
-2a322a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a2a322a2a2a2a3232322a2a2a2a32
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a
-322a2a322a2a322a2a322a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a2a322a2a322a
-322a2a322a2a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a32322a2a3232322a32322a2a32322a322a2a2a2a2a2a2a2a32322a2a2a2a32322a
-322a2a2a32322a2a2a32322a2a2a323232322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a32
-32323232322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e04040404040404040404040404040404042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c040404040404040404040404040e04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a0e0e1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a
-2a2a2a0e0e1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c04042a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c04042a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c04042a2a2a2a2a0e0e1c1c1c04042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c04042a2a2a2a0e0e1c
-1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c04
-042a2a2a0e0e1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a0e0e1c1c1c1c1c04042a2a0e0e1c1c1c1c04042a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c04042a0e0e1c1c1c1c1c04042a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c040e0e0e1c1c1c1c1c0404
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c040e0e
-1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c
-1c1c1c1c1c1c0e0e1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a0e0e1c1c1c1c1c1c1c0e1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503
-0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04040404040404040404040404040404042a2a2a2a
-2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0404040404040404040404040404
-040404042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929
-29142a2a2a2a2a2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404
-292915030304292929142a2a2a2a2a2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c041c040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404041c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04041c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a0e0e1c1c
-1c1c1c1c1c1c1c1c1c1c04040e1c04040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-04040404040e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c040404041c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303150a0a0a0a2a2a
-2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c0404040e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404040404041c1c1c1c1c1c1c1c
-1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a150a0a0303
-03232323230a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c040404042a0e0e1c04042a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a0404
-04041c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c1c1c040404042a2a2a0e
-0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04042a2a2a2a040404041c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c0404
-04042a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a040404041c1c1c04042a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a
-0e0e1c1c040404042a2a2a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a040404041c04042a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515
-150a2a2a2a2a2a2a0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a
-2a0e0e0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a23
-15150a0303231515150a2a2a2a2a2a2a0e0e1c1c0e0e0e0e2a2a2a2a2a2a2a0e0e1c0404
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404
-2a2a2a2a2a2a2a2a0e0e0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c0e0e0e0e2a2a
-2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c04042a2a2a2a2a2a0e0e0e0e1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c
-1c1c1c1c0e0e0e0e2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a0e0e0e0e1c1c1c1c1c04042a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a
-2a2a2a2a0e0e1c1c1c1c1c1c1c1c0e0e0e0e2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a0e0e0e0e1c1c1c1c1c1c
-1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a03
-03231515150a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c0e0e0e0e0e1c04042a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04040e0e0e0e
-1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c0e0e
-0e1c04040e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c04040e0e1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c0e1c040e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
-0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
-1c1c1c1c1c1c1c1c1c1c040e1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a
-0e0e04040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-04040404040404040404040404040404040404040404040404040404040404040404042a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515
-150a2a2a2a2a2a2a0e040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a23
-15150a0303231515150a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a
-2a2a2a2a2a2a0a2315150a030323151515150a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a1414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-141414141414141414141414141414141414141414141414141414141414141414141414
-14141414141414141414141414141414141414141414141414141414141414141414150a
-0a0a0a0a0a0a0a0a0a0a0a0a0a0a231515150a0302032315151515232323232323232323
-232323232315040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404232323232323232323232323232323231515150a03040103231515151515
-151515151515151515151515150a29292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-2929292929292929292929292929231515151515151515151515151515151515150a0304
-0101030a0a151515151515151515151515151515150a2929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292929292929292929292929292929
-292929292929292929292929292929292929292929292315151515151515151515151515
-1515150a0a03040402010103030a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515151515151515
-151515151515151515151515151515151515151515151515151515151515150a0a0a0a0a
-0a0a0a0a0a0a0a0a0a0a0a03030303040001020001030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303030303030303030303030303030303
-030303030303030303030303030303030303030303040403
-%%PageTrailer
-%%Trailer
-%%EOF
diff --git a/lib/et/doc/src/sim_trans_write_lock.gif b/lib/et/doc/src/sim_trans_write_lock.gif
deleted file mode 100644
index d62505fe35..0000000000
--- a/lib/et/doc/src/sim_trans_write_lock.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_write_lock.png b/lib/et/doc/src/sim_trans_write_lock.png
new file mode 100644
index 0000000000..1ce15a33c5
--- /dev/null
+++ b/lib/et/doc/src/sim_trans_write_lock.png
Binary files differ
diff --git a/lib/et/doc/src/sim_trans_write_lock.ps b/lib/et/doc/src/sim_trans_write_lock.ps
deleted file mode 100644
index 80e03852dc..0000000000
--- a/lib/et/doc/src/sim_trans_write_lock.ps
+++ /dev/null
@@ -1,1287 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner
-%%Title: /home/hakan/picts/sim_trans_write_lock.ps
-%%CreationDate: Mon Oct 14 17:06:30 2002
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 359 199
-%%EndComments
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-10 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.173228 14.173228 translate
-% Translate to begin of first scanline
-0.000000 184.755782 translate
-344.431594 -184.755782 scale
-% Image geometry
-412 221 8
-% Transformation matrix
-[ 412 0 0 221 0 0 ]
-% Strings to hold RGB-samples per scanline
-/rstr 412 string def
-/gstr 412 string def
-/bstr 412 string def
-{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
-true 3
-%%BeginData: 74154 ASCII Bytes
-colorimage
-!AQV60nB=U!.b.=!<5%\0f_7E~>
-r'Z)9JH16$mf<8RJ,~>
-"DW"!C3+q+JH16$mf<B/!budtJ,~>
-r]0uYnc&S<J[C!8]<hPemJd0^mJd0^nc/Uh!]_tqJ,~>
-r^?bdnc&SGS\BZdT=P"ZmJd0[mJd0[nc/Uhr^;8~>
-rcA)>nc&SuJaS*W]C#Z.mJd0^mJd0^nc/Uhrc<S~>
-s"OQTs8W)KqVM,3!%EJWb_q%)n:Lcks3:GkqVM/4!i5k@qpkQ"r8n'Vs3:GkqVDD<s8N'Z3Ih~>
-s$Qngs8W)LrS%8-ro3q>!&U[?JWZ.Y!]9r&rmLesrS%8-ro3t?!hoY>rmLesrS%8-ro3t?!hoY>
-rmLesrS%8-"lfR^!(95*~>
-s)S5As8W)KqVM,3!+LN9J_n#q!b22SqpkQ"r8n'Vs3:GkqVM/4!i5k@qpkQ""m5jb!-<43~>
-!]^8\rRLc$qW7c,JTJMG!.4]d!.4]d!.4]d!/(8l!/(8l!/(8l!/(8l!/pht@uG\TF,PBdF,PBd
-F-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#m
-F-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-L_ps81@ChYZF9V#U>BqVM,3!Mobmeb\/$joWd-3Ih~>
-"%3.hdf.hrgA]t.ir/!>1kC(kI/nitI/nitI/o!#I/o!#I<UO!I=6s'I=7*+I=76/I=76/I=7B3
-I=7B3I=7B3I=7N7I=7N7I=7N7I=7N7I=7N7I=7Z;I=7Z;I=7Z;I=7Z;I=7Z?I=7Z?I=7Z?I=7Z?
-I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z72#mR'rmq&%rndY6roO6Ts8LIGf)=>%
-hYuO6joM1UrmLesrS%8-ro+%Bc2^7_~>
-!cnAArRLc$qW7ceJ^(mQ!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(ns4..os4..os4..o>MdoT
-c/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!q
-c/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/-]Ss81@ChYZF9V#U>BqVM,3!Mobmeb\/$joWd-F+=~>
-!\j]Trmgl%qrRtJjsbjrr+Z:SK6,%I!-A-S!-A-S!.4][!.4][!.4][E.`4HC4gSBC4gSBC5[.J
-C5[.JC5[.JC5[.JC6WdSC6WdSC6WdSC6WdSC6WdSC6WdSC6WdSC6WdSC7K?[C7K?[C7K?[C7K?[
-C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[.KB=rqVM,3!q)lar71Z#qrRtJV#UAC
-qVM/4!mL^"J,~>
-!^m%grmq&%rndY6roO:IjtqX7r-8?lNIf5t!.Fil!.Fil!.k,pIYE2qH%gZlH&6rpH&[5tH'*N#
-H'*N#H'Nf'H'Nf'H's5/H's5/H's5/H's5/H(BM3H(BM3H(BM3H(BM3H(fe7H(fe7H(fe7H(fe7
-H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe72#l"Prmq&%rndY6roO@K
-U&WQhrmq&%rndY6roO@KU&WQhrmq&%rndY6s5jC.!(;>~>
-!cnAArmgl%qrRtJk$in\r5JZ[`l.r&rl"l^rl"l^rl"l^rl+o^s2G#_s2Ag)c,IZPc,IZPc,IZP
-c,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZP
-c,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,F/lr71Z#qrRtJV#UACqVM,3!q)lar71Z#
-r8n(*!-<Y~>
-!<E0!eb\/"k5XiMjsd0Bs5)RH%#`)>PlLd.hVN!^pA`c["nqt2CA.]*C&i>SC&i>SC&iV[C&iV[
-C3>/MC2/BBC2/BBC;m8qC2/ZJC2/uSC2/uSC2/uSC2/uSC2/uSC208[C208[C208[C208[C208[
-C208[C208[C20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC2,3t
-rRLc$qr[qH!Moboeb;B/k5XiMV#UDD!o?4/rSIQ?rT41L]`<Q~>
-!<E0!f)=>%hYuO6k5X]IjtrrXs5)RS%$ehTSbiB7hVNBtpA3Ea#PS":FnYZSH2_pdH2_r9I<fsX
-JU)B\Km@f`M0X5dNHoYhNHoZdZ@-k<Q$mdtR=04#R=04#R=04#SUGX'SUGX'SUGX'Tm_'+Tm_'+
-Tn.?/Tn.?/V1Ec3V1Ec3V1Ec3V1Ec3V1Ec3V1Ec3V1Ec3V1Ec3V1Ec3V1Ec3V1Ec3V1Ec3V1Ec3
-V1Ec3!]9c%rmq&%rndY6roX7G!hoJ=rmpp2r^?bJs69ZZqU5Ao"56"*gA]t/6ic6GjoXhZ!.Y~>
-!<E0!eb\/"k5XiMk$k4,s7Y9f%+Xdbec5[;p@cJEs8U`js8W,<s8N,=c2PZ^c2PZ^c2PZ^c2P]^
-c2Yc_c2Yc_c2Yb"e]l)$k0:lae]l(Pe]l(Pe]l(Pe]l(Pe]l(Pe]l(Pe]l(PhTa$YhTa$YhTa$Y
-hTa$YhTa$YhTa$YhTa$YhTa$YhTa$YhTa$YhTa$YhTa$YhTa$YhTa$YhTa$YhTa$YhTa$YhTa$Y
-@fQDWqVM,3s6]o`s8CLB62p$HmK'-`rRCu+5sbJ+s$?VG!q*`%J,~>
-!s&AOec+G*63#g?k5RaHmK)H!oO7iRPi6'PK9Yk7!J?X%@KP*)3T"9XKE%0%k5S=Fc-87Xp@^4M
-K9Y/#s7QRM@eTLMraGkBraGkBraGkKraL#7S75rSC1:Y!C1:Y)C1:YZs*J45C1:Y1C1:Y1C1:Y:
-C1:Y:C1:Y:F(/UCF(/UCF(/UCF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UK
-F(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF8fVL.KBCtqVM,3rpBf_s8LOKhY0>9k5OcLV#UGE!8dZ?
-s5*]?s5s@L!PJJ`~>
-!s&APf)FD'5l]^?iWA717/lHPi\^:E!KEZ/D#oWen8/2cSa(%ng<rOLD%VX$R8E&G=\-id88\(o
-4Dg(Kghm)b"?^Ppp,r=k!-S9XI<BOHD0^,<D4-r3D1Q\DD1utHD2ECPD79IqD38sXD3]6\D3]B`
-D3]B`D4,ZdD4,ZdD4,ZdD4PrhD4PrhD4PrhD4u5lD4u5lD4u5lD5DMpD5DMpD5DMpD5DMpD5DMp
-D5DMpD5DMpD5DMpD5DMpD5DMpD5DMpD5DOWD#lKirmq&%rndY6roX4F!MTAhec=G$5lF+Nk5OWH
-U&+c>!8@B:s5*]Bs5s@H!P/8]~>
-!s&AOec+G*63#g?k5RaHmK)HZoXt:Me`"1Bc.2<s!R90[]`RWaKAX?Sc2Z%QpA^%tk2q<0s8R/R
-c.1U_s8N4C^&S+Rrk/<Nrk/<Nrk/<Nrk8?^s1SHOs1N9o`P&t0`P&tIs2D[r`P&t0`P&t8`P&t8
-`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8
-`P&t8`P&t8`P&t8`P&t8`P&t8`P&t8`W!OO@fQGXqVM,3rpBf_s8LOKhY0>9k5OcLV#UGE!8dZ?
-s5*]?s5s@L!PJJ`~>
-!W`8NrndT>rT=,Gs%<=Z!Tkj'=p"Et9&a"UpA[bT=p"Et9'TU[3T"!Qk05VQp@^4=;E6a@p@^4E
-pA[b@>6":$0j=;E0j7air`T;2r`T;:r`X_bpA[a+@TlrV@Tlr^@Tlr^@a4%V@TlrfC0Ff!C0Ff!
-C0Ff!C0Ff!C0Ff*C0Ff*C0Ff*C0Ff*C0Ff*C0Ff*C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2
-C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2=t0L%eb\/"k5F]OV#SuqhVRum!9X7J"f21Ke_]0W
-5lg'HmK(!$J,~>
-!W`8Orn@<9ro*q?rBpbQmc$(qB`e#)=lO,spA.q^B`e#)=mB]%84;?L''@V)=n_\S@:_ttC%h6_
-C%hC+h.co_#<Z_op,m&'D>n7!EG]E(F_ti,H1q);I;N\4JT5C<KlLg@M/gu'H$*h8O`bAPQ$$eT
-Q$$eTQ$$eTR<<4XR<`L\R<`L\SU"p`SU"p`SU"p`Tm:?dTm:?dTm:?dTm:?dTm:?dTm:?dTm:?d
-Tm:?dTm:?dTm:?dTm:?dTm:?dTm:?dTm:?d"efWeqUX6rgA]t.ir8*>l3?[MqUX6OgAF566icBK
-l3?[MqUX6OgAF566icBKl2eHrJ,~>
-!W`8NrndT>rT=,Gs%<=Z!Tmk`[/^.+UuJc]rrAkb[/^.+V!>>eKAX$Kp?$Fds8R/A["F"<s8R/I
-s8SnN[/^.2F0tuIF0r<frj2[=rj2[=rj7*es8Sn.]sP/c]sP/c]sP/c^#nai]sP/k]sP/k]sP/k
-]sP/k]sP/k]sP/k]sP/k]sP/k]sP/k]sP/k]sP/s]sP/s]sP/s]sP/s]sP/s]sP/s]sP/s]sP/s
-]sP/s]sP/s]sP/s]sP/s]sP/s]sP/s]sP/sZss'ceb\/"k5F]OV#SuqhVRum!9X7J"f21Ke_]0W
-5lg'HmK(!$J,~>
-!<E/uhY]\>k5RaH9)n;[jsg1*#'8Z$mZ^VVrr2t>qGI]kk5YJLC/USis6cEV;ZGSWKC8c0;RHH'
-s)SY+s6c+L;Vp8_mf/eT[/U(0F*ldDs6bgA;CBH`K2PUKmS`cY;GqSms6c+LV#PL6`W(9_`P#/j
-hZ*#.;GuB.XPWnR"G?_q3Q;!t#\s)5;H!5^0spr[s)SV*s6c+L;Vp93hGX(Iqbdflk5YJLC/USi
-s6cEV;ZHG(0iI`=0iEATs6cCT;OlnLs6as8rr74iSF6FFS5OE3hVPs.;N(Qr;Gr-V;Gr-V;Gr-V
-;GrE^;GrE^;GrE^;GrEf;GrEf;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o
-;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;CV=iqVM,3r9aW^p=90!pHe`F!i5P?rSI?9!9X7J
-!PJJ`~>
-!<E/ugAXA;6il<0r'^SQ!TGs5AHmkFqX1%g^Ae-4L&,[email protected],h"d/6LTk1t;
-s8Rc^hYQZ6AS'l\Om`(>A\S0Ds+LU4qZ#uKqIM&"s-7/,[dI`#qIO5lhYQZ6A[;>iA]k%,A^8/(
-L#2[oTk.fpijRkFAH\:uI7VZ_rs3oDqIO73p,p(gs8Rc]hYQZ6AS'l\[c1llqYOh3Woj0Xl?Qs@
-lMp.Lral-''0Kk"p,loChYQZ:Bk==,qZ#i7^Ae.WM5ok@m]'iLET5utk%0hXI:ZuLF_,-HF_,-L
-F_,-LF_,-LF_,-PH"CQTH"CQTH"CQXH"CQXH"CQXH"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\
-H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"Ai+f)=>%hYuO6k5OZGmK0*Uf)FD%5l3tKlMp8R
-U%[(9gAXA86icBKl2pCb!.Y~>
-!<E/uhY]\>k5RaH9)n;[k$n4p#0$$1p=6P,rr2u;qQpX\pAb0d]sQ>`s7Y"B[/]h'c1_1f[,1f^
-s2>H8s7Y!M[.a4<pA`[MhZ!QT`<>W/s7X_6ZmY#9c*Xk7p9al"['[g?s7Y!MhZ(R%k5WE-k2s%i
-mf3"2[']Q#hY-oT"O6tBKBE15#eg9<[']l5F5Hors2>E7s7Y!M[.a4Mp9al"qm6a]pAb0d]sQ>`
-s7Y"B[/^.>F0tuIF0s3[s7Y!M[+4mMs7XForr75feb9%:e[3</p@dYB[*AWH['\)k['\)k['\)k
-['\)k['\)k['\)k['\)k['\)k['\)k['\As['\As['\As['\B&['\B&['\B&['\B&['\B&['\B&
-['\B&['\B&['\B&['\B&['\B&['\B&['\B&ZsraZqVM,3r9aW^p=90!pHe`F!i5P?rSI?9!9X7J
-!PJJ`~>
-!<E/thYKP;9)e5ZhC8A#$tAquC;p3V@eTh"3D03I25L9/HYSd2SH$Q3^&O<p;YL.I[/]P[@eTh"
-9(q[f`W'+>pAa!Vs6`0^pA\#Nk5TL+F';35;CIJ']h22jUbVT:0k0kEC;p3VHiK!rmf/2;p3TF*
-mV9`@>#P(ohP;n*;BrRK5tYV[s&(TFp+]J=p+^%Ms&)J_mV9`@>#P(ohP;mgjtZg4I\d##HYSd2
-SH$Q3^&O<p;YKf=;YKf=@eT5)`W',;s5&*;PX/LHs&,*]c!%g\S6Ahas5'P+MuTkNHX]lNK47_V
-K47_VMdfR^MdfR^MeZ-fMeZ-fMeZ-fP\O)oP\O)oP\O)oP\O)oP\O)oP\O)oP\O)oP\O)oP\O)o
-+d?_>;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;CV>9hYZI4mK'[email protected]!)!1W!MoGd
-hYTS=k5=WJ]`<Q~>
-!<E0!gAg"05kmbHmK)0$r*9_Fp?le7s(Q?DqHZ?dr*;1_s5JTPPuXOXb%\`mSR#Ops5LKel:c'g
-qHZqkmVTi@BjLH4ijSmP9PsM">sRQPH!tu0;#=NHOoN-l?0\FTp@^U_p?le7s(R2eO]CiLO]Ct'
-=n_9#_Z+=UpAa!L5lP%6])PT'EVB675kan6?2!tSD>*g3;"j<o_Z+=UpAa!L5j%&grEXlTs5JTP
-PuXOXb%\`mSR#Opp,lXSp,[email protected][5XC%hC/RK(QH_Z-HH?2"<XW^)^HY#'sl?!WG,
-?!WG,?!WG0?!WS4?!WS4?!W_8?!W_8?!W_8?!Wk@?!Wk@?!Wk@?!X"D?!X"D?!X"D?!X"D?!X"D
-?!SVEF^8:DF^8:DF^8:DF^8:DF^8:DF^8:DF^8:DF^890pAN_EhYuO6k5OZFmK'$TrRq<<hVS7k
-roO8MlK\B:!MT5cgAg"05l="Mk5OZGmK'm!J,~>
-!<E/thYKP;9)e5ZhI?Da%(-'.Ut,L@[/^/aH_gS@2:_`pXIQYUc2ZXbec3UiXT/=gec5'%[/^/a
-KE(Y@ec2GHs8VN;s6c,Ys8S"(pA^qHUm.DHX=2'feXW`7c$TKjF0tu@Ut,L@`W*<@pA_Lqs/_Ib
-p8$7=UoaUrm`g+XX<ZU%K:K=Ks,1sus)Y:As)YRIs,2O0p8$7=UoaUrm`g+PmW8?.Ib"JdXIQYU
-c2ZXbec3UiXT/<AXT/<A^&Rf%ec2Gqs6ctY[#;$cs,48ak*4Erc*XSPs6e-Yc2YbQ`O)_J`O)_J
-`O)_J`O)_J`O)_Jc*XRRc+U3[c+U3[c+U3[c+U3[c+U3[c+U3[c+U3[c+U3[c+U3[c+U3[c+U3[
-+jI^%XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XNeG[XCCo"hYZI4mK'[email protected]!)!1W!MoGd
-hYTS=k5=WJ]`<Q~>
-!<E/uhZ)a:62aFUmf2t]hC8@p$^C[e3K*oi62(",62O80mf-0>5s[Nns%5:Ts5l=6pA[E5p@^45
-p@^5*s.hZ5s+<W2s$8C5p+]25p+\kqs/]]/62F2$pA[F"s&(lNp+_g3UcFA5K1c0W;ZH0u>5pmQ
-s.hZ5s+<W2s$8A"r^nE[s"Qf3p@^4,p@^45p@^45p@^5*s.hZ5s+<W2s$8A"8hi(!8q6:/;DCI'
-3Tg?63ElIF3D0#=0hV050pM^63K*oimf-0>8kM*0p@^6's%5:Ts5l=6pA[E5;Hj+>;Hc[bHWj$6
-K3Cl>K47GFK47GFK47GFK47GFMdf:NMdf:NMdf:NMdf:NMdf:NP[[6WP[[6WP[[6WP[[6WP[[6W
-P[aYb)3eT&8sEdW8sEdW8sEdW8sEdW8sEdW8sEfa8c^C7r8.>5qsOLX!MoGfh>fk=k5XiL9)e8Y
-p&Uu_r8%G9r':<Tr9aX[]`<Q~>
-!W`8Srnd\7qEtNYmdBZ:hDG.5$_@<t8<s43<VH,K<VooVmf-QX9MeFFs&DHus5m!XpA[fOp@^UO
-p@^V:s/JVTs+sbLs%G]Op,lLOp,l@;s/p?A:f[Bq-scE?:jr@P8G;a>Sc>]\Q2c\Ds2&@DlFq-8
-8=BLX8<s43<VH8[5Y1lW,L6<O<E]%h4B;+K4B_CO4B_CO4IQ5L8<s43<VH8[5Y,$C5lFi8mf-QX
-9MeFFs&DHus5m!Xp@^UOp@^V>s/Jb\s,$1D>sMOm9NCf[4QcZD6tQD\9Nh)c83g<ps2J2U=]pSu
-=]pSu=]p`$=]p`$=]p`$=]pl(=]pl,=]q#0=]q#0=]q#0=]q/4=]q/4=]q/4=]q/4=]q/4=]q/4
-=]q/4s&g5-EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EW0)C2"oYWrndY6roX4FrpKgW#,1bEg>:[O
-ro3q>s69SPrpKgW"/5GBgA]q/iql.DlMg2Qo""gO~>
-!<E/uhZ)a:62aFUmf2t]hI?DY$dJ^jK>mklSH&V1SGT*>pA^%tPa%+"s+>s*s6bf@s8R^us8RGA
-s8R/Zs2BW0s/_ajs+>[us*LRAs)X_(s2D(0PaqTGs8OC'^&O=Ts8R/bs2BW0s/_ajeXZ[5c)gql
-`W*o0`W*$0s8RFmMuKLsk5TLuV#UI9SH&V1V#UI9V#UI9`W*o0`W*$0s8RFmMkk]HrM4r:s,25g
-P`,88K7g9*mYdn@s)Y"9s)ZHb`Il/0XS2[PH^pUaV#UI9pA]btXT.^HV#UIAH^(W3eWd/2UqNk*
-UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:Us69BUs69BUs69BUs69BUs69B
-Us6:HU`%FaUnl8BUnl8BUnl8BUnl8BUnl8BUnl8BrhKR(pAEeEk54THp&Uu_rS@N?qr[qH!)!7Y
-s7QJhpAEbIk57LF9)S)Yp:UHV~>
-!<E0!hYlU:62aFUmf)n\hC8@p!3H+u"IqdOp+cD9s8N*S62jLVrt7%P9)noG9(qs59(qs59(qs5
-XSi)3S3clB0hV050hV050hPoos8UVjq+;"$s+@]80gYO,0s(<Q$_0N5p5@2/k*4^WXSi)$S3clB
-1&OWX`W%Yb9(qs59(qs59(qs59(qs5XSi)$S3clB1&+B@rrFi?r_!4j%P^7As8OfGp@^45p@^5B
-r;V8:s8OfO;G'Pjp@^6@s"QfSs8Ofgp@^4U>"\h63D)nj>"VD>@S07F@S07F@S07F@S07F@S07N
-@S07N@S07N@S07N@S07N@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W
-@S07W@S07W@S05pPY*CurS@OMr'C<S!i58Prq6AgpANhJ62]mEmK-#Kmf)n\V"XcD!9X2Fr_!1X
-s7QK,!.Y~>
-!<E0!hYuL7k57UK8FGpFnc@H$r)j$&r;Qnj9_S0BqH<ju!C0Za=VU`44B5Pas$0`\p,l@Kp,lLO
-p,oMUrtCqsp@^UKp@^UOp@^UOEQ8%Yg3rd"$GQOs]&#PLp@^VOr;R.q9\T&sf"U:7i]OCArrnre
-p@^UKrE0i[s$0^ip@^UOp@^UOp@^UOp@^VOr;Qqk9_S0B<V]etrrGAbr`Kg/s#a:as8P>ep@^UO
-p@^VOr;V8;s8P>m@9H`Mp@^WFs#a;(s8P?0p@^UoBjLbY86K)LD-:"uD-:#$D-:#$D-:#$D-:#(
-D-:#(EEQG0EEQG0EEQG0EEQG0EEQG4EEQG4F]hk8F]hk8F]hk8F]hk8F]hk8F]hk8F]hk8F]hk8
-F]hk8F]hk8F]hk8F]hiMR9;B;gA]q/SbYYTV=*dNncGNUgA]q17,m5*k5OWI8FGpFncGNUgA]q/
-iqZ"Amf2hY\c@6~>
-!<E0!hYlU:62aFUmf)n\hI?DY!7h#I"ML'"s)\%4s8N+@SGo>art9CCV#UIAV#UI9V#UI9V#UI9
-eboF\]p/QsF/8j9F/8j9F/61ns8VN#q4nASs/b)FF.E:1F4L3g$b_emp9`u,m_/%0eboFM]p/Qs
-F8VgJk5TLuV#UI9V#UI9V#UI9V#UI9eboFM]p/QsF82R2rrI22rhTSo%We/9s8RGAs8R/9s8R/j
-r;V8[s8R/9XJDZ!s8R0?s)X^;s8RGQs8R/RXJGmHK;><VXJDZ2[%sM:[%sM:[%sM:[%sM:[%sM:
-[%sM:[%sM:[%sM:[%sM:[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB
-[%sMB[%sMB[%sK"c(nhBrS@OMr'C<S!i58Prq6AgpANhJ62]mEmK-#Kmf)n\V"XcD!9X2Fr_!1X
-s7QK,!.Y~>
-!s&AXhYZI69)n>Xp&X#!r(7$Ts.oTJ"$-)K1&=KDmf-Jh8f$Rh8kNRmjtTL%p+]25p+]25p+_g3
-V#<"]3VN/$9(qs59(qs58kMBAV#TjKqFV0;s4-h$0hV050pM^6r@n^@XT..QPlK:00pM^6r@nC7
-p@^6=8cc$nr_!4a%l$]Mp+]25p+]25p+_g3V#<"M3VN/$pdtVUs'#@n''B3d8n.h_0hV050hV05
-0pM^6r@r`_s&r;m8m5-dp+b_08nr,@jtU'5p+]`C@fN5a8pa`68qUSF8qUSF8qUSF8qUSF8qUSF
-8rI.N8rI.N8rI.N8rI.N8rI.N8sEdW8sEdW8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_
-8sF'_8sF'_8sF'_8d(An8h'K5h>l^962X=Tmeuh[V"XfE!Tl]Hk5F]K9()ZO!MoGgh>l^962X=T
-mf)n\]`<Q~>
-!s&AXhYuO6k5IaM8FGpFncJO=2#L>TRK'Gg49J.Jp,r1O!p]esrDaWqs&E'5s5lFDp@^UKp@^UK
-p@^V:s/u;_'1hij4B;+K4B;+K4B5BX=f)/`;#40#IK.adPsA@Cp,ncCY5LHk8?W!HV3V)7Y!AET
-Y5LHb8G;a>r)Ed's8H$up('8cp@^UKp@^UKp@^V:s/u;_"%`.Z4SVnXlMkGo<>+Ho<E3c5jucZ;
-p,l@Kp,ncCY5LJ2lMkEu<E3a=p@^W6s&F&]s5lFPp@^U[<GDK55ZNAL<E4li<E4li<E4li<E5#q
-<E5#q<E5#q<E5/u<E5/u<E5<$<E5<$<E5<(<E5H,<E5H,<E5H,<E5H,<E5H,<E5H,<E5H,<E5H,
-<E5H,<E5H,<E5H,<E5H,<E00iEE+jdrn[Y7q*b6R!:KjW!qr>Yrn[_97,n4.rosRQ8FHKJ!qr>Y
-rn[Y7q*b6R!:KjW!P/8]~>
-!s&AXhYZI69)n>Xp&X#Zr1!i-s2FqX",$XRF8DC.pA^BUS/1huK:K%CmW4ous)X_1s)X_1s)Z0Z
-`VjikKE(smSH&V1SH&V1S=Gh.`W,XrqO@u$s5s$gH^t-9F2e0urGrC"ec4dN[/]:5Hc?$(rGr'n
-s8R0<S/0ZTK:JJ3s)X_1s)X_1s)X_1s)Z0Z`Vji[KE(smpm_EZs-3JP'))?XS?2bYF.E:1F.E:1
-F2e0urGr&6s-3MQs.o\pG]WTYK<2H[mW53(s)Y!+XT-7dS@#)^S@u"oS@u"oS@u"oS@u"oS@u"o
-S@u"oS@u"oS@u"oSAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"
-SAhS"SAhS"SAhS"SAhS"@eTfX!9X2Fr(6tWrUp8fpAWnLk!At.rU'\Ymeuh[V"XfE!9X2Fr(6tW
-rq6B+!.Y~>
-!W`8Wqr[qHs%<=Zr:U0J.JudG;XXRTH^'.Tk5T0oqar`9s5o5dP[^0_]kYOdM_Ritp+]25p+]2%
-s(Z$2s."G#K1bk20hV050hUU.C/V-cC4lQC1&4Eemf3;Q3D0#=0iIH>S9pKQ8pgU<@UfB;C,o2[
-s."G#K1bk21&OWfF8pSQ9(qs59(qs59(qs59'6.g@da8dH^'.Tp@^459'5:68q*<1k)4SN@\!J3
-C;p420hV050hV050j=#FS:d&YSH%`0H^nhCk5T1ls1NKms,/U(p@^458u2Jr3I=q%8pb#>8qUSF
-8qUSF8qUSF8qUSF8qUSF8rI.N8rI.N8rI.N8rI.N8rI.N8sEdW8sF'_8sF'_8sF'_8sF'_8gT^:
-8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kLQ+hVRDWrB^<Qr:U>jp>4Zgk!B"/r9aPWr:U;i
-p>4Zgk5@UGmeocVp&Vi,J,~>
-!W`8Wro3q>s69\S8FGpFo)JCag,/_-$XrK"SV<>c<Ta=(@Ja%^U&X8;JXL5Cs2&p$s-5]Hp@^UK
-p@^[email protected]&/N7p,l@Kp,l@;s)hbUM04[ThE:U6,jPF09Lr1Wp,ldOqON>*M,f90s)E&Y
-s*7"@meWK.Q&/N7p,r7Q,(9KB:f[5_4B;+K4B;+K4B:PDF`$RCSV<>c<VH,K<E82Dr)J3>s5oGp
-R;&5l_KF$$Prr(?p,l@Kp,lpSqONV6M4st3Ob'?K<Ta=(Y5c@eb5[_l<VH,K<E64%D+&qh<E4`e
-<E4li<E4li<E5#q<E5#q<E5#q<E5/u<E5/u<E5/u<E5<(<E5<(<E5H,<E5H,<E5H,<E5H,<E5H,
-<E1?5EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-#,EE-!qo%r6_iqc(B8H/2[p'.5]hVR8O7/l?J
-lMp8P8H/2[p'%/\hVR8OrC$\N!(?fWrpg-a\c@6~>
-!W`8Wqr[qHs%<=Zr:U0J@f2`(V"Xi-]u@[TpA^YYqj]Ogs6dS-`N7&YeZ@p5[!S>Cs)X_1s)X_(
-s.$1as2D[j]q#-&F.E:1F.Dt(S>=]KXM+YrHhj0WpAb/FMk'hIF/8O0`P'7(SA"t&S>?2bUk>K:
-s2D[j]q#-&F8VOP[/ZqdSH&V1SH&V1SH&V1SG)uQXS2\5]u@[Ts8R/1SF6+KS:8`_m_-!HXMt4i
-XQKPiH^t-9F.E:1F/8O0`P'7(c2[4F[*>tJpA^Z-s4+L=s0R-Cs8R/1SCRY(K=%GES@u"oS@u"o
-S@u"oS@u"oS@u"oS@u"oS@u"oS@u"oSAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"S0c.U
-S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=F'^hVRDWrB^<Qr:U>jp>4Zgk!B"/r9aPWr:U;i
-p>4Zgk5@UGmeocVp&Vi,J,~>
-!<E/sk54TDp&X#!qaq3)^%VKoMa<9ps(_C&1lL5js5mcVPii#.PVG0jp@^45p@^45Mt[0c>.sY0
-mYaC)p+]25p+]0tpA\mPpAaj*;DIu>,cq$b0gSG*p+]0K^%VKoMa:8@s#ECFs#EA;@_ML8mYaC)
-p+cG:s4&5X9(qs59(qs59(qs58rNECC0J=Es6be2p@^459(qs5r(;ErhZ*W<@R67@s5oP#3D0#=
-0hV050hPogpAaQ=8sJ34s5mcVSG)ttSEBk6S2!#rp@^45F5GG%C0F5%HX]T>K47GFK47GFK47GF
-K47GFK47GFMdf:NMdf:NMdf:NMdf:NMdf:NP[[6WP\Nf_P\Nf_P\Nf_P\Nf_P\U4j)3el.8sF'_
-8sF'_8sF'_8sF'_8sF'_8sF)i8cgI0hYuX=Ud7<D8cYsjp&_&XhYu[:62F4Op&_&XhYlU:62g6O
-9)SA`]`<Q~>
-!<E0!ir8*>lMg5No)A=`g,/\'$YdKOs6>S7NUlpc9`%XCQ/;Q;iakfOk5X_34@E$>p,l1Fp,l02
-o(m??_Y4#pNC`d:4AbbF4A_%.qJj[Ks7XT<5l"5%Y5cL(9MkHV4A]b/pAaE;86Puh6qmIW6qC-g
-_Y4#pNC`d:4SqtTef[L[p@^UFp@^UFp@^UFNUlpcBu9TDlA\@.p,l/Jp@^WH:k"\ds8(_d9UY&C
-lBOJ";"jTF;"jTF:hdf?s6>S?Q/;Q;iakfOo(m@"k5X_;4@E$>p,l/shUXf+APc3SAPc3WAPc3W
-Bi%W_Bi%W_Bi%WcBi%WcBi%WcBi%WgD,=&kD,=&kD,=&oD,=&oD,=&oD,=&oD,=&oD,=&oD?!EM
-Q#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#6Ls!]9?%ro*pOr'^NT!ikh^rq6Demb[s&qaCBRs760_
-!ho&=ro+"A6q%%>!q&TMrpp*_!P/8]~>
-!<E/sk54TDp&X#ZqihG`eb9%:[#;Wks.oLU1pl]Ns6c,0^$bpoZu^kas8R/)s8R/)^%VK%Ut,2=
-p9]bXs)XG)s)XF<pA^rNpAb0LMgP8a,gHA>F-Mphs)XF#eb9%:[#:ISs*K\(s*KZgUt,2=p9]bX
-s)\(%s5kG^PlLc)PlLc)PlLc)PeHejUnlQ7s7WgXs8R/)PlLc)r02Z;mf3=TP`*6Cs7Wg@K9ZE9
-F-Q_)F-NKNpAainMmVpPs6c,0`V0>-`U<d"]lSgjs8R/)XR>4lS>;C6[%rqN[%rqN[%rqN[%rqN
-[%rqN]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qk[m)82i1PeElW
-PeElWPeElWPeElWPeElWPeEmlPQG=^hYuX=Ud7<D8cYsjp&_&XhYu[:62F4Op&_&XhYlU:62g6O
-9)SA`]`<Q~>
-!<E/tk54TDp&b9E.JcX;5rnp!"$oOF1&CnOF%SIk0`jX53W:`53W;YN1&jlG1&jiL5qt)[5rnp!%
-RE]A0hP%m0hP&(0eksSr\4C5qYp_?8kM)u3W;YN1&jiH5rnp!#XM'T0el9m0erZ"!C8aF0`s^60
-erPt(1Q]r8kLfm8kLfm8kLfm8kMB(0gS)cr\4L@8hi("9)gXC8cUmM0`jX53W:`53W;YN1&jlG1
-&acF3W:`85tX-tr\4U\;F*#l8icl*EB-X+=tqaQV"RDH>"VD6>"VD>@S07F@S07F@S07F@S07F@
-S07N@S07N@S07N@S07N@S07N@S07W@S07WC._*_C._*_C._*_C._*_C._*_C._*_C._*_C._*_C
-._*_C._*_C._*_C._*_8h'3*k54TDp&b8imec/Dmec\Zs.o)[k54TDp&Vi,J,~>
-!s&A\ir8*>lMg5No)A=aqURM":]X6Tr]C9R:e3_FrrRIB8GtXP9Me.V49.eK;#`ZX;#`ZX:^'BP
-4A8F6r]CZ]:cpj::cpj::e3]29L/S>!'pD\"aNp@6p*a6;#`ZX:]X6Tr]CHW:f'8::f'8:r_NVh
-5lNkJ85ME2qbS&BnsN<N4?QG:4?QG:4?QG:83B".9L/S>"%Z6N4T81W4SqqT8GtXP9Me.V49.eK
-;#`ZX;#`ZX:^C&h4?Pl":e3kN4F:@:83B"76p*Rs6r8#34?Rnhnm+dp:f)^S:f)jW:f)j[:f*!_
-:f*!_:f*!_:f*-c:f*-c:f*9g:f*9k:f*9k:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo
-:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*ER2"(A&roX4FrpKdVrq6EiU$hp>roX4FrpKdVrq6EiU$hp>
-roX4FrpKdVrq6B(!.Y~>
-!<E/tk54TDp&b9E@eko^HiA'gK8YA'qYpVmMhD"M"+,raKDoolKDpf/F8q0uF8q.%K6)*dMgPGE%
-YK[\F,PrtF,Ps/F)ut\rc8'dqYp_pMi2q'HiAs'F8h'tHiA'lK8YY/F,PrtF8_!sHiA'gK8Xelq
-hl5[p:ZBBF*!7tF*!7tF*!7tK6)*dMgPGE"+uMQF8h*tF8LjqKDoooH]*f7rc8'lrepets,6nur
-egc'rc8O$Mh?@tF*j.9K6)*lKDoq3K8ZOiF*".rp5=QnMi4[,Mi4[,Mi4[,Mi4s4Mi4s4Mi4s4M
-i4s4Mi4s4Mi4s4Mi4s4Mi4s4Mi59=Mi59=Mi59=Mi59=Mi59=Mi59=Mi59=Mi59=Mi59=Mi59=M
-i59=Mi59=Mi59=Mi59,@da-UqsO@T!ro(aqr[eDqt:*kV!e-BqsO@T!PJJ`~>
-!<E/uk54TDpAb-neLBuRqCqt1bsD1\!'/Rq!b.Z[`^'Ssr]pNVr]tm/8jPa@8jPaH8jPaP8jPaP
-;F*T`;OgW>8jPaa;F*Tq>!YH$>!YH$>!YH$>!YH,>!YH,>!YH,>!YH,>!YH4>!YH4@R3;<@R3;<
-@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R39_Mdet$mel5Emec_X
-rrJq`r9!nEqtC'i!Mo/]k54TDp&b9-!.Y~>
-!W`8[roX4FrpKdVrq?Bg!S0*t:]OMl49/(#:]OMl49/(*:]b@%8B+L+<W>mF>ua]t@9HE'AQ_i+
-Bj"8/D-]t7EEuC;F^_+T5Zpo[JRqYSKk4(WKk4(WM.od_M.od_M.od_NG23cNG23cNG23cO_mok
-O_mokQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>o#*j%%
-2"'A_roX4FrpKdVrq?Bg"/5/Bir8*>lMg5No)A@_q?*GZio9t"rp'LNrpp'^!rBJ.J,~>
-!<E/uk54TDpAb-neRJ$+qJuXhc&;F>!/&g[!h?rV`esh]regc@repf@s,28pP`(HiP`(HiP`(Hq
-P`(HqPf8l6P`(I$S;W<,S;W<,S;W<4S;W<4S;W<4S;W<4S;W<4S;W<4S;W<4S;W<4S;W<=S;W<=
-S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;UkEr9!nEqtC'i
-!Mo/]k54TDpAb-nV!e0CqsO@T!roq6J,~>
-!<E0!k54TDpAY'meL?&8r]pNEa$B\tr]pNVr]u$38jPa@8jPaH8jPaP8jPaP;F*T`;F*T@8jPaa
-;F*Tq>!YH$>!YH$>!YH$>!YH,>!YH,>!YH,>!YH,>!YH,>!YH4@R3;<@R3;<@R3;<@R3;<@R3;<
-@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R39\.IR/sqsO@Trr3"pmeu;Fmec_W
-rrJq`rT="FqtC'i!PJJ`~>
-!<E0!k5OZFmf)eVpAXmhehhqOs%EGa7)qt$;#X.<<DZ@_>u43g@9#upAQ;DtBj",'D-9P+EEu73
-=]nElI:[email protected]@SM.K@SNG2'[NG2'[NG2'[O_IK_O_IK_Q"`oc
-Q"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`oc#*imr9Jl1sroX4FrpKdVrq??f
-!ho&AroX4FrpKdVrq??f!ho&AroX4FrpKdVrq?Bg!P/8]~>
-!<E0!k54TDpAY'meRF)^rdt2ta+FAMrdt3/re(6/s+>`aMh?YHMh?YPMh?YPMh?YPMh?Y?Mh?YX
-P_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UqP_4UqP_4UqP_4UqS:cI$S:cI$S:cI$S:cI$
-S:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cH'meu;Fmec_WrrJq`rT="FqtC$h
-!Mo/^k54TDpAb-n]`<Q~>
-!W`8_qsO@Tr;QfJ.=k*B9"R[t.IQ?\qsO@Tr;QkpmcN[/mec_Urr](bk2uR/qtC!g!PJJ`~>
-!W`8_rp'LNrpp'^rqcZp!R`fU=f5Df<<G)Ck2u[.rpKdVrq??fs8N1plK77.lMg5No)A@^qZ$Qt
-U$Ce&rp'LNrpp'^rqZ]r\c@6~>
-!W`8_qsO@Tr;QfJ@Y(>+Uq<E)@d`C@qsO@Tr;QkpmcN[/mec_Urr](bk2uR/qtC!g!PJJ`~>
-!!)DN!%EI)JI&jn!%I<"!2T"H!2T"H!!%N~>
-!!)DK!&T64JI&jn!&X)*!28eB!28eB!!%N~>
-!!)DN!+LKbJI&jn!+P>[!2T"H!2T"H!!%N~>
-!<E0!joD3.s+13$s7-*mV#TT>]`<Q~>
-!<E0!joD*+s+13$s7-*mU&X9;\c@6~>
-!<E0!joD3.s+13$s7-*mV#TT>]`<Q~>
-!<E0!joD3.s+13$s760oK;AP0k.LbF~>
-!<E0!joD*+s+13$s760oJYE,+k.1PC~>
-!<E0!joD3.s+13$s760oK;AP0k.LbF~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys8(:A!!:[N!:889!<1OK!!:[N!;tCI!:/25!9Mc2!:SJ6!!^sR!7fU"!.i[Uec17*
-V#TT>]`<Q~>
-!<E0!joV7Vs8(IF!!:jS!:8G>!<1^P!!:jS!;tRN!:/A:!9Mr7!:SY;!!_-W!8?-,!.ijZgAc^-
-U&X9;\c@6~>
-!<E0!joV@Ys8(:A!!:[N!:889!<1OK!!:[N!;tCI!:/25!9Mc2!:SJ6!!^sR!7fU"!.i[Uec17*
-V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!;b7G!:889!<1OK!;Y1F!:889!<1OK!9Vi3!:SJ<!;b7G!<:UL!.i[Uec17*
-V#TT>]`<Q~>
-!<E0!joV7Vs8(IL!;bFL!:8G>!<1^P!;Y@K!:8G>!<1^P!9W#8!:SYA!;bFL!<:dQ!.ijZgAc^-
-U&X9;\c@6~>
-!<E0!joV@Ys8(:G!;b7G!:889!<1OK!;Y1F!:889!<1OK!9Vi3!:SJ<!;b7G!<:UL!.i[Uec17*
-V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTuo%!a?rmh#Ks4.&J
-rmgrIs4.,L"4[AOeboLJec,UNeGoU?ec,XJec,UOeGoU"r;clJr;clJrr</O!!(RJ!.i[hec17*
-V#TT>]`<Q~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<1^P!"7K\!8?-,!87DQg=lK*o%O*Drn@APs4[DO
-rn@;Ns4[JQ"53_TgAM$OgA_-Sg&M-DgA_0OgA_-Tg&M-,r;clOr;clOrr</T!!(aO!.ijmgAc^-
-U&X9;\c@6~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTuo%!a?rmh#Ks4.&J
-rmgrIs4.,L"4[AOeboLJec,UNeGoU?ec,XJec,UOeGoU"r;clJr;clJrr</O!!(RJ!.i[hec17*
-V#TT>]`<Q~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)T?rW)oI
-rrE)Lrr<;S!!(R"!!(RG!<:UL!!(RK!!:[N!;"b@!<(IJ!"[T[!7fU"!7fU"!7fU"!7goGs4.,L
-J^p7?s+:KNs5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Ern@AP#20%Wg&M-,rW!/V!!(a,!!)TDrW)oN
-rrE)Qrr<;X!!(a,!!(aL!<:dQ!!(aP!!:jS!;"qE!<(XO!"[c`!8?-,!8?-,!8?-,!8@8Ls4[JQ
-J_HUIs+(?Is5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)T?rW)oI
-rrE)Lrr<;S!!(R"!!(RG!<:UL!!(RK!!:[N!;"b@!<(IJ!"[T[!7fU"!7fU"!7fU"!7goGs4.,L
-J^p7?s+:KNs5rIW!.Y~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ebT7WeGoU"!!(R"!!(OL!7fU"!:\P<!<:UL!<:UL
-!;tCI!!(RK!<:UL!;tCI!<:UL!;"b=!#!f^!7_&Le^XX"e^XX"e^XX"ec#RKec#Q"eX4neK*A(N
-k2s>WJ,~>
-!<E0!joV7Vs8(II!"@Q]!87DQg&M-,g&M-EgA1d\g&M-,!!(a,!!(^Q!8?-,!:\_A!<:dQ!<:dQ
-!;tRN!!(aP!<:dQ!;tRN!<:dQ!;"qB!#!uc!87DQg=cN,g=cN,g=cN,gAV*PgAV)'g6gUoJH_bI
-k2s5TJ,~>
-!<E0!joV@Ys8(:D!"@BX!7_&LeGoU"eGoU@ebT7WeGoU"!!(R"!!(OL!7fU"!:\P<!<:UL!<:UL
-!;tCI!!(RK!<:UL!;tCI!<:UL!;"b=!#!f^!7_&Le^XX"e^XX"e^XX"ec#RKec#Q"eX4neK*A(N
-k2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo@<j@rmh#K$Io+VeGoU"eGoU"qZ-*8rVurKqZ-ZHqu?fK
-!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<>T!!(R"!!(R"qZ$]J!!)rIrW%N"RaqFj"f21\k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!!CpT!8@;Mo@j3Ern@AP$JGI[g&M-,g&M-,qZ-*=rVurPqZ-ZMqu?fP
-!!*#PrrDuNrrE)QrrDZErrE#Orr<>Y!!(a,!!(a,qZ$]O!!)rNrW%N'RbIdm"ektYk.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!!CaO!7grHo@<j@rmh#K$Io+VeGoU"eGoU"qZ-*8rVurKqZ-ZHqu?fK
-!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<>T!!(R"!!(R"qZ$]J!!)rIrW%N"RaqFj"f21\k.LbF~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Ln(%F<rmh#K%+P=XeGoU"eGoU"!!)K<rrE&Krr<,N!!)rI
-rrE)Lrr<,N!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<DV!!(R"!!(R"!!)rIrrDrHrW%N"S(7Ok"f21\
-k.LbF~>
-!<E0!joV7Vs8(IL!<(XO!!V'V!87DQn(RdArn@AP%,([]g&M-,g&M-,!!)KArrE&Prr<,S!!)rN
-rrE)Qrr<,S!!*#PrrDuNrrE)QrrDZErrE#Orr<D[!!(a,!!(a,!!)rNrrDrMrW%N'S(dmn"ektY
-k.1PC~>
-!<E0!joV@Ys8(:G!<(IJ!!UmQ!7_&Ln(%F<rmh#K%+P=XeGoU"eGoU"!!)K<rrE&Krr<,N!!)rI
-rrE)Lrr<,N!!*#KrrDuIrrE)LrrDZ@rrE#Jrr<DV!!(R"!!(R"!!)rIrrDrHrW%N"S(7Ok"f21\
-k.LbF~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)W@rrE&K
-rr<V\!!(R"!!(OL!7fU"!7_&Lrmh#Ks4.,L#1W\Re^XX"o@<j@rRLoJ#LreSe^XX"ec#RKec,UN
-eGoUKec,XLec,W#eXP+hK*A(Nk2s>WJ,~>
-!<E0!joV7Vs8(IL!<(XO!"%?Z!87DQg=cN,o@j3Ern@AP#20%Wg&M-,rW!/V!!(a,!!)WErrE&P
-rr<Va!!(a,!!(^Q!8?-,!87DQrn@APs4[JQ#20%Wg=cN,o@j3ErS%8O#MK.Xg=cN,gAV*PgA_-S
-g&M-PgA_0QgA_/(g7-grJH_bIk2s5TJ,~>
-!<E0!joV@Ys8(:G!<(IJ!"%0U!7_&Le^XX"o@<j@rmh#K#1W\ReGoU"rW!/Q!!(R"!!)W@rrE&K
-rr<V\!!(R"!!(OL!7fU"!7_&Lrmh#Ks4.,L#1W\Re^XX"o@<j@rRLoJ#LreSe^XX"ec#RKec,UN
-eGoUKec,XLec,W#eXP+hK*A(Nk2s>WJ,~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTun^[O;rmgrIrmguJ
-!7h#JrRLiHs4.,Ls4.,Lo@<j@rRLoJ!n@8Nrmh#Ks4.&Js4.,LrRLiHJ^p4>s+:KNs5rIW!.Y~>
-!<E0!joV7Vs8(IL!<(XO!!M!U!8?0*!:nkD!<1^P!"7K\!8?-,!87DQg=lK*n_3m@rn@;Nrn@>O
-!8@AOrS%2Ms4[JQs4[JQo@j3ErS%8O!nmVSrn@APs4[DOs4[JQrS%2MJ_HRHs+(?Is5rIT!.Y~>
-!<E0!joV@Ys8(:G!<(IJ!!LgP!7fWu!:n\?!<1OK!"7<W!7fU"!7_&Le^aTun^[O;rmgrIrmguJ
-!7h#JrRLiHs4.,Ls4.,Lo@<j@rRLoJ!n@8Nrmh#Ks4.&Js4.,LrRLiHJ^p4>s+:KNs5rIW!.Y~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joV7Vs+/mTg4@uNgAc^-U&X9;\c@6~>
-!<E0!joV@Ys+/^OeUc9Dec17*V#TT>]`<Q~>
-!<E0!joD3.eUc8%ea_/nV#TT>]`<Q~>
-!<E0!joD*+g4@t/g@<l#U&X9;\c@6~>
-!<E0!joD3.eUc8%ea_/nV#TT>]`<Q~>
-!<E0!joD3.eUc8)eaA%oeYN6-k.LbF~>
-!<E0!joD*+g4@t3g?sLrg7eQ/k.1PC~>
-!<E0!joD3.eUc8)eaA%oeYN6-k.LbF~>
-!<E0!joV@/eU_IdC5Qd*eaJ+qs4*qFk2s>WJ,~>
-!<E0!joV71g4=g+JVo$Xg@'Rts4X1Hk2s5TJ,~>
-!<E0!joV@/eU`X0Mi*GleaJ+qs4*qFk2s>WJ,~>
-!<E0!joV@/eU_IdC5Zg,mf(c:KDN7]KDN:]rs%#Ls5rIW!.Y~>
-!<E0!joV71g4=g+JW#'Zs8LaPJbm4`Jbm7`rs%2Ns5rIT!.Y~>
-!<E0!joV@/eU`X0Mi3Jns8LRKKDN7]KDN:]rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec1:!]`J.cqRuq/#1]OLk2s>WJ,~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca$_?'[fqSN:4#25dNk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:!]`J.cqRuq/#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXF[I5XT._fec1:!]`S4dKDW@^rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca$_?0agJc!=ars%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:!]`S4dKDW@^rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec1:"^&S-4KDW@^rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca%_Z0Z9Jc!=ars%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:"^&S-4KDW@^rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMX8o@#!;rqs!.h5AXT._fec1:"^&S*6eUrMP^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g&Tk*!;tRL!.ijogAh3PgAca%_Z0W;g4=hQ_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:joFQB!;u!X!.j:&k5YJ\ec1:"^&S*6eUrMP^&S*:eYN6-k.LbF~>
-!<E0!joqR2eS8j#qZ-Srq>gPsq>gMrrW)hsquHbuquHAjquHYrq>^MsrW)r!rVur"q>^MsquH#`
-!!)u!!!*#"!!)u!!!%SOSZMkZrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~>
-!<E0!joqI4g4=h/qZ-TKq>gQLq>gNKrW)iLquHcNquHBCquHZKq>^NLrW)rOrVurPq>^NLquH$9
-!!)uO!!*#P!!)uO!!%T(S_F,Drn@C'rPJU7s4[L(r5/L6#25dNk2s5TJ,~>
-!<E0!joqR2eVf@JqZ-TWq>gQXq>gNWrW)iXquHcZquHBOquHZWq>^NXrW)r[rVur\q>^NXquH$E
-!!)u[!!*#\!!)u[!!%T4S`]tPrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!)u!#lq'.!3E7%XK2F"X8i7rX8i7tX8i7iX8i7rX8i8!X9/I(
-X8r1"!!*#"!!)u!!!*#"!!)5a!!)u!!!*#"!!)u!!!%SOSZMkZrmh%$rOr72rmh%$rOr72#1]OL
-k2s>WJ,~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!)uO#lr]5!8?-,g=cQ)g&M-Kg&M-Mg&M-Bg&M-Kg&M-Og&h?/
-g&V')!!*#P!!)uO!!*#P!!)6:!!)uO!!*#P!!)uO!!%T(S_F,Drn@C'rPJU7rn@C'rPJU7#25dN
-k2s5TJ,~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!)u[#ls,M!9WDDk2l[Ajo>DWjo>DYjo>DNjo>DWjo>D[joYVG
-joG>A!!*#\!!)u[!!*#\!!)6F!!)u[!!*#\!!)u[!!%T4S`]tPrmh%$rOr72rmh%$rOr72#1]OL
-k2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!!)u!#lq'.!3E7%XK2F#X9&C'!;`bs!;iht!:[&i!;W\r!<&u$
-!3E7%r2]kuri?)"rN#u!ri?)"poOJqm]6Bgri?)"rN#u!JZPEDs6fm:s+C<as8W&Js+C9`s8N;R
-V#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V')!!*#P!!)uO#lr]5!8?-,g=cQ*g&_9.!;bCL!;kIM!:\\B!;Y=K!<(UR
-!8?-,r7V,Nrn7>PrRq5Orn7>PptG`Jmb.X@rn7>PrRq5OJ_H[Ks8W)Ps+10ds8W&Os+1-cs8N;W
-U&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!!)u[#ls,M!9WDDk2l[BjoPPF!;bgX!;kmY!:]+N!;YaW!<)$^
-!9WDDr8mtZroO1\rT4([roO1\pu_SVmcFKLroO1\rT4([J``Ncs8W)Ks+C<as8W&Js+C9`s8N;R
-V#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!s#F(!;`bs!;`bu!3?1sX8i7tX8i7iX8i7rX9/I(X8r1"!!*#"
-!!)u!!s#F(!;rnu!;NYq!:Quh!<&u!!<&u!!.h5BXT._fec1:$^&S-1ec1:$^&S*:eYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V')!!*#P!s%'/!;bCL!;bCN!87GLg&M-Mg&M-Bg&M-Kg&h?/g&V')!!*#P
-!!)uO!s%'/!;tON!;P:J!:SVA!<(UO!<(UO!.ijpgAh3PgAca'_Z0Z6gAca'_Z0W?g7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!s%KG!;bgX!;bgZ!9O:Xjo>DYjo>DNjo>DWjoYVGjoG>A!!*#\
-!!)u[!s%KG!;tsZ!;P^V!:T%M!<)$[!<)$[!.j:'k5YJ\ec1:$^&S-1ec1:$^&S*:eYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r1"!!*#"r;c\q!!)nt!!*#"!!)nt!!)nt!!)Mi!!)hrr;cbs!!*#"!!)u!
-r;cbs!!),^!!)qu!!)u!!!%SOSZMkZrmh%$s1SI4qpk_!rk8@3#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V')!!*#Pr;c]J!!)oM!!*#P!!)oM!!)oM!!)NB!!)iKr;ccL!!*#P!!)uO
-r;ccL!!)-7!!)rN!!)uO!!%T(S_F,Drn@C's2+g9qqD($rke^8#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG>A!!*#\r;c]V!!)oY!!*#\!!)oY!!)oY!!)NN!!)iWr;ccX!!*#\!!)u[
-r;ccX!!)-C!!)rZ!!)u[!!%T4S`]tPrmh%$s1SI4qpk_!rk8@3#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!s#F(!;`bs!;ikq!;iht!;iht!<&u!!;3Dn!<&u!!<0&%!3E7%
-qlBi!X8r1"!s#F(!;rnu!<&u!!:-]d!;iht!<&u!!.h5BXT._fec1:%^&S-/ec1:%^&S*:eYN6-
-k.LbF~>
-!<E0!jp.U6g4=h/g&V')!!*#P!s%'/!;bCL!;kLJ!;kIM!;kIM!<(UO!;5%G!<(UO!<1[S!8?-,
-qq;)Og&V')!s%'/!;tON!<(UO!:/>=!;kIM!<(UO!.ijpgAh3PgAca(_Z0Z4gAca(_Z0W?g7eQ/
-k.1PC~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!s%KG!;bgX!;kpV!;kmY!;kmY!<)$[!;5IS!<)$[!<2*_!9WDD
-qrRq[joG>A!s%KG!;tsZ!<)$[!:/bI!;kmY!<)$[!.j:'k5YJ\ec1:%^&S-/ec1:%^&S*:eYN6-
-k.LbF~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!!)u!!!)qu!!)qu!!)qu!!)qu!!)nt!!)u!!!)\n!!)u!!!*#"
-!!)u!!!)u!!W];%r2]kurN#u!ri?)"rN#u!m&U0eqQ'YsrN#u!JZPEDs6fm:s+:Bds8VoFs+C?b
-s8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V')!!*#P!!)uO!!)rN!!)rN!!)rN!!)rN!!)oM!!)uO!!)]G!!)uO!!*#P
-!!)uO!!)uO!W^pSr7V,NrRq5Orn7>PrRq5Om+MF>qUtoLrRq5OJ_H[Ks8W)Ps+(6gs8VoKs+13e
-s8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\
-!!)u[!!)u[!W_?_r8mtZrT4([roO1\rT4([m,e9JqW7bXrT4([J``Ncs8W)Ks+:Bds8VoFs+C?b
-s8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r4#!!)u!!!)u!!!)qu!!)qu!!)qu!!)qu!!)nt!!)u!!!)\n!!)u!!!*#"
-!!)u!!!)qu!!)nt!!)u!!!*#"!!)u!!!)u!rrDYl!!)u!!!*#"!!)u!!!%SOSZMkZrmh%$!knX6
-psoCs$,-B=eYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V**!!)uO!!)uO!!)rN!!)rN!!)rN!!)rN!!)oM!!)uO!!)]G!!)uO!!*#P
-!!)uO!!)rN!!)oM!!)uO!!*#P!!)uO!!)uOrrDZE!!)uO!!*#P!!)uO!!%T(S_F,Drn@C'!lG!;
-ptGb!$,Z`Bg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoGAB!!)u[!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\
-!!)u[!!)rZ!!)oY!!)u[!!*#\!!)u[!!)u[rrDZQ!!)u[!!*#\!!)u[!!%T4S`]tPrmh%$!knX6
-psoCs$,-B=eYN6-k.LbF~>
-!<E0!joqR2eS8j#qZ-Srq>gMrquHbur;Zi!r;cl!quHbuq#L/jq#LGrq>gGp!!)quq>^Msq#LAp
-rrDYlqZ-Srr;_DMS?2bYrmh%$s8VbE$,-B=eYN6-k.LbF~>
-!<E0!joqI4g4=h/qZ-TKq>gNKquHcNr;ZiOr;clOquHcNq#L0Cq#LHKq>gHI!!)rNq>^NLq#LBI
-rrDZEqZ-TKr;_E&SD+#Crn@C's8VbC$,Z`Bg7eQ/k.1PC~>
-!<E0!joqR2eVf@JqZ-TWq>gNWquHcZr;Zi[r;cl[quHcZq#L0Oq#LHWq>gHU!!)rZq>^NXq#LBU
-rrDZQqZ-TWr;_E2SEBkOrmh%$s8VbE$,-B=eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec17%s7:mCrs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t<gAh3PgAc^(s7:gArs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec17%s7:mCrs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec19m^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAc`p_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec19m^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec19krs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t<gAh3PgAc`nrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec19krs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec19nrs=>Xs4*qFk2s>WJ,~>
-!<E0!johC3g4=g+g4@t<gAh3PgAc`qrs=8Vs4X1Hk2s5TJ,~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec19nrs=>Xs4*qFk2s>WJ,~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXN7IC!.h5mXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g;qtJ!.ikFgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k/cZb!.j:Rk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!joqR2eS8j#quHVqrW)ktqZ-Vsq>^MsquEau!!(0C!!)nt!!)2`rW)5brr@bSs6fm:s+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!joqI4g4=h/quHWJrW)lMqZ-WLq>^NLquEbN!!(0q!!)oM!!)39rW)6;rr@c,s8W)Ps+14M
-p=fOts8N;WU&X9;\c@6~>
-!<E0!joqR2eVf@JquHWVrW)lYqZ-WXq>^NXquEbZ!!(1(!!)oY!!)3ErW)6Grr@c8s8W)Ks+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i7pX8i7tX8i8!X8i8"X8i8!X8i8"X8i7!X8i7<X8i7^X8i7bX8i6SXT._f
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Ig&M-Mg&M-Og&M-Pg&M-Og&M-Pg&M,Og&M,jg&M-7g&M-;g&M,,gAh3P
-gAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>DUjo>DYjo>D[jo>D\jo>D[jo>D\jo>C[jo>D!jo>DCjo>DGjo>C8k5YJ\
-ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i7qX9&C'!;rnu!<&u!!<0&"!<&u!!<0&"!;NYq!48j*!<'#!!<9/#!<9/"
-!<9/"!;ESo!<0)!!!]M)!3E7%!<'"u!;rqr!;iks!:d,j!;ikr!;iks!!0/$ri?/$XK;C$MQHjG
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Jg&_9.!;tON!<(UO!<1[P!<(UO!<1[P!;P:J!4:JX!<(XO!<:dQ!<:dP
-!<:dP!;G4H!<1^O!!_-W!8?-,!<(XN!;tRK!;kLL!:ebC!;kLK!;kLL!!1dRrn7DRg=lN+MVA+1
-rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>DVjoPPF!;tsZ!<)$[!<2*\!<)$[!<2*\!;P^V!4:nd!<)'[!<;3]!<;3\
-!<;3\!;GXT!<2-[!!_Qc!9WDD!<)'Z!;u!W!;kpX!:f1O!;kpW!;kpX!!23^roO7^k2uXCMWXs=
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i7qX9&C'!;rnu!<&u!!<0&%!3E7%r2]kupoOJqZ`F-,q5ai%X8o?'!3E7%
-rN#u!orJ,nr2]kuri?8'X8o?'!;rnu!;iht!;W\r!<0&"!:m2k!;rnu!<&u!!<&u!!<0)"!<0&%
-!3E7%LogXErmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Jg&_9.!;tON!<(UO!<1[S!8?-,r7V,NptG`JZe>BZq:Z)Sg&Tj\!8?-,
-rRq5Op"BBGr7V,Nrn7MUg&Tj\!;tON!;kIM!;Y=K!<1[P!:nhD!;tON!<(UO!<(UO!<1^P!<1[S
-!8?-,Lt_n/rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>DVjoPPF!;tsZ!<)$[!<2*_!9WDDr8mtZpu_SVZfV5fq;qq_joFQ+!9WDD
-rT4([p#Z5Sr8mtZroO@ajoFQ+!;tsZ!;kmY!;YaW!<2*\!:o7P!;tsZ!<)$[!<)$[!<2-\!<2*_
-!9WDDM!"a;rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i7rX8i8"X8i8!XS`(sXSi.sX8i7!X8i7rXT&:tX8i8!X8i7nX9J[+X8o?'
-!<0)"!;NVq!;iht!;`bs!;rnu!;!8l!<&u!!;ii"!3E7%r2]kuri?/$X8n$Ws6fm:s+C@Op=91q
-s8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Kg&M-Pg&M-OgACsLgAM$Lg&M,Og&M-KgA_0Mg&M-Og&M-Gg'.Q2g&Tj\
-!<1^P!;P7J!;kIM!;bCL!;tON!;"nE!<(UO!;kIP!8?-,r7V,Nrn7DRg&Qo^s8W)Ps+14Mp=fOt
-s8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>DWjo>D\jo>D[k555Xk5>;Xjo>C[jo>DWk5PGYjo>D[jo>DSjothJjoFQ+
-!<2-\!;P[V!;kmY!;bgX!;tsZ!;#=Q!<)$[!;km\!9WDDr8mtZroO7^joC2!s8W)Ks+C@Op=91q
-s8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X8i8"XS`(sX8i8!X8i8"X9/I(X8r1"!!)u!!!'.&!!)hr!!)hr!s#F(
-!;*>s!3E7%XK2F$X8i7pX8i7tX8i7sXSMqgX8i8!X8i7tX9/I(X8r$srr@eTs6fm:s+C@Op=91q
-s8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&M-PgACsLg&M-Og&M-Pg&h?/g&V')!!)uO!!'.T!!)iK!!)iK!s%'/
-!;+tL!8?-,g=cQ+g&M-Ig&M-Mg&M-LgA1g@g&M-Og&M-Mg&h?/g&Up%rr@f-s8W)Ps+14Mp=fOt
-s8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[jo>D\k555Xjo>D[jo>D\joYVGjoG>A!!)u[!!'.`!!)iW!!)iW!s%KG
-!;,CX!9WDDk2l[Cjo>DUjo>DYjo>DXk5#)Ljo>D[jo>DYjoYVGjoG2=rr@f9s8W)Ks+C@Op=91q
-s8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!'.&!!)hr!!)hr
-!s#F(!;!8p!3?1%!<&u!!;EPp!;iht!;`bs!:?if!<&u!!;ii"!3E7%poFMsX8n$Ws6fm:s+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!'.T!!)iK!!)iK
-!s%'/!;"nI!87G,!<(UO!;G1I!;kIM!;bCL!:AJ?!<(UO!;kIP!8?-,pt>cLg&Qo^s8W)Ps+14M
-p=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!'.`!!)iW!!)iW
-!s%KG!;#=U!9O:D!<)$[!;GUU!;kmY!;bgX!:AnK!<)$[!;km\!9WDDpuVVXjoC2!s8W)Ks+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X9/I(X8r1"!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!)u!rrBC,!!*#"
-!!)u!!!)eqrrDVkrr<,%!!)u!!!)bp!!)nt!!*#"!!)u!!!)u!!!)Vl!!)qu!!)u!!!)u!!!)u!
-!!*#"!s#F(!/R`Vmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V')!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!)uOrrBCZ!!*#P
-!!)uO!!)fJrrDWDrr<,S!!)uO!!)cI!!)oM!!*#P!!)uO!!)uO!!)WE!!)rN!!)uO!!)uO!!)uO
-!!*#P!s%'/!/TA/s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)u[rrBCf!!*#\
-!!)u[!!)fVrrDWPrr<,_!!)u[!!)cU!!)oY!!*#\!!)u[!!)u[!!)WQ!!)rZ!!)u[!!)u[!!)u[
-!!*#\!s%KG!/Te;s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!joqR2eS8j#q#CDrr;Zi!r;Zi!qZ-Vsq>^Msq#LAprrB@+rW)nur;cYp!!)Skrr<,%!!*#"
-r;c_rquHYrrW)hsr;cJkquH\sr;c_rr;churrE)#rW%hWs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!joqI4g4=h/q#CEKr;ZiOr;ZiOqZ-WLq>^NLq#LBIrrB@YrW)oNr;cZI!!)TDrr<,S!!*#P
-r;c`KquHZKrW)iLr;cKDquH]Lr;c`Kr;ciNrrE)QrW%i0s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!joqR2eVf@Jq#CEWr;Zi[r;Zi[qZ-WXq>^NXq#LBUrrB@erW)oZr;cZU!!)TPrr<,_!!*#\
-r;c`WquHZWrW)iXr;cKPquH]Xr;c`Wr;ciZrrE)]rW%i<s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXR3(h!.h5HXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g?mSo!.ik!gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k3_:2!.j:-k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXR3(h!.h5HXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g?mSo!.ik!gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k3_:2!.j:-k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXRE7h!<'"o!7\+F!.h67XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g@*bo!<(XH!7]`t!.ikegAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k3qI2!<)'T!7^0+!.j:qk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXPU&Y!.h5XXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g>:Q`!.ik1gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k2,8#!.j:=k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%X3eS8j#XSMnsXSW"qXSi.uXSr5!XSr3OX8i7hXSr4sXSr3NXO4-Lmf(c:KE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!jp%O5g4=h/gA1dLgA:mJgAM$NgAV*OgAV)(g&M-AgAV*LgAV)'g<nXSs8LaPJcGcDgAca(
-rs%2Ns5rIT!.Y~>
-!<E0!jp%X3eVf@Jk5#&Xk5,/Vk5>;Zk5GA[k5G@4jo>DMk5GAXk5G@3k0`>ks8LRKKE(uFec1:%
-rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!!*#"!!)u!!!*#"rrE&"rr@VO!!)Df!!)hr!!%SOdB*B9
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!!*#P!!)uO!!*#PrrE&Prr@W(!!)E?!!)iK!!%T(dG"X#
-rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!!*#\!!)u[!!*#\rrE&\rr@W4!!)EK!!)iW!!%T4dH:K/
-rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!s#F(!;ii%!3E7%X8o@$!<'#!!3E:%!!]M)!3?/#XSr5"
-XSr4mXS`(tX8r=&rW)hsrW)er!!)hr!!%SOdB*B9rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!s%'/!;kIS!8?-,g&Tk+!<(XO!3FoS!!_-W!87DQgAV*P
-gAV*FgACsMg&V3-rW)iLrW)fK!!)iK!!%T(dG"X#rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!s%KG!;km_!9WDDjoFQC!<)'[!3G>_!!_Qc!9O7]k5GA\
-k5GARk555YjoGJErW)iXrW)fW!!)iW!!%T4dH:K/rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX9/I(X8r4#!!)u!!s#F(!;ii(!3E7%X8o=%X8r4#rrB+$rr<;*!!')#XK2F#
-X8i7nX8i8!X8i8"XT&;"X8i8!X8i8"X8i7tX8i7rX8i6OXO4-Lmf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=hSg&h?/g&V**!!)uO!s%'/!;kIV!8?-,g&Th,g&V**rrB+Rrr<;X!!(^Qg=cQ*
-g&M-Gg&M-Og&M-PgA_0Pg&M-Og&M-Pg&M-Mg&M-Kg&M,(g<nXSs8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@bjoYVGjoGAB!!)u[!s%KG!;kmb!9WDDjoFNDjoGABrrB+^rr<;d!!)-]k2l[B
-jo>DSjo>D[jo>D\k5PG\jo>D[jo>D\jo>DYjo>DWjo>C4k0`>ks8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8juXSi.tX8i8"X8i8"X8i7tX9em.X8o?'!3E7%V5st'XK2E'X8o?'!<&u!!;3Dn
-!;W\r!<&u!!<0&"!;rnu!;rnu!;W\r!.h6!XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSgAM$Mg&M-Pg&M-Pg&M-Mg'Ic5g&Tj\!8?-,V:l4Ug=cP\g&Tj\!<(UO!;5%G
-!;Y=K!<(UO!<1[P!;tON!;tON!;Y=K!.ikOgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bk5>;Yjo>D\jo>D\jo>DYjp;%MjoFQ+!9WDDV</'ak2l[+joFQ+!<)$[!;5IS
-!;YaW!<)$[!<2*\!;tsZ!;tsZ!;YaW!.j:[k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX9/I(X8r4#r;cet!!)nt#lq'.!3E7%XK2DuX9J[+X8o?'!<0&%!3E7%o;qlj
-rN#u!rN#u!riGqrr2]kuq5aPrJZR8#s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&h?/g&V**r;cfM!!)oM#lr]5!8?-,g=cP'g'.Q2g&Tj\!<1[S!8?-,o@j-C
-rRq5OrRq5Orn@2Kr7V,Nq:YfKJ_JN*s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjoYVGjoGABr;cfY!!)oY#ls,M!9WDDk2lZ?jothJjoFQ+!<2*_!9WDDoB,uO
-rT4([rT4([roX%Wr8mtZq;qYWJ`bABs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i7sX8i8"X8i8"X8i7tX9/I(X8r1"!!&js"ota+!3E7%ri?2%XK2EjX8i8"
-X8i8!X8i8"X8i7oX8i7rX8i6OXO4-Lmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Lg&M-Pg&M-Pg&M-Mg&h?/g&V')!!&kL"p!B2!8?-,rn7GSg=cPqg&M-P
-g&M-Og&M-Pg&M-Hg&M-Kg&M,(g<nXSs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DXjo>D\jo>D\jo>DYjoYVGjoG>A!!&kX"p!fJ!9WDDroO:_k2l[4jo>D\
-jo>D[jo>D\jo>DTjo>DWjo>C4k0`>ks8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i7sX8i8!X8i8"X8i8!X8i8"X8i7uX8i8!XT&:$X9J[+X8o?'!<'#!!;!8l
-!<&u!!<0&"!<&u!!<&u!!<&u!!;rnu!;W\r!.h6!XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSg&M-Lg&M-Og&M-Pg&M-Og&M-Pg&M-Ng&M-OgA_/Rg'.Q2g&Tj\!<(XO!;"nE
-!<(UO!<1[P!<(UO!<(UO!<(UO!;tON!;Y=K!.ikOgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bjo>DXjo>D[jo>D\jo>D[jo>D\jo>DZjo>D[k5PF^jothJjoFQ+!<)'[!;#=Q
-!<)$[!<2*\!<)$[!<)$[!<)$[!;tsZ!;YaW!.j:[k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%X3eS8j#XSi.tXSr4uX8i8"XSi.uXSr5!XSr5!XT&:%XSr2'X8i7%!!)u!!!)VlquH_t
-rW)u"rW)nur;cetquH\squD;Le#`T;rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp%O5g4=h/gAM$MgAV*Ng&M-PgAM$NgAV*OgAV*OgA_/SgAV'Ug&M-,!!)uO!!)WEquH`M
-rW)uPrW)oNr;cfMquH]LquD<%e(Xj%rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp%X3eVf@Jk5>;Yk5GAZjo>D\k5>;Zk5GA[k5GA[k5PF_k5G>ajo>DD!!)u[!!)WQquH`Y
-rW)u\rW)oZr;cfYquH]XquD<1e)p]1rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXS/^q!.h5?XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g@j5#!.ijmgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k4[p;!.j:$k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXS/^q!.h5?XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g@j5#!.ijmgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k4[p;!.j:$k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXSAmq!<'"o!.h5MXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+gA'D#!<(XH!.ik&gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k4n*;!<)'T!.j:2k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXP0`U!.h5[XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g=k6\!.ik4gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k1\qt!.j:@k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%X3eS8j#XSMqrXSi-MXQlke!9pTa!:$Zc!.h6:XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp%O5g4=h/gA1gKgAM#&g?RAl!9r5:!:&;<!.ikhgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp%X3eVf@Jk5#)Wk5>:2k3D(/!9rYF!:&_H!.j:tk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jq+?=eS8j#X8o?'!3E7%XK2F#X8i6OXO+$K!9pQb!.h6:XT._fec1:%s7Y"CKE(rUeYN6-
-k.LbF~>
-!<E0!jq+6?g4=h/g&Tj\!8?-,g=cQ*g&M,(g<eOR!9r2;!.ikhgAh3PgAca(s7Y1HJcG`Sg7eQ/
-k.1PC~>
-!<E0!jq+?=eVf@JjoFQ+!9WDDk2l[Bjo>C4k0W5j!9rVG!.j:tk5YJ\ec1:%s7Y"CKE(rUeYN6-
-k.LbF~>
-!<E0!jq"9<eS8j#X8o?'!3E7%X8r.!!!)u!rrALhrr<A,!!')#!3?/#XSr4sXSr4tXS`(sXSr4s
-XSi.hX8i7tXSi.rXSr2#X8r7$!W]='rW)nurW)nurrE)#rr@VO!j(hXrmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!jq"0>g4=h/g&Tj\!8?-,g&V$(!!)uOrrAMArr<AZ!!(^Q!87DQgAV*LgAV*MgACsLgAV*L
-gAM$Ag&M-MgAM$KgAV'Qg&V-+!W^s.rW)oNrW)oNrrE)Qrr@W(!o!\Srn@C's8VfHs+14M#25dN
-k2s5TJ,~>
-!<E0!jq"9<eVf@JjoFQ+!9WDDjoG;@!!)u[rrAMMrr<Af!!)-]!9O7]k5GAXk5GAYk555Xk5GAX
-k5>;Mjo>DYk5>;Wk5G>]joGDC!W_BFrW)oZrW)oZrrE)]rr@W4!p9O_rmh%$s8VfCs+C@O#1]OL
-k2s>WJ,~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i8!XT&9gXT&8+X8i7%!3E7%!<0&"!<&u!!<0&"!<0&"!<&u!
-!;iht!;rnu!<&u!!:m2k!;rnu!<&u!!<&u!!<0)"!<0&%!3E7%r2]kuri?)"rN$/&X8o?'!.h6O
-mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M-OgA_/@gA_-Yg&M-,!8?-,!<1[P!<(UO!<1[P!<1[P!<(UO
-!;kIM!;tON!<(UO!:nhD!;tON!<(UO!<(UO!<1^P!<1[S!8?-,r7V,Nrn7>PrRqDTg&Tj\!.il(
-s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>D[k5PFLk5PDejo>DD!9WDD!<2*\!<)$[!<2*\!<2*\!<)$[
-!;kmY!;tsZ!<)$[!:o7P!;tsZ!<)$[!<)$[!<2-\!<2*_!9WDDr8mtZroO1\rT47`joFQ+!.j;4
-s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX9em.X8o?'!3E7%rN#u!ri?)"r2]u#XK2EqX8i7pX8i7k
-X8i8!X8i7tX9/I(X8r1"!!*#"!W];%r2]kur2]kuriH,"JZSgOs6fm:s+C@Op=91qs8N;RV#TT>
-]`<Q~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g'Ic5g&Tj\!8?-,rRq5Orn7>Pr7V5Qg=cQ#g&M-Ig&M-D
-g&M-Og&M-Mg&h?/g&V')!!*#P!W^pSr7V,Nr7V,Nrn@APJ_L(Vs8W)Ps+14Mp=fOts8N;WU&X9;
-\c@6~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([roO1\r8n(]k2l[;jo>DUjo>DP
-jo>D[jo>DYjoYVGjoG>A!!*#\!W_?_r8mtZr8mtZroX4\J`cpns8W)Ks+C@Op=91qs8N;RV#TT>
-]`<Q~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX9em.X8o?'!3E7%rN#u!riGqrriH%uqQ'YsqlK\qnuMfk
-rN#u!qlBl"XK2EsXT&:tXSMqrX8i6OXSf1"mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g'Ic5g&Tj\!8?-,rRq5Orn@2Krn@;NqUtoLqqCrJo%F'D
-rRq5Oqq;,Pg=cQ%gA_0MgA1gKg&M,(gAK\)s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([roX%WroX.ZqW7bXqr[eVo&]oP
-rT4([qrRt\k2l[=k5PGYk5#)Wjo>C4k5=BAs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jsX8i8!X8i7tX8i6aX9em.X8o?'!3E7%rN#u!ri?)"oW/#mqlBbtr2]kurN#u!
-nuMfkrN#u!qlBl"XK2EsX9&C'!;rnu!;NVq!.h6LXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hQg&M-Og&M-Mg&M,:g'Ic5g&Tj\!8?-,rRq5Orn7>Po\'9Fqq;#Mr7V,NrRq5O
-o%F'DrRq5Oqq;,Pg=cQ%g&_9.!;tON!;P7J!.il%gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@`jo>D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([roO1\o]?,RqrRkYr8mtZrT4([
-o&]oPrT4([qrRt\k2l[=joPPF!;tsZ!;P[V!.j;1k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jsX8i7uX8i8!X8i7uXT&9gX9em.X8o?'!3E7%rN#u!rN#u!rN$)$XK2F#X8i7t
-X8i7uX8i8"XT&:kX8i7uX8i8!X8i8!X8i8!X8i8"X9/I(X8r1"!!)u!!!*#"!!%SOr2fqdrmh%$
-s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hQg&M-Ng&M-Og&M-NgA_/@g'Ic5g&Tj\!8?-,rRq5OrRq5OrRq>Rg=cQ*g&M-M
-g&M-Ng&M-PgA_0Dg&M-Ng&M-Og&M-Og&M-Og&M-Pg&h?/g&V')!!)uO!!*#P!!%T(r7_2Nrn@C'
-s8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@`jo>DZjo>D[jo>DZk5PFLjp;%MjoFQ+!9WDDrT4([rT4([rT41^k2l[Bjo>DY
-jo>DZjo>D\k5PGPjo>DZjo>D[jo>D[jo>D[jo>D\joYVGjoG>A!!)u[!!*#\!!%T4r9"%Zrmh%$
-s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juXS`(sXSi.rXT&9hXSr2%X8i7%quHburW)nur;chuquHYrquH\srW!#$!!)\n
-quH\sr;c_rr;churrE)#rW)nur;chur;_DMriH.frmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSgACsLgAM$KgA_/AgAV'Sg&M-,quHcNrW)oNr;ciNquHZKquH]LrW!#R!!)]G
-quH]Lr;c`Kr;ciNrrE)QrW)oNr;ciNr;_E&rn@DPrn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bk555Xk5>;Wk5PFMk5G>_jo>DDquHcZrW)oZr;ciZquHZWquH]XrW!#^!!)]S
-quH]Xr;c`Wr;ciZrrE)]rW)oZr;ciZr;_E2roX7\rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXN[d@!.h5qXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g<A:G!.ikJgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k02u_!.j:Vk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMX8o@#!;rqs!;rqs!;rqs!:m2k!;`eq!:m2k!;NYq!:m2k!;NYq!;!;j!<'"r
-!:m5k!;rqt!:m5i!;iks!;iht!;W_q!;`es!;iht!:m5kmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g&Tk*!;tRL!;tRL!;tRL!:nhD!;bFJ!:nhD!;P:J!:nhD!;P:J!;"qC!<(XK
-!:nkD!;tRM!:nkB!;kLL!;kIM!;Y@J!;bFL!;kIM!:nkDs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:joFQB!;u!X!;u!X!;u!X!:o7P!;bjV!:o7P!;P^V!:o7P!;P^V!;#@O!<)'W
-!:o:P!;u!Y!:o:N!;kpX!;kmY!;YdV!;bjX!;kmY!:o:Ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSW"rXSr4uXSW"qXSr2#X8r7$q>^MsqZ+%*!!)u!!!*#"!!)u!!!*#"!!)u!
-!!*#"!!)u!!!)YmrrDqt!!)u!!!)YmrrDkr!W];%o;qrlq5aVtX8qmo!!)u!!!*#"!!)u!!!)Vl
-!W];%rN#u!ri?)"oW/#mrN#u!rN#u!q5jSrqQ'YspoFMsX8r1"rrDVks6fm:s+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!jp%O5g4=h/gA:mKgAV*NgA:mJgAV'Qg&V-+q>^NLqZ+%X!!)uO!!*#P!!)uO!!*#P!!)uO
-!!*#P!!)uO!!)ZFrrDrM!!)uO!!)ZFrrDlK!W^pSo@j3Eq:YlMg&Ud!!!)uO!!*#P!!)uO!!)WE
-!W^pSrRq5Orn7>Po\'9FrRq5OrRq5Oq:biKqUtoLpt>cLg&V')rrDWDs8W)Ps+14Mp=fOts8N;W
-U&X9;\c@6~>
-!<E0!jp%X3eVf@Jk5,/Wk5GAZk5,/Vk5G>]joGDCq>^NXqZ+%d!!)u[!!*#\!!)u[!!*#\!!)u[
-!!*#\!!)u[!!)ZRrrDrY!!)u[!!)ZRrrDlW!W_?_oB-&Qq;q_YjoG&9!!)u[!!*#\!!)u[!!)WQ
-!W_?_rT4([roO1\o]?,RrT4([rT4([q<%\WqW7bXpuVVXjoG>ArrDWPs8W)Ks+C@Op=91qs8N;R
-V#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X8i7uX8i7uX8i8!X8i8"X8i8"XT&;!X8i8!X9/I(X8r4#!!'I/!!)u!
-!!*#"!!)u!!!*#"!!)u!!!*#"!!)u!!!)\n!W];%qlBbtrN#u!orJ2pX8r't!W];%oW/)oX8r't
-!W];%oW/#mrN#u!q5aPro;hunX8r4#!!)u!!!)\n!!)u!!!*#"!!)hr!W];%qlBbtpT+DrX8r4#
-!W];%nuVlZrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&M-Ng&M-Ng&M-Og&M-Pg&M-PgA_0Og&M-Og&h?/g&V**!!'I]!!)uO
-!!*#P!!)uO!!*#P!!)uO!!*#P!!)uO!!)]G!W^pSqq;#MrRq5Op"BHIg&Us&!W^pSo\'?Hg&Us&
-!W^pSo\'9FrRq5Oq:YfKo@a6Gg&V**!!)uO!!)]G!!)uO!!*#P!!)iK!W^pSqq;#MpY#ZKg&V**
-!W^pSo%O-Drn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D[jo>DZjo>DZjo>D[jo>D\jo>D\k5PG[jo>D[joYVGjoGAB!!'Ii!!)u[
-!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)]S!W_?_qrRkYrT4([p#Z;UjoG5>!W_?_o]?2TjoG5>
-!W_?_o]?,RrT4([q;qYWoB$)SjoGAB!!)u[!!)]S!!)u[!!*#\!!)iW!W_?_qrRkYpZ;MWjoGAB
-!W_?_o&fuPrmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X8i8!X9&C'!<&u!!<&u!!<0&"!<&u!!<&u!!<&u$!3E7%r2]kurN-#!
-\?#Z1ri?)"rN#u!ri?)"rN#u!q5aPro;holqlBbtrN#u!o;holqQ'c!XK2EmX8i7sX9/I(X8q^j
-!!)ks!!)Vl!s#F(!<&u!!<&u!!:[&i!<0&"!;EPp!;iht!;NVt!3E7%qlBbtnuVlZrmh%$s8VfC
-s+C@O#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSg&M-Og&M-Og&_9.!<(UO!<(UO!<1[P!<(UO!<(UO!<(UR!8?-,r7V,NrS%8O
-\Cpo_rn7>PrRq5Orn7>PrRq5Oq:YfKo@a0Eqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UTq
-!!)lL!!)WE!s%'/!<(UO!<(UO!:\\B!<1[P!;G1I!;kIM!;P7M!8?-,qq;#Mo%O-Drn@C's8VfH
-s+14M#25dNk2s5TJ,~>
-!<E0!johL1eVf@bjo>D[jo>D[joPPF!<)$[!<)$[!<2*\!<)$[!<)$[!<)$^!9WDDr8mtZrT=+[
-\E3bkroO1\rT4([roO1\rT4([q;qYWoB$#QqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFl4
-!!)lX!!)WQ!s%KG!<)$[!<)$[!:]+N!<2*\!;GUU!;kmY!;P[Y!9WDDqrRkYo&fuPrmh%$s8VfC
-s+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X8i8!X9&C'!<&u!!<&u!!<0&"!;NVt!3E7%rN#u!r2]kurN-#!\Z>c2
-rN#u!rN#u!ri?)"rN#u!qQ'YsnuMfkqlBbtrN#u!o;holqQ'c!XK2EmX8i7sX9/I(X8qak!!)hr
-!!)Vl!s#F(!<&u!!<0)"!:d,j!<&u"!3H/"qlBbtqlBeuXSr4tX9/I(X8r.!!!)Sks6fm:s+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&M-Og&_9.!<(UO!<(UO!<1[P!;P7M!8?-,rRq5Or7V,NrS%8O\_7#`
-rRq5OrRq5Orn7>PrRq5OqUtoLo%F'Dqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UWr!!)iK
-!!)WE!s%'/!<(UO!<1^P!:ebC!<(UP!8@DPqq;#Mqq;&NgAV*Mg&h?/g&V$(!!)TDs8W)Ps+14M
-p=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[jo>D[joPPF!<)$[!<)$[!<2*\!;P[Y!9WDDrT4([r8mtZrT=+[\`Nkl
-rT4([rT4([roO1\rT4([qW7bXo&]oPqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFo5!!)iW
-!!)WQ!s%KG!<)$[!<2-\!:f1O!<)$\!9X7\qrRkYqrRnZk5GAYjoYVGjoG;@!!)TPs8W)Ks+C@O
-p=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juX8i8!X8i8"X8i8"X8i8"X8i8"X8i7uXSi.sXSi.tX8i7uX8i7-X8i7uX8i8!
-X8i8"X8i8!X8i7tX8i7uXSW"qX8i7tX8i8!X8i8"XSW"qX8i7tX8i8"X8i7kX8i7tX8i8"X8i7j
-X8i7qX8i7mX8i8"X8i7uXSr2#X8qgm!!)qurrE&"!!)qu!!)ntrrE&"!!*#"!!*#"!!)nt!!)Sk
-s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Og&M-Pg&M-Pg&M-Pg&M-Pg&M-NgAM$LgAM$Mg&M-Ng&M,[g&M-Ng&M-O
-g&M-Pg&M-Og&M-Mg&M-NgA:mJg&M-Mg&M-Og&M-PgA:mJg&M-Mg&M-Pg&M-Dg&M-Mg&M-Pg&M-C
-g&M-Jg&M-Fg&M-Pg&M-NgAV'Qg&U]t!!)rNrrE&P!!)rN!!)oMrrE&P!!*#P!!*#P!!)oM!!)TD
-s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D[jo>D\jo>D\jo>D\jo>D\jo>DZk5>;Xk5>;Yjo>DZjo>Cgjo>DZjo>D[
-jo>D\jo>D[jo>DYjo>DZk5,/Vjo>DYjo>D[jo>D\k5,/Vjo>DYjo>D\jo>DPjo>DYjo>D\jo>DO
-jo>DVjo>DRjo>D\jo>DZk5G>]joFu7!!)rZrrE&\!!)rZ!!)oYrrE&\!!*#\!!*#\!!)oY!!)TP
-s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juXS`(sXS`(tXSi.nX8i8!X9/I(X8r4#!!)qu!!'F.!!)nt!!)u!!!*#"!!)u!
-!!)qu!!)Mi!!)nt!!)u!!!)Vl!!)nt!!*#"!!)Sk!!)nt!!*#"!!)Sk!!)eq!!)Vl!!*#"!!)eq
-!!)Vl!!)nt!!)u!!!)qu!!)nt!!)u!!!*#"!!*#"!!)nt!!)Sks6fm:s+C@Op=91qs8N;RV#TT>
-]`<Q~>
-!<E0!johC3g4=hSgACsLgACsMgAM$Gg&M-Og&h?/g&V**!!)rN!!'F\!!)oM!!)uO!!*#P!!)uO
-!!)rN!!)NB!!)oM!!)uO!!)WE!!)oM!!*#P!!)TD!!)oM!!*#P!!)TD!!)fJ!!)WE!!*#P!!)fJ
-!!)WE!!)oM!!)uO!!)rN!!)oM!!)uO!!*#P!!*#P!!)oM!!)TDs8W)Ps+14Mp=fOts8N;WU&X9;
-\c@6~>
-!<E0!johL1eVf@bk555Xk555Yk5>;Sjo>D[joYVGjoGAB!!)rZ!!'Fh!!)oY!!)u[!!*#\!!)u[
-!!)rZ!!)NN!!)oY!!)u[!!)WQ!!)oY!!*#\!!)TP!!)oY!!*#\!!)TP!!)fV!!)WQ!!*#\!!)fV
-!!)WQ!!)oY!!)u[!!)rZ!!)oY!!)u[!!*#\!!*#\!!)oY!!)TPs8W)Ks+C@Op=91qs8N;RV#TT>
-]`<Q~>
-!<E0!johL1eS8juX8i7sX8i7uX9/I(X8r7$!!)u!!!)u!!!)u!!!)u!!s#F(!;rnu!4Js/!;`bs
-!<&u!!<0&"!<&u!!<&u!!:Quh!;iht!<&u!!;!8l!;ikp!;!8l!;ikp!;*>m!;EPp!;!;h!;W\r
-!;*>m!;`bs!<&u!!;rnu!;iht!<&u!!<0(s!;rnu!:m5kmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Lg&M-Ng&h?/g&V-+!!)uO!!)uO!!)uO!!)uO!s%'/!;tON!4LS]!;bCL
-!<(UO!<1[P!<(UO!<(UO!:SVA!;kIM!<(UO!;"nE!;kLI!;"nE!;kLI!;+tF!;G1I!;"qA!;Y=K
-!;+tF!;bCL!<(UO!;tON!;kIM!<(UO!<1^L!;tON!:nkDs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DXjo>DZjoYVGjoGDC!!)u[!!)u[!!)u[!!)u[!s%KG!;tsZ!4M"i!;bgX
-!<)$[!<2*\!<)$[!<)$[!:T%M!;kmY!<)$[!;#=Q!;kpU!;#=Q!;kpU!;,CR!;GUU!;#@M!;YaW
-!;,CR!;bgX!<)$[!;tsZ!;kmY!<)$[!<2-X!;tsZ!:o:Ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i7sX8i7uX9/I(X8r4#!!*#"rrE&"!!)u!!!)u!!s#F(!<&u!!;rqu!55H6
-!<&u!!<0&"!<&u!!<0&"!<&u!!<0&"!<&u!!;!8l!;iht!<&u!!;!8l!;EPp!:m2k!;EPp!;ikt
-!;rnu!<&u!!;iht!;`es!;NVq!;W\r!;ikt!;rnu!<&u!!<&u!!<0&"!;rnu!;`bs!<0&"!;`bs
-!;iht!:m5kmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Lg&M-Ng&h?/g&V**!!*#PrrE&P!!)uO!!)uO!s%'/!<(UO!;tRN!57(d
-!<(UO!<1[P!<(UO!<1[P!<(UO!<1[P!<(UO!;"nE!;kIM!<(UO!;"nE!;G1I!:nhD!;G1I!;kLM
-!;tON!<(UO!;kIM!;bFL!;P7J!;Y=K!;kLM!;tON!<(UO!<(UO!<1[P!;tON!;bCL!<1[P!;bCL
-!;kIM!:nkDs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>DXjo>DZjoYVGjoGAB!!*#\rrE&\!!)u[!!)u[!s%KG!<)$[!;u!Z!57Lp
-!<)$[!<2*\!<)$[!<2*\!<)$[!<2*\!<)$[!;#=Q!;kmY!<)$[!;#=Q!;GUU!:o7P!;GUU!;kpY
-!;tsZ!<)$[!;kmY!;bjX!;P[V!;YaW!;kpY!;tsZ!<)$[!<)$[!<2*\!;tsZ!;bgX!<2*\!;bgX
-!;kmY!:o:Ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%X3eS8j#XSi.tXSi,!XSMqqX98O)X8o@$!<'"q!!'+t!;ikt!55K2!<'"t!;rqs!<'"r
-!;3Gk!;rqs!;*Aj!;`er!;3Gk!;`er!;rqu!;rqq!;iht!;`es!;W_q!<'"u!;`es!;rqq!;rqt
-!<'"s!;iks!;`er!<0(t!;*Ammf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp%O5g4=h/gAM$MgAM!OgA1gJg&qE0g&Tk+!<(XJ!!(aM!;kLM!57+`!<(XM!;tRL!<(XK
-!;5(D!;tRL!;,"C!;bFK!;5(D!;bFK!;tRN!;tRJ!;kIM!;bFL!;Y@J!<(XN!;bFL!;tRJ!;tRM
-!<(XL!;kLL!;bFK!<1^M!;,"Fs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jp%X3eVf@Jk5>;Yk5>8[k5#)Vjob\HjoFQC!<)'V!!)0Y!;kpY!57Ol!<)'Y!;u!X!<)'W
-!;5LP!;u!X!;,FO!;bjW!;5LP!;bjW!;u!Z!;u!V!;kmY!;bjX!;YdV!<)'Z!;bjX!;u!V!;u!Y
-!<)'X!;kpX!;bjW!<2-Y!;,FRs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jtXSr2#X8r7$r;churW)u"rW)u"q>gPsq>^MsrW)u"rW)u"q>gMrrVuu#!.h5&
-XOXEPmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hRgAV'Qg&V-+r;ciNrW)uPrW)uPq>gQLq>^NLrW)uPrW)uPq>gNKrVuuQ!.ijT
-g==pWs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@ak5G>]joGDCr;ciZrW)u\rW)u\q>gQXq>^NXrW)u\rW)u\q>gNWrVuu]!.j9`
-k1/Vos8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8juX8i8"XT&;#X8i8!X8i8"XT&;"X8i8"X9J[+X8o?'!<0&"!<&u%!3E7%!<0&"
-!<0&+!3E7%XK2E'X8r7$rr@VOJZRD's6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-PgA_0Qg&M-Og&M-PgA_0Pg&M-Pg'.Q2g&Tj\!<1[P!<(US!8?-,!<1[P
-!<1[Y!8?-,g=cP\g&V-+rr@W(J_JZ.s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D\k5PG]jo>D[jo>D\k5PG\jo>D\jothJjoFQ+!<2*\!<)$_!9WDD!<2*\
-!<2*e!9WDDk2l[+joGDCrr@W4J`bMFs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r1"!W];%qlC&'XK2E'!3E7%ri?;(XK2E'X8r7$!!)u!#QUs-!3?1%X8r7$
-#lq'.!3E7%XK2F#X8i7uXT&9OXF[J.XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V')!W^pSqq;;Ug=cP\!8?-,rn7PVg=cP\g&V-+!!)uO#QWT4!87G,g&V-+
-#lr]5!8?-,g=cQ*g&M-NgA_/(g4@u5gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoG>A!W_?_qrS.ak2l[+!9WDDroOCbk2l[+joGDC!!)u[#QX#L!9O:DjoGDC
-#ls,M!9WDDk2l[Bjo>DZk5PF4k(2[Mk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3?1%X8r.!!!)nt!s#F(!<&u&!3?1%X8r.!!!)qu!!)bp
[email protected]:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!87G,g&V$(!!)oM!s%'/!<(UT!87G,g&V$(!!)rN!!)cI
-rr@W(J_Jo5s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9O:DjoG;@!!)oY!s%KG!<)$`!9O:DjoG;@!!)rZ!!)cU
-rr@W4J`bbMs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3E7%X8r.!!!)ntr;cet"TYX*!3?1tX8i7tXSi-MXF[J&
-XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!8?-,g&V$(!!)oMr;cfM"T[91!87GMg&M-MgAM#&g4@u-
-gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9WDDjoG;@!!)oYr;cfY"T[]I!9O:Yjo>DYk5>:2k(2[E
-k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!jp.^4eS8j#X8r*u!!)nt#QUs-!3E7%X8r.!!!)nt!s#F(!<&u&!3E7%X8r.!!!)bp!!%SO
-JZRD's6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.U6g4=h/g&V!'!!)oM#QWT4!8?-,g&V$(!!)oM!s%'/!<(UT!8?-,g&V$(!!)cI!!%T(
-J_JZ.s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!jp.^4eVf@JjoG8?!!)oY#QX#L!9WDDjoG;@!!)oY!s%KG!<)$`!9WDDjoG;@!!)cU!!%T4
-J`bMFs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!jp.^4eS8j#X8r*u!!)nt!s#F(!<0)"!;iht!;iht!<&u$!3E7%riH,"qlBbtr2]kurN#u!
-JZOF(eZAf=rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V!'!!)oM!s%'/!<1^P!;kIM!;kIM!<(UR!8?-,rn@APqq;#Mr7V,NrRq5O
-J_G\/e_:''rn@C's8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG8?!!)oY!s%KG!<2-\!;kmY!;kmY!<)$^!9WDDroX4\qrRkYr8mtZrT4([
-J`_OGe`Qo3rmh%$s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!johL1eS8juX8i8!X9/I(X8r4#!!*#"!!*#"rrDqt!!)nt!!)u!!s#F(!<0)"!;iht!;rqu
-!<0&"!;rqu!.h5&XPBoWmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=hSg&M-Og&h?/g&V**!!*#P!!*#PrrDrM!!)oM!!)uO!s%'/!<1^P!;kIM!;tRN
-!<1[P!;tRN!.ijTg>(E^s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@bjo>D[joYVGjoGAB!!*#\!!*#\rrDrY!!)oY!!)u[!s%KG!<2-\!;kmY!;u!Z
-!<2*\!;u!Z!.j9`k1o,!s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8jtXSi.tXSi.uXSr5!X8i8!XS`(tXSMnsXSr5!X8i8!XS`(tX8r=&rW)hsrr@VO
-JZRY.s6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hRgAM$MgAM$NgAV*Og&M-OgACsMgA1dLgAV*Og&M-OgACsMg&V3-rW)iLrr@W(
-J_Jo5s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@ak5>;Yk5>;Zk5GA[jo>D[k555Yk5#&Xk5GA[jo>D[k555YjoGJErW)iXrr@W4
-J`bbMs8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jOX8i7EX8i7*XSi.WX8i7JXT&:DX8i7FXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=h-g&M,sg&M,XgAM$0g&M-#gA_/rg&M,tgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@<jo>D*jo>Cdk5>;<jo>D/k5PG)jo>D+k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juXSr4VX8i7EX8i7tX8i7`XSr4bXT&:hX8i7VX8i7YX8i7jX8i7`XT&:_X8i7G
-XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hSgAV*/g&M,sg&M-Mg&M-9gAV*;gA_0Ag&M-/g&M-2g&M-Cg&M-9gA_08g&M,u
-gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@bk5GA;jo>D*jo>DYjo>DEk5GAGk5PGMjo>D;jo>D>jo>DOjo>DEk5PGDjo>D,
-k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jsX8i6oX8i7^X8i7bX8i7hX8i7VX8i7YX8i7jX8i7_X8i7_X8i7GXT._fec1:%
-s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hQg&M,Hg&M-7g&M-;g&M-Ag&M-/g&M-2g&M-Cg&M-8g&M-8g&M,ugAh3PgAca(
-s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@`jo>CTjo>DCjo>DGjo>DMjo>D;jo>D>jo>DOjo>DDjo>DDjo>D,k5YJ\ec1:%
-s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jtX9&C'!;iks!!0/$riH)!"fq\(X8i8"XT&;!XSr4tXT&;#XT&:uXSr4mXSr5!
-XSr2(X8i7%X8i8!XSr4tXS`(qXSr4iX8i7tXSi.rXSr2#X8r7$!W]='rW)YnqZ-Srr;cetrrE)#
-rrDVk!!)u!rr<8)!!')#!3H/"s/c2"p8n/lr2fhsrN$#"XSr4bX9&C'XSr4uXSr5!XSr5"XSr4u
-X8i7GXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hRg&_9.!;kLL!!1dRrn@>O"kiqVg&M-PgA_0OgAV*MgA_0QgA_0NgAV*FgAV*O
-gAV'Vg&M-,g&M-OgAV*MgACsJgAV*Bg&M-MgAM$KgAV'Qg&V-+!W^s.rW)ZGqZ-TKr;cfMrrE)Q
-rrDWD!!)uOrr<8W!!(^Q!8@DPs4[GPp=fEEr7_)LrRq8PgAV*;g&_9.gAV*NgAV*OgAV*PgAV*N
-g&M,ugAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@ajoPPF!;kpX!!23^roX1["m,dbjo>D\k5PG[k5GAYk5PG]k5PGZk5GARk5GA[
-k5G>bjo>DDjo>D[k5GAYk555Vk5GANjo>DYk5>;Wk5G>]joGDC!W_BFrW)ZSqZ-TWr;cfYrrE)]
-rrDWP!!)u[rr<8c!!)-]!9X7\s5s:\p?)8Qr9!qXrT4+\k5GAGjoPPFk5GAZk5GA[k5GA\k5GAZ
-jo>D,k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8jtX9&C'!;rnu!<0)"!<9,#!<0)"!<0&"!<&u!!;iht!;ii$!3?1%X8r7$!!*#"
-!!)\n!!)qu!!*#""TYV(XK2F"X8i7tX8i7rX8i8"X8i7kX8i7uX8i8!X8i8!X8i8"XT&;"X9/I(
-X8qgm!!)nt!!)u!!!)u!"TYV(XK2EnX8i7uXT&8*X8i7%!3E7%rN#u!oW/#mqQ'YsrN#u!riH,"
-ri?)"l`:0gXK2F"X8i8"X8i8"X8i8!X8i7uX8i7GXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=hRg&_9.!;tON!<1^P!<:aQ!<1^P!<1[P!<(UO!;kIM!;kIR!87G,g&V-+!!*#P
-!!)]G!!)rN!!*#P"T[6Vg=cQ)g&M-Mg&M-Kg&M-Pg&M-Dg&M-Ng&M-Og&M-Og&M-PgA_0Pg&h?/
-g&U]t!!)oM!!)uO!!)uO"T[6Vg=cPug&M-NgA_-Xg&M-,!8?-,rRq5Oo\'9FqUtoLrRq5Orn@AP
-rn7>Ple2F@g=cQ)g&M-Pg&M-Pg&M-Og&M-Ng&M,ugAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf@ajoPPF!;tsZ!<2-\!<;0]!<2-\!<2*\!<)$[!;kmY!;km^!9O:DjoGDC!!*#\
-!!)]S!!)rZ!!*#\"T[Zbk2l[Ajo>DYjo>DWjo>D\jo>DPjo>DZjo>D[jo>D[jo>D\k5PG\joYVG
-joFu7!!)oY!!)u[!!)u["T[Zbk2l[8jo>DZk5PDdjo>DD!9WDDrT4([o]?,RqW7bXrT4([roX4\
-roO1\lfJ9Lk2l[Ajo>D\jo>D\jo>D[jo>DZjo>D,k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8juX8i8"X8i8"X8i7uX9&C'!;rnu!<0&"!<&u!!;iht!;ikt!;iht!;rnu!;<Ju
-!3E7%XK2F$XT&:qX8i7tX8i7sX8i7uX8i7lX8i8!X8i7tX9/I(X8r1"!!*#"!W];%nZ2]jr2]ku
-qlBbtriH,"n>lTiqlC)(XK2E'X8o?'!<&u!!;*>m!;3Dn!<0&"!;rnu!:6cg!3?1uX8i7uX9/I(
-X8r4#!!)nt!!(?Hs6fm:s+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johC3g4=hSg&M-Pg&M-Pg&M-Ng&_9.!;tON!<1[P!<(UO!;kIM!;kLM!;kIM!;tON!;>+N
-!8?-,g=cQ+gA_0Jg&M-Mg&M-Lg&M-Ng&M-Eg&M-Og&M-Mg&h?/g&V')!!*#P!W^pSn_*sCr7V,N
-qq;#Mrn@APnCdjBqq;>Vg=cP\g&Tj\!<(UO!;+tF!;5%G!<1[P!;tON!:8D@!87GNg&M-Ng&h?/
-g&V**!!)oM!!(@!s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~>
-!<E0!johL1eVf@bjo>D\jo>D\jo>DZjoPPF!;tsZ!<2*\!<)$[!;kmY!;kpY!;kmY!;tsZ!;>OZ
-!9WDDk2l[Ck5PGVjo>DYjo>DXjo>DZjo>DQjo>D[jo>DYjoYVGjoG>A!!*#\!W_?_n`BfOr8mtZ
-qrRkYroX4\nE']NqrS1bk2l[+joFQ+!<)$[!;,CR!;5IS!<2*\!;tsZ!:8hL!9O:Zjo>DZjoYVG
-joGAB!!)oY!!(@-s8W)Ks+C@Op=91qs8N;RV#TT>]`<Q~>
-!<E0!johL1eS8juXS`(tX8i7sX8i7uX8i8"X8i8!X8i7tX8i7tX8i7sXSMqjX9J[+X8o?'!<0&"
-!;EPp!;iht!;`en!;!8l!<&u!!;ii"!3E7%poOJqn>lTir2]kuqlBbtri?)"m]6Bgr2^)&XK2E'
-X8r7$!s#F(!;!8l!;W_o!<0&"!;rnu!:6fe!;iko!<0&%!3E7%qlBbtcE.'6rmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!johC3g4=hSgACsMg&M-Lg&M-Ng&M-Pg&M-Og&M-Mg&M-Mg&M-LgA1gCg'.Q2g&Tj\!<1[P
-!;G1I!;kIM!;bFG!;"nE!<(UO!;kIP!8?-,ptG`JnCdjBr7V,Nqq;#Mrn7>Pmb.X@r7V>Tg=cP\
-g&V-+!s%'/!;"nE!;Y@H!<1[P!;tON!:8G>!;kLH!<1[S!8?-,qq;#McJ&<urn@C's8VfHs+14M
-#25dNk2s5TJ,~>
-!<E0!johL1eVf@bk555Yjo>DXjo>DZjo>D\jo>D[jo>DYjo>DYjo>DXk5#)OjothJjoFQ+!<2*\
-!;GUU!;kmY!;bjS!;#=Q!<)$[!;km\!9WDDpu_SVnE']Nr8mtZqrRkYroO1\mcFKLr8n1`k2l[+
-joGDC!s%KG!;#=Q!;YdT!<2*\!;tsZ!:8kJ!;kpT!<2*_!9WDDqrRkYcK>0,rmh%$s8VfCs+C@O
-#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!s#F(!;`bs!;rnu!<0&"!<&u!!;iht!;iht!;`bs!:Qul!3?1%!<&u!
-!;EPp!;iht!;`bs!:?if!<&u!!;ii"!3E7%poFMsX8qdl!!)qu!!)nt!!*#"!!)Gg!!)qu"ota+
-!3E7%ri?2%XK2EnX8i7sX8i8!X8i8"X8i7uX8i7eX9&C'!;rnu!;NVt!3E7%qlBbtcE.'6rmh%$
-s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.U6g4=h/g&V')!s%'/!;bCL!;tON!<1[P!<(UO!;kIM!;kIM!;bCL!:SVE!87G,!<(UO
-!;G1I!;kIM!;bCL!:AJ?!<(UO!;kIP!8?-,pt>cLg&UZs!!)rN!!)oM!!*#P!!)H@!!)rN"p!B2
-!8?-,rn7GSg=cPug&M-Lg&M-Og&M-Pg&M-Ng&M->g&_9.!;tON!;P7M!8?-,qq;#McJ&<urn@C'
-s8VfHs+14M#25dNk2s5TJ,~>
-!<E0!jp.^4eVf@JjoG>A!s%KG!;bgX!;tsZ!<2*\!<)$[!;kmY!;kmY!;bgX!:T%Q!9O:D!<)$[
-!;GUU!;kmY!;bgX!:AnK!<)$[!;km\!9WDDpuVVXjoFr6!!)rZ!!)oY!!*#\!!)HL!!)rZ"p!fJ
-!9WDDroO:_k2l[8jo>DXjo>D[jo>D\jo>DZjo>DJjoPPF!;tsZ!;P[Y!9WDDqrRkYcK>0,rmh%$
-s8VfCs+C@O#1]OLk2s>WJ,~>
-!<E0!jp.^4eS8j#X8r1"!!*#"!!)u!!s#F(!<0)"!<0&"!<0)"!;iht!;iht!;W\r!<&u!!;3Gn
-!!95%!<&u!!;EPp!;iht!<0&"!<&u!!<&u!!;!8l!;rnu!<&u!!<&u!!<&u!!<0&%!3E7%nuMfk
-qlBbtrN#u!rN#u!m]6Bgr2^)&XK2E'X8r4#rrDVk!!*#"!!*#"!!*#"rrE&"rrE&"!!)qurrDVk
-!s#F(!;rnu!<&u!!<'#!!;`bs!7%\Gmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!jp.U6g4=h/g&V')!!*#P!!)uO!s%'/!<1^P!<1[P!<1^P!;kIM!;kIM!;Y=K!<(UO!;5(G
-!!:jS!<(UO!;G1I!;kIM!<1[P!<(UO!<(UO!;"nE!;tON!<(UO!<(UO!<(UO!<1[S!8?-,o%F'D
-qq;#MrRq5OrRq5Omb.X@r7V>Tg=cP\g&V**rrDWD!!*#P!!*#P!!*#PrrE&PrrE&P!!)rNrrDWD
-!s%'/!;tON!<(UO!<(XO!;bCL!7'<us8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!jp.^4eVf@JjoG>A!!*#\!!)u[!s%KG!<2-\!<2*\!<2-\!;kmY!;kmY!;YaW!<)$[!;5LS
-!!;9_!<)$[!;GUU!;kmY!<2*\!<)$[!<)$[!;#=Q!;tsZ!<)$[!<)$[!<)$[!<2*_!9WDDo&]oP
-qrRkYrT4([rT4([mcFKLr8n1`k2l[+joGABrrDWP!!*#\!!*#\!!*#\rrE&\rrE&\!!)rZrrDWP
-!s%KG!;tsZ!<)$[!<)'[!;bgX!7'a,s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!joqR2eS8j#r;Zi!r;chur;cetrVuu#!<'"u!!95%!<0(t!<0(u!;`eq!;*Am!!95%!<0(u
-!;ikq!;rqt!;ikr!;*Aj!<'"t!;ikr!<0)"!<9/"!;<Ml!;rqs!<'"t!:[&i!<'"u!!TG(!3?/#
-rN#u!nZ;]ir2fkt#-7e)X8i7%rW)hsrrDYlrrE)#rW)nur;c_r!!)ks!!(<Gs6fm:s+C@Op=91q
-s8N;RV#TT>]`<Q~>
-!<E0!joqI4g4=h/r;ZiOr;ciNr;cfMrVuuQ!<(XN!!:jS!<1^M!<1^N!;bFJ!;,"F!!:jS!<1^N
-!;kLJ!;tRM!;kLK!;,"C!<(XM!;kLK!<1^P!<:dP!;>.E!;tRL!<(XM!:\\B!<(XN!!V'V!87DQ
-rRq5On_3sBr7_,M#20%Wg&M-,rW)iLrrDZErrE)QrW)oNr;c`K!!)lL!!(<us8W)Ps+14Mp=fOt
-s8N;WU&X9;\c@6~>
-!<E0!joqR2eVf@Jr;Zi[r;ciZr;cfYrVuu]!<)'Z!!;9_!<2-Y!<2-Z!;bjV!;,FR!!;9_!<2-Z
-!;kpV!;u!Y!;kpW!;,FO!<)'Y!;kpW!<2-\!<;3\!;>RQ!;u!X!<)'Y!:]+N!<)'Z!!VKb!9O7]
-rT4([n`KfNr9!tY#3Gmcjo>DDrW)iXrrDZQrrE)]rW)oZr;c`W!!)lX!!(=,s8W)Ks+C@Op=91q
-s8N;RV#TT>]`<Q~>
-!<E0!johL1eS8j_X8i6OXN.CB!:d,j!7n7O!8adW!;W\r!7%\Gmf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=h=g&M,(g;hnI!:ebC!7om(!8cE0!;Y=K!7'<us8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@Ljo>C4k/ZTa!:f1O!7p<4!8ci<!;YaW!7'a,s8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8j_X8i6OXN%=A!:m2k!7n4O!8X^V!;`bs!6qVFmf(c:KE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johC3g4=h=g&M,(g;_hH!:nhD!7oj(!8Z?/!;bCL!6s6ts8LaPJcGcDgAca(rs%2Ns5rIT
-!.Y~>
-!<E0!johL1eVf@Ljo>C4k/QN`!:o7P!7p94!8Zc;!;bgX!6s[+s8LRKKE(uFec1:%rs%#Ls5rIW
-!.Y~>
-!<E0!johL1eS8jaXSi-MXLYG2!<'"o!5Yc8!62,?mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=h?gAM#&g:>r9!<(XH!5[Cf!63ams8LaPJcGcDgAca(rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf@Nk5>:2k.0XQ!<)'T!5[gr!641$s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%s7CsDrs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(s7CmBrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%s7CsDrs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec17%s7:mCrs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t<gAh3PgAc^(s7:gArs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec17%s7:mCrs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec19m^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAc`p_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec19m^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec19krs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t<gAh3PgAc`nrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec19krs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec17%^%D=2KE(u%V#TT>]`<Q~>
-!<E0!johC3g4=g+g4@t<gAh3PgAc^(_Y!j7JcGc(U&X9;\c@6~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec17%^%D=2KE(u%V#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I5XT._fec17'^&S--ec17.^&S,_V#TT>]`<Q~>
-!<E0!johC3g4=g+g4@t<gAh3PgAc^*_Z0Z2gAc^1_Z0YiU&X9;\c@6~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec17'^&S--ec17.^&S,_V#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%^&S-.ec17.^&S,_V#TT>]`<Q~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(_Z0Z3gAc^1_Z0YiU&X9;\c@6~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%^&S-.ec17.^&S,_V#TT>]`<Q~>
-!<E0!johL1eS8iMXF[I5XT._fec1:%^&S-/ec1:%^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca(_Z0Z4gAca(_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:%^&S-/ec1:%^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:$^&S-0ec1:%^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca'_Z0Z5gAca(_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:$^&S-0ec1:%^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:$^&S-1ec1:$^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca'_Z0Z6gAca'_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:$^&S-1ec1:$^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:#^&S-2ec1:$^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca&_Z0Z7gAca'_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:#^&S-2ec1:$^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:#^&S-3ec1:#^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca&_Z0Z8gAca&_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:#^&S-3ec1:#^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:"^&S-4ec1:#^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca%_Z0Z9gAca&_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:"^&S-4ec1:#^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:"^&S*6eUrMP^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca%_Z0W;g4=hQ_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:"^&S*6eUrMP^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMXF[I5XT._fec1:!]`A*3KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca$_>sW8Jc*Cbrs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:!]`A*3KD`F_rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec1:!]`S4dKDW@^rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca$_?0agJc!=ars%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec1:!]`S4dKDW@^rs%#Ls5rIW!.Y~>
-!<E0!johL1eS8iMXF[I5XT._fec19u^&N`^^&S*:eYN6-k.LbF~>
-!<E0!johC3g4=g+g4@t<gAh3PgAca#_Z,2a_Z0W?g7eQ/k.1PC~>
-!<E0!johL1eVf?:k(2ZTk5YJ\ec19u^&N`^^&S*:eYN6-k.LbF~>
-!<E0!johL1eS8iMmXaebmf(c:KDN7]KDN:]rs%#Ls5rIW!.Y~>
-!<E0!johC3g4=g+s+13/s8LaPJbm4`Jbm7`rs%2Ns5rIT!.Y~>
-!<E0!johL1eVf?:s+13/s8LRKKDN7]KDN:]rs%#Ls5rIW!.Y~>
-!<E0!jo_F0eS9['JaSHarmh%$nG`^CV#TT>]`<Q~>
-!<E0!jo_=2g4=hTJcCZ.rn@C'nG`^HU&X9;\c@6~>
-!<E0!jo_F0eVf"YJcCZ.rmh%$nG`^CV#TT>]`<Q~>
-!<E0!joD3.eUc8)eGt6jrs%#Ls5rIW!.Y~>
-!<E0!joD*+g4@t3g&Q]mrs%2Ns5rIT!.Y~>
-!<E0!joD3.eUc8)eGt6jrs%#Ls5rIW!.Y~>
-!<E0!joD3.eUc8%ea_/nV#TT>]`<Q~>
-!<E0!joD*+g4@t/g@<l#U&X9;\c@6~>
-!<E0!joD3.eUc8%ea_/nV#TT>]`<Q~>
-!<E0!joD3.eUc8%ea_/nV#TT>]`<Q~>
-!<E0!joD*+g4@t/g@<l#U&X9;\c@6~>
-!<E0!joD3.eUc8%ea_/nV#TT>]`<Q~>
-!<E0!joM:.JV/N+LkG$D"f21\k.LbF~>
-!<E0!joM10JUrB'Lk4mG"ektYk.1PC~>
-!<E0!joM:.JV/N+LkG$D"f21\k.LbF~>
-!<E0!joM:.JV/N+M1Yg.ldZ07s5rIW!.Y~>
-!<E0!joM10JUrB'M1G[,le2N9s5rIT!.Y~>
-!<E0!joM:.JV/N+M1Yg.ldZ07s5rIW!.Y~>
-!<E0!jo_F0K7id/!WTias+13OrrTn6s7F#)s6J2=V#TT>]`<Q~>
-!<E0!jo_=2JV!F0!WU#fs+13OrrU(;s7F2.s6JABU&X9;\c@6~>
-!<E0!jo_F0K7id/!WTias+13OrrTn6s7F#)s6J2=V#TT>]`<Q~>
-!<E0!jo_F0K7ij1s8N+P]n-37s/l;%K>%6`p:^M+ldZ07s5rIW!.Y~>
-!<E0!jo_=2JV!L2s8N+N_L_`<s/l;%J\qBcp;6k0le2N9s5rIT!.Y~>
-!<E0!jo_F0K7ij1s8N+P]n-37s/l;%K>%6`p:^M+ldZ07s5rIW!.Y~>
-!<?U-5m#ShKD3(Ys8R]Q^&S+`eUc8Tec17%^&.j)^&S,ueHJ6J5sYJNJ,~>
-!<@-<9ENq!JbR%\s8RWO_Z0Xeg4@t^gAc^(_YaB._Z0Z%g'(/i9M>EdJ,~>
-!<BM*PQKBfKD3(Ys8R]Q^&S+`eUc8Tec17%^&.j)^&S,ueHM2EP`u.JJ,~>
-!!)tU"$tIiKDE4Zrrpr*K>%<bJ^o>%Ygrc+"MOj8e^aWuqRuq/ldZ/)Mdg-]!.Y~>
-!!)t_"&.F"Jbd1]rrq,-J\qHeJ_G\/YhK,."N(3=g=lN*qSN:4le2M9Q#Ue;!.Y~>
-!!)u:"-h>gKDE4Zrrpr*K>%<bJ^o>%Ygrc+"MOj8e^aWuqRuq/ldZ0'`O*":!.Y~>
-!<A&W@KSpHK7j'7rVulIs+:Bds8RZ#J^q!Ts+:Bds8W&JrVuf/s8VE8"[S&U@R1!E~>
-!<ADaE<AngJV!^8rVulNs+(6gs8RZ(J_I?^s+(6gs8W&OrVuf4s8VE="\b2$ED-@_~>
-!<C+<ZicQCK7j'7rVulIs+:Bds8RZ#J^q!Ts+:Bds8W&JrVuf/s8VE8"dI!5[$1Q@~>
-!<A&W@KSpHK7j-9rVufGs+:Bds8RZ#J^q!Ts+:Bds8VuHrVul1s8VE8"[S&U@R1!E~>
-!<ADaE<AngJV!d:rVufLs+(6gs8RZ(J_I?^s+(6gs8VuMrVul6s8VE="\b2$ED-@_~>
-!<C+<ZicQCK7j-9rVufGs+:Bds8RZ#J^q!Ts+:Bds8VuHrVul1s8VE8"dI!5[$1Q@~>
-!<A&W@Kf'JK7gkNrVu`Es+:Bds8RZ#J^q!Ts+:Bds8VoFrVlr4s8VE8"[S&U@R1!E~>
-!<ADaE<T%iJUt\TrVu`Js+(6gs8RZ(J_I?^s+(6gs8VoKrVlr9s8VE="\b2$ED-@_~>
-!<C+<Ziu]EK7gkNrVu`Es+:Bds8RZ#J^q!Ts+:Bds8VoFrVlr4s8VE8"dI!5[$1Q@~>
-!<A&W@KAdFqh+[os+:Bds8RZ#J^q!Ts+:Bds8VlErIb.MldZ/)Mdg-]!.Y~>
-!<ADaE</beqgnOrs+(6gs8RZ(J_I?^s+(6gs8VlJrIP"Kle2M9Q#Ue;!.Y~>
-!<C+<ZiQEAqh+[os+:Bds8RZ#J^q!Ts+:Bds8VlErIb.MldZ0'`O*":!.Y~>
-!<A&W@Kf'JK7gkNrIasss+:Bds8RZ#J^q!Ts+:Bds8VoFrIY0bs8VE8"[S&U@R1!E~>
-!<ADaE<T%iJUt\TrIOh!s+(6gs8RZ(J_I?^s+(6gs8VoKrIG$es8VE="\b2$ED-@_~>
-!<C+<Ziu]EK7gkNrIasss+:Bds8RZ#J^q!Ts+:Bds8VoFrIY0bs8VE8"dI!5[$1Q@~>
-!<A&W@KSpHK7j-9rIb$us+:Bds8RZ#J^q!Ts+:Bds8VuHrIb*_s8VE8"[S&U@R1!E~>
-!<ADaE<AngJV!d:rIOn#s+(6gs8RZ(J_I?^s+(6gs8VuMrIOsbs8VE="\b2$ED-@_~>
-!<C+<ZicQCK7j-9rIb$us+:Bds8RZ#J^q!Ts+:Bds8VuHrIb*_s8VE8"dI!5[$1Q@~>
-!<A&W@KSpHK7j'7rIb+"s+:Bds8RZ#J^q!Ts+:Bds8W&JrIb$]s8VE8"[S&U@R1!E~>
-!<ADaE<AngJV!^8rIOt%s+(6gs8RZ(J_I?^s+(6gs8W&OrIOm`s8VE="\b2$ED-@_~>
-!<C+<ZicQCK7j'7rIb+"s+:Bds8RZ#J^q!Ts+:Bds8W&JrIb$]s8VE8"dI!5[$1Q@~>
-!<A&W@KSpHK7j!5rIY:(K7gl;s+/^OeZdU(K*8mfs4,ZuKDN:]s6J2=6&T2]5lcE~>
-!<ADaE<AngJV!X6rIG.+JUt]<s+/mTg9B<2JHWjis4Z3*Jbm7`s6JAB9U0U;9E9S~>
-!<C+<ZicQCK7j!5rIY:(K7gl;s+/^OeZdU(K*8mfs4,ZuKDN:]s6J2=Pf:#:PQ64~>
-!<A&W@KSpHK7ip3r.>'as8RZ#J^q!Ts+:Bds8W%Mpq?_-ldZ/)Mdg-]!.Y~>
-!<ADaE<AngJV!R4r.+pds8RZ(J_I?^s+(6gs8W%Kpqm(2le2M9Q#Ue;!.Y~>
-!<C+<ZicQCK7ip3r.>'as8RZ#J^q!Ts+:Bds8W%Mpq?_-ldZ0'`O*":!.Y~>
-!<A&W@KSpHK7ij1rdt9cs8RY&JV1+X"MOj8K7im2s8VE8"[S&U@R1!E~>
-!<ADaE<AngJV!L2rdb-fs8RY$JUstT"N(3=JV!O3s8VE="\b2$ED-@_~>
-!<C+<ZicQCK7ij1rdt9cs8RY&JV1+X"MOj8K7im2s8VE8"dI!5[$1Q@~>
-!<A&W@KSpHK7id/!e\2dJV/N+Xb-\gs+BsWs8VE8"[S&U@R1!E~>
-!<ADaE<AngJV!F0!eJ5gJUrB'XapPjs+0gZs8VE="\b2$ED-@_~>
-!<C+<ZicQCK7id/!e\2dJV/N+Xb-\gs+BsWs8VE8"dI!5[$1Q@~>
-!<A&W@KSpHK7eaTJcCW-ldZ/)Mdg-]!.Y~>
-!<ADaE<AngJUrCPJcCW-le2M9Q#Ue;!.Y~>
-!<C+<ZicQCK7eaTJcCW-ldZ0'`O*":!.Y~>
-!<A&W@KJjGK7X&Rs,$dAeHJ6s@U_V'J,~>
-!<ADaE<8hfJV!iPs,$dAg'(08EH+YPJ,~>
-!<C+<ZiZKBK7X&Rs,$dAeHM2V['Z%tJ,~>
-!<A&W@K8]FeUc8%ea_/n6&T2]5lcE~>
-!<ADaE<&[`g4@t/g@<l#9U0U;9E9S~>
-!<C+<ZiH>AeUc8%ea_/nPf:#:PQ64~>
-!<A&V@dua8Uk,>(U]=lp5lciB@KAapJ,~>
-!<AD`EUc_RTn/o"T`B*'9E:@WE</`5J,~>
-!<C+;[.0B3Uk,>(U]@dmPQ8]%ZiQBkJ,~>
-!\j\5rF5AV!+LNZJcCl4nVdBU!^Qh:J,~>
-!^m$RrGhFo!-*SiJcCl4nWj)n!_`UJJ,~>
-!cn@\rNu18!47=WJcCl4n\tL7!gE]8J,~>
-!]^7=mpZ8_J`_OGOlcY%mpZ>a!7cT~>
-!^m$Rmr8>$J`_OGOlcY/mr8D&!8;r~>
-!cn@\n$E(ZJ`_OGOlcY_n$E.\!7cT~>
-">Mn:5sb$M!'u1uJ``*W!/pAVs$6\de^]0~>
-s$Qng9MFtr!).t+J``*W!1!(os%EIog=h&~>
-s)S5APa(^F!0i&sJ``*W!6+K8s-*Qbe^]0~>
-r]0uYn3MW=J\@2Z!+PIarrE&KJ,~>
-r^?bdn4\DEJ\$uT!-.O&rrE&PJ,~>
-rcA)>n<AL;J\@2Z!4;9\rrE&KJ,~>
-">Mnk3B;WjJH16$mf3C=s8LQ!~>
-r'Z)9JH16$mf3CB!<1]&~>
-"DW!mF)um4JH16$mf3C=!<1N!~>
-%%EndData
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/lib/et/doc/src/user_guide.gif b/lib/et/doc/src/user_guide.gif
deleted file mode 100644
index e6275a803d..0000000000
--- a/lib/et/doc/src/user_guide.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/doc/src/warning.gif b/lib/et/doc/src/warning.gif
deleted file mode 100644
index 96af52360e..0000000000
--- a/lib/et/doc/src/warning.gif
+++ /dev/null
Binary files differ
diff --git a/lib/et/examples/Makefile b/lib/et/examples/Makefile
index 553fe55f3b..67a6536fdf 100644
--- a/lib/et/examples/Makefile
+++ b/lib/et/examples/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2002-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2002-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -38,7 +38,9 @@ RELSYSDIR = $(RELEASE_PATH)/lib/et-$(VSN)
MODULES = \
- et_demo
+ et_demo \
+ et_display_demo \
+ et_trace_demo
ERL_FILES= $(MODULES:=.erl)
diff --git a/lib/et/examples/et_demo.erl b/lib/et/examples/et_demo.erl
index 57e7e77246..e439e6882c 100644
--- a/lib/et/examples/et_demo.erl
+++ b/lib/et/examples/et_demo.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2002-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%----------------------------------------------------------------------
@@ -23,24 +23,29 @@
-module(et_demo).
-export([
- sim_trans/0,
+ sim_trans/0, sim_trans/1,
+ live_trans/0, live_trans/1,
mgr_actors/1,
- live_trans/0,
- start/0,
- start/1,
+ start/0, start/1,
filters/0,
trace_mnesia/0
]).
+%% Test
+-export([s/0, t/0, t/1, init/0, gen/3]).
+
-include_lib("et/include/et.hrl").
%%----------------------------------------------------------------------
%sim_trans
sim_trans() ->
+ sim_trans([]).
+
+sim_trans(ExtraOptions) ->
Options = [{dict_insert, {filter, mgr_actors}, fun mgr_actors/1}],
- {ok, Viewer} = et_viewer:start_link(Options),
- Collector = et_viewer:get_collector_pid(Viewer),
+ {ok, Viewer} = et_viewer:start_link(Options ++ ExtraOptions),
+ Collector = et_viewer:get_collector_pid(Viewer),
et_collector:report_event(Collector, 60, my_shell, mnesia_tm, start_outer,
"Start outer transaction"),
et_collector:report_event(Collector, 40, mnesia_tm, my_shell, new_tid,
@@ -56,11 +61,13 @@ sim_trans() ->
et_collector:report_event(Collector, 60, my_shell, mnesia_tm, delete_transaction,
"End of outer transaction"),
et_collector:report_event(Collector, 20, my_shell, end_outer,
- "Transaction returned {atomic, ok}").
+ "Transaction returned {atomic, ok}"),
+ {collector, Collector}.
+
%sim_trans
%mgr_actors
-mgr_actors(E) when record(E, event) ->
+mgr_actors(E) when is_record(E, event) ->
Actor = fun(A) ->
case A of
mnesia_tm -> trans_mgr;
@@ -94,9 +101,13 @@ start(ExtraOptions) ->
%live_trans
live_trans() ->
- et_demo:start([{title, "Mnesia tracer"},
- {hide_actions, true},
- {active_filter, named_process_info_nolink}]),
+ live_trans([]).
+
+live_trans(ExtraOptions) ->
+ Options = [{title, "Mnesia tracer"},
+ {hide_actions, true},
+ {active_filter, named_process_info_nolink}],
+ et_demo:start(Options ++ ExtraOptions),
mnesia:start(),
mnesia:create_table(my_tab, [{ram_copies, [node()]}]),
et_demo:trace_mnesia(),
@@ -146,7 +157,7 @@ filters() ->
%filters
%module_as_actor
-module_as_actor(E) when record(E, event) ->
+module_as_actor(E) when is_record(E, event) ->
case lists:keysearch(mfa, 1, E#event.contents) of
{value, {mfa, {M, F, _A}}} ->
case lists:keysearch(pam_result, 1, E#event.contents) of
@@ -163,7 +174,7 @@ module_as_actor(E) when record(E, event) ->
%%----------------------------------------------------------------------
%plain_process_info
-plain_process_info(E) when record(E, event) ->
+plain_process_info(E) when is_record(E, event) ->
case E#event.label of
send -> true;
send_to_non_existing_process -> true;
@@ -182,7 +193,7 @@ plain_process_info(E) when record(E, event) ->
%plain_process_info
%plain_process_info_nolink
-plain_process_info_nolink(E) when record(E, event) ->
+plain_process_info_nolink(E) when is_record(E, event) ->
(E#event.label /= link) and
(E#event.label /= unlink) and
(E#event.label /= getting_linked) and
@@ -191,7 +202,7 @@ plain_process_info_nolink(E) when record(E, event) ->
%%----------------------------------------------------------------------
-named_process_info(E) when record(E, event) ->
+named_process_info(E) when is_record(E, event) ->
case plain_process_info(E) of
true ->
{true, E#event{to = pid_to_name(E#event.to),
@@ -201,7 +212,7 @@ named_process_info(E) when record(E, event) ->
false
end.
-named_process_info_nolink(E) when record(E, event) ->
+named_process_info_nolink(E) when is_record(E, event) ->
case plain_process_info_nolink(E) of
true ->
{true, E#event{to = pid_to_name(E#event.to),
@@ -211,7 +222,7 @@ named_process_info_nolink(E) when record(E, event) ->
false
end.
-pid_to_name(Pid) when pid(Pid) ->
+pid_to_name(Pid) when is_pid(Pid) ->
case process_info(Pid, registered_name) of
{registered_name, Name} ->
Name;
@@ -225,7 +236,7 @@ pid_to_name(Other) ->
%%----------------------------------------------------------------------
-node_process_info(E) when record(E, event) ->
+node_process_info(E) when is_record(E, event) ->
case plain_process_info(E) of
true ->
{true, E#event{to = pid_to_node(E#event.to),
@@ -234,7 +245,7 @@ node_process_info(E) when record(E, event) ->
false ->
false
end.
-node_process_info_nolink(E) when record(E, event) ->
+node_process_info_nolink(E) when is_record(E, event) ->
case plain_process_info_nolink(E) of
true ->
{true, E#event{to = pid_to_node(E#event.to),
@@ -244,21 +255,21 @@ node_process_info_nolink(E) when record(E, event) ->
false
end.
-pid_to_node(Pid) when pid(Pid) ->
+pid_to_node(Pid) when is_pid(Pid) ->
node(Pid);
-pid_to_node(Name) when atom(Name) ->
+pid_to_node(Name) when is_atom(Name) ->
node();
-pid_to_node({_Name, Node}) when atom(Node) ->
+pid_to_node({_Name, Node}) when is_atom(Node) ->
Node.
%%----------------------------------------------------------------------
-application_as_actor(E) when record(E, event) ->
+application_as_actor(E) when is_record(E, event) ->
{true, E#event{to = pid_to_application(E#event.to),
from = pid_to_application(E#event.from),
label = msg_to_label(E)}}.
-pid_to_application(Pid) when pid(Pid) ->
+pid_to_application(Pid) when is_pid(Pid) ->
case application:get_application(Pid) of
{ok, Name} ->
Name;
@@ -268,7 +279,7 @@ pid_to_application(Pid) when pid(Pid) ->
%%----------------------------------------------------------------------
-msg_to_label(E) when record(E, event) ->
+msg_to_label(E) when is_record(E, event) ->
case lists:keysearch(msg, 1, E#event.contents) of
{value, {msg, Msg}} ->
mnesia_msg_to_label(Msg, E#event.label);
@@ -349,3 +360,35 @@ mnesia_msg_to_label(Msg, Label) ->
_ -> Label
end.
+%%----------------------------------------------------------------------
+
+s() ->
+ spawn(fun() -> t(), timer:sleep(infinity) end).
+
+t() ->
+ t(500).
+
+t(N) ->
+ Collector = init(),
+ gen(Collector, 1, N),
+ Collector.
+
+init() ->
+ EvenFilter =
+ fun(#event{label = Label}) ->
+ case catch (list_to_integer(Label) div 10) rem 2 of
+ 0 ->
+ false;
+ _ ->
+ true
+ end
+ end,
+ OddFilter = fun(E) -> not EvenFilter(E) end,
+ {ok, Viewer} = et_viewer:start_link([{dict_insert, {filter, odd_tens}, EvenFilter},
+ {dict_insert, {filter, even_tens}, OddFilter},
+ {active_filter, odd_tens}]),
+ et_viewer:get_collector_pid(Viewer).
+
+gen(Collector, From, To) ->
+ [et_collector:report_event(Collector, 20, from, to, integer_to_list(I), [I]) || I <- lists:seq(From, To)],
+ ok.
diff --git a/lib/et/examples/et_display_demo.erl b/lib/et/examples/et_display_demo.erl
new file mode 100644
index 0000000000..ebcbc2e816
--- /dev/null
+++ b/lib/et/examples/et_display_demo.erl
@@ -0,0 +1,32 @@
+%%
+%% %CopyrightBegin%
+%% %CopyrightEnd%
+%%
+
+%module
+-module(et_display_demo).
+
+-export([test/0]).
+
+test() ->
+ {ok, Viewer} = et_viewer:start([{title,"Coffee Order"}, {max_actors,10}]),
+ Drink = {drink,iced_chai_latte},
+ Size = {size,grande},
+ Milk = {milk,whole},
+ Flavor = {flavor,vanilla},
+ C = et_viewer:get_collector_pid(Viewer),
+ et_collector:report_event(C,99,customer,barrista1,place_order,[Drink,Size,Milk,Flavor]),
+ et_collector:report_event(C,80,barrista1,register,enter_order,[Drink,Size,Flavor]),
+ et_collector:report_event(C,80,register,barrista1,give_total,"$5"),
+ et_collector:report_event(C,80,barrista1,barrista1,get_cup,[Drink,Size]),
+ et_collector:report_event(C,80,barrista1,barrista2,give_cup,[]),
+ et_collector:report_event(C,90,barrista1,customer,request_money,"$5"),
+ et_collector:report_event(C,90,customer,barrista1,pay_money,"$5"),
+ et_collector:report_event(C,80,barrista2,barrista2,get_chai_mix,[]),
+ et_collector:report_event(C,80,barrista2,barrista2,add_flavor,[Flavor]),
+ et_collector:report_event(C,80,barrista2,barrista2,add_milk,[Milk]),
+ et_collector:report_event(C,80,barrista2,barrista2,add_ice,[]),
+ et_collector:report_event(C,80,barrista2,barrista2,swirl,[]),
+ et_collector:report_event(C,80,barrista2,customer,give_tasty_beverage,[Drink,Size]),
+ ok.
+%module
diff --git a/lib/et/examples/et_trace_demo.erl b/lib/et/examples/et_trace_demo.erl
new file mode 100644
index 0000000000..5c16d4b77c
--- /dev/null
+++ b/lib/et/examples/et_trace_demo.erl
@@ -0,0 +1,38 @@
+%%
+%% %CopyrightBegin%
+%% %CopyrightEnd%
+%%
+
+%module
+-module(et_trace_demo).
+
+-export([test/0]).
+
+test() ->
+ et_viewer:start([
+ {title,"Coffee Order"},
+ {trace_global,true},
+ {trace_pattern,{et,max}},
+ {max_actors,10}
+ ]),
+ %% dbg:p(all,call),
+ %% dbg:tpl(et, trace_me, 5, []),
+ Drink = {drink,iced_chai_latte},
+ Size = {size,grande},
+ Milk = {milk,whole},
+ Flavor = {flavor,vanilla},
+ et:trace_me(99,customer,barrista1,place_order,[Drink,Size,Milk,Flavor]),
+ et:trace_me(80,barrista1,register,enter_order,[Drink,Size,Flavor]),
+ et:trace_me(80,register,barrista1,give_total,"$5"),
+ et:trace_me(80,barrista1,barrista1,get_cup,[Drink,Size]),
+ et:trace_me(80,barrista1,barrista2,give_cup,[]),
+ et:trace_me(90,barrista1,customer,request_money,"$5"),
+ et:trace_me(90,customer,barrista1,pay_money,"$5"),
+ et:trace_me(80,barrista2,barrista2,get_chai_mix,[]),
+ et:trace_me(80,barrista2,barrista2,add_flavor,[Flavor]),
+ et:trace_me(80,barrista2,barrista2,add_milk,[Milk]),
+ et:trace_me(80,barrista2,barrista2,add_ice,[]),
+ et:trace_me(80,barrista2,barrista2,swirl,[]),
+ et:trace_me(80,barrista2,customer,give_tasty_beverage,[Drink,Size]),
+ ok.
+%module
diff --git a/lib/et/src/Makefile b/lib/et/src/Makefile
index c590852625..bb6632ee91 100644
--- a/lib/et/src/Makefile
+++ b/lib/et/src/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2000-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2000-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -127,9 +127,16 @@ $(EBIN)/et_selector.$(EMULATOR): et_selector.erl ../include/et.hrl
$(EBIN)/et_contents_viewer.$(EMULATOR): et_contents_viewer.erl ../include/et.hrl et_internal.hrl
+$(EBIN)/et_gs_contents_viewer.$(EMULATOR): et_gs_contents_viewer.erl ../include/et.hrl et_internal.hrl
+$(EBIN)/et_wx_contents_viewer.$(EMULATOR): et_wx_contents_viewer.erl ../include/et.hrl et_internal.hrl
+
$(EBIN)/et_collector.$(EMULATOR): et_collector.erl ../include/et.hrl et_internal.hrl
$(EBIN)/et_viewer.$(EMULATOR): et_viewer.erl ../include/et.hrl et_internal.hrl
+$(EBIN)/et_gs_viewer.$(EMULATOR): et_gs_viewer.erl ../include/et.hrl et_internal.hrl
+
+$(EBIN)/et_wx_viewer.$(EMULATOR): et_wx_viewer.erl ../include/et.hrl et_internal.hrl
+
diff --git a/lib/et/src/et.app.src b/lib/et/src/et.app.src
index 0c7bef7c3d..fd203e3e44 100644
--- a/lib/et/src/et.app.src
+++ b/lib/et/src/et.app.src
@@ -1,20 +1,20 @@
%% This is an -*- erlang -*- file.
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2002-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
{application, et,
@@ -24,9 +24,12 @@
[
et,
et_collector,
- et_contents_viewer,
+ et_gs_contents_viewer,
+ et_gs_viewer,
et_selector,
- et_viewer
+ et_viewer,
+ et_wx_contents_viewer,
+ et_wx_viewer
]},
{registered, [et_collector]},
{applications, [stdlib, kernel]},
diff --git a/lib/et/src/et.erl b/lib/et/src/et.erl
index 9c0a7f8f49..e2cd8564c3 100644
--- a/lib/et/src/et.erl
+++ b/lib/et/src/et.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%----------------------------------------------------------------------
@@ -84,13 +84,15 @@
-module(et).
-export([
- phone_home/4, report_event/4,
- phone_home/5, report_event/5
+ trace_me/4, phone_home/4, report_event/4,
+ trace_me/5, phone_home/5, report_event/5
]).
%%----------------------------------------------------------------------
%% Reports an event, such as a message
%%
+%% trace_me(DetailLevel, FromTo, Label, Contents) -> hopefully_traced
+%% trace_me(DetailLevel, From, To, Label, Contents) -> hopefully_traced
%% report_event(DetailLevel, FromTo, Label, Contents) -> hopefully_traced
%% report_event(DetailLevel, From, To, Label, Contents) -> hopefully_traced
%% phone_home(DetailLevel, FromTo, Label, Contents) -> hopefully_traced
@@ -123,18 +125,28 @@
%% Other events (termed actions) may be undirected and only have one actor.
%%----------------------------------------------------------------------
+trace_me(DetailLevel, FromTo, Label, Contents)
+ when is_integer(DetailLevel) ->
+ ?MODULE:trace_me(DetailLevel, FromTo, FromTo, Label, Contents).
+
+trace_me(DetailLevel, _From, _To, _Label, _Contents)
+ when is_integer(DetailLevel) ->
+ hopefully_traced.
+
phone_home(DetailLevel, FromTo, Label, Contents) ->
%% N.B External call
- ?MODULE:report_event(DetailLevel, FromTo, FromTo, Label, Contents).
+ ?MODULE:trace_me(DetailLevel, FromTo, FromTo, Label, Contents).
phone_home(DetailLevel, From, To, Label, Contents) ->
%% N.B External call
- ?MODULE:report_event(DetailLevel, From, To, Label, Contents).
+ ?MODULE:trace_me(DetailLevel, From, To, Label, Contents).
report_event(DetailLevel, FromTo, Label, Contents) ->
%% N.B External call
- ?MODULE:report_event(DetailLevel, FromTo, FromTo, Label, Contents).
+ ?MODULE:trace_me(DetailLevel, FromTo, FromTo, Label, Contents).
+
+report_event(DetailLevel, From, To, Label, Contents)
+ when is_integer(DetailLevel) ->
+ %% N.B External call
+ ?MODULE:trace_me(DetailLevel, From, To, Label, Contents).
-report_event(DetailLevel, _From, _To, _Label, _Contents)
- when integer(DetailLevel) ->
- hopefully_traced.
diff --git a/lib/et/src/et_collector.erl b/lib/et/src/et_collector.erl
index ea23c188f7..a63d15fb4c 100644
--- a/lib/et/src/et_collector.erl
+++ b/lib/et/src/et_collector.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%----------------------------------------------------------------------
@@ -36,6 +36,7 @@
iterate/3,
iterate/5,
+ lookup/2,
start_trace_client/3,
start_trace_port/1,
@@ -45,6 +46,7 @@
get_global_pid/0,
%% get_table_handle/1,
+ get_table_size/1,
change_pattern/2,
make_key/2,
@@ -55,13 +57,19 @@
multicast/2
]).
+%% Internal export
+-export([monitor_trace_port/2]).
+
%% gen_server callbacks
-export([init/1,terminate/2, code_change/3,
handle_call/3, handle_cast/2, handle_info/2]).
+-include("et_internal.hrl").
-include("../include/et.hrl").
-record(state, {parent_pid,
+ auto_shutdown, % Optionally shutdown when the last subscriber dies
+ event_tab_size,
event_tab,
dict_tab,
event_order,
@@ -102,7 +110,7 @@
%% stored by the collector. By replacing the default collector filter
%% with a customized dito it is possible to allow any trace data as
%% input. The collector filter is a dictionary entry with the
-%% predefined key {filter, collector} and the value is a fun of
+%% predefined key {filter, all} and the value is a fun of
%% arity 1. See et_selector:parse_event/2 for interface details,
%% such as which erlang:trace/1 tuples that are accepted.
%%
@@ -126,7 +134,7 @@
%% option() =
%% {parent_pid, pid()} |
%% {event_order, event_order()} |
-%% {dict_insert, {filter, collector}, collector_fun()} |
+%% {dict_insert, {filter, all}, collector_fun()} |
%% {dict_insert, {filter, event_filter_name()}, event_filter_fun()} |
%% {dict_insert, {subscriber, pid()}, dict_val()} |
%% {dict_insert, dict_key(), dict_val()} |
@@ -139,7 +147,7 @@
%%
%% event_order() = trace_ts | event_ts
%% trace_pattern() = detail_level() | dbg_match_spec()
-%% detail_level() = min | max | integer(X) when X =< 0, X >= 100
+%% detail_level() = min | max | integer(X) when X >= 0, X =< 100
%% trace_client() =
%% {event_file, file_name()} |
%% {dbg_trace_type(), dbg_trace_parameters()}
@@ -159,19 +167,16 @@
start_link(Options) ->
case parse_opt(Options, default_state(), [], []) of
- {ok, S, Dict2, Clients} when S#state.trace_global == false ->
- case gen_server:start_link(?MODULE, [S, Dict2], []) of
- {ok, Pid} when S#state.parent_pid /= self() ->
- unlink(Pid),
- start_clients(Pid, Clients);
- {ok,Pid} ->
- start_clients(Pid, Clients);
- {error, Reason} ->
- {error, Reason}
- end;
- {ok, S, Dict2, Clients} when S#state.trace_global == true ->
- case gen_server:start_link({global, ?MODULE}, ?MODULE, [S, Dict2], []) of
- {ok, Pid} when S#state.parent_pid /= self() ->
+ {ok, S, Dict2, Clients} ->
+ Res =
+ case S#state.trace_global of
+ false ->
+ gen_server:start_link(?MODULE, [S, Dict2], []);
+ true ->
+ gen_server:start_link({global, ?MODULE}, ?MODULE, [S, Dict2], [])
+ end,
+ case Res of
+ {ok, Pid} when S#state.parent_pid =/= self() ->
unlink(Pid),
start_clients(Pid, Clients);
{ok,Pid} ->
@@ -185,6 +190,7 @@ start_link(Options) ->
default_state() ->
#state{parent_pid = self(),
+ auto_shutdown = false,
event_order = trace_ts,
subscribers = [],
trace_global = false,
@@ -196,28 +202,30 @@ default_state() ->
parse_opt([], S, Dict, Clients) ->
{Mod, Pattern} = et_selector:make_pattern(S#state.trace_pattern),
Fun = fun(E) -> et_selector:parse_event(Mod, E) end,
- Default = {dict_insert, {filter, collector}, Fun},
+ Default = {dict_insert, {filter, ?DEFAULT_FILTER_NAME}, Fun},
{ok, S#state{trace_pattern = {Mod, Pattern}}, [Default | Dict], Clients};
parse_opt([H | T], S, Dict, Clients) ->
case H of
- {parent_pid, Parent} when Parent == undefined ->
+ {parent_pid, Parent} when Parent =:= undefined ->
parse_opt(T, S#state{parent_pid = Parent}, Dict, Clients);
- {parent_pid, Parent} when pid(Parent) ->
+ {parent_pid, Parent} when is_pid(Parent) ->
parse_opt(T, S#state{parent_pid = Parent}, Dict, Clients);
- {event_order, Order} when Order == trace_ts ->
+ {auto_shutdown, Bool} when Bool =:= true; Bool =:= false ->
+ parse_opt(T, S#state{auto_shutdown = Bool}, Dict, Clients);
+ {event_order, Order} when Order =:= trace_ts ->
parse_opt(T, S#state{event_order = Order}, Dict, Clients);
- {event_order, Order} when Order == event_ts ->
+ {event_order, Order} when Order =:= event_ts ->
parse_opt(T, S#state{event_order = Order}, Dict, Clients);
{dict_insert, {filter, Name}, Fun} ->
if
- atom(Name), function(Fun) ->
+ is_atom(Name), is_function(Fun) ->
parse_opt(T, S, Dict ++ [H], Clients);
true ->
{error, {bad_option, H}}
end;
{dict_insert, {subscriber, Pid}, _Val} ->
if
- pid(Pid) ->
+ is_pid(Pid) ->
parse_opt(T, S, Dict ++ [H], Clients);
true ->
{error, {bad_option, H}}
@@ -228,17 +236,17 @@ parse_opt([H | T], S, Dict, Clients) ->
parse_opt(T, S, Dict ++ [H], Clients);
{trace_client, Client = {_, _}} ->
parse_opt(T, S, Dict, Clients ++ [Client]);
- {trace_global, Bool} when Bool == false ->
+ {trace_global, Bool} when Bool =:= false ->
parse_opt(T, S#state{trace_global = Bool}, Dict, Clients);
- {trace_global, Bool} when Bool == true ->
+ {trace_global, Bool} when Bool =:= true ->
parse_opt(T, S#state{trace_global = Bool}, Dict, Clients);
- {trace_pattern, {Mod, _} = Pattern} when atom(Mod) ->
+ {trace_pattern, {Mod, _} = Pattern} when is_atom(Mod) ->
parse_opt(T, S#state{trace_pattern = Pattern}, Dict, Clients);
{trace_pattern, undefined = Pattern} ->
parse_opt(T, S#state{trace_pattern = Pattern}, Dict, Clients);
- {trace_port, Port} when integer(Port) ->
+ {trace_port, Port} when is_integer(Port) ->
parse_opt(T, S#state{trace_port = Port}, Dict, Clients);
- {trace_max_queue, MaxQueue} when integer(MaxQueue) ->
+ {trace_max_queue, MaxQueue} when is_integer(MaxQueue) ->
parse_opt(T, S#state{trace_port = MaxQueue}, Dict, Clients);
Bad ->
{error, {bad_option, Bad}}
@@ -352,19 +360,19 @@ do_load_event_file(Fun, Fd, Cont, Acc, FileName, BadBytes) ->
%% Returns: {ok, Continuation} | exit(Reason)
%%----------------------------------------------------------------------
-report(CollectorPid, TraceOrEvent) when pid(CollectorPid) ->
+report(CollectorPid, TraceOrEvent) when is_pid(CollectorPid) ->
case get_table_handle(CollectorPid) of
- {ok, TH} when record(TH, table_handle) ->
+ {ok, TH} when is_record(TH, table_handle) ->
report(TH, TraceOrEvent);
{error, Reason} ->
exit(Reason)
end;
-report(TH, TraceOrEvent) when record(TH, table_handle) ->
+report(TH, TraceOrEvent) when is_record(TH, table_handle) ->
Fun = TH#table_handle.filter,
case Fun(TraceOrEvent) of
false ->
{ok, TH};
- true when record(TraceOrEvent, event) ->
+ true when is_record(TraceOrEvent, event) ->
Key = make_key(TH, TraceOrEvent),
case catch ets:insert(TH#table_handle.event_tab, {Key, TraceOrEvent}) of
true ->
@@ -373,7 +381,7 @@ report(TH, TraceOrEvent) when record(TH, table_handle) ->
%% Refresh the report handle and try again
report(TH#table_handle.collector_pid, TraceOrEvent)
end;
- {true, Event} when record(Event, event) ->
+ {true, Event} when is_record(Event, event) ->
Key = make_key(TH, Event),
case catch ets:insert(TH#table_handle.event_tab, {Key, Event}) of
true ->
@@ -401,7 +409,7 @@ report(TH, TraceOrEvent) when record(TH, table_handle) ->
report(TH#table_handle.collector_pid, TraceOrEvent)
end
end;
-report(TH, end_of_trace) when record(TH, table_handle) ->
+report(TH, end_of_trace) when is_record(TH, table_handle) ->
{ok, TH};
report(_, Bad) ->
exit({bad_event, Bad}).
@@ -410,7 +418,9 @@ report_event(CollectorPid, DetailLevel, FromTo, Label, Contents) ->
report_event(CollectorPid, DetailLevel, FromTo, FromTo, Label, Contents).
report_event(CollectorPid, DetailLevel, From, To, Label, Contents)
- when integer(DetailLevel), DetailLevel >= 0, DetailLevel =< 100, list(Contents) ->
+ when is_integer(DetailLevel),
+ DetailLevel >= ?detail_level_min,
+ DetailLevel =< ?detail_level_max ->
TS= erlang:now(),
E = #event{detail_level = DetailLevel,
trace_ts = TS,
@@ -431,32 +441,38 @@ report_event(CollectorPid, DetailLevel, From, To, Label, Contents)
%% Key = record(event_ts) | record(trace_ts)
%%----------------------------------------------------------------------
-make_key(TH, Stuff) when record(TH, table_handle) ->
+make_key(TH, Stuff) when is_record(TH, table_handle) ->
make_key(TH#table_handle.event_order, Stuff);
make_key(trace_ts, Stuff) ->
if
- record(Stuff, event) ->
+ is_record(Stuff, event) ->
#event{trace_ts = R, event_ts = P} = Stuff,
#trace_ts{trace_ts = R, event_ts = P};
- record(Stuff, trace_ts) ->
+ is_record(Stuff, trace_ts) ->
Stuff;
- record(Stuff, event_ts) ->
+ is_record(Stuff, event_ts) ->
#event_ts{trace_ts = R, event_ts = P} = Stuff,
#trace_ts{trace_ts = R, event_ts = P}
end;
make_key(event_ts, Stuff) ->
if
- record(Stuff, event) ->
+ is_record(Stuff, event) ->
#event{trace_ts = R, event_ts = P} = Stuff,
#event_ts{trace_ts = R, event_ts = P};
- record(Stuff, event_ts) ->
+ is_record(Stuff, event_ts) ->
Stuff;
- record(Stuff, trace_ts) ->
+ is_record(Stuff, trace_ts) ->
#trace_ts{trace_ts = R, event_ts = P} = Stuff,
#event_ts{trace_ts = R, event_ts = P}
end.
%%----------------------------------------------------------------------
+%%----------------------------------------------------------------------
+
+get_table_size(CollectorPid) when is_pid(CollectorPid) ->
+ call(CollectorPid, get_table_size).
+
+%%----------------------------------------------------------------------
%% get_table_handle(CollectorPid) -> Handle
%%
%% Return a table handle
@@ -465,7 +481,7 @@ make_key(event_ts, Stuff) ->
%% Handle = record(table_handle)
%%----------------------------------------------------------------------
-get_table_handle(CollectorPid) when pid(CollectorPid) ->
+get_table_handle(CollectorPid) when is_pid(CollectorPid) ->
call(CollectorPid, get_table_handle).
%%----------------------------------------------------------------------
@@ -480,7 +496,7 @@ get_table_handle(CollectorPid) when pid(CollectorPid) ->
get_global_pid() ->
case global:whereis_name(?MODULE) of
- CollectorPid when pid(CollectorPid) ->
+ CollectorPid when is_pid(CollectorPid) ->
CollectorPid;
undefined ->
exit(global_collector_not_started)
@@ -505,7 +521,7 @@ change_pattern(CollectorPid, RawPattern) ->
call(CollectorPid, {change_pattern, Pattern}).
%%----------------------------------------------------------------------
-%% dict_insert(CollectorPid, {filter, collector}, FilterFun) -> ok
+%% dict_insert(CollectorPid, {filter, all}, FilterFun) -> ok
%% dict_insert(CollectorPid, {subscriber, SubscriberPid}, Void) -> ok
%% dict_insert(CollectorPid, Key, Val) -> ok
%%
@@ -532,14 +548,14 @@ change_pattern(CollectorPid, RawPattern) ->
dict_insert(CollectorPid, Key = {filter, Name}, Fun) ->
if
- atom(Name), function(Fun) ->
+ is_atom(Name), is_function(Fun) ->
call(CollectorPid, {dict_insert, Key, Fun});
true ->
exit({badarg, Key})
end;
dict_insert(CollectorPid, Key = {subscriber, Pid}, Val) ->
if
- pid(Pid) ->
+ is_pid(Pid) ->
call(CollectorPid, {dict_insert, Key, Val});
true ->
exit({badarg, Key})
@@ -626,9 +642,9 @@ multicast(CollectorPid, Msg) ->
%% Pid = dbg_trace_client_pid()
%%----------------------------------------------------------------------
-start_trace_client(CollectorPid, Type, FileName) when Type == event_file ->
+start_trace_client(CollectorPid, Type, FileName) when Type =:= event_file ->
load_event_file(CollectorPid, FileName);
-start_trace_client(CollectorPid, Type, FileName) when Type == file ->
+start_trace_client(CollectorPid, Type, FileName) when Type =:= file ->
WaitFor = {make_ref(), end_of_trace},
EventFun = fun(E, {ReplyTo, {ok, TH}}) -> {ReplyTo, report(TH, E)} end,
EndFun = fun({ReplyTo, {ok, _TH}}) -> ReplyTo ! WaitFor, ReplyTo end,
@@ -658,9 +674,9 @@ start_trace_client(CollectorPid, Type, Parameters) ->
{trace_client_pid, Pid}.
trace_spec_wrapper(EventFun, EndFun, EventInitialAcc)
- when function(EventFun), function(EndFun) ->
+ when is_function(EventFun), is_function(EndFun) ->
{fun(Trace, Acc) ->
- case Trace == end_of_trace of
+ case Trace =:= end_of_trace of
true -> EndFun(Acc);
false -> EventFun(Trace, Acc)
end
@@ -670,6 +686,17 @@ trace_spec_wrapper(EventFun, EndFun, EventInitialAcc)
start_trace_port(Parameters) ->
dbg:tracer(port, dbg:trace_port(ip, Parameters)).
+monitor_trace_port(CollectorPid, Parameters) ->
+ Res = start_trace_port(Parameters),
+ spawn(fun() ->
+ MonitorRef = erlang:monitor(process, CollectorPid),
+ receive
+ {'DOWN', MonitorRef, _, _, _} ->
+ dbg:stop_clear()
+ end
+ end),
+ Res.
+
%%----------------------------------------------------------------------
%% iterate(Handle, Prev, Limit) ->
%% iterate(Handle, Prev, Limit, undefined, Prev)
@@ -702,24 +729,24 @@ iterate(Handle, Prev, Limit) ->
%% Acc = NewAcc = term()
%%----------------------------------------------------------------------
-iterate(_, _, Limit, _, Acc) when Limit == 0 ->
+iterate(_, _, Limit, _, Acc) when Limit =:= 0 ->
Acc;
-iterate(CollectorPid, Prev, Limit, Fun, Acc) when pid(CollectorPid) ->
+iterate(CollectorPid, Prev, Limit, Fun, Acc) when is_pid(CollectorPid) ->
case get_table_handle(CollectorPid) of
- {ok, TH} when record(TH, table_handle) ->
+ {ok, TH} when is_record(TH, table_handle) ->
iterate(TH, Prev, Limit, Fun, Acc);
{error, Reason} ->
exit(Reason)
end;
-iterate(TH, Prev, Limit, Fun, Acc) when record(TH, table_handle) ->
+iterate(TH, Prev, Limit, Fun, Acc) when is_record(TH, table_handle) ->
if
- Limit == infinity ->
+ Limit =:= infinity ->
next_iterate(TH, Prev, Limit, Fun, Acc);
- integer(Limit), Limit > 0 ->
+ is_integer(Limit), Limit > 0 ->
next_iterate(TH, Prev, Limit, Fun, Acc);
- Limit == '-infinity' ->
+ Limit =:= '-infinity' ->
prev_iterate(TH, Prev, Limit, Fun, Acc);
- integer(Limit), Limit < 0 ->
+ is_integer(Limit), Limit < 0 ->
prev_iterate(TH, Prev, Limit, Fun, Acc)
end.
@@ -793,7 +820,7 @@ prev_iterate(TH, Prev, Limit, Fun, Acc) ->
lookup_and_apply(TH, Prev, Next, Limit, 1, Fun, Acc)
end.
-lookup_and_apply(TH, _Prev, Next, Limit, Incr, Fun, _Acc) when Fun == undefined ->
+lookup_and_apply(TH, _Prev, Next, Limit, Incr, Fun, _Acc) when Fun =:= undefined ->
Limit2 = incr(Limit, Incr),
iterate(TH, Next, Limit2, Fun, Next);
lookup_and_apply(TH, Prev, Next, Limit, Incr, Fun, Acc) ->
@@ -801,17 +828,33 @@ lookup_and_apply(TH, Prev, Next, Limit, Incr, Fun, Acc) ->
case catch ets:lookup_element(Tab, Next, 2) of
{'EXIT', _} ->
iterate(TH#table_handle.collector_pid, Prev, Limit, Fun, Acc);
- E when record(E, event) ->
+ E when is_record(E, event) ->
Acc2 = Fun(E, Acc),
Limit2 = incr(Limit, Incr),
iterate(TH, Next, Limit2, Fun, Acc2)
end.
+lookup(CollectorPid, Key) when is_pid(CollectorPid) ->
+ case get_table_handle(CollectorPid) of
+ {ok, TH} when is_record(TH, table_handle) ->
+ lookup(TH, Key);
+ {error, Reason} ->
+ {error, Reason}
+ end;
+lookup(TH, Key) when is_record(TH, table_handle) ->
+ Tab = TH#table_handle.event_tab,
+ case catch ets:lookup_element(Tab, Key, 2) of
+ {'EXIT', _} ->
+ {error, enoent};
+ E when is_record(E, event) ->
+ {ok, E}
+ end.
+
incr(Val, Incr) ->
if
- Val == infinity -> Val;
- Val == '-infinity' -> Val;
- integer(Val) -> Val + Incr
+ Val =:= infinity -> Val;
+ Val =:= '-infinity' -> Val;
+ is_integer(Val) -> Val + Incr
end.
%%----------------------------------------------------------------------
@@ -824,13 +867,18 @@ incr(Val, Incr) ->
%% table_handle() = record(table_handle)
%%----------------------------------------------------------------------
-clear_table(CollectorPid) when pid(CollectorPid) ->
+clear_table(CollectorPid) when is_pid(CollectorPid) ->
call(CollectorPid, clear_table);
-clear_table(TH) when record(TH, table_handle) ->
+clear_table(TH) when is_record(TH, table_handle) ->
clear_table(TH#table_handle.collector_pid).
call(CollectorPid, Request) ->
- gen_server:call(CollectorPid, Request, infinity).
+ try
+ gen_server:call(CollectorPid, Request, infinity)
+ catch
+ exit:{noproc,_} ->
+ {error, no_collector}
+ end.
%%%----------------------------------------------------------------------
%%% Callback functions from gen_server
@@ -849,7 +897,7 @@ init([InitialS, Dict]) ->
case InitialS#state.parent_pid of
undefined ->
ignore;
- Pid when pid(Pid) ->
+ Pid when is_pid(Pid) ->
link(Pid)
end,
Funs = [fun init_tables/1,
@@ -860,7 +908,7 @@ init([InitialS, Dict]) ->
init_tables(S) ->
EventTab = ets:new(et_events, [ordered_set, {keypos, 1}, public]),
DictTab = ets:new(et_dict, [ordered_set, {keypos, 1}, public]),
- S#state{event_tab = EventTab, dict_tab = DictTab}.
+ S#state{event_tab = EventTab, dict_tab = DictTab, event_tab_size = 0}.
init_global(S) ->
case S#state.trace_global of
@@ -889,44 +937,53 @@ init_global(S) ->
handle_call({multicast, Msg}, _From, S) ->
do_multicast(S#state.subscribers, Msg),
- {reply, ok, S};
+ reply(ok, S);
handle_call(Msg = {dict_insert, _Key, _Val}, _From, S) ->
S2 = do_dict_insert(Msg, S),
- {reply, ok, S2};
+ reply(ok, S2);
handle_call(Msg = {dict_delete, _Key}, _From, S) ->
- S2 = do_dict_delete(Msg, S),
- {reply, ok, S2};
-
+ try
+ S2 = do_dict_delete(Msg, S),
+ reply(ok, S2)
+ catch
+ throw:{stop, R} ->
+ opt_unlink(S#state.parent_pid),
+ {stop, R, S}
+ end;
handle_call({dict_lookup, Key}, _From, S) ->
Reply = ets:lookup(S#state.dict_tab, Key),
- {reply, Reply, S};
+ reply(Reply, S);
handle_call({dict_match, Pattern}, _From, S) ->
case catch ets:match_object(S#state.dict_tab, Pattern) of
{'EXIT', _Reason} ->
- {reply, [], S};
+ reply([], S);
Matching ->
- {reply, Matching, S}
+ reply(Matching, S)
end;
handle_call(get_table_handle, _From, S) ->
- [{_, TableFilter}] = ets:lookup(S#state.dict_tab, {filter, collector}),
+ [{_, TableFilter}] = ets:lookup(S#state.dict_tab, {filter, ?DEFAULT_FILTER_NAME}),
TH = #table_handle{collector_pid = self(),
event_tab = S#state.event_tab,
event_order = S#state.event_order,
filter = TableFilter},
- {reply, {ok, TH}, S};
+ reply({ok, TH}, S);
+
+handle_call(get_table_size, _From, S) ->
+ Size = ets:info(S#state.event_tab, size),
+ reply({ok, Size}, S);
handle_call(close, _From, S) ->
case S#state.file of
undefined ->
- {reply, {error, file_not_open}, S};
+ reply({error, file_not_open}, S);
F ->
Reply = disk_log:close(F#file.desc),
S2 = S#state{file = undefined},
- {reply, Reply, S2}
+ reply(Reply, S2)
end;
handle_call({save_event_file, FileName, Options}, _From, S) ->
Default = #file{name = FileName,
@@ -934,7 +991,7 @@ handle_call({save_event_file, FileName, Options}, _From, S) ->
file_opt = write,
table_opt = keep},
case parse_file_options(Default, Options) of
- {ok, F} when record(F, file) ->
+ {ok, F} when is_record(F, file) ->
case file_open(F) of
{ok, Fd} ->
F2 = F#file{desc = Fd},
@@ -966,16 +1023,16 @@ handle_call({save_event_file, FileName, Options}, _From, S) ->
end,
case F2#file.table_opt of
keep ->
- {reply, Reply2, S3};
+ reply(Reply2, S3);
clear ->
S4 = do_clear_table(S3),
- {reply, Reply2, S4}
+ reply(Reply2, S4)
end;
{error, Reason} ->
- {reply, {error, {file_open, Reason}}, S}
+ reply({error, {file_open, Reason}}, S)
end;
{error, Reason} ->
- {reply, {error, Reason}, S}
+ reply({error, Reason}, S)
end;
handle_call({change_pattern, Pattern}, _From, S) ->
@@ -983,23 +1040,23 @@ handle_call({change_pattern, Pattern}, _From, S) ->
rpc:multicall(Ns, et_selector, change_pattern, [Pattern]),
Reply = {old_pattern, S#state.trace_pattern},
S2 = S#state{trace_pattern = Pattern},
- {reply, Reply, S2};
+ reply(Reply, S2);
handle_call(clear_table, _From, S) ->
S2 = do_clear_table(S),
- {reply, ok, S2};
+ reply(ok, S2);
handle_call(stop, _From, S) ->
do_multicast(S#state.subscribers, close),
case S#state.trace_global of
- true -> rpc:multicall(S#state.trace_nodes, dbg, stop, []);
+ true -> rpc:multicall(S#state.trace_nodes, dbg, stop_clear, []);
false -> ignore
end,
{stop, shutdown, ok, S};
handle_call(Request, From, S) ->
ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n",
[?MODULE, self(), Request, From, S]),
- {reply, {error, {bad_request, Request}}, S}.
+ reply({error, {bad_request, Request}}, S).
%%----------------------------------------------------------------------
%% Func: handle_cast/2
@@ -1011,7 +1068,7 @@ handle_call(Request, From, S) ->
handle_cast(Msg, S) ->
ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n",
[?MODULE, self(), Msg, S]),
- {noreply, S}.
+ noreply(S).
%%----------------------------------------------------------------------
%% Func: handle_info/2
@@ -1020,54 +1077,67 @@ handle_cast(Msg, S) ->
%% {stop, Reason, State} (terminate/2 is called)
%%----------------------------------------------------------------------
+handle_info(timeout, S) ->
+ S2 = check_size(S),
+ noreply(S2);
handle_info({nodeup, Node}, S) ->
Port = S#state.trace_port,
MaxQueue = S#state.trace_max_queue,
- case rpc:call(Node, ?MODULE, start_trace_port, [{Port, MaxQueue}]) of
+ case rpc:call(Node, ?MODULE, monitor_trace_port, [self(), {Port, MaxQueue}]) of
{ok, _} ->
- listen_on_trace_port(Node, Port, S);
- {error, Reason} when Reason == already_started->
+ S2 = listen_on_trace_port(Node, Port, S),
+ noreply(S2);
+ {error, Reason} when Reason =:= already_started->
ok = error_logger:format("~p(~p): producer ignored(~p:~p):~n ~p~n",
[?MODULE, self(), Node, Port, Reason]),
S2 = S#state{trace_port = Port + 1},
- {noreply, S2};
+ noreply(S2);
{badrpc, Reason} ->
ok = error_logger:format("~p(~p): producer ignored(~p:~p):~n ~p~n",
[?MODULE, self(), Node, Port, Reason]),
S2 = S#state{trace_port = Port + 1},
- {noreply, S2};
+ noreply(S2);
{error, Reason} ->
self() ! {nodeup, Node},
ok = error_logger:format("~p(~p): producer retry(~p:~p):~n ~p~n",
[?MODULE, self(), Node, Port, Reason]),
S2 = S#state{trace_port = Port + 1},
- {noreply, S2}
+ noreply(S2)
end;
handle_info({nodedown, Node}, S) ->
- {noreply, S#state{trace_nodes = S#state.trace_nodes -- [Node]}};
+ noreply(S#state{trace_nodes = S#state.trace_nodes -- [Node]});
handle_info({register_trace_client, Pid}, S) ->
link(Pid),
- {noreply, S};
+ noreply(S);
-handle_info({'EXIT', Pid, Reason}, S) when Pid == S#state.parent_pid ->
+handle_info({'EXIT', Pid, Reason}, S) when Pid =:= S#state.parent_pid ->
{stop, Reason, S};
-handle_info(Info = {'EXIT', Pid, _Reason}, S) ->
- OldSubscribers = S#state.subscribers,
+handle_info(Info = {'EXIT', Pid, Reason}, S) ->
+ OldSubscribers = S#state.subscribers,
case lists:member(Pid, OldSubscribers) of
- true ->
- S2 = do_dict_delete({dict_delete, {subscriber, Pid}}, S),
- {noreply, S2};
+ true when Reason =:= shutdown ->
+ try
+ S2 = do_dict_delete({dict_delete, {subscriber, Pid}}, S),
+ noreply(S2)
+ catch
+ throw:{stop, R} ->
+ opt_unlink(S#state.parent_pid),
+ {stop, R, S}
+ end;
+ true ->
+ opt_unlink(S#state.parent_pid),
+ {stop, Reason, S};
false ->
ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n",
[?MODULE, self(), Info, S]),
- {noreply, S}
+ noreply(S)
end;
handle_info(Info, S) ->
ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n",
[?MODULE, self(), Info, S]),
- {noreply, S}.
+ noreply(S).
listen_on_trace_port(Node, Port, S) ->
[_Name, Host] = string:tokens(atom_to_list(Node), [$@]),
@@ -1075,20 +1145,17 @@ listen_on_trace_port(Node, Port, S) ->
{trace_client_pid, RemotePid} ->
rpc:call(Node, et_selector, change_pattern, [S#state.trace_pattern]),
link(RemotePid),
- S2 = S#state{trace_nodes = [Node | S#state.trace_nodes],
- trace_port = Port + 1},
- {noreply, S2};
- {'EXIT', Reason} when Reason == already_started->
+ S#state{trace_nodes = [Node | S#state.trace_nodes],
+ trace_port = Port + 1};
+ {'EXIT', Reason} when Reason =:= already_started->
ok = error_logger:format("~p(~p): consumer ignored(~p:~p): ~p~n",
[?MODULE, self(), Node, Port, Reason]),
- S2 = S#state{trace_port = Port + 1},
- {noreply, S2};
+ S#state{trace_port = Port + 1};
{'EXIT', Reason} ->
self() ! {nodeup, Node},
ok = error_logger:format("~p(~p): consumer retry(~p:~p):~n ~p~n",
[?MODULE, self(), Node, Port, Reason]),
- S2 = S#state{trace_port = Port + 1},
- {noreply, S2}
+ S#state{trace_port = Port + 1}
end.
%%----------------------------------------------------------------------
@@ -1120,7 +1187,7 @@ do_clear_table(S) ->
NewTab = ets:new(et_events, [ordered_set, {keypos, 1}, public]),
S#state{event_tab = NewTab}.
-do_dict_insert(Msg = {dict_insert, Key = {subscriber, Pid}, Val}, S) when pid(Pid) ->
+do_dict_insert(Msg = {dict_insert, Key = {subscriber, Pid}, Val}, S) when is_pid(Pid) ->
OldSubscribers = S#state.subscribers,
NewSubscribers =
case lists:member(Pid, OldSubscribers) of
@@ -1133,6 +1200,8 @@ do_dict_insert(Msg = {dict_insert, Key = {subscriber, Pid}, Val}, S) when pid(Pi
[Pid | OldSubscribers]
end,
do_multicast(NewSubscribers, Msg),
+ Size = ets:info(S#state.event_tab, size),
+ do_multicast(NewSubscribers, {more_events, Size}),
ets:insert(S#state.dict_tab, {Key, Val}),
S#state{subscribers = NewSubscribers};
do_dict_insert(Msg = {dict_insert, Key, Val}, S) ->
@@ -1147,11 +1216,18 @@ do_dict_delete(Msg = {dict_delete, Key = {subscriber, Pid}}, S) ->
case lists:member(Pid, OldSubscribers) of
true ->
unlink(Pid),
- S#state{subscribers = OldSubscribers -- [Pid]};
+ S2 = S#state{subscribers = OldSubscribers -- [Pid]},
+ if
+ S2#state.auto_shutdown,
+ S2#state.subscribers =:= [] ->
+ throw({stop, shutdown});
+ true ->
+ S2
+ end;
false ->
S
end;
-do_dict_delete({dict_delete, {filter, collector}}, S) ->
+do_dict_delete({dict_delete, {filter, ?DEFAULT_FILTER_NAME}}, S) ->
S;
do_dict_delete(Msg = {dict_delete, Key}, S) ->
do_multicast(S#state.subscribers, Msg),
@@ -1202,3 +1278,33 @@ do_multicast([Pid | Pids], Msg) ->
do_multicast(Pids, Msg);
do_multicast([], _Msg) ->
ok.
+
+opt_unlink(Pid) ->
+ if
+ Pid =:= undefined ->
+ ignore;
+ true ->
+ unlink(Pid)
+ end.
+
+reply(Reply, #state{subscribers = []} = S) ->
+ {reply, Reply, S};
+reply(Reply, S) ->
+ {reply, Reply, S, 500}.
+
+noreply(#state{subscribers = []} = S) ->
+ {noreply, S};
+noreply(S) ->
+ {noreply, S, 500}.
+
+check_size(S) ->
+ Size = ets:info(S#state.event_tab, size),
+ if
+ Size =:= S#state.event_tab_size ->
+ S;
+ true ->
+ %% Tell the subscribers that more events are available
+ Msg = {more_events, Size},
+ do_multicast(S#state.subscribers, Msg),
+ S#state{event_tab_size = Size}
+ end.
diff --git a/lib/et/src/et_contents_viewer.erl b/lib/et/src/et_gs_contents_viewer.erl
index 29ca93ca64..f6a87bd608 100644
--- a/lib/et/src/et_contents_viewer.erl
+++ b/lib/et/src/et_gs_contents_viewer.erl
@@ -1,26 +1,26 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%----------------------------------------------------------------------
%% Purpose: Displays details of a trace event
%%----------------------------------------------------------------------
--module(et_contents_viewer).
+-module(et_gs_contents_viewer).
-behaviour(gen_server).
@@ -75,7 +75,7 @@ start_link(Options) ->
case parse_opt(Options, default_state()) of
{ok, S} ->
case gen_server:start_link(?MODULE, [S], []) of
- {ok, ContentsPid} when S#state.parent_pid /= self() ->
+ {ok, ContentsPid} when S#state.parent_pid =/= self() ->
unlink(ContentsPid),
{ok, ContentsPid};
Other ->
@@ -88,8 +88,8 @@ start_link(Options) ->
default_state() ->
#state{parent_pid = self(),
viewer_pid = undefined,
- active_filter = collector,
- filters = [#filter{name = collector, function = fun(E) -> E end}],
+ active_filter = ?DEFAULT_FILTER_NAME,
+ filters = [?DEFAULT_FILTER],
width = 600,
height = 300}.
@@ -97,11 +97,11 @@ parse_opt([], S) ->
Name = S#state.active_filter,
Filters = S#state.filters,
if
- S#state.event == undefined ->
+ S#state.event =:= undefined ->
{error, {badarg, no_event}};
- atom(Name) ->
+ is_atom(Name) ->
case lists:keysearch(Name, #filter.name, Filters) of
- {value, F} when record(F, filter) ->
+ {value, F} when is_record(F, filter) ->
{ok, S#state{active_filter = Name}};
false ->
{error, {badarg, {no_such_filter, Name, Filters}}}
@@ -109,27 +109,27 @@ parse_opt([], S) ->
end;
parse_opt([H | T], S) ->
case H of
- {parent_pid, ParentPid} when pid(ParentPid) ->
+ {parent_pid, ParentPid} when is_pid(ParentPid) ->
parse_opt(T, S#state{parent_pid = ParentPid});
- {viewer_pid, ViewerPid} when pid(ViewerPid) ->
+ {viewer_pid, ViewerPid} when is_pid(ViewerPid) ->
parse_opt(T, S#state{viewer_pid = ViewerPid});
{event_order, trace_ts} ->
parse_opt(T, S#state{event_order = trace_ts});
{event_order, event_ts} ->
parse_opt(T, S#state{event_order = event_ts});
- {event, Event} when record(Event, event) ->
+ {event, Event} when is_record(Event, event) ->
parse_opt(T, S#state{event = Event});
- {active_filter, Name} when atom(Name) ->
+ {active_filter, Name} when is_atom(Name) ->
parse_opt(T, S#state{active_filter = Name});
- F when record(F, filter),
- atom(F#filter.name),
- function(F#filter.function) ->
+ F when is_record(F, filter),
+ is_atom(F#filter.name),
+ is_function(F#filter.function) ->
Filters = lists:keydelete(F#filter.name, #filter.name, S#state.filters),
Filters2 = lists:keysort(#filter.name, [F | Filters]),
parse_opt(T, S#state{filters = Filters2});
- {width, Width} when integer(Width), Width > 0 ->
+ {width, Width} when is_integer(Width), Width > 0 ->
parse_opt(T, S#state{width = Width});
- {height, Height} when integer(Height), Height > 0 ->
+ {height, Height} when is_integer(Height), Height > 0 ->
parse_opt(T, S#state{height = Height});
Bad ->
{error, {bad_option, Bad}}
@@ -164,7 +164,7 @@ call(ContentsPid, Request) ->
%% {stop, Reason}
%%----------------------------------------------------------------------
-init([S]) when record(S, state) ->
+init([S]) when is_record(S, state) ->
process_flag(trap_exit, true),
S2 = create_window(S),
{ok, S2}.
@@ -223,11 +223,11 @@ handle_info({gs, Button, click, Data, _Other}, S) ->
FileName = ["et_contents_viewer_", now_to_string(TimeStamp), ".save"],
file:write_file(lists:flatten(FileName), Bin),
{noreply, S};
- _PopupMenuItem when record(Data, filter) ->
+ _PopupMenuItem when is_record(Data, filter) ->
F = Data,
ChildState= S#state{active_filter = F#filter.name},
case gen_server:start_link(?MODULE, [ChildState], []) of
- {ok, Pid} when S#state.parent_pid /= self() ->
+ {ok, Pid} when S#state.parent_pid =/= self() ->
unlink(Pid),
{noreply, S};
_ ->
@@ -312,11 +312,11 @@ handle_info({gs, _Obj, keypress, _, [KeySym, _Keycode, _Shift, _Control | _]}, S
{noreply, S};
0 ->
- case lists:keysearch(collector, #filter.name, S#state.filters) of
- {value, F} when record(F, filter) ->
+ case lists:keysearch(?DEFAULT_FILTER_NAME, #filter.name, S#state.filters) of
+ {value, F} when is_record(F, filter) ->
ChildState= S#state{active_filter = F#filter.name},
case gen_server:start_link(?MODULE, [ChildState], []) of
- {ok, Pid} when S#state.parent_pid /= self() ->
+ {ok, Pid} when S#state.parent_pid =/= self() ->
unlink(Pid);
_ ->
ignore
@@ -325,12 +325,12 @@ handle_info({gs, _Obj, keypress, _, [KeySym, _Keycode, _Shift, _Control | _]}, S
ignore
end,
{noreply, S};
- Int when integer(Int), Int > 0, Int =< 9 ->
+ Int when is_integer(Int), Int > 0, Int =< 9 ->
case catch lists:nth(Int, S#state.filters) of
- F when record(F, filter) ->
+ F when is_record(F, filter) ->
ChildState= S#state{active_filter = F#filter.name},
case gen_server:start_link(?MODULE, [ChildState], []) of
- {ok, Pid} when S#state.parent_pid /= self() ->
+ {ok, Pid} when S#state.parent_pid =/= self() ->
unlink(Pid);
_ ->
ignore
@@ -356,7 +356,7 @@ handle_info({gs, _Obj, configure, [], [W, H | _]}, S) ->
{noreply, S2};
handle_info({'EXIT', Pid, Reason}, S) ->
if
- Pid == S#state.parent_pid ->
+ Pid =:= S#state.parent_pid ->
unlink(Pid),
{stop, Reason, S};
true ->
@@ -428,7 +428,7 @@ create_filter_menu(Bar, Filters) ->
Menu = gs:menu(Button, []),
gs:menuitem(Menu, [{label, {text, "Select Filter"}}, {bg, lightblue}, {enable, false}]),
gs:menuitem(Menu, [{itemtype, separator}]),
- Item = fun(F, N) when F#filter.name == collector->
+ Item = fun(F, N) when F#filter.name =:= ?DEFAULT_FILTER_NAME->
Label = lists:concat([pad_string(F#filter.name, 20), "(0)"]),
gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]),
N + 1;
@@ -449,9 +449,9 @@ create_hide_menu(Bar, S) ->
From = E#event.from,
To = E#event.to,
if
- S#state.viewer_pid == undefined ->
+ S#state.viewer_pid =:= undefined ->
ignore;
- From == To ->
+ From =:= To ->
gs:menuitem(Menu, [{label, {text, "Hide actor in Viewer "}}, {bg, lightblue}, {enable, false}]),
gs:menuitem(Menu, [{itemtype, separator}]),
gs:menuitem({hide, [From]}, Menu, [{label, {text,"From=To (f|t|b)"}}]),
@@ -483,9 +483,9 @@ create_search_menu(Bar, S) ->
{bg, lightblue}, {enable, false}]),
gs:menuitem(Menu, [{itemtype, separator}]),
if
- S#state.viewer_pid == undefined ->
+ S#state.viewer_pid =:= undefined ->
S;
- From == To ->
+ From =:= To ->
Key = et_collector:make_key(S#state.event_order, E),
ModeS = {search_actors, forward, Key, [From]},
ModeR = {search_actors, reverse, Key, [From]},
@@ -508,7 +508,7 @@ config_editor(Editor, S) ->
case catch FilterFun(Event) of
true ->
do_config_editor(Editor, Event, lightblue, S#state.event_order);
- {true, Event2} when record(Event2, event) ->
+ {true, Event2} when is_record(Event2, event) ->
do_config_editor(Editor, Event2, lightblue, S#state.event_order);
false ->
do_config_editor(Editor, Event, red, S#state.event_order);
@@ -536,7 +536,7 @@ term_to_string(Term) ->
end.
now_to_string({Mega, Sec, Micro} = Now)
- when integer(Mega), integer(Sec), integer(Micro) ->
+ when is_integer(Mega), is_integer(Sec), is_integer(Micro) ->
{{Y, Mo, D}, {H, Mi, S}} = calendar:now_to_universal_time(Now),
lists:concat([Y, "-", Mo, "-", D, " ", H, ".", Mi, ".", S, ".", Micro]);
now_to_string(Other) ->
@@ -548,14 +548,14 @@ event_to_string(Event, TsKey) ->
Deep =
["DETAIL LEVEL: ", term_to_string(Event#event.detail_level),
"\nLABEL: ", term_to_string(Event#event.label),
- case Event#event.from == Event#event.to of
+ case Event#event.from =:= Event#event.to of
true ->
["\nACTOR: ", term_to_string(Event#event.from)];
false ->
["\nFROM: ", term_to_string(Event#event.from),
"\nTO: ", term_to_string(Event#event.to)]
end,
- case ReportedTs == ParsedTs of
+ case ReportedTs =:= ParsedTs of
true ->
["\nPARSED: ", now_to_string(ParsedTs)];
false ->
@@ -571,9 +571,9 @@ event_to_string(Event, TsKey) ->
"\nCONTENTS:\n\n", term_to_string(Event#event.contents)],
lists:flatten(Deep).
-pad_string(Atom, MinLen) when atom(Atom) ->
+pad_string(Atom, MinLen) when is_atom(Atom) ->
pad_string(atom_to_list(Atom), MinLen);
-pad_string(String, MinLen) when integer(MinLen), MinLen >= 0 ->
+pad_string(String, MinLen) when is_integer(MinLen), MinLen >= 0 ->
Len = length(String),
case Len >= MinLen of
true ->
@@ -584,7 +584,7 @@ pad_string(String, MinLen) when integer(MinLen), MinLen >= 0 ->
send_viewer_event(S, Event) ->
case S#state.viewer_pid of
- ViewerPid when pid(ViewerPid) ->
+ ViewerPid when is_pid(ViewerPid) ->
ViewerPid ! {et, Event};
undefined ->
ignore
diff --git a/lib/et/src/et_gs_viewer.erl b/lib/et/src/et_gs_viewer.erl
new file mode 100644
index 0000000000..0af7814d15
--- /dev/null
+++ b/lib/et/src/et_gs_viewer.erl
@@ -0,0 +1,1481 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%----------------------------------------------------------------------
+%% Purpose: Displays a sequence chart for trace events (messages/actions)
+%%----------------------------------------------------------------------
+
+-module(et_gs_viewer).
+
+-behaviour(gen_server).
+
+%% External exports
+-export([start_link/1]).
+
+%% gen_server callbacks
+-export([init/1, terminate/2, code_change/3,
+ handle_call/3, handle_cast/2, handle_info/2]).
+
+-include("../include/et.hrl").
+-include("et_internal.hrl").
+
+-define(unknown, "UNKNOWN").
+
+-record(state,
+ {parent_pid, % Pid of parent process
+ collector_pid, % Pid of collector process
+ event_order, % Field to be used as primary key
+ trace_pattern, % Collector trace pattern
+ active_filter, % Name of the active filter
+ filters, % List of possible filters
+ selected_actor, % Actor selected by user
+ first_event, % Key of first event (regardless of visibility)
+ last_event, % Key of last event (regardless of visibility)
+ max_events, % Maximum number of shown events
+ events, % Queue containg all event keys (regardless of visibility)
+ max_actors, % Maximum number of shown actors
+ actors, % List of known actors
+ refresh_needed, % Refresh is needed in order to show all actors
+ display_mode, % Display all or only matching actors
+ detail_level, % Show only events with lesser detail level
+ hide_actions, % Hide/show events where to == from actor (bool)
+ hide_unknown, % Hide/show events with unknown actor (bool)
+ is_suspended, % Suspend viewer updates (bool)
+ title, % GUI: Window title
+ win, % GUI: Window object
+ menubar, % GUI: Menu bar object
+ packer, % GUI: Packer object
+ width, % GUI: Window width
+ height, % GUI: Window height
+ scale, % GUI: Scaling factor on canvas
+ font, % GUI: Font to be used on text labels
+ canvas_width, % GUI: Canvas width
+ canvas_height, % GUI: Canvas height
+ canvas, % GUI: Canvas object
+ y_pos}). % GUI: Current y position on canvas
+
+-record(actor, {name, string}).
+
+-define(initial_x, 10).
+-define(incr_x, 60).
+-define(initial_y, 15).
+-define(incr_y, 15).
+
+%%%----------------------------------------------------------------------
+%%% Client side
+%%%----------------------------------------------------------------------
+
+start_link(Options) ->
+ case parse_opt(Options, default_state(), []) of
+ {ok, S, CollectorOpt} ->
+ case S#state.collector_pid of
+ CollectorPid when is_pid(CollectorPid) ->
+ case gen_server:start_link(?MODULE, [S], []) of
+ {ok, Pid} when S#state.parent_pid =/= self() ->
+ unlink(Pid),
+ {ok, Pid};
+ Other ->
+ Other
+ end;
+ undefined ->
+ case et_collector:start_link(CollectorOpt) of
+ {ok, CollectorPid} ->
+ S2 = S#state{collector_pid = CollectorPid},
+ case gen_server:start_link(?MODULE, [S2], []) of
+ {ok, Pid} when S#state.parent_pid =/= self() ->
+ unlink(Pid),
+ {ok, Pid};
+ Other ->
+ Other
+ end;
+ {error, Reason} ->
+ {error, {et_collector, Reason}}
+ end
+ end;
+ {error, Reason} ->
+ {error, Reason}
+ end.
+
+default_state() ->
+ #state{parent_pid = self(),
+ collector_pid = undefined,
+ detail_level = ?detail_level_max,
+ active_filter = ?DEFAULT_FILTER_NAME,
+ filters = [?DEFAULT_FILTER],
+ event_order = trace_ts,
+ is_suspended = false,
+ max_events = 100,
+ first_event = first,
+ last_event = first,
+ events = queue_new(),
+ max_actors = 5,
+ actors = [create_actor(?unknown)],
+ selected_actor = ?unknown,
+ hide_actions = false,
+ hide_unknown = false,
+ refresh_needed = false,
+ display_mode = all,
+ scale = 2,
+ canvas_height = 0,
+ canvas_width = 0,
+ width = 800,
+ height = 600}.
+
+parse_opt([], S, CollectorOpt) ->
+ {ok, S, [{parent_pid, S#state.parent_pid} | CollectorOpt]};
+parse_opt([H | T], S, CollectorOpt) ->
+ case H of
+ {parent_pid, Parent} when Parent =:= undefined ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt2);
+ {parent_pid, Parent} when is_pid(Parent) ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt2);
+ {title, Title} ->
+ parse_opt(T, S#state{title = name_to_string(Title)}, CollectorOpt);
+ {detail_level, Level} when is_integer(Level),
+ Level >= ?detail_level_min,
+ Level =< ?detail_level_max ->
+ parse_opt(T, S#state{detail_level = Level}, CollectorOpt);
+ {detail_level, max} ->
+ parse_opt(T, S#state{detail_level = ?detail_level_max}, CollectorOpt);
+ {detail_level, min} ->
+ parse_opt(T, S#state{detail_level = ?detail_level_min}, CollectorOpt);
+ {is_suspended, true} ->
+ parse_opt(T, S#state{is_suspended = true}, CollectorOpt);
+ {is_suspended, false} ->
+ parse_opt(T, S#state{is_suspended = false}, CollectorOpt);
+ {scale, Scale} when is_integer(Scale), Scale > 0 ->
+ parse_opt(T, S#state{scale = Scale}, CollectorOpt);
+ {width, W} when is_integer(W), W > 0 ->
+ parse_opt(T, S#state{width = W, canvas_width = W}, CollectorOpt);
+ {height, WH} when is_integer(WH), WH > 0 ->
+ parse_opt(T, S#state{height = WH, canvas_height = WH}, CollectorOpt);
+ {collector_pid, Pid} when is_pid(Pid) ->
+ parse_opt(T, S#state{collector_pid = Pid}, CollectorOpt);
+ {collector_pid, undefined} ->
+ parse_opt(T, S#state{collector_pid = undefined}, CollectorOpt);
+ {active_filter, Name} when is_atom(Name) ->
+ parse_opt(T, S#state{active_filter = Name}, CollectorOpt);
+ {event_order, trace_ts} -> %% BUGBUG: Verify event_order with collector
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{event_order = trace_ts}, CollectorOpt2);
+ {event_order, event_ts} -> %% BUGBUG: Verify event_order with collector
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{event_order = event_ts}, CollectorOpt2);
+ {trace_port, _Port} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {trace_max_queue, _Queue} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {trace_pattern, _Pattern} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {trace_global, _Boolean} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {trace_client, _Client} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {dict_insert, {filter, Name}, Fun} ->
+ if
+ is_atom(Name), is_function(Fun) ->
+ F = #filter{name = Name, function = Fun},
+ Filters = lists:keydelete(Name, #filter.name, S#state.filters),
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{filters = Filters ++ [F]}, CollectorOpt2);
+ true ->
+ {error, {bad_option, H}}
+ end;
+ {dict_insert, {subscriber, Pid}, _Val} ->
+ if
+ is_pid(Pid) ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ true ->
+ {error, {bad_option, H}}
+ end;
+ {dict_insert, _Key, _Val} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {dict_delete, {filter, Name}} ->
+ Filters = lists:keydelete(Name, #filter.name, S#state.filters),
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{filters = Filters}, CollectorOpt2);
+ {dict_delete, _Key} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {max_events, Max} when is_integer(Max), Max > 0->
+ parse_opt(T, S#state{max_events = Max}, CollectorOpt);
+ {max_events, Max} when Max =:= infinity ->
+ parse_opt(T, S#state{max_events = Max}, CollectorOpt);
+ {max_actors, Max} when is_integer(Max), Max >= 0->
+ parse_opt(T, S#state{max_actors = Max}, CollectorOpt);
+ {max_actors, Max} when Max =:= infinity ->
+ parse_opt(T, S#state{max_actors = Max}, CollectorOpt);
+ {actors, ActorNames} when is_list(ActorNames) ->
+ ActorNames2 =
+ case lists:member(?unknown, ActorNames) of
+ false -> [?unknown | ActorNames];
+ true -> ActorNames
+ end,
+ Actors = [create_actor(Name) || Name <- ActorNames2],
+ parse_opt(T, S#state{actors = Actors}, CollectorOpt);
+ {first_event, First} ->
+ parse_opt(T, S#state{first_event = First}, CollectorOpt);
+ {hide_unknown, Bool} when Bool =:= false ->
+ parse_opt(T, S#state{hide_unknown = Bool}, CollectorOpt);
+ {hide_unknown, Bool} when Bool =:= true ->
+ parse_opt(T, S#state{hide_unknown = Bool}, CollectorOpt);
+ {hide_actions, Bool} when Bool =:= false ->
+ parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt);
+ {hide_actions, Bool} when Bool =:= true ->
+ parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt);
+ {display_mode, Mode = all} ->
+ parse_opt(T, S#state{display_mode = Mode}, CollectorOpt);
+ {display_mode, Mode = {search_actors, Dir, _Key, Actors}} when is_list(Actors), Dir =:= forward ->
+ parse_opt(T, S#state{display_mode = Mode}, CollectorOpt);
+ {display_mode, Mode = {search_actors, Dir, _Key, Actors}} when is_list(Actors), Dir =:= reverse ->
+ parse_opt(T, S#state{display_mode = Mode}, CollectorOpt);
+
+ Bad ->
+ {error, {bad_option, Bad}}
+ end;
+parse_opt(BadList, _S, _CollectorOpt) ->
+ {error, {bad_option_list, BadList}}.
+
+do_dict_insert({filter, Name}, Fun, S) when is_atom(Name), is_function(Fun) ->
+ F = #filter{name = Name, function = Fun},
+ Filters = lists:keydelete(Name, #filter.name, S#state.filters),
+ Filters2 = lists:keysort(#filter.name, [F | Filters]),
+ gs:destroy(filter_menu),
+ create_filter_menu(S#state.active_filter, Filters2),
+ S#state{filters = Filters2};
+do_dict_insert(_Key, _Val, S) ->
+ %% ok = error_logger:format("~p(~p): handle_info({et, {dict_insert, ~p, ~p}})~n",
+ %% [?MODULE, self(), Key, Val]),
+ S.
+
+do_dict_delete({filter, Name}, S) when is_atom(Name), Name =/= S#state.active_filter ->
+ Filters = lists:keydelete(Name, #filter.name, S#state.filters),
+ gs:destroy(filter_menu),
+ create_filter_menu(S#state.active_filter, Filters),
+ S#state{filters = Filters};
+do_dict_delete(_Key, S) ->
+ %% ok = error_logger:format("~p(~p): handle_info({et, {dict_delete, ~p}})~n",
+ %% [?MODULE, self(), Key]),
+ S.
+
+%%%----------------------------------------------------------------------
+%%% Callback functions from gen_server
+%%%----------------------------------------------------------------------
+
+%%----------------------------------------------------------------------
+%% Func: init/1
+%% Returns: {ok, State} |
+%% {ok, State, Timeout} |
+%% ignore |
+%% {stop, Reason}
+%%----------------------------------------------------------------------
+
+init([S]) when is_record(S, state) ->
+ process_flag(trap_exit, true),
+ InitialTimeout = 0,
+ case S#state.parent_pid of
+ undefined ->
+ ignore;
+ Pid when is_pid(Pid) ->
+ link(Pid)
+ end,
+ et_collector:dict_insert(S#state.collector_pid,
+ {subscriber, self()},
+ ?MODULE),
+ {ok, create_main_window(S), InitialTimeout}.
+
+%%----------------------------------------------------------------------
+%% Func: handle_call/3
+%% Returns: {reply, Reply, State} |
+%% {reply, Reply, State, Timeout} |
+%% {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, Reply, State} | (terminate/2 is called)
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_call(get_collector_pid, _From, S) ->
+ Reply = S#state.collector_pid,
+ reply(Reply, S);
+handle_call(stop, _From, S) ->
+ gs:destroy(S#state.win),
+ {stop, shutdown, ok, S};
+handle_call(Request, From, S) ->
+ ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n",
+ [?MODULE, self(), Request, From, S]),
+ Reply = {error, {bad_request, Request}},
+ reply(Reply, S).
+
+%%----------------------------------------------------------------------
+%% Func: handle_cast/2
+%% Returns: {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_cast(Msg, S) ->
+ ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n",
+ [?MODULE, self(), Msg, S]),
+ noreply(S).
+
+%%----------------------------------------------------------------------
+%% Func: handle_info/2
+%% Returns: {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_info({et, {more_events, _Size}}, S) ->
+ noreply(S);
+handle_info({et, {insert_actors, ActorNames}}, S) when is_list(ActorNames) ->
+ Fun = fun(N, Actors) ->
+ case lists:keymember(N, #actor.name, Actors) of
+ true -> Actors;
+ false -> Actors ++ [create_actor(N)]
+ end
+ end,
+ Actors = lists:foldl(Fun, S#state.actors, ActorNames),
+ S2 = refresh_main_window(S#state{actors = Actors}),
+ noreply(S2);
+handle_info({et, {delete_actors, ActorNames}}, S) when is_list(ActorNames)->
+ Fun = fun(N, Actors) when N =:= ?unknown ->
+ Actors;
+ (N, Actors) ->
+ lists:keydelete(N, #actor.name, Actors)
+ end,
+ New = lists:foldl(Fun, S#state.actors, ActorNames),
+ S2 = refresh_main_window(S#state{actors = New}),
+ noreply(S2);
+handle_info({et, {dict_insert, Key, Val}}, S) ->
+ S2 = do_dict_insert(Key, Val, S),
+ noreply(S2);
+handle_info({et, {dict_delete, Key}}, S) ->
+ S2 = do_dict_delete(Key, S),
+ noreply(S2);
+handle_info({et, first}, S) ->
+ S2 = scroll_first(S),
+ noreply(S2);
+handle_info({et, prev}, S) ->
+ S2 = scroll_prev(S),
+ noreply(S2);
+handle_info({et, next}, S) ->
+ S2 = scroll_next(S),
+ noreply(S2);
+handle_info({et, last}, S) ->
+ S2 = scroll_last(S),
+ noreply(S2);
+handle_info({et, refresh}, S) ->
+ S2 = refresh_main_window(S),
+ noreply(S2);
+handle_info({et, {display_mode, Mode}}, S) ->
+ S2 = change_display_mode(Mode, S),
+ noreply(S2);
+handle_info({et, close}, S) ->
+ gs:destroy(S#state.win),
+ {stop, shutdown, S};
+handle_info({gs, Button, click, Data, Other} = Click, S) ->
+ CollectorPid = S#state.collector_pid,
+ case Button of
+ close ->
+ gs:destroy(S#state.win),
+ {stop, shutdown, S};
+ suspended ->
+ case Other of
+ [_Text, _Group, Bool | _] when Bool =:= true ->
+ S2 = do_suspend(S),
+ noreply(S2);
+ [_Text, _Group, Bool | _] when Bool =:= false ->
+ S2 = do_resume(S),
+ noreply(S2);
+ _ ->
+ click_error(Click, S),
+ noreply(S)
+ end;
+ hide_actions ->
+ case Other of
+ [_Text, _Group, Bool | _] when Bool =:= true ->
+ S2 = refresh_main_window(S#state{hide_actions = Bool}),
+ noreply(S2);
+ [_Text, _Group, Bool | _] when Bool =:= false ->
+ S2 = refresh_main_window(S#state{hide_actions = Bool}),
+ noreply(S2);
+ _ ->
+ click_error(Click, S),
+ noreply(S)
+ end;
+ hide_unknown ->
+ case Other of
+ [_Text, _Group, Bool | _] when Bool =:= true ->
+ S2 = refresh_main_window(S#state{hide_unknown = Bool}),
+ noreply(S2);
+ [_Text, _Group, Bool | _] when Bool =:= false ->
+ S2 = refresh_main_window(S#state{hide_unknown = Bool}),
+ noreply(S2);
+ _ ->
+ click_error(Click, S),
+ noreply(S)
+ end;
+ up ->
+ S2 = scroll_up(S),
+ noreply(S2);
+ down ->
+ S2 = scroll_down(S),
+ noreply(S2);
+ first ->
+ S2 = scroll_first(S),
+ noreply(S2);
+ prev ->
+ S2 = scroll_prev(S),
+ noreply(S2);
+ next ->
+ S2 = scroll_next(S),
+ noreply(S2);
+ last ->
+ S2 = scroll_last(S),
+ noreply(S2);
+ refresh ->
+ S2 = refresh_main_window(S),
+ noreply(S2);
+ {display_mode, Mode} ->
+ S2 = change_display_mode(Mode, S),
+ noreply(S2);
+ close_all ->
+ close_all(S);
+ close_all_others ->
+ close_all_others(S);
+ first_all ->
+ et_collector:multicast(CollectorPid, first),
+ noreply(S);
+ prev_all ->
+ et_collector:multicast(CollectorPid, prev),
+ noreply(S);
+ next_all ->
+ et_collector:multicast(CollectorPid, next),
+ noreply(S);
+ last_all ->
+ et_collector:multicast(CollectorPid, last),
+ noreply(S);
+ refresh_all ->
+ et_collector:multicast(CollectorPid, refresh),
+ noreply(S);
+ clear_all ->
+ et_collector:clear_table(CollectorPid),
+ et_collector:multicast(CollectorPid, refresh),
+ noreply(S);
+ load_all ->
+ et_collector:start_trace_client(CollectorPid, event_file, "et_viewer.log"),
+ noreply(S);
+ save_all ->
+ et_collector:save_event_file(CollectorPid,
+ "et_viewer.log",
+ [existing, write, keep]),
+ noreply(S);
+ {open_viewer, Scale} ->
+ Actors = [A#actor.name || A <- S#state.actors],
+ open_viewer(Scale, S#state.active_filter, Actors, S),
+ noreply(S);
+ _Level when Data =:= detail_level, is_integer(hd(Other)),
+ hd(Other) >= ?detail_level_min,
+ hd(Other) =< ?detail_level_max ->
+ S2 = S#state{detail_level = hd(Other)},
+ noreply(S2);
+ _PopupMenuItem when is_record(Data, filter) ->
+ open_viewer(S#state.scale, Data#filter.name, [?unknown], S),
+ noreply(S);
+ _ ->
+ click_error(Click, S),
+ noreply(S)
+ end;
+handle_info({gs, _Obj, destroy,_, _}, S) ->
+ gs:destroy(S#state.win),
+ {stop, shutdown, S};
+handle_info({gs, _Obj, buttonpress, _, [_Button, X, Y | _]}, S) ->
+ S3 =
+ case y_to_n(Y, S) of
+ actor ->
+ %% Actor click
+ case S#state.actors of
+ [] ->
+ S;
+ _ ->
+ N = x_to_n(X, S),
+ A = lists:nth(N, S#state.actors),
+ S#state{selected_actor = A}
+ end;
+ {event, N} ->
+ %% Event click
+ List = queue_to_list(S#state.events),
+ S2 = S#state{events = list_to_queue(List)},
+
+ Key = lists:nth(N, List),
+ Pid = S#state.collector_pid,
+ Fun = fun create_contents_window/2,
+ case et_collector:iterate(Pid, Key, -1) of
+ Prev when Prev =:= Key ->
+ et_collector:iterate(Pid, first, 1, Fun, S2);
+ Prev ->
+ et_collector:iterate(Pid, Prev, 1, Fun, S2)
+ end
+ end,
+ noreply(S3);
+handle_info({gs, _Obj, buttonrelease, _, [_Button, X, Y | _]}, S) ->
+ S2 =
+ case y_to_n(Y, S) of
+ actor ->
+ %% Actor click
+ case S#state.actors of
+ [] ->
+ S;
+ Actors ->
+ N = x_to_n(X, S),
+ New = lists:nth(N, S#state.actors),
+ Old = S#state.selected_actor,
+ case New#actor.name =:= Old#actor.name of
+ true ->
+ A = S#state.selected_actor,
+ toggle_search_for_actor(A#actor.name, S);
+ false ->
+ move_actor(Old, New, Actors, S)
+ end
+ end;
+ {event, _N} ->
+ %% Event click ignored
+ S
+ end,
+ noreply(S2);
+handle_info({gs, _Obj, keypress, _, [KeySym, _Keycode, _Shift, _Control | _]} = Key, S) ->
+ case KeySym of
+ 'c' ->
+ close_all_others(S);
+ 'C' ->
+ close_all(S);
+ 'Up' ->
+ S2 = scroll_up(S),
+ noreply(S2);
+ 'Down' ->
+ S2 = scroll_down(S),
+ noreply(S2);
+ 'f' ->
+ S2 = scroll_first(S),
+ noreply(S2);
+ 'p' ->
+ S2 = scroll_prev(S),
+ noreply(S2);
+ 'Prior' ->
+ S2 = scroll_prev(S),
+ noreply(S2);
+ 'n' ->
+ S2 = scroll_next(S),
+ noreply(S2);
+ 'Next' ->
+ S2 = scroll_next(S),
+ noreply(S2);
+ 'l' ->
+ S2 = scroll_last(S),
+ noreply(S2);
+ 'r' ->
+ S2 = refresh_main_window(S),
+ noreply(S2);
+ 'F' ->
+ et_collector:multicast(S#state.collector_pid, first),
+ noreply(S);
+ 'P' ->
+ et_collector:multicast(S#state.collector_pid, prev),
+ noreply(S);
+ 'N' ->
+ et_collector:multicast(S#state.collector_pid, next),
+ noreply(S);
+ 'L' ->
+ et_collector:multicast(S#state.collector_pid, last),
+ noreply(S);
+ 'R' ->
+ et_collector:multicast(S#state.collector_pid, refresh),
+ noreply(S);
+
+ 'a' ->
+ S2 = S#state{display_mode = all},
+ S3 = refresh_main_window(S2),
+ noreply(S3);
+
+ 'equal' ->
+ Scale = S#state.scale,
+ Actors = [A#actor.name || A <- S#state.actors],
+ open_viewer(Scale, S#state.active_filter, Actors, S),
+ noreply(S);
+ 'plus' ->
+ Scale = S#state.scale + 1,
+ Actors = [A#actor.name || A <- S#state.actors],
+ open_viewer(Scale, S#state.active_filter, Actors, S),
+ noreply(S);
+ 'minus' ->
+ case S#state.scale of
+ 1 ->
+ gs:config(S#state.canvas, beep);
+ Scale ->
+ Actors = [A#actor.name || A <- S#state.actors],
+ open_viewer(Scale - 1, S#state.active_filter, Actors, S)
+ end,
+ noreply(S);
+ 0 ->
+ case lists:keysearch(?DEFAULT_FILTER_NAME, #filter.name, S#state.filters) of
+ {value, F} when is_record(F, filter) ->
+ open_viewer(S#state.scale, F#filter.name, [?unknown], S);
+ false ->
+ gs:config(S#state.canvas, beep)
+ end,
+ noreply(S);
+ Int when is_integer(Int), Int > 0, Int =< 9 ->
+ case catch lists:nth(Int, S#state.filters) of
+ F when is_record(F, filter) ->
+ open_viewer(S#state.scale, F#filter.name, [?unknown], S);
+ {'EXIT', _} ->
+ gs:config(S#state.canvas, beep)
+ end,
+ noreply(S);
+
+ 'Shift_L' ->
+ noreply(S);
+ 'Shift_R' ->
+ noreply(S);
+ 'Caps_Lock' ->
+ noreply(S);
+
+ _ ->
+ click_error(Key, S),
+ noreply(S)
+ end;
+handle_info({gs, _Obj,configure, [], [W, H | _]}, S) ->
+ gs:config(S#state.packer, [{width, W}, {height, H}]),
+ S2 = S#state{width = W, height = H},
+ noreply(S2);
+handle_info(timeout, S) ->
+ Try =
+ case S#state.display_mode of
+ {search_actors, reverse, _, _} ->
+ -10;
+ _ ->
+ 10
+ end,
+ if
+ S#state.is_suspended =:= true ->
+ {noreply, S, infinity};
+ S#state.max_events =:= infinity ->
+ display_more_events(Try, S);
+ true ->
+ Needed = S#state.max_events - queue_length(S#state.events),
+ if
+ Needed =< 0 -> {noreply, S, infinity};
+ Needed > 10 -> display_more_events(Try, S);
+ Needed =< 10 -> display_more_events(Needed, S)
+ end
+ end;
+
+handle_info({'EXIT', Pid, Reason}, S) ->
+ if
+ Pid =:= S#state.collector_pid ->
+ unlink(Pid),
+ gs:destroy(S#state.win),
+ {stop, Reason, S};
+ Pid =:= S#state.parent_pid ->
+ unlink(Pid),
+ gs:destroy(S#state.win),
+ {stop, Reason, S};
+ true ->
+ noreply(S)
+ end;
+handle_info(Info, S) ->
+ ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n",
+ [?MODULE, self(), Info, S]),
+ noreply(S).
+
+%%----------------------------------------------------------------------
+%% Func: terminate/2
+%% Purpose: Shutdown the server
+%% Returns: any (ignored by gen_server)
+%%----------------------------------------------------------------------
+
+terminate(_Reason, _S) ->
+ ignore.
+
+%%----------------------------------------------------------------------
+%% Func: code_change/3
+%% Purpose: Convert process state when code is changed
+%% Returns: {ok, NewState}
+%%----------------------------------------------------------------------
+
+code_change(_OldVsn, S, _Extra) ->
+ {ok, S}.
+
+%%%----------------------------------------------------------------------
+%%% Handle suspend/resume
+%%%----------------------------------------------------------------------
+
+reply(Reply, S) ->
+ case queue_length(S#state.events) of
+ _ when S#state.is_suspended =:= true ->
+ {reply, Reply, S, infinity};
+ _ when S#state.max_events =:= infinity ->
+ {reply, Reply, S, 500};
+ N when N >= S#state.max_events ->
+ {reply, Reply, S, infinity};
+ _ ->
+ {reply, Reply, S, 0}
+ end.
+
+noreply(S) ->
+ case queue_length(S#state.events) of
+ _ when S#state.is_suspended =:= true ->
+ {noreply, S, infinity};
+ _ when S#state.max_events =:= infinity ->
+ {noreply, S, 500};
+ N when N >= S#state.max_events ->
+ {noreply, S, infinity};
+ _ ->
+ {noreply, S, 0}
+ end.
+
+do_suspend(S) ->
+ config_suspend(S#state{is_suspended = true}).
+
+do_resume(S) ->
+ config_suspend(S#state{is_suspended = false}).
+
+config_suspend(S) ->
+ Suspended = S#state.is_suspended,
+ gs:config(refresh, [{enable, not Suspended}]),
+ gs:config(refresh_all, [{enable, not Suspended}]),
+ gs:config(clear_all, [{enable, not Suspended}]),
+ S.
+
+refresh_main_window(S) ->
+ Pid = S#state.collector_pid,
+ Key = S#state.first_event,
+ case et_collector:iterate(Pid, Key, -1) of
+ Prev when Prev =:= Key ->
+ scroll_first(S);
+ _Prev ->
+ S2 = S#state{last_event = S#state.first_event},
+ clear_canvas(S2)
+ end.
+
+scroll_first(S) ->
+ S2 = S#state{first_event = first, last_event = first},
+ clear_canvas(S2).
+
+scroll_prev(S) ->
+ Try =
+ case S#state.max_events of
+ infinity -> -10;
+ Max -> -Max
+ end,
+ Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, Try),
+ S2 = S#state{first_event = Key, last_event = Key},
+ clear_canvas(S2).
+
+scroll_next(S) ->
+ S2 = S#state{first_event = S#state.last_event},
+ clear_canvas(S2).
+
+scroll_up(S) ->
+ Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, -5),
+ S2 = S#state{first_event = Key, last_event = Key},
+ clear_canvas(S2).
+
+scroll_down(S) ->
+ Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, 5),
+ S2 = S#state{first_event = Key, last_event = Key},
+ clear_canvas(S2).
+
+scroll_last(S) ->
+ S2 = S#state{first_event = last, last_event = last},
+ clear_canvas(S2).
+
+change_display_mode(Mode, S) ->
+ case Mode of
+ all ->
+ S2 = S#state{display_mode = Mode},
+ refresh_main_window(S2);
+ {search_actors, _Dir, _Key, []} ->
+ S2 = S#state{display_mode = all},
+ refresh_main_window(S2);
+ {search_actors, _Dir, Key, Actors} when is_list(Actors) ->
+ Pid = S#state.collector_pid,
+ Prev = et_collector:iterate(Pid, Key, -1),
+ S2 = S#state{first_event = Prev,
+ last_event = Prev,
+ display_mode = Mode},
+ clear_canvas(S2)
+ end.
+
+close_all(S) ->
+ et_collector:multicast(S#state.collector_pid, close),
+ timer:sleep(timer:seconds(1)),
+ spawn(et_collector, stop, [S#state.collector_pid]),
+ gs:destroy(S#state.win),
+ {stop, shutdown, S}.
+
+close_all_others(S) ->
+ Fun =
+ fun({{subscriber, Pid}, _}) ->
+ if
+ Pid =:= self() ->
+ ignore;
+ true ->
+ unlink(Pid),
+ Pid ! {et, close}
+ end
+ end,
+ All = et_collector:dict_match(S#state.collector_pid,
+ {{subscriber, '_'}, '_'}),
+ lists:foreach(Fun, All),
+ noreply(S).
+
+click_error(Click, S) ->
+ gs:config(S#state.canvas, beep),
+ io:format("~p: ignored: ~p~n", [?MODULE, Click]).
+
+%%%----------------------------------------------------------------------
+%%% Clone viewer
+%%%----------------------------------------------------------------------
+
+open_viewer(Scale, FilterName, Actors, S) ->
+ Filters = [{dict_insert, {filter, F#filter.name}, F#filter.function}
+ || F <- S#state.filters],
+ Options =
+ [{parent_pid, S#state.parent_pid},
+ {title, S#state.title},
+ {collector_pid, S#state.collector_pid},
+ {is_suspended, S#state.is_suspended},
+ {detail_level, S#state.detail_level},
+ {active_filter, FilterName},
+ {event_order, S#state.event_order},
+ {first_event, S#state.first_event},
+ {max_events, S#state.max_events},
+ {max_actors, S#state.max_actors},
+ {hide_actions, S#state.hide_actions},
+ {hide_unknown, S#state.hide_unknown},
+ {is_suspended, S#state.is_suspended},
+ {actors, Actors},
+ {scale, Scale},
+ {width, S#state.width},
+ {height, S#state.height} | Filters],
+ case start_link(Options) of
+ {ok, ViewerPid} ->
+ unlink(ViewerPid),
+ ok;
+ {error, Reason} ->
+ ok = error_logger:format("~p: Failed to start a new window: ~p~n",
+ [?MODULE, Reason])
+ end.
+
+%%%----------------------------------------------------------------------
+%%% Handle graphics
+%%%----------------------------------------------------------------------
+
+create_main_window(S) ->
+ Font = select_font(S#state.scale),
+ GS = gs:start(),
+ Name = name_to_string(S#state.active_filter),
+ Title = case S#state.title of
+ undefined -> atom_to_list(?MODULE);
+ Explicit -> name_to_string(Explicit)
+ end,
+ WinOpt = [{title, Title ++ " (filter: " ++ Name ++ ")"},
+ {configure, true},
+ {width, S#state.width},
+ {height, S#state.height}],
+ Win = gs:window(GS, WinOpt),
+ Bar = gs:menubar(Win, []),
+
+ create_file_menu(Bar),
+ create_viewer_menu(Bar),
+ create_collector_menu(Bar),
+ gs:menubutton(filter_button, Bar, [{label, {text, "Filter"}}]),
+ create_filter_menu(S#state.active_filter, S#state.filters),
+ create_help_menu(Bar),
+
+ config_suspend(S),
+
+ PackerOpt = [{packer_x, [{fixed, 5}, {fixed, 40}, {fixed, 40},
+ {stretch, 1}, {fixed, 5}]},
+ {packer_y, [{fixed, 30}, {fixed, 30},
+ {stretch, 1}, {fixed, 30}]},
+ {x, 0}, {y, 30}],
+ Packer = gs:frame(Win, PackerOpt),
+ gs:checkbutton(suspended, Packer, [{label,{text,"Freeze"}},
+ {x, 10}, {y, 0},
+ {width, 120}, {align, w},
+ {select, S#state.is_suspended}]),
+ gs:checkbutton(hide_actions, Packer, [{label,{text,"Hide From=To"}},
+ {x, 10}, {y, 20},
+ {width, 120}, {align, w},
+ {select, S#state.hide_actions}]),
+ gs:checkbutton(hide_unknown, Packer, [{label,{text,"Hide Unknown"}},
+ {x, 10}, {y, 40},
+ {width, 120}, {align, w},
+ {select, S#state.hide_unknown}]),
+ gs:scale(Packer, [{text,"Detail Level"},
+ {range, {?detail_level_min, ?detail_level_max}},
+ {orient, horizontal},
+ {x, 150}, {y, 0}, {height, 65}, {width, 200},
+ {pos, S#state.detail_level}, {data, detail_level}]),
+ CanvasW = calc_canvas_width(S),
+ CanvasH = calc_canvas_height(S),
+ CanOpt = [{pack_xy, {{2, 4}, 3}}, {vscroll, right}, {hscroll, bottom},
+ {scrollregion, {2, 2, CanvasW, CanvasH}}],
+ Canvas = gs:canvas(Packer, CanOpt),
+ gs:config(Canvas, [{buttonpress, true}, {buttonrelease, true}]),
+ gs:config(Packer, [{width, S#state.width}, {height, S#state.height}]),
+ gs:config(Win, [{map, true}, {keypress, true}]),
+ S2 = S#state{title = Title,
+ win = Win, font = Font, packer = Packer,
+ canvas_width = CanvasW, canvas_height = CanvasH,
+ canvas = Canvas,
+ y_pos = ?initial_y * S#state.scale},
+ draw_all_actors(S2).
+
+select_font(Scale) when is_integer(Scale) ->
+ case Scale of
+ 1 -> {courier, 7};
+ 2 -> {courier, 10};
+ 3 -> {courier, 12};
+ 4 -> {courier, 14};
+ S -> {courier, S * 4}
+ end.
+
+create_file_menu(Bar) ->
+ Button = gs:menubutton(Bar, [{label, {text, "File"}}]),
+ Menu = gs:menu(Button, []),
+ gs:menuitem(close_all, Menu, [{label, {text, "Close Collector and all Viewers (C) "}}]),
+ gs:menuitem(close_all_others, Menu, [{label, {text, "Close other Viewers, but keep Collector (c)"}}]),
+ gs:menuitem(close, Menu, [{label, {text, "Close this Viewer, but keep Collector"}}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+
+ gs:menuitem(clear_all, Menu, [{label, {text, "Clear Collector"}}]),
+ gs:menuitem(load_all, Menu, [{label, {text, "Load Collector from the file \"et_viewer.log\""}}]),
+ gs:menuitem(save_all, Menu, [{label, {text, "Save Collector to the file \"et_viewer.log\""}}]).
+
+create_viewer_menu(Bar) ->
+ Button = gs:menubutton(Bar, [{label, {text, "Viewer"}}]),
+ Menu = gs:menu(Button, []),
+ gs:menuitem(Menu, [{label, {text, "Scroll this Viewer"}}, {bg, lightblue}, {enable,false}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ gs:menuitem(first, Menu, [{label, {text, "First (f)"}}]),
+ gs:menuitem(prev, Menu, [{label, {text, "Prev (p)"}}]),
+ gs:menuitem(next, Menu, [{label, {text, "Next (n)"}}]),
+ gs:menuitem(last, Menu, [{label, {text, "Last (l)"}}]),
+ gs:menuitem(refresh, Menu, [{label, {text, "Refresh (r)"}}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ gs:menuitem(up, Menu, [{label, {text, "Up 5 (Up)"}}]),
+ gs:menuitem(down, Menu, [{label, {text, "Down 5 (Down)"}}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ gs:menuitem(Menu, [{label, {text, "Search in this Viewer"}}, {bg, lightblue}, {enable,false}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ gs:menuitem({mode, all}, Menu, [{label, {text, "Abort search. Display all (a)"}}]).
+
+create_collector_menu(Bar) ->
+ Button = gs:menubutton(Bar, [{label, {text, "Collector"}}]),
+ Menu = gs:menu(Button, []),
+ gs:menuitem(Menu, [{label, {text, "Scroll all Viewers"}}, {bg, lightblue}, {enable,false}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ gs:menuitem(first_all, Menu, [{label, {text, "First (F)"}}]),
+ gs:menuitem(prev_all, Menu, [{label, {text, "Prev (P)"}}]),
+ gs:menuitem(next_all, Menu, [{label, {text, "Next (N)"}}]),
+ gs:menuitem(last_all, Menu, [{label, {text, "Last (L)"}}]),
+ gs:menuitem(refresh_all, Menu, [{label, {text, "Refresh (R)"}}]).
+
+create_filter_menu(ActiveFilterName, Filters) ->
+ Menu = gs:menu(filter_menu, filter_button, []),
+ Item = fun(F, N) when F#filter.name =:= collector ->
+ Label = lists:concat([pad_string(F#filter.name, 20), "(0)"]),
+ gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]),
+ N + 1;
+ (F, N) ->
+ Label = lists:concat([pad_string(F#filter.name, 20), "(", N, ")"]),
+ gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]),
+ N + 1
+ end,
+ gs:menuitem(Menu, [{label, {text, "Same Filter New Scale"}}, {bg, lightblue}, {enable,false}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ {value, Filter} = lists:keysearch(ActiveFilterName, #filter.name, Filters),
+ Same = lists:concat([pad_string(ActiveFilterName, 20), "(=)"]),
+ Larger = lists:concat([pad_string(ActiveFilterName, 20), "(+)"]),
+ Smaller = lists:concat([pad_string(ActiveFilterName, 20), "(-)"]),
+ gs:menuitem(Menu, [{label, {text, Same}}, {data, Filter}]),
+ gs:menuitem(Menu, [{label, {text, Smaller}}, {data, Filter}]),
+ gs:menuitem(Menu, [{label, {text, Larger}}, {data, Filter}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ gs:menuitem(Menu, [{label, {text, "New Filter Same Scale"}}, {bg, lightblue}, {enable,false}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ lists:foldl(Item, 1, Filters).
+
+create_help_menu(Bar) ->
+ Button = gs:menubutton(Bar, [{label, {text, "Help"}}]),
+ Menu = gs:menu(Button, []),
+ gs:menuitem(Menu, [{label, {text, "Display details of an event"}},
+ {bg, lightblue}, {enable,false}]),
+ gs:menuitem(Menu, [{label, {text, " Single click on the name tag or the arrow (Mouse-1)"}},
+ {enable,false}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ gs:menuitem(Menu, [{label, {text, "Toggle actor search"}},
+ {bg, lightblue}, {enable,false}]),
+ gs:menuitem(Menu, [{label, {text, " Single click on the name tag (Mouse-1)"}},
+ {enable,false}]),
+ gs:menuitem(Menu, [{itemtype, separator}]),
+ gs:menuitem(Menu, [{label, {text, "Move actor"}},
+ {bg, lightblue}, {enable,false}]),
+ gs:menuitem(Menu, [{label, {text, " se drag and drop on name tag (Mouse-1)"}},
+ {enable,false}]).
+
+clear_canvas(S) ->
+ gs:destroy(S#state.canvas),
+ CanvasW = calc_canvas_width(S),
+ CanvasH = calc_canvas_height(S),
+ CanOpt = [{pack_xy, {{2, 4}, 3}}, {vscroll, right}, {hscroll, bottom},
+ {scrollregion, {2, 2, CanvasW, CanvasH}}],
+ Canvas = gs:canvas(S#state.packer, CanOpt),
+ gs:config(S#state.packer, [{width, S#state.width}, {height, S#state.height}]),
+ gs:config(Canvas, [{buttonpress, true}, {buttonrelease, true}]),
+ S2 = S#state{refresh_needed = false,
+ y_pos = ?initial_y * S#state.scale,
+ canvas = Canvas,
+ canvas_width = CanvasW,
+ canvas_height = CanvasH,
+ events = queue_new()},
+ draw_all_actors(S2).
+
+calc_canvas_width(S) ->
+ Min = calc_min_actors(S),
+ CanvasW = ((2 * ?initial_x) + (Min * ?incr_x)) * S#state.scale,
+ lists:max([CanvasW, S#state.width - (15 * S#state.scale), S#state.canvas_width]).
+
+calc_canvas_height(S) ->
+ Min = calc_min_events(S),
+ CanvasH = ((2 * ?initial_y) + (Min * ?incr_y)) * S#state.scale,
+ lists:max([CanvasH, S#state.height - (4 * 30), S#state.canvas_height]).
+
+calc_min_actors(S) ->
+ Max = S#state.max_actors,
+ N = length(S#state.actors),
+ if
+ Max =:= infinity ->
+ N * 2;
+ Max < N ->
+ N;
+ true ->
+ Max
+ end.
+
+calc_min_events(S) ->
+ Max = S#state.max_events,
+ N = queue_length(S#state.events),
+ if
+ Max =:= infinity ->
+ N * 2;
+ Max < N ->
+ N;
+ true ->
+ Max
+ end.
+
+display_more_events(Try, S) ->
+ Name = S#state.active_filter,
+ {value, F} = lists:keysearch(Name, #filter.name, S#state.filters),
+ FilterFun = F#filter.function,
+ Fun = fun(Event, State) ->
+ case catch FilterFun(Event) of
+ true ->
+ State2 = ensure_key(Event, State),
+ opt_display_event(Event, State2);
+ {true, Event2} ->
+ State2 = ensure_key(Event2, State),
+ opt_display_event(Event2, State2);
+ false ->
+ ensure_key(Event, State);
+ Bad ->
+ Contents = {bad_filter, Name, Bad, Event},
+ Event2 = Event#event{contents = Contents,
+ from = bad_filter,
+ to = bad_filter},
+ State2 = ensure_key(Event2, State),
+ opt_display_event(Event2, State2)
+ end
+ end,
+ Pid = S#state.collector_pid,
+ S2 = et_collector:iterate(Pid, S#state.last_event, Try, Fun, S),
+ case queue_length(S2#state.events) - queue_length(S#state.events) of
+ Diff when Diff =:= Try ->
+ %% Got as much as requested, look for more
+ %% io:format("Done: ~p~n", [{Try, Diff}]),
+ {noreply, S2, 0};
+ _Diff when S2#state.first_event =:= S#state.first_event,
+ S2#state.last_event =:= S#state.last_event ->
+ %% Got lesser than requested, wait a while before looking for more
+ %% io:format("More: ~p~n", [{Try, Diff}]),
+ {noreply, S2, 500};
+ _Diff ->
+ %% Got lesser than requested, look for more
+ %% io:format("More2: ~p~n", [{Try, Diff}]),
+ {noreply, S2, 0}
+ end.
+
+ensure_key(E, S) when is_record(E, event), is_record(S, state) ->
+ Key = et_collector:make_key(S#state.event_order, E),
+ case S#state.first_event of
+ first ->
+ S#state{first_event = Key, last_event = Key};
+ last ->
+ S#state{first_event = Key, last_event = Key};
+ _ ->
+ S#state{last_event = Key}
+ end.
+
+opt_display_event(E, S) ->
+ case S#state.display_mode of
+ all ->
+ display_event(E, S);
+ {search_actors, _Dir, _FirstKey, Actors} ->
+ %% Key = S#state.last_event,
+ From = select_actor_name(E#event.from, S),
+ case lists:member(From, Actors) of
+ true ->
+ display_event(E, S);
+ false ->
+ To = select_actor_name(E#event.to, S),
+ case lists:member(To, Actors) of
+ true ->
+ display_event(E, S);
+ false ->
+ S
+ end
+ end
+ end.
+
+select_actor_name(Name, S) ->
+ case lists:keymember(Name, #actor.name, S#state.actors) of
+ true -> Name;
+ false -> ?unknown
+ end.
+
+display_event(E, S) when E#event.detail_level < S#state.detail_level ->
+ {FromRefresh, From} = ensure_actor(E#event.from, S),
+ {FromName, FromPos, S2} = From,
+ {ToRefresh, To} = ensure_actor(E#event.to, S2),
+ {ToName, ToPos, S3} = To,
+ if
+ FromRefresh =/= false, ToRefresh =/= false ->
+ Key = S#state.last_event,
+ refresh_beep(S),
+ S3#state{refresh_needed = true,
+ events = queue_in(Key, S3#state.events)};
+ FromName =:= ToName ->
+ case S#state.hide_actions of
+ true ->
+ S3;
+ false ->
+ Label = name_to_string(E#event.label),
+ draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S3)
+ end;
+ true ->
+ Label = name_to_string(E#event.label),
+ draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S3)
+ end;
+display_event(_, S) ->
+ S.
+
+draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S) ->
+ Key = S#state.last_event,
+ case S#state.y_pos + (?incr_y * S#state.scale) of
+ _ when S#state.hide_unknown =:= true, FromName =:= ?unknown ->
+ S;
+ _ when S#state.hide_unknown =:= true, ToName =:= ?unknown ->
+ S;
+ Y when Y > S#state.canvas_height ->
+ refresh_beep(S),
+ S#state{refresh_needed = true,
+ events = queue_in(Key, S#state.events)};
+ Y ->
+ S2 = S#state{y_pos = Y, events = queue_in(Key, S#state.events)},
+ S3 = draw_arrow(FromPos, ToPos, S2),
+ draw_label(Label, FromName, ToName, FromPos, ToPos, S3)
+ end.
+
+refresh_beep(S) ->
+ case S#state.refresh_needed of
+ false ->
+ gs:config(S#state.canvas, beep),
+ gs:config(S#state.canvas, beep),
+ gs:config(S#state.canvas, beep);
+ true ->
+ ignore
+ end.
+
+draw_arrow(Pos, Pos, S) ->
+ S;
+draw_arrow(FromPos, ToPos, S) ->
+ Y = S#state.y_pos,
+ CanOpts = [{coords, [{FromPos , Y}, {ToPos, Y}]},
+ {arrow, last},{width, 1}, {fg, black}],
+ gs:line(S#state.canvas, CanOpts),
+ S.
+
+draw_label(Label, FromName, ToName, FromPos, ToPos, S) ->
+ Colour =
+ if
+ FromName =:= ?unknown,
+ ToName =:= ?unknown -> blue; %turquoise;
+ FromName =:= ?unknown -> orange;
+ ToName =:= ?unknown -> orange;
+ FromPos =:= ToPos -> blue;
+ true -> red
+ end,
+ Scale = S#state.scale,
+ X = lists:min([FromPos, ToPos]) + (6 * Scale),
+ Y = S#state.y_pos,
+ write_text(Label, X, Y, Colour, S),
+ S.
+
+draw_all_actors(State) ->
+ Scale = State#state.scale,
+ Fun = fun(A, X) ->
+ draw_actor(A, X, State),
+ X + (?incr_x * Scale)
+ end,
+ lists:foldl(Fun, ?initial_x * Scale, State#state.actors),
+ State.
+
+%% Returns: {NeedsRefreshBool, {ActorPos, NewsS, NewActors}}
+ensure_actor(Name, S) ->
+ do_ensure_actor(Name, S, S#state.actors, 0).
+
+do_ensure_actor(Name, S, [H | _], N) when H#actor.name =:= Name ->
+ Pos = (?initial_x + (N * ?incr_x)) * S#state.scale,
+ {false, {Name, Pos, S}};
+do_ensure_actor(Name, S, [_ | T], N) ->
+ do_ensure_actor(Name, S, T, N + 1);
+do_ensure_actor(Name, S, [], N) ->
+ %% A brand new actor, let's see if it does fit
+ Pos = (?initial_x + (N * ?incr_x)) * S#state.scale,
+ MaxActors = S#state.max_actors,
+ if
+ is_integer(MaxActors), N > MaxActors ->
+ %% Failed on max_actors limit, put into unknown
+ %% Assume that unknown always is in actor list
+ ensure_actor(?unknown, S);
+ Pos > (S#state.canvas_width - ((?initial_x - 15) * S#state.scale)) ->
+ %% New actor does not fit in canvas, refresh needed
+ A = create_actor(Name),
+ draw_actor(A, Pos, S),
+ {true, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}};
+ true ->
+ %% New actor fits in canvas. Draw the new actor.
+ A = create_actor(Name),
+ draw_actor(A, Pos, S),
+ {false, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}}
+ end.
+
+draw_actor(A, LineX, S) ->
+ Scale = S#state.scale,
+ TextX = LineX - (5 * Scale),
+ TextY = ?initial_y * Scale,
+ LineTopY = TextY + ((?incr_y / 2) * Scale),
+ LineBotY = S#state.canvas_height - ((?incr_y / 2) * Scale),
+ Colour = case A#actor.name of
+ ?unknown -> orange;
+ _ -> red
+ end,
+ write_text(A#actor.string, TextX, TextY, Colour, S),
+ LineOpt = [{coords, [{LineX, LineTopY}, {LineX, LineBotY}]},
+ {width, 1}, {fg, Colour}],
+ gs:line(S#state.canvas, LineOpt).
+
+toggle_search_for_actor(ActorName,S) ->
+ case S#state.display_mode of
+ all ->
+ io:format("~p: search for: ~p ++ ~p~n", [?MODULE, [], [ActorName]]),
+ %% Search for this actor
+ Key = S#state.first_event,
+ Actors = [ActorName],
+ Mode = {search_actors, forward, Key, Actors},
+ change_display_mode(Mode, S);
+ {search_actors, Dir, Key, Actors}->
+ Actors2 =
+ case lists:member(ActorName, Actors) of
+ true ->
+ io:format("~p: search for: ~p -- ~p~n", [?MODULE, Actors, [ActorName]]),
+ %% Remove actor from search list
+ Actors -- [ActorName];
+ false ->
+ io:format("~p: search for: ~p ++ ~p~n", [?MODULE, Actors, [ActorName]]),
+ %% Add actor from search list
+ [ActorName | Actors]
+ end,
+ Mode2 = {search_actors, Dir, Key, Actors2},
+ change_display_mode(Mode2, S)
+ end.
+
+move_actor(From, To, Actors, S) ->
+ Pos = #actor.name,
+ ToName = To#actor.name,
+ FromName = From#actor.name,
+ ToIx = actor_index(ToName, Pos, Actors),
+ FromIx = actor_index(FromName, Pos, Actors),
+ if
+ FromIx =/= 0, ToIx =/= 0, ToIx > FromIx ->
+ Actors2 = lists:keydelete(FromName, Pos, Actors),
+ Actors3 = insert_actor_after(From, To, Actors2),
+ S2 = S#state{actors = Actors3},
+ refresh_main_window(S2);
+ FromIx =/= 0, ToIx =/= 0 ->
+ Actors2 = lists:keydelete(FromName, Pos, Actors),
+ Actors3 = insert_actor_before(From, To, Actors2),
+ S2 = S#state{actors = Actors3},
+ refresh_main_window(S2);
+ true ->
+ %% Ignore
+ S
+ end.
+
+insert_actor_after(From, To, [H | T]) ->
+ case To#actor.name =:= H#actor.name of
+ true -> [H, From | T];
+ false -> [H | insert_actor_after(From, To, T)]
+ end;
+insert_actor_after(_From, _To, []) ->
+ [].
+
+insert_actor_before(From, To, [H | T]) ->
+ case To#actor.name =:= H#actor.name of
+ true -> [From, H | T];
+ false -> [H | insert_actor_before(From, To, T)]
+ end;
+insert_actor_before(_From, _To, []) ->
+ [].
+
+actor_index(_Key, _Pos, []) ->
+ 0;
+actor_index(Key, Pos, [H | T]) ->
+ case Key =:= element(Pos, H) of
+ false -> actor_index(Key, Pos, T) + 1;
+ true -> 1
+ end.
+
+y_to_n(Y, S) ->
+ Y2 = ((Y / S#state.scale) - ?initial_y + (?incr_y / 2)),
+ N = round(Y2 / ?incr_y - 0.2),
+ MaxN = queue_length(S#state.events),
+ if
+ N =< 0 -> actor;
+ N > MaxN -> actor;
+ true -> {event, N}
+ end.
+
+x_to_n(X, S) ->
+ Scale = S#state.scale,
+ Len = length(S#state.actors),
+ X2 = X - (?initial_x * Scale),
+ N = X2 / (?incr_x * Scale),
+ N2 = trunc(N + 1.5),
+ if
+ N2 > Len -> Len;
+ N2 < 1 -> 1;
+ true -> N2
+ end.
+
+write_text(Text, X, Y, Colour, S) ->
+ Opt = [{coords, [{X, Y - (?incr_y * S#state.scale / 2)}]},
+ {font, S#state.font}, {fg, Colour}, {text, Text}],
+ gs:text(S#state.canvas, Opt).
+
+create_contents_window(Event, S) ->
+ Options = [{viewer_pid, self()},
+ {event, Event},
+ {event_order, S#state.event_order},
+ {active_filter, S#state.active_filter}
+ | S#state.filters],
+ case et_gs_contents_viewer:start_link(Options) of
+ {ok, _Pid} ->
+ S;
+ {error, Reason} ->
+ ok = error_logger:format("~p(~p): create_contents_window(~p) ->~n ~p~n",
+ [?MODULE, self(), Options, Reason]),
+ S
+ end.
+
+%%%----------------------------------------------------------------------
+%%% String padding of actors
+%%%----------------------------------------------------------------------
+
+create_actor(Name) ->
+ String = name_to_string(Name),
+ PaddedString = pad_string(String, 8),
+ #actor{name = Name, string = PaddedString}.
+
+name_to_string(Name) ->
+ case catch io_lib:format("~s", [Name]) of
+ {'EXIT', _} -> lists:flatten(io_lib:format("~w", [Name]));
+ GoodString -> lists:flatten(GoodString)
+ end.
+
+pad_string(Atom, MinLen) when is_atom(Atom) ->
+ pad_string(atom_to_list(Atom), MinLen);
+pad_string(String, MinLen) when is_integer(MinLen), MinLen >= 0 ->
+ Len = length(String),
+ case Len >= MinLen of
+ true ->
+ String;
+ false ->
+ String ++ lists:duplicate(MinLen - Len, $ )
+ end.
+
+%%%----------------------------------------------------------------------
+%%% Queue management
+%%%----------------------------------------------------------------------
+
+queue_new() ->
+ {0, [], []}.
+
+queue_in(X, {Size, In, Out}) ->
+ {Size + 1, [X | In], Out}.
+
+%% queue_out(Q) ->
+%% case Q of
+%% {Size, In, [H | Out]} -> {{value, H}, {Size - 1, In, Out}};
+%% {Size, [], []} -> {empty, {Size, [], []}};
+%% {Size, In, _} -> queue_out({Size, [], lists:reverse(In)})
+%% end.
+
+queue_to_list({_Size, [], Out}) ->
+ Out;
+queue_to_list({_Size, In, Out}) ->
+ Out ++ lists:reverse(In).
+
+queue_length({Size, _In, _Out}) ->
+ Size.
+
+list_to_queue(List) when is_list(List) ->
+ {length(List), [], List}.
diff --git a/lib/et/src/et_internal.hrl b/lib/et/src/et_internal.hrl
index b6f84f5b4b..419d35afcd 100644
--- a/lib/et/src/et_internal.hrl
+++ b/lib/et/src/et_internal.hrl
@@ -1,23 +1,29 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2002-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%----------------------------------------------------------------------
%% Purpose: Definition of internal data structures
%%----------------------------------------------------------------------
+-define(detail_level_min, 0).
+-define(detail_level_max, 100).
+
-record(filter, {name, function}).
+
+-define(DEFAULT_FILTER_NAME, all).
+-define(DEFAULT_FILTER, #filter{name = ?DEFAULT_FILTER_NAME, function = fun(E) -> E end}).
diff --git a/lib/et/src/et_selector.erl b/lib/et/src/et_selector.erl
index 845359622d..f39f21aa70 100644
--- a/lib/et/src/et_selector.erl
+++ b/lib/et/src/et_selector.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%----------------------------------------------------------------------
@@ -39,16 +39,16 @@
%% RawPattern = detail_level()
%% TracePattern = erlang_trace_pattern_match_spec()
%%
-%% detail_level() = min | max | integer(X) when X =< 0, X >= 100
+%% detail_level() = min | max | integer(X) when X >= 0, X =< 100
%%
-%% min - minimum level of tracing (ignore calls to report_event/4,5)
-%% max - maximum level of tracing (all calls to report_event/4,5)
+%% min - minimum level of tracing (ignore calls to trace_me/4,5)
+%% max - maximum level of tracing (all calls to trace_me/4,5)
%% integer() - explicit detail level of tracing
%%----------------------------------------------------------------------
make_pattern(undefined) ->
{undefined, undefined};
-make_pattern({Mod, Pattern}) when atom(Mod) ->
+make_pattern({Mod, Pattern}) when is_atom(Mod) ->
case Pattern of
min ->
{Mod, []};
@@ -57,7 +57,7 @@ make_pattern({Mod, Pattern}) when atom(Mod) ->
Body = [],
Cond = [],
{Mod, [{Head, Cond, Body}]};
- DetailLevel when integer(DetailLevel) ->
+ DetailLevel when is_integer(DetailLevel) ->
Head = ['$1', '_', '_', '_', '_'],
Body = [],
Cond = [{ '<', '$1', DetailLevel}],
@@ -80,28 +80,31 @@ make_pattern({Mod, Pattern}) when atom(Mod) ->
%% detail_level() = min | max | integer(X) when X =<0, X >= 100
%% empty_match_spec() = []
%%
-%% Min detail level deactivates tracing of calls to report_event/4,5
+%% Min detail level deactivates tracing of calls to trace_me/4,5
%%
-%% Max detail level activates tracing of all calls to report_event/4,5
+%% Max detail level activates tracing of all calls to trace_me/4,5
%%
%% integer(X) detail level activates tracing of all calls to
-%% report_event/4,5 whose detail level argument is lesser than X.
+%% trace_me/4,5 whose detail level argument is lesser than X.
%%
-%% An empty match spec deactivates tracing of calls to report_event/4,5
+%% An empty match spec deactivates tracing of calls to trace_me/4,5
%%
-%% Other match specs activates tracing of calls to report_event/4,5
+%% Other match specs activates tracing of calls to trace_me/4,5
%% accordlingly with erlang:trace_pattern/2.
%%----------------------------------------------------------------------
-change_pattern({Mod, Pattern}) when atom(Mod) ->
- MFA = {Mod, report_event, 5},
+change_pattern({Mod, Pattern}) when is_atom(Mod) ->
+ MFA = {Mod, trace_me, 5},
case Pattern of
undefined ->
ignore;
[] ->
+ error_to_exit(old_ctp(MFA)),
error_to_exit(dbg:ctp(MFA)),
error_to_exit(dbg:p(all, clear));
- List when list(List) ->
+ List when is_list(List) ->
+ error_to_exit(old_ctp(MFA)),
+ error_to_exit(old_tp(MFA, Pattern)),
error_to_exit(dbg:ctp(MFA)),
error_to_exit(dbg:tp(MFA, Pattern)),
error_to_exit(dbg:p(all, [call, timestamp]));
@@ -110,6 +113,18 @@ change_pattern({Mod, Pattern}) when atom(Mod) ->
end,
ok.
+old_ctp({Mod, _Fun, Args}) ->
+ case Mod of
+ et -> ignore;
+ _ -> dbg:ctp({Mod, report_event, Args})
+ end.
+
+old_tp({Mod, _Fun, Args}, Pattern) ->
+ case Mod of
+ et -> ignore;
+ _ -> dbg:tp({Mod, report_event, Args}, Pattern)
+ end.
+
error_to_exit({error, Reason}) ->
exit(Reason);
error_to_exit({ok, Res}) ->
@@ -148,7 +163,7 @@ error_to_exit({ok, Res}) ->
%% label - Label intended to provide a brief event summary.
%% contents - All nitty gritty details of the event.
%%
-%% See et:report_event/4 and et:report_event/5 for details.
+%% See et:trace_me/4 and et:trace_me/5 for details.
%%
%% Returns:
%%
@@ -161,7 +176,7 @@ error_to_exit({ok, Res}) ->
%% should be dropped
%%----------------------------------------------------------------------
-parse_event(_Mod, E) when record(E, event) ->
+parse_event(_Mod, E) when is_record(E, event) ->
true;
parse_event(Mod, Trace) ->
ParsedTS = erlang:now(),
@@ -293,6 +308,14 @@ parse_event(Mod, Trace, ParsedTS, ReportedTS, From, Label, Contents) ->
{msg, Msg}]}};
call ->
case Contents of
+ [{M, trace_me, [UserDetailLevel, UserFrom, UserTo, UserLabel, UserContents]}] when M == Mod, Mod /= undefined ->
+ {true, #event{detail_level = UserDetailLevel,
+ trace_ts = ReportedTS,
+ event_ts = ParsedTS,
+ from = UserFrom,
+ to = UserTo,
+ label = UserLabel,
+ contents = UserContents}}; % Term
[{M, report_event, [UserDetailLevel, UserFrom, UserTo, UserLabel, UserContents]}] when M == Mod, Mod /= undefined ->
{true, #event{detail_level = UserDetailLevel,
trace_ts = ReportedTS,
@@ -358,6 +381,21 @@ parse_event(Mod, Trace, ParsedTS, ReportedTS, From, Label, Contents) ->
{to, From},
{mfa, MFA},
{return, ReturnValue}]}};
+ exception_from ->
+ DetailLevel = 54,
+ [MFA, Exception] = Contents,
+ {true, #event{detail_level = DetailLevel,
+ trace_ts = ReportedTS,
+ event_ts = ParsedTS,
+ from = From,
+ to = From,
+ label = Label,
+ contents = [{label, Label},
+ {detail_level, DetailLevel},
+ {from, From},
+ {to, From},
+ {mfa, MFA},
+ {exception, Exception}]}};
spawn ->
DetailLevel = 25,
[NewPid, MFA] = Contents,
diff --git a/lib/et/src/et_viewer.erl b/lib/et/src/et_viewer.erl
index ede2c401eb..d9bd01f8d0 100644
--- a/lib/et/src/et_viewer.erl
+++ b/lib/et/src/et_viewer.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%----------------------------------------------------------------------
@@ -22,66 +22,23 @@
-module(et_viewer).
--behaviour(gen_server).
%% External exports
-export([file/1,
start/0,
start/1,
+ start/2,
start_link/1,
+ start_link/2,
+ open_event/2,
stop/1,
get_collector_pid/1]).
-%% gen_server callbacks
--export([init/1, terminate/2, code_change/3,
- handle_call/3, handle_cast/2, handle_info/2]).
-
-include("../include/et.hrl").
-include("et_internal.hrl").
-define(unknown, "UNKNOWN").
--record(state,
- {parent_pid, % Pid of parent process
- collector_pid, % Pid of collector process
- event_order, % Field to be used as primary key
- trace_pattern, % Collector trace pattern
- active_filter, % Name of the active filter
- filters, % List of possible filters
- selected_actor, % Actor selected by user
- first_event, % Key of first event (regardless of visibility)
- last_event, % Key of last event (regardless of visibility)
- max_events, % Maximum number of shown events
- events, % Queue containg all event keys (regardless of visibility)
- max_actors, % Maximum number of shown actors
- actors, % List of known actors
- refresh_needed, % Refresh is needed in order to show all actors
- display_mode, % Display all or only matching actors
- detail_level, % Show only events with lesser detail level
- hide_actions, % Hide/show events where to == from actor (bool)
- hide_unknown, % Hide/show events with unknown actor (bool)
- is_suspended, % Suspend viewer updates (bool)
- title, % GUI: Window title
- win, % GUI: Window object
- menubar, % GUI: Menu bar object
- packer, % GUI: Packer object
- width, % GUI: Window width
- height, % GUI: Window height
- scale, % GUI: Scaling factor on canvas
- font, % GUI: Font to be used on text labels
- canvas_width, % GUI: Canvas width
- canvas_height, % GUI: Canvas height
- canvas, % GUI: Canvas object
- y_pos}). % GUI: Current y position on canvas
-
--record(actor, {name, string}).
-
--define(initial_x, 10).
--define(incr_x, 60).
--define(initial_y, 15).
--define(incr_y, 15).
--define(detail_level_min, 0).
--define(detail_level_max, 100).
%%%----------------------------------------------------------------------
%%% Client side
@@ -99,7 +56,7 @@
%%----------------------------------------------------------------------
file(FileName) ->
- start_link([{trace_client, {file, FileName}}]).
+ start_link([{trace_client, {file, FileName}}], default).
%%----------------------------------------------------------------------
%% start() -> ok
@@ -113,14 +70,19 @@ file(FileName) ->
%%----------------------------------------------------------------------
start() ->
- start([{trace_global, true}]).
+ start([{trace_global, true}], default).
%%----------------------------------------------------------------------
%% start(Options) -> {ok, ViewerPid} | {error, Reason}
%%----------------------------------------------------------------------
+start(GUI) when GUI =:= wx; GUI =:= gs; GUI =:= default ->
+ start_link([{trace_global, true}], GUI);
start(Options) ->
- start_link([{parent_pid, undefined} | Options]).
+ start_link([{parent_pid, undefined} | Options], default).
+
+start(Options, GUI) ->
+ start_link([{parent_pid, undefined} | Options], GUI).
%%----------------------------------------------------------------------
%% start_link(Options) -> {ok, ViewerPid} | {error, Reason}
@@ -177,216 +139,31 @@ start(Options) ->
%% and returns false | true | {true, NewEvent}.
%%----------------------------------------------------------------------
-start_link(Options) ->
- case parse_opt(Options, default_state(), []) of
- {ok, S, CollectorOpt} ->
- case S#state.collector_pid of
- CollectorPid when pid(CollectorPid) ->
- case gen_server:start_link(?MODULE, [S], []) of
- {ok, Pid} when S#state.parent_pid /= self() ->
- unlink(Pid),
- {ok, Pid};
- Other ->
- Other
- end;
- undefined ->
- case et_collector:start_link(CollectorOpt) of
- {ok, CollectorPid} ->
- S2 = S#state{collector_pid = CollectorPid},
- case gen_server:start_link(?MODULE, [S2], []) of
- {ok, Pid} when S#state.parent_pid /= self() ->
- unlink(Pid),
- {ok, Pid};
- Other ->
- Other
- end;
- {error, Reason} ->
- {error, {et_collector, Reason}}
- end
- end;
- {error, Reason} ->
- {error, Reason}
- end.
-
-default_state() ->
- #state{parent_pid = self(),
- collector_pid = undefined,
- detail_level = ?detail_level_max,
- active_filter = collector,
- filters = [#filter{name = collector, function = fun(E) -> E end}],
- event_order = trace_ts,
- is_suspended = false,
- max_events = 100,
- first_event = first,
- last_event = first,
- events = queue_new(),
- max_actors = 5,
- actors = [create_actor(?unknown)],
- selected_actor = ?unknown,
- hide_actions = false,
- hide_unknown = false,
- refresh_needed = false,
- display_mode = all,
- scale = 2,
- canvas_height = 0,
- canvas_width = 0,
- width = 800,
- height = 600}.
-
-parse_opt([], S, CollectorOpt) ->
- {ok, S, [{parent_pid, S#state.parent_pid} | CollectorOpt]};
-parse_opt([H | T], S, CollectorOpt) ->
- case H of
- {parent_pid, Parent} when Parent == undefined ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt2);
- {parent_pid, Parent} when pid(Parent) ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt2);
- {title, Title} ->
- parse_opt(T, S#state{title = name_to_string(Title)}, CollectorOpt);
- {detail_level, Level} when integer(Level),
- Level >= ?detail_level_min,
- Level =< ?detail_level_max ->
- parse_opt(T, S#state{detail_level = Level}, CollectorOpt);
- {detail_level, max} ->
- parse_opt(T, S#state{detail_level = ?detail_level_max}, CollectorOpt);
- {detail_level, min} ->
- parse_opt(T, S#state{detail_level = ?detail_level_min}, CollectorOpt);
- {is_suspended, true} ->
- parse_opt(T, S#state{is_suspended = true}, CollectorOpt);
- {is_suspended, false} ->
- parse_opt(T, S#state{is_suspended = false}, CollectorOpt);
- {scale, Scale} when integer(Scale), Scale > 0 ->
- parse_opt(T, S#state{scale = Scale}, CollectorOpt);
- {width, W} when integer(W), W > 0 ->
- parse_opt(T, S#state{width = W, canvas_width = W}, CollectorOpt);
- {height, WH} when integer(WH), WH > 0 ->
- parse_opt(T, S#state{height = WH, canvas_height = WH}, CollectorOpt);
- {collector_pid, Pid} when pid(Pid) ->
- parse_opt(T, S#state{collector_pid = Pid}, CollectorOpt);
- {collector_pid, undefined} ->
- parse_opt(T, S#state{collector_pid = undefined}, CollectorOpt);
- {active_filter, Name} when atom(Name) ->
- parse_opt(T, S#state{active_filter = Name}, CollectorOpt);
- {event_order, trace_ts} -> %% BUGBUG: Verify event_order with collector
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S#state{event_order = trace_ts}, CollectorOpt2);
- {event_order, event_ts} -> %% BUGBUG: Verify event_order with collector
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S#state{event_order = event_ts}, CollectorOpt2);
- {trace_port, _Port} ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S, CollectorOpt2);
- {trace_max_queue, _Queue} ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S, CollectorOpt2);
- {trace_pattern, _Pattern} ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S, CollectorOpt2);
- {trace_global, _Boolean} ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S, CollectorOpt2);
- {trace_client, _Client} ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S, CollectorOpt2);
- {dict_insert, {filter, Name}, Fun} ->
- if
- atom(Name), function(Fun) ->
- F = #filter{name = Name, function = Fun},
- Filters = lists:keydelete(Name, #filter.name, S#state.filters),
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S#state{filters = Filters ++ [F]}, CollectorOpt2);
- true ->
- {error, {bad_option, H}}
- end;
- {dict_insert, {subscriber, Pid}, _Val} ->
- if
- pid(Pid) ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S, CollectorOpt2);
- true ->
- {error, {bad_option, H}}
- end;
- {dict_insert, _Key, _Val} ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S, CollectorOpt2);
- {dict_delete, {filter, Name}} ->
- Filters = lists:keydelete(Name, #filter.name, S#state.filters),
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S#state{filters = Filters}, CollectorOpt2);
- {dict_delete, _Key} ->
- CollectorOpt2 = [H | CollectorOpt],
- parse_opt(T, S, CollectorOpt2);
- {max_events, Max} when integer(Max), Max > 0->
- parse_opt(T, S#state{max_events = Max}, CollectorOpt);
- {max_events, Max} when Max == infinity ->
- parse_opt(T, S#state{max_events = Max}, CollectorOpt);
- {max_actors, Max} when integer(Max), Max >= 0->
- parse_opt(T, S#state{max_actors = Max}, CollectorOpt);
- {max_actors, Max} when Max == infinity ->
- parse_opt(T, S#state{max_actors = Max}, CollectorOpt);
- {actors, ActorNames} when list(ActorNames) ->
- ActorNames2 =
- case lists:member(?unknown, ActorNames) of
- false -> [?unknown | ActorNames];
- true -> ActorNames
- end,
- Actors = [create_actor(Name) || Name <- ActorNames2],
- parse_opt(T, S#state{actors = Actors}, CollectorOpt);
- {first_event, First} ->
- parse_opt(T, S#state{first_event = First}, CollectorOpt);
- {hide_unknown, Bool} when Bool == false ->
- parse_opt(T, S#state{hide_unknown = Bool}, CollectorOpt);
- {hide_unknown, Bool} when Bool == true ->
- parse_opt(T, S#state{hide_unknown = Bool}, CollectorOpt);
- {hide_actions, Bool} when Bool == false ->
- parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt);
- {hide_actions, Bool} when Bool == true ->
- parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt);
- {display_mode, Mode = all} ->
- parse_opt(T, S#state{display_mode = Mode}, CollectorOpt);
- {display_mode, Mode = {search_actors, Dir, _Key, Actors}} when list(Actors), Dir == forward ->
- parse_opt(T, S#state{display_mode = Mode}, CollectorOpt);
- {display_mode, Mode = {search_actors, Dir, _Key, Actors}} when list(Actors), Dir == reverse ->
- parse_opt(T, S#state{display_mode = Mode}, CollectorOpt);
+start_link(GUI) when GUI =:= wx; GUI =:= gs; GUI =:= default ->
+ start_link([{trace_global, true}], GUI);
+start_link(Options) ->
+ start_link(Options, default).
- Bad ->
- {error, {bad_option, Bad}}
- end;
-parse_opt(BadList, _S, _CollectorOpt) ->
- {error, {bad_option_list, BadList}}.
+start_link(Options, GUI) ->
+ case GUI of
+ wx ->
+ et_wx_viewer:start_link(Options);
+ gs ->
+ et_gs_viewer:start_link(Options);
+ default ->
+ start_link(Options, which_gui())
+ end.
-do_dict_insert({filter, Name}, Fun, S) when atom(Name), function(Fun) ->
- F = #filter{name = Name, function = Fun},
- Filters = lists:keydelete(Name, #filter.name, S#state.filters),
- Filters2 = lists:keysort(#filter.name, [F | Filters]),
- gs:destroy(filter_menu),
- create_filter_menu(S#state.active_filter, Filters2),
- S#state{filters = Filters2};
-do_dict_insert(_Key, _Val, S) ->
- %% ok = error_logger:format("~p(~p): handle_info({et, {dict_insert, ~p, ~p}})~n",
- %% [?MODULE, self(), Key, Val]),
- S.
-do_dict_delete({filter, Name}, S) when atom(Name), Name /= S#state.active_filter ->
- Filters = lists:keydelete(Name, #filter.name, S#state.filters),
- gs:destroy(filter_menu),
- create_filter_menu(S#state.active_filter, Filters),
- S#state{filters = Filters};
-do_dict_delete(_Key, S) ->
- %% ok = error_logger:format("~p(~p): handle_info({et, {dict_delete, ~p}})~n",
- %% [?MODULE, self(), Key]),
- S.
+which_gui() ->
+ try
+ wx:new(),
+ wx:destroy(),
+ wx
+ catch _:_ ->
+ gs
+ end.
-%%----------------------------------------------------------------------
-%% get_collector_pid(ViewerPid) -> CollectorPid
-%%
-%% Returns the identifier of the collector process
-%%
-%% ViewerPid = pid()
-%% CollectorPid = pid()
-%%----------------------------------------------------------------------
get_collector_pid(ViewerPid) ->
call(ViewerPid, get_collector_pid).
@@ -402,1201 +179,14 @@ get_collector_pid(ViewerPid) ->
stop(ViewerPid) ->
call(ViewerPid, stop).
-call(ViewerPid, Request) ->
- gen_server:call(ViewerPid, Request, infinity).
-
-%%%----------------------------------------------------------------------
-%%% Callback functions from gen_server
-%%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
-%% Func: init/1
-%% Returns: {ok, State} |
-%% {ok, State, Timeout} |
-%% ignore |
-%% {stop, Reason}
-%%----------------------------------------------------------------------
-init([S]) when record(S, state) ->
- process_flag(trap_exit, true),
- InitialTimeout = 0,
- case S#state.parent_pid of
- undefined ->
- ignore;
- Pid when pid(Pid) ->
- link(Pid)
- end,
- et_collector:dict_insert(S#state.collector_pid,
- {subscriber, self()},
- ?MODULE),
- {ok, create_main_window(S), InitialTimeout}.
+open_event(ViewerPid, N) ->
+ call(ViewerPid, {open_event, N}).
%%----------------------------------------------------------------------
-%% Func: handle_call/3
-%% Returns: {reply, Reply, State} |
-%% {reply, Reply, State, Timeout} |
-%% {noreply, State} |
-%% {noreply, State, Timeout} |
-%% {stop, Reason, Reply, State} | (terminate/2 is called)
-%% {stop, Reason, State} (terminate/2 is called)
-%%----------------------------------------------------------------------
-
-handle_call(get_collector_pid, _From, S) ->
- Reply = S#state.collector_pid,
- reply(Reply, S);
-handle_call(stop, _From, S) ->
- gs:destroy(S#state.win),
- {stop, shutdown, ok, S};
-handle_call(Request, From, S) ->
- ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n",
- [?MODULE, self(), Request, From, S]),
- Reply = {error, {bad_request, Request}},
- reply(Reply, S).
-
-%%----------------------------------------------------------------------
-%% Func: handle_cast/2
-%% Returns: {noreply, State} |
-%% {noreply, State, Timeout} |
-%% {stop, Reason, State} (terminate/2 is called)
-%%----------------------------------------------------------------------
-
-handle_cast(Msg, S) ->
- ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n",
- [?MODULE, self(), Msg, S]),
- noreply(S).
-
-%%----------------------------------------------------------------------
-%% Func: handle_info/2
-%% Returns: {noreply, State} |
-%% {noreply, State, Timeout} |
-%% {stop, Reason, State} (terminate/2 is called)
-%%----------------------------------------------------------------------
-
-handle_info({et, {insert_actors, ActorNames}}, S) when list(ActorNames) ->
- Fun = fun(N, Actors) ->
- case lists:keymember(N, #actor.name, Actors) of
- true -> Actors;
- false -> Actors ++ [create_actor(N)]
- end
- end,
- Actors = lists:foldl(Fun, S#state.actors, ActorNames),
- S2 = refresh_main_window(S#state{actors = Actors}),
- noreply(S2);
-handle_info({et, {delete_actors, ActorNames}}, S) when list(ActorNames)->
- Fun = fun(N, Actors) when N == ?unknown ->
- Actors;
- (N, Actors) ->
- lists:keydelete(N, #actor.name, Actors)
- end,
- New = lists:foldl(Fun, S#state.actors, ActorNames),
- S2 = refresh_main_window(S#state{actors = New}),
- noreply(S2);
-handle_info({et, {dict_insert, Key, Val}}, S) ->
- S2 = do_dict_insert(Key, Val, S),
- noreply(S2);
-handle_info({et, {dict_delete, Key}}, S) ->
- S2 = do_dict_delete(Key, S),
- noreply(S2);
-handle_info({et, first}, S) ->
- S2 = scroll_first(S),
- noreply(S2);
-handle_info({et, prev}, S) ->
- S2 = scroll_prev(S),
- noreply(S2);
-handle_info({et, next}, S) ->
- S2 = scroll_next(S),
- noreply(S2);
-handle_info({et, last}, S) ->
- S2 = scroll_last(S),
- noreply(S2);
-handle_info({et, refresh}, S) ->
- S2 = refresh_main_window(S),
- noreply(S2);
-handle_info({et, {display_mode, Mode}}, S) ->
- S2 = change_display_mode(Mode, S),
- noreply(S2);
-handle_info({et, close}, S) ->
- gs:destroy(S#state.win),
- {stop, shutdown, S};
-handle_info({gs, Button, click, Data, Other} = Click, S) ->
- CollectorPid = S#state.collector_pid,
- case Button of
- close ->
- gs:destroy(S#state.win),
- {stop, shutdown, S};
- suspended ->
- case Other of
- [_Text, _Group, Bool | _] when Bool == true ->
- S2 = do_suspend(S),
- noreply(S2);
- [_Text, _Group, Bool | _] when Bool == false ->
- S2 = do_resume(S),
- noreply(S2);
- _ ->
- click_error(Click, S),
- noreply(S)
- end;
- hide_actions ->
- case Other of
- [_Text, _Group, Bool | _] when Bool == true ->
- S2 = refresh_main_window(S#state{hide_actions = Bool}),
- noreply(S2);
- [_Text, _Group, Bool | _] when Bool == false ->
- S2 = refresh_main_window(S#state{hide_actions = Bool}),
- noreply(S2);
- _ ->
- click_error(Click, S),
- noreply(S)
- end;
- hide_unknown ->
- case Other of
- [_Text, _Group, Bool | _] when Bool == true ->
- S2 = refresh_main_window(S#state{hide_unknown = Bool}),
- noreply(S2);
- [_Text, _Group, Bool | _] when Bool == false ->
- S2 = refresh_main_window(S#state{hide_unknown = Bool}),
- noreply(S2);
- _ ->
- click_error(Click, S),
- noreply(S)
- end;
- up ->
- S2 = scroll_up(S),
- noreply(S2);
- down ->
- S2 = scroll_down(S),
- noreply(S2);
- first ->
- S2 = scroll_first(S),
- noreply(S2);
- prev ->
- S2 = scroll_prev(S),
- noreply(S2);
- next ->
- S2 = scroll_next(S),
- noreply(S2);
- last ->
- S2 = scroll_last(S),
- noreply(S2);
- refresh ->
- S2 = refresh_main_window(S),
- noreply(S2);
- {display_mode, Mode} ->
- S2 = change_display_mode(Mode, S),
- noreply(S2);
- close_all ->
- close_all(S);
- close_all_others ->
- close_all_others(S);
- first_all ->
- et_collector:multicast(CollectorPid, first),
- noreply(S);
- prev_all ->
- et_collector:multicast(CollectorPid, prev),
- noreply(S);
- next_all ->
- et_collector:multicast(CollectorPid, next),
- noreply(S);
- last_all ->
- et_collector:multicast(CollectorPid, last),
- noreply(S);
- refresh_all ->
- et_collector:multicast(CollectorPid, refresh),
- noreply(S);
- clear_all ->
- et_collector:clear_table(CollectorPid),
- et_collector:multicast(CollectorPid, refresh),
- noreply(S);
- load_all ->
- et_collector:start_trace_client(CollectorPid, event_file, "et_viewer.log"),
- noreply(S);
- save_all ->
- et_collector:save_event_file(CollectorPid,
- "et_viewer.log",
- [existing, write, keep]),
- noreply(S);
- {open_viewer, Scale} ->
- Actors = [A#actor.name || A <- S#state.actors],
- open_viewer(Scale, S#state.active_filter, Actors, S),
- noreply(S);
- _Level when Data == detail_level, integer(hd(Other)),
- hd(Other) >= ?detail_level_min,
- hd(Other) =< ?detail_level_max ->
- S2 = S#state{detail_level = hd(Other)},
- noreply(S2);
- _PopupMenuItem when record(Data, filter) ->
- open_viewer(S#state.scale, Data#filter.name, [?unknown], S),
- noreply(S);
- _ ->
- click_error(Click, S),
- noreply(S)
- end;
-handle_info({gs, _Obj, destroy,_, _}, S) ->
- gs:destroy(S#state.win),
- {stop, shutdown, S};
-handle_info({gs, _Obj, buttonpress, _, [_Button, X, Y | _]}, S) ->
- S3 =
- case y_to_n(Y, S) of
- actor ->
- %% Actor click
- case S#state.actors of
- [] ->
- S;
- _ ->
- N = x_to_n(X, S),
- A = lists:nth(N, S#state.actors),
- S#state{selected_actor = A}
- end;
- {event, N} ->
- %% Event click
- List = queue_to_list(S#state.events),
- S2 = S#state{events = list_to_queue(List)},
-
- Key = lists:nth(N, List),
- Pid = S#state.collector_pid,
- Fun = fun create_contents_window/2,
- case et_collector:iterate(Pid, Key, -1) of
- Prev when Prev == Key ->
- et_collector:iterate(Pid, first, 1, Fun, S2);
- Prev ->
- et_collector:iterate(Pid, Prev, 1, Fun, S2)
- end
- end,
- noreply(S3);
-handle_info({gs, _Obj, buttonrelease, _, [_Button, X, Y | _]}, S) ->
- S2 =
- case y_to_n(Y, S) of
- actor ->
- %% Actor click
- case S#state.actors of
- [] ->
- S;
- Actors ->
- N = x_to_n(X, S),
- New = lists:nth(N, S#state.actors),
- Old = S#state.selected_actor,
- case New#actor.name == Old#actor.name of
- true ->
- A = S#state.selected_actor,
- toggle_search_for_actor(A#actor.name, S);
- false ->
- move_actor(Old, New, Actors, S)
- end
- end;
- {event, _N} ->
- %% Event click ignored
- S
- end,
- noreply(S2);
-handle_info({gs, _Obj, keypress, _, [KeySym, _Keycode, _Shift, _Control | _]} = Key, S) ->
- case KeySym of
- 'c' ->
- close_all_others(S);
- 'C' ->
- close_all(S);
- 'Up' ->
- S2 = scroll_up(S),
- noreply(S2);
- 'Down' ->
- S2 = scroll_down(S),
- noreply(S2);
- 'f' ->
- S2 = scroll_first(S),
- noreply(S2);
- 'p' ->
- S2 = scroll_prev(S),
- noreply(S2);
- 'Prior' ->
- S2 = scroll_prev(S),
- noreply(S2);
- 'n' ->
- S2 = scroll_next(S),
- noreply(S2);
- 'Next' ->
- S2 = scroll_next(S),
- noreply(S2);
- 'l' ->
- S2 = scroll_last(S),
- noreply(S2);
- 'r' ->
- S2 = refresh_main_window(S),
- noreply(S2);
- 'F' ->
- et_collector:multicast(S#state.collector_pid, first),
- noreply(S);
- 'P' ->
- et_collector:multicast(S#state.collector_pid, prev),
- noreply(S);
- 'N' ->
- et_collector:multicast(S#state.collector_pid, next),
- noreply(S);
- 'L' ->
- et_collector:multicast(S#state.collector_pid, last),
- noreply(S);
- 'R' ->
- et_collector:multicast(S#state.collector_pid, refresh),
- noreply(S);
-
- 'a' ->
- S2 = S#state{display_mode = all},
- S3 = refresh_main_window(S2),
- noreply(S3);
-
- 'equal' ->
- Scale = S#state.scale,
- Actors = [A#actor.name || A <- S#state.actors],
- open_viewer(Scale, S#state.active_filter, Actors, S),
- noreply(S);
- 'plus' ->
- Scale = S#state.scale + 1,
- Actors = [A#actor.name || A <- S#state.actors],
- open_viewer(Scale, S#state.active_filter, Actors, S),
- noreply(S);
- 'minus' ->
- case S#state.scale of
- 1 ->
- gs:config(S#state.canvas, beep);
- Scale ->
- Actors = [A#actor.name || A <- S#state.actors],
- open_viewer(Scale - 1, S#state.active_filter, Actors, S)
- end,
- noreply(S);
- 0 ->
- case lists:keysearch(collector, #filter.name, S#state.filters) of
- {value, F} when record(F, filter) ->
- open_viewer(S#state.scale, F#filter.name, [?unknown], S);
- false ->
- gs:config(S#state.canvas, beep)
- end,
- noreply(S);
- Int when integer(Int), Int > 0, Int =< 9 ->
- case catch lists:nth(Int, S#state.filters) of
- F when record(F, filter) ->
- open_viewer(S#state.scale, F#filter.name, [?unknown], S);
- {'EXIT', _} ->
- gs:config(S#state.canvas, beep)
- end,
- noreply(S);
-
- 'Shift_L' ->
- noreply(S);
- 'Shift_R' ->
- noreply(S);
- 'Caps_Lock' ->
- noreply(S);
-
- _ ->
- click_error(Key, S),
- noreply(S)
- end;
-handle_info({gs, _Obj,configure, [], [W, H | _]}, S) ->
- gs:config(S#state.packer, [{width, W}, {height, H}]),
- S2 = S#state{width = W, height = H},
- noreply(S2);
-handle_info(timeout, S) ->
- Try =
- case S#state.display_mode of
- {search_actors, reverse, _, _} ->
- -10;
- _ ->
- 10
- end,
- if
- S#state.is_suspended == true ->
- {noreply, S, infinity};
- S#state.max_events == infinity ->
- display_more_events(Try, S);
- true ->
- Needed = S#state.max_events - queue_length(S#state.events),
- if
- Needed =< 0 -> {noreply, S, infinity};
- Needed > 10 -> display_more_events(Try, S);
- Needed =< 10 -> display_more_events(Needed, S)
- end
- end;
-
-handle_info({'EXIT', Pid, Reason}, S) ->
- if
- Pid == S#state.collector_pid ->
- unlink(Pid),
- gs:destroy(S#state.win),
- {stop, Reason, S};
- Pid == S#state.parent_pid ->
- unlink(Pid),
- gs:destroy(S#state.win),
- {stop, Reason, S};
- true ->
- noreply(S)
- end;
-handle_info(Info, S) ->
- ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n",
- [?MODULE, self(), Info, S]),
- noreply(S).
-
-%%----------------------------------------------------------------------
-%% Func: terminate/2
-%% Purpose: Shutdown the server
-%% Returns: any (ignored by gen_server)
-%%----------------------------------------------------------------------
-
-terminate(_Reason, _S) ->
- ignore.
-
-%%----------------------------------------------------------------------
-%% Func: code_change/3
-%% Purpose: Convert process state when code is changed
-%% Returns: {ok, NewState}
-%%----------------------------------------------------------------------
-
-code_change(_OldVsn, S, _Extra) ->
- {ok, S}.
-
-%%%----------------------------------------------------------------------
-%%% Handle suspend/resume
-%%%----------------------------------------------------------------------
-
-reply(Reply, S) ->
- case queue_length(S#state.events) of
- _ when S#state.is_suspended == true ->
- {reply, Reply, S, infinity};
- _ when S#state.max_events == infinity ->
- {reply, Reply, S, 500};
- N when N >= S#state.max_events ->
- {reply, Reply, S, infinity};
- _ ->
- {reply, Reply, S, 0}
- end.
-
-noreply(S) ->
- case queue_length(S#state.events) of
- _ when S#state.is_suspended == true ->
- {noreply, S, infinity};
- _ when S#state.max_events == infinity ->
- {noreply, S, 500};
- N when N >= S#state.max_events ->
- {noreply, S, infinity};
- _ ->
- {noreply, S, 0}
- end.
-
-do_suspend(S) ->
- config_suspend(S#state{is_suspended = true}).
-
-do_resume(S) ->
- config_suspend(S#state{is_suspended = false}).
-
-config_suspend(S) ->
- Suspended = S#state.is_suspended,
- gs:config(refresh, [{enable, not Suspended}]),
- gs:config(refresh_all, [{enable, not Suspended}]),
- gs:config(clear_all, [{enable, not Suspended}]),
- S.
-
-refresh_main_window(S) ->
- Pid = S#state.collector_pid,
- Key = S#state.first_event,
- case et_collector:iterate(Pid, Key, -1) of
- Prev when Prev == Key ->
- scroll_first(S);
- _Prev ->
- S2 = S#state{last_event = S#state.first_event},
- clear_canvas(S2)
- end.
-
-scroll_first(S) ->
- S2 = S#state{first_event = first, last_event = first},
- clear_canvas(S2).
-
-scroll_prev(S) ->
- Try =
- case S#state.max_events of
- infinity -> -10;
- Max -> -Max
- end,
- Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, Try),
- S2 = S#state{first_event = Key, last_event = Key},
- clear_canvas(S2).
-
-scroll_next(S) ->
- S2 = S#state{first_event = S#state.last_event},
- clear_canvas(S2).
-
-scroll_up(S) ->
- Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, -5),
- S2 = S#state{first_event = Key, last_event = Key},
- clear_canvas(S2).
-
-scroll_down(S) ->
- Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, 5),
- S2 = S#state{first_event = Key, last_event = Key},
- clear_canvas(S2).
-
-scroll_last(S) ->
- S2 = S#state{first_event = last, last_event = last},
- clear_canvas(S2).
-
-change_display_mode(Mode, S) ->
- case Mode of
- all ->
- S2 = S#state{display_mode = Mode},
- refresh_main_window(S2);
- {search_actors, _Dir, _Key, []} ->
- S2 = S#state{display_mode = all},
- refresh_main_window(S2);
- {search_actors, _Dir, Key, Actors} when list(Actors) ->
- Pid = S#state.collector_pid,
- Prev = et_collector:iterate(Pid, Key, -1),
- S2 = S#state{first_event = Prev,
- last_event = Prev,
- display_mode = Mode},
- clear_canvas(S2)
- end.
-
-close_all(S) ->
- et_collector:multicast(S#state.collector_pid, close),
- timer:sleep(timer:seconds(1)),
- spawn(et_collector, stop, [S#state.collector_pid]),
- gs:destroy(S#state.win),
- {stop, shutdown, S}.
-
-close_all_others(S) ->
- Fun =
- fun({{subscriber, Pid}, _}) ->
- if
- Pid == self() ->
- ignore;
- true ->
- unlink(Pid),
- Pid ! {et, close}
- end
- end,
- All = et_collector:dict_match(S#state.collector_pid,
- {{subscriber, '_'}, '_'}),
- lists:foreach(Fun, All),
- noreply(S).
-
-click_error(Click, S) ->
- gs:config(S#state.canvas, beep),
- io:format("~p: ignored: ~p~n", [?MODULE, Click]).
-
-%%%----------------------------------------------------------------------
-%%% Clone viewer
-%%%----------------------------------------------------------------------
-open_viewer(Scale, FilterName, Actors, S) ->
- Filters = [{dict_insert, {filter, F#filter.name}, F#filter.function}
- || F <- S#state.filters],
- Options =
- [{parent_pid, S#state.parent_pid},
- {title, S#state.title},
- {collector_pid, S#state.collector_pid},
- {is_suspended, S#state.is_suspended},
- {detail_level, S#state.detail_level},
- {active_filter, FilterName},
- {event_order, S#state.event_order},
- {first_event, S#state.first_event},
- {max_events, S#state.max_events},
- {max_actors, S#state.max_actors},
- {hide_actions, S#state.hide_actions},
- {hide_unknown, S#state.hide_unknown},
- {is_suspended, S#state.is_suspended},
- {actors, Actors},
- {scale, Scale},
- {width, S#state.width},
- {height, S#state.height} | Filters],
- case start_link(Options) of
- {ok, ViewerPid} ->
- unlink(ViewerPid),
- ok;
- {error, Reason} ->
- ok = error_logger:format("~p: Failed to start a new window: ~p~n",
- [?MODULE, Reason])
- end.
-
-%%%----------------------------------------------------------------------
-%%% Handle graphics
-%%%----------------------------------------------------------------------
-
-create_main_window(S) ->
- Font = select_font(S#state.scale),
- GS = gs:start(),
- Name = name_to_string(S#state.active_filter),
- Title = case S#state.title of
- undefined -> atom_to_list(?MODULE);
- Explicit -> name_to_string(Explicit)
- end,
- WinOpt = [{title, Title ++ " (filter: " ++ Name ++ ")"},
- {configure, true},
- {width, S#state.width},
- {height, S#state.height}],
- Win = gs:window(GS, WinOpt),
- Bar = gs:menubar(Win, []),
-
- create_file_menu(Bar),
- create_viewer_menu(Bar),
- create_collector_menu(Bar),
- gs:menubutton(filter_button, Bar, [{label, {text, "Filter"}}]),
- create_filter_menu(S#state.active_filter, S#state.filters),
- create_help_menu(Bar),
-
- config_suspend(S),
-
- PackerOpt = [{packer_x, [{fixed, 5}, {fixed, 40}, {fixed, 40},
- {stretch, 1}, {fixed, 5}]},
- {packer_y, [{fixed, 30}, {fixed, 30},
- {stretch, 1}, {fixed, 30}]},
- {x, 0}, {y, 30}],
- Packer = gs:frame(Win, PackerOpt),
- gs:checkbutton(suspended, Packer, [{label,{text,"Freeze"}},
- {x, 10}, {y, 0},
- {width, 120}, {align, w},
- {select, S#state.is_suspended}]),
- gs:checkbutton(hide_actions, Packer, [{label,{text,"Hide From=To"}},
- {x, 10}, {y, 20},
- {width, 120}, {align, w},
- {select, S#state.hide_actions}]),
- gs:checkbutton(hide_unknown, Packer, [{label,{text,"Hide Unknown"}},
- {x, 10}, {y, 40},
- {width, 120}, {align, w},
- {select, S#state.hide_unknown}]),
- gs:scale(Packer, [{text,"Detail Level"},
- {range, {?detail_level_min, ?detail_level_max}},
- {orient, horizontal},
- {x, 150}, {y, 0}, {height, 65}, {width, 200},
- {pos, S#state.detail_level}, {data, detail_level}]),
- CanvasW = calc_canvas_width(S),
- CanvasH = calc_canvas_height(S),
- CanOpt = [{pack_xy, {{2, 4}, 3}}, {vscroll, right}, {hscroll, bottom},
- {scrollregion, {2, 2, CanvasW, CanvasH}}],
- Canvas = gs:canvas(Packer, CanOpt),
- gs:config(Canvas, [{buttonpress, true}, {buttonrelease, true}]),
- gs:config(Packer, [{width, S#state.width}, {height, S#state.height}]),
- gs:config(Win, [{map, true}, {keypress, true}]),
- S2 = S#state{title = Title,
- win = Win, font = Font, packer = Packer,
- canvas_width = CanvasW, canvas_height = CanvasH,
- canvas = Canvas,
- y_pos = ?initial_y * S#state.scale},
- draw_all_actors(S2).
-
-select_font(Scale) when integer(Scale) ->
- case Scale of
- 1 -> {courier, 7};
- 2 -> {courier, 10};
- 3 -> {courier, 12};
- 4 -> {courier, 14};
- S -> {courier, S * 4}
- end.
-
-create_file_menu(Bar) ->
- Button = gs:menubutton(Bar, [{label, {text, "File"}}]),
- Menu = gs:menu(Button, []),
- gs:menuitem(close_all, Menu, [{label, {text, "Close Collector and all Viewers (C) "}}]),
- gs:menuitem(close_all_others, Menu, [{label, {text, "Close other Viewers, but keep Collector (c)"}}]),
- gs:menuitem(close, Menu, [{label, {text, "Close this Viewer, but keep Collector"}}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
-
- gs:menuitem(clear_all, Menu, [{label, {text, "Clear Collector"}}]),
- gs:menuitem(load_all, Menu, [{label, {text, "Load Collector from the file \"et_viewer.log\""}}]),
- gs:menuitem(save_all, Menu, [{label, {text, "Save Collector to the file \"et_viewer.log\""}}]).
-
-create_viewer_menu(Bar) ->
- Button = gs:menubutton(Bar, [{label, {text, "Viewer"}}]),
- Menu = gs:menu(Button, []),
- gs:menuitem(Menu, [{label, {text, "Scroll this Viewer"}}, {bg, lightblue}, {enable,false}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- gs:menuitem(first, Menu, [{label, {text, "First (f)"}}]),
- gs:menuitem(prev, Menu, [{label, {text, "Prev (p)"}}]),
- gs:menuitem(next, Menu, [{label, {text, "Next (n)"}}]),
- gs:menuitem(last, Menu, [{label, {text, "Last (l)"}}]),
- gs:menuitem(refresh, Menu, [{label, {text, "Refresh (r)"}}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- gs:menuitem(up, Menu, [{label, {text, "Up 5 (Up)"}}]),
- gs:menuitem(down, Menu, [{label, {text, "Down 5 (Down)"}}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- gs:menuitem(Menu, [{label, {text, "Search in this Viewer"}}, {bg, lightblue}, {enable,false}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- gs:menuitem({mode, all}, Menu, [{label, {text, "Abort search. Display all (a)"}}]).
-
-create_collector_menu(Bar) ->
- Button = gs:menubutton(Bar, [{label, {text, "Collector"}}]),
- Menu = gs:menu(Button, []),
- gs:menuitem(Menu, [{label, {text, "Scroll all Viewers"}}, {bg, lightblue}, {enable,false}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- gs:menuitem(first_all, Menu, [{label, {text, "First (F)"}}]),
- gs:menuitem(prev_all, Menu, [{label, {text, "Prev (P)"}}]),
- gs:menuitem(next_all, Menu, [{label, {text, "Next (N)"}}]),
- gs:menuitem(last_all, Menu, [{label, {text, "Last (L)"}}]),
- gs:menuitem(refresh_all, Menu, [{label, {text, "Refresh (R)"}}]).
-
-create_filter_menu(ActiveFilterName, Filters) ->
- Menu = gs:menu(filter_menu, filter_button, []),
- Item = fun(F, N) when F#filter.name == collector ->
- Label = lists:concat([pad_string(F#filter.name, 20), "(0)"]),
- gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]),
- N + 1;
- (F, N) ->
- Label = lists:concat([pad_string(F#filter.name, 20), "(", N, ")"]),
- gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]),
- N + 1
- end,
- gs:menuitem(Menu, [{label, {text, "Same Filter New Scale"}}, {bg, lightblue}, {enable,false}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- {value, Filter} = lists:keysearch(ActiveFilterName, #filter.name, Filters),
- Same = lists:concat([pad_string(ActiveFilterName, 20), "(=)"]),
- Larger = lists:concat([pad_string(ActiveFilterName, 20), "(+)"]),
- Smaller = lists:concat([pad_string(ActiveFilterName, 20), "(-)"]),
- gs:menuitem(Menu, [{label, {text, Same}}, {data, Filter}]),
- gs:menuitem(Menu, [{label, {text, Smaller}}, {data, Filter}]),
- gs:menuitem(Menu, [{label, {text, Larger}}, {data, Filter}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- gs:menuitem(Menu, [{label, {text, "New Filter Same Scale"}}, {bg, lightblue}, {enable,false}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- lists:foldl(Item, 1, Filters).
-
-create_help_menu(Bar) ->
- Button = gs:menubutton(Bar, [{label, {text, "Help"}}]),
- Menu = gs:menu(Button, []),
- gs:menuitem(Menu, [{label, {text, "Display details of an event"}},
- {bg, lightblue}, {enable,false}]),
- gs:menuitem(Menu, [{label, {text, " Single click on the name tag or the arrow (Mouse-1)"}},
- {enable,false}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- gs:menuitem(Menu, [{label, {text, "Toggle actor search"}},
- {bg, lightblue}, {enable,false}]),
- gs:menuitem(Menu, [{label, {text, " Single click on the name tag (Mouse-1)"}},
- {enable,false}]),
- gs:menuitem(Menu, [{itemtype, separator}]),
- gs:menuitem(Menu, [{label, {text, "Move actor"}},
- {bg, lightblue}, {enable,false}]),
- gs:menuitem(Menu, [{label, {text, " se drag and drop on name tag (Mouse-1)"}},
- {enable,false}]).
-
-clear_canvas(S) ->
- gs:destroy(S#state.canvas),
- CanvasW = calc_canvas_width(S),
- CanvasH = calc_canvas_height(S),
- CanOpt = [{pack_xy, {{2, 4}, 3}}, {vscroll, right}, {hscroll, bottom},
- {scrollregion, {2, 2, CanvasW, CanvasH}}],
- Canvas = gs:canvas(S#state.packer, CanOpt),
- gs:config(S#state.packer, [{width, S#state.width}, {height, S#state.height}]),
- gs:config(Canvas, [{buttonpress, true}, {buttonrelease, true}]),
- S2 = S#state{refresh_needed = false,
- y_pos = ?initial_y * S#state.scale,
- canvas = Canvas,
- canvas_width = CanvasW,
- canvas_height = CanvasH,
- events = queue_new()},
- draw_all_actors(S2).
-
-calc_canvas_width(S) ->
- Min = calc_min_actors(S),
- CanvasW = ((2 * ?initial_x) + (Min * ?incr_x)) * S#state.scale,
- lists:max([CanvasW, S#state.width - (15 * S#state.scale), S#state.canvas_width]).
-
-calc_canvas_height(S) ->
- Min = calc_min_events(S),
- CanvasH = ((2 * ?initial_y) + (Min * ?incr_y)) * S#state.scale,
- lists:max([CanvasH, S#state.height - (4 * 30), S#state.canvas_height]).
-
-calc_min_actors(S) ->
- Max = S#state.max_actors,
- N = length(S#state.actors),
- if
- Max == infinity ->
- N * 2;
- Max < N ->
- N;
- true ->
- Max
- end.
-
-calc_min_events(S) ->
- Max = S#state.max_events,
- N = queue_length(S#state.events),
- if
- Max == infinity ->
- N * 2;
- Max < N ->
- N;
- true ->
- Max
- end.
-
-display_more_events(Try, S) ->
- Name = S#state.active_filter,
- {value, F} = lists:keysearch(Name, #filter.name, S#state.filters),
- FilterFun = F#filter.function,
- Fun = fun(Event, State) ->
- case catch FilterFun(Event) of
- true ->
- State2 = ensure_key(Event, State),
- opt_display_event(Event, State2);
- {true, Event2} ->
- State2 = ensure_key(Event2, State),
- opt_display_event(Event2, State2);
- false ->
- ensure_key(Event, State);
- Bad ->
- Contents = {bad_filter, Name, Bad, Event},
- Event2 = Event#event{contents = Contents,
- from = bad_filter,
- to = bad_filter},
- State2 = ensure_key(Event2, State),
- opt_display_event(Event2, State2)
- end
- end,
- Pid = S#state.collector_pid,
- S2 = et_collector:iterate(Pid, S#state.last_event, Try, Fun, S),
- case queue_length(S2#state.events) - queue_length(S#state.events) of
- Diff when Diff == Try ->
- %% Got as much as requested, look for more
- %% io:format("Done: ~p~n", [{Try, Diff}]),
- {noreply, S2, 0};
- _Diff when S2#state.first_event == S#state.first_event,
- S2#state.last_event == S#state.last_event ->
- %% Got lesser than requested, wait a while before looking for more
- %% io:format("More: ~p~n", [{Try, Diff}]),
- {noreply, S2, 500};
- _Diff ->
- %% Got lesser than requested, look for more
- %% io:format("More2: ~p~n", [{Try, Diff}]),
- {noreply, S2, 0}
- end.
-
-ensure_key(E, S) when record(E, event), record(S, state) ->
- Key = et_collector:make_key(S#state.event_order, E),
- case S#state.first_event of
- first ->
- S#state{first_event = Key, last_event = Key};
- last ->
- S#state{first_event = Key, last_event = Key};
- _ ->
- S#state{last_event = Key}
- end.
-
-opt_display_event(E, S) ->
- case S#state.display_mode of
- all ->
- display_event(E, S);
- {search_actors, _Dir, _FirstKey, Actors} ->
- %% Key = S#state.last_event,
- From = select_actor_name(E#event.from, S),
- case lists:member(From, Actors) of
- true ->
- display_event(E, S);
- false ->
- To = select_actor_name(E#event.to, S),
- case lists:member(To, Actors) of
- true ->
- display_event(E, S);
- false ->
- S
- end
- end
- end.
-
-select_actor_name(Name, S) ->
- case lists:keymember(Name, #actor.name, S#state.actors) of
- true -> Name;
- false -> ?unknown
- end.
-
-display_event(E, S) when E#event.detail_level < S#state.detail_level ->
- {FromRefresh, From} = ensure_actor(E#event.from, S),
- {FromName, FromPos, S2} = From,
- {ToRefresh, To} = ensure_actor(E#event.to, S2),
- {ToName, ToPos, S3} = To,
- if
- FromRefresh /= false, ToRefresh /= false ->
- Key = S#state.last_event,
- refresh_beep(S),
- S3#state{refresh_needed = true,
- events = queue_in(Key, S3#state.events)};
- FromName == ToName ->
- case S#state.hide_actions of
- true ->
- S3;
- false ->
- Label = name_to_string(E#event.label),
- draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S3)
- end;
- true ->
- Label = name_to_string(E#event.label),
- draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S3)
- end;
-display_event(_, S) ->
- S.
-
-draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S) ->
- Key = S#state.last_event,
- case S#state.y_pos + (?incr_y * S#state.scale) of
- _ when S#state.hide_unknown == true, FromName == ?unknown ->
- S;
- _ when S#state.hide_unknown == true, ToName == ?unknown ->
- S;
- Y when Y > S#state.canvas_height ->
- refresh_beep(S),
- S#state{refresh_needed = true,
- events = queue_in(Key, S#state.events)};
- Y ->
- S2 = S#state{y_pos = Y, events = queue_in(Key, S#state.events)},
- S3 = draw_arrow(FromPos, ToPos, S2),
- draw_label(Label, FromName, ToName, FromPos, ToPos, S3)
- end.
-
-refresh_beep(S) ->
- case S#state.refresh_needed of
- false ->
- gs:config(S#state.canvas, beep),
- gs:config(S#state.canvas, beep),
- gs:config(S#state.canvas, beep);
- true ->
- ignore
- end.
-
-draw_arrow(Pos, Pos, S) ->
- S;
-draw_arrow(FromPos, ToPos, S) ->
- Y = S#state.y_pos,
- CanOpts = [{coords, [{FromPos , Y}, {ToPos, Y}]},
- {arrow, last},{width, 1}, {fg, black}],
- gs:line(S#state.canvas, CanOpts),
- S.
-
-draw_label(Label, FromName, ToName, FromPos, ToPos, S) ->
- Colour =
- if
- FromName == ?unknown,
- ToName == ?unknown -> blue; %turquoise;
- FromName == ?unknown -> orange;
- ToName == ?unknown -> orange;
- FromPos == ToPos -> blue;
- true -> red
- end,
- Scale = S#state.scale,
- X = lists:min([FromPos, ToPos]) + (6 * Scale),
- Y = S#state.y_pos,
- write_text(Label, X, Y, Colour, S),
- S.
-
-draw_all_actors(State) ->
- Scale = State#state.scale,
- Fun = fun(A, X) ->
- draw_actor(A, X, State),
- X + (?incr_x * Scale)
- end,
- lists:foldl(Fun, ?initial_x * Scale, State#state.actors),
- State.
-
-%% Returns: {NeedsRefreshBool, {ActorPos, NewsS, NewActors}}
-ensure_actor(Name, S) ->
- do_ensure_actor(Name, S, S#state.actors, 0).
-
-do_ensure_actor(Name, S, [H | _], N) when H#actor.name == Name ->
- Pos = (?initial_x + (N * ?incr_x)) * S#state.scale,
- {false, {Name, Pos, S}};
-do_ensure_actor(Name, S, [_ | T], N) ->
- do_ensure_actor(Name, S, T, N + 1);
-do_ensure_actor(Name, S, [], N) ->
- %% A brand new actor, let's see if it does fit
- Pos = (?initial_x + (N * ?incr_x)) * S#state.scale,
- MaxActors = S#state.max_actors,
- if
- integer(MaxActors), N > MaxActors ->
- %% Failed on max_actors limit, put into unknown
- %% Assume that unknown always is in actor list
- ensure_actor(?unknown, S);
- Pos > (S#state.canvas_width - ((?initial_x - 15) * S#state.scale)) ->
- %% New actor does not fit in canvas, refresh needed
- A = create_actor(Name),
- draw_actor(A, Pos, S),
- {true, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}};
- true ->
- %% New actor fits in canvas. Draw the new actor.
- A = create_actor(Name),
- draw_actor(A, Pos, S),
- {false, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}}
- end.
-
-draw_actor(A, LineX, S) ->
- Scale = S#state.scale,
- TextX = LineX - (5 * Scale),
- TextY = ?initial_y * Scale,
- LineTopY = TextY + ((?incr_y / 2) * Scale),
- LineBotY = S#state.canvas_height - ((?incr_y / 2) * Scale),
- Colour = case A#actor.name of
- ?unknown -> orange;
- _ -> red
- end,
- write_text(A#actor.string, TextX, TextY, Colour, S),
- LineOpt = [{coords, [{LineX, LineTopY}, {LineX, LineBotY}]},
- {width, 1}, {fg, Colour}],
- gs:line(S#state.canvas, LineOpt).
-
-toggle_search_for_actor(ActorName,S) ->
- case S#state.display_mode of
- all ->
- io:format("~p: search for: ~p ++ ~p~n", [?MODULE, [], [ActorName]]),
- %% Search for this actor
- Key = S#state.first_event,
- Actors = [ActorName],
- Mode = {search_actors, forward, Key, Actors},
- change_display_mode(Mode, S);
- {search_actors, Dir, Key, Actors}->
- Actors2 =
- case lists:member(ActorName, Actors) of
- true ->
- io:format("~p: search for: ~p -- ~p~n", [?MODULE, Actors, [ActorName]]),
- %% Remove actor from search list
- Actors -- [ActorName];
- false ->
- io:format("~p: search for: ~p ++ ~p~n", [?MODULE, Actors, [ActorName]]),
- %% Add actor from search list
- [ActorName | Actors]
- end,
- Mode2 = {search_actors, Dir, Key, Actors2},
- change_display_mode(Mode2, S)
- end.
-
-move_actor(From, To, Actors, S) ->
- Pos = #actor.name,
- ToName = To#actor.name,
- FromName = From#actor.name,
- ToIx = actor_index(ToName, Pos, Actors),
- FromIx = actor_index(FromName, Pos, Actors),
- if
- FromIx /= 0, ToIx /= 0, ToIx > FromIx ->
- Actors2 = lists:keydelete(FromName, Pos, Actors),
- Actors3 = insert_actor_after(From, To, Actors2),
- S2 = S#state{actors = Actors3},
- refresh_main_window(S2);
- FromIx /= 0, ToIx /= 0 ->
- Actors2 = lists:keydelete(FromName, Pos, Actors),
- Actors3 = insert_actor_before(From, To, Actors2),
- S2 = S#state{actors = Actors3},
- refresh_main_window(S2);
- true ->
- %% Ignore
- S
- end.
-
-insert_actor_after(From, To, [H | T]) ->
- case To#actor.name == H#actor.name of
- true -> [H, From | T];
- false -> [H | insert_actor_after(From, To, T)]
- end;
-insert_actor_after(_From, _To, []) ->
- [].
-
-insert_actor_before(From, To, [H | T]) ->
- case To#actor.name == H#actor.name of
- true -> [From, H | T];
- false -> [H | insert_actor_before(From, To, T)]
- end;
-insert_actor_before(_From, _To, []) ->
- [].
-
-actor_index(_Key, _Pos, []) ->
- 0;
-actor_index(Key, Pos, [H | T]) ->
- case Key == element(Pos, H) of
- false -> actor_index(Key, Pos, T) + 1;
- true -> 1
- end.
-
-y_to_n(Y, S) ->
- Y2 = ((Y / S#state.scale) - ?initial_y + (?incr_y / 2)),
- N = round(Y2 / ?incr_y - 0.2),
- MaxN = queue_length(S#state.events),
- if
- N =< 0 -> actor;
- N > MaxN -> actor;
- true -> {event, N}
- end.
-
-x_to_n(X, S) ->
- Scale = S#state.scale,
- Len = length(S#state.actors),
- X2 = X - (?initial_x * Scale),
- N = X2 / (?incr_x * Scale),
- N2 = trunc(N + 1.5),
- if
- N2 > Len -> Len;
- N2 < 1 -> 1;
- true -> N2
- end.
-
-write_text(Text, X, Y, Colour, S) ->
- Opt = [{coords, [{X, Y - (?incr_y * S#state.scale / 2)}]},
- {font, S#state.font}, {fg, Colour}, {text, Text}],
- gs:text(S#state.canvas, Opt).
-
-create_contents_window(Event, S) ->
- Options = [{viewer_pid, self()},
- {event, Event},
- {event_order, S#state.event_order},
- {active_filter, S#state.active_filter}
- | S#state.filters],
- case et_contents_viewer:start_link(Options) of
- {ok, _Pid} ->
- S;
- {error, Reason} ->
- ok = error_logger:format("~p(~p): create_contents_window(~p) ->~n ~p~n",
- [?MODULE, self(), Options, Reason]),
- S
- end.
-
-%%%----------------------------------------------------------------------
-%%% String padding of actors
-%%%----------------------------------------------------------------------
-
-create_actor(Name) ->
- String = name_to_string(Name),
- PaddedString = pad_string(String, 8),
- #actor{name = Name, string = PaddedString}.
-
-name_to_string(Name) ->
- case catch io_lib:format("~s", [Name]) of
- {'EXIT', _} -> lists:flatten(io_lib:format("~w", [Name]));
- GoodString -> lists:flatten(GoodString)
- end.
-
-pad_string(Atom, MinLen) when atom(Atom) ->
- pad_string(atom_to_list(Atom), MinLen);
-pad_string(String, MinLen) when integer(MinLen), MinLen >= 0 ->
- Len = length(String),
- case Len >= MinLen of
- true ->
- String;
- false ->
- String ++ lists:duplicate(MinLen - Len, $ )
- end.
-
-%%%----------------------------------------------------------------------
-%%% Queue management
-%%%----------------------------------------------------------------------
-
-queue_new() ->
- {0, [], []}.
-
-queue_in(X, {Size, In, Out}) ->
- {Size + 1, [X | In], Out}.
-
-%% queue_out(Q) ->
-%% case Q of
-%% {Size, In, [H | Out]} -> {{value, H}, {Size - 1, In, Out}};
-%% {Size, [], []} -> {empty, {Size, [], []}};
-%% {Size, In, _} -> queue_out({Size, [], lists:reverse(In)})
-%% end.
-
-queue_to_list({_Size, [], Out}) ->
- Out;
-queue_to_list({_Size, In, Out}) ->
- Out ++ lists:reverse(In).
-
-queue_length({Size, _In, _Out}) ->
- Size.
+call(ViewerPid, Request) ->
+ gen_server:call(ViewerPid, Request, infinity).
-list_to_queue(List) when list(List) ->
- {length(List), [], List}.
diff --git a/lib/et/src/et_wx_contents_viewer.erl b/lib/et/src/et_wx_contents_viewer.erl
new file mode 100644
index 0000000000..8a8d9ef1ee
--- /dev/null
+++ b/lib/et/src/et_wx_contents_viewer.erl
@@ -0,0 +1,700 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%----------------------------------------------------------------------
+%% Purpose: Displays details of a trace event
+%%----------------------------------------------------------------------
+
+-module(et_wx_contents_viewer).
+
+-behaviour(wx_object).
+
+%% External exports
+-export([start_link/1,
+ stop/1]).
+
+%% gen_server callbacks
+-export([init/1, terminate/2, code_change/3,
+ handle_call/3, handle_cast/2, handle_info/2,
+ handle_event/2]).
+
+-include("../include/et.hrl").
+-include("et_internal.hrl").
+-include_lib("wx/include/wx.hrl").
+
+-record(state, {parent_pid, % Pid of parent process
+ viewer_pid, % Pid of viewer process
+ event_order, % Field to be used as primary key
+ event, % The original event
+ filtered_event, % Event processed by active filter
+ active_filter, % Name of the active filter
+ filters, % List of possible filters
+ win, % GUI: Frame object
+ frame, % GUI: Frame object
+ panel, % GUI: Panel object
+ width, % GUI: Window width
+ height,
+ editor,
+ menu_data, % GUI: Window height
+ wx_debug, % GUI: WX debug level
+ trap_exit}). % trap_exit process flag
+
+%%%----------------------------------------------------------------------
+%%% Client side
+%%%----------------------------------------------------------------------
+
+%%----------------------------------------------------------------------
+%% start_link(Options) -> {ok, ContentsPid} | {error, Reason}
+%%
+%% Start a viewer for the event contents as window in GS
+%%
+%% Options = [option()]
+%%
+%% option() =
+%%
+%% {parent_pid, pid()} | % Pid of parent process
+%% {viewer_pid, pid()} | % Pid of viewer process
+%% {event_order, event_order()} | % Field to be used as primary key
+%% {active_filter, atom()} | % Name of the active filter
+%% {filter, atom(), fun()} % A named filter fun
+%%
+%% event_order() = 'trace_ts' | 'event_ts'
+%% ContentsPid = pid()
+%% Reason = term()
+%%----------------------------------------------------------------------
+
+start_link(Options) ->
+ case parse_opt(Options, default_state()) of
+ {ok, S} ->
+ try
+ WxRef = wx_object:start_link(?MODULE, [S], []),
+ Pid = wx_object:get_pid(WxRef),
+ if
+ S#state.parent_pid =/= self() ->
+ unlink(Pid);
+ true ->
+ ignore
+ end,
+ {ok, Pid}
+ catch
+ error:Reason ->
+ {error, {'EXIT', Reason, erlang:get_stacktrace()}}
+ end;
+ {error, Reason} ->
+ {error, Reason}
+ end.
+
+default_state() ->
+ #state{parent_pid = self(),
+ viewer_pid = undefined,
+ active_filter = ?DEFAULT_FILTER_NAME,
+ filters = [?DEFAULT_FILTER],
+ width = 600,
+ height = 300,
+ wx_debug = 0,
+ trap_exit = true}.
+
+parse_opt([], S) ->
+ Name = S#state.active_filter,
+ Filters = S#state.filters,
+ if
+ S#state.event =:= undefined ->
+ {error, {badarg, no_event}};
+ is_atom(Name) ->
+ case lists:keysearch(Name, #filter.name, Filters) of
+ {value, F} when is_record(F, filter) ->
+ {ok, S#state{active_filter = Name}};
+ false ->
+ {error, {badarg, {no_such_filter, Name, Filters}}}
+ end
+ end;
+parse_opt([H | T], S) ->
+ case H of
+ {parent_pid, ParentPid} when is_pid(ParentPid); ParentPid =:= undefined ->
+ parse_opt(T, S#state{parent_pid = ParentPid});
+ {viewer_pid, ViewerPid} when is_pid(ViewerPid) ->
+ parse_opt(T, S#state{viewer_pid = ViewerPid});
+ {wx_debug, Level} ->
+ parse_opt(T, S#state{wx_debug = Level});
+ {trap_exit, Bool} when Bool =:= true; Bool =:= false->
+ parse_opt(T, S#state{trap_exit = Bool});
+ {event_order, trace_ts} ->
+ parse_opt(T, S#state{event_order = trace_ts});
+ {event_order, event_ts} ->
+ parse_opt(T, S#state{event_order = event_ts});
+ {event, Event} when is_record(Event, event) ->
+ parse_opt(T, S#state{event = Event});
+ {active_filter, Name} when is_atom(Name) ->
+ parse_opt(T, S#state{active_filter = Name});
+ F when is_record(F, filter),
+ is_atom(F#filter.name),
+ is_function(F#filter.function) ->
+ Filters = lists:keydelete(F#filter.name, #filter.name, S#state.filters),
+ Filters2 = lists:keysort(#filter.name, [F | Filters]),
+ parse_opt(T, S#state{filters = Filters2});
+ {width, Width} when is_integer(Width), Width > 0 ->
+ parse_opt(T, S#state{width = Width});
+ {height, Height} when is_integer(Height), Height > 0 ->
+ parse_opt(T, S#state{height = Height});
+ Bad ->
+ {error, {bad_option, Bad}}
+ end;
+parse_opt(BadList, _S) ->
+ {error, {bad_option_list, BadList}}.
+
+%%----------------------------------------------------------------------
+%% stop(ContentsPid) -> ok
+%%
+%% Stops a contents viewer process
+%%
+%% ContentsPid = pid()
+%%----------------------------------------------------------------------
+
+stop(ContentsPid) when is_pid(ContentsPid) ->
+ Type = process,
+ MonitorRef = erlang:monitor(Type, ContentsPid),
+ ContentsPid ! {stop, self()},
+ receive
+ {'DOWN', MonitorRef, Type, ContentsPid, shutdown} ->
+ ok;
+ {'DOWN', MonitorRef, Type, ContentsPid, Reason} ->
+ {error, Reason}
+ end.
+
+%% call(Frame, Request) ->
+%% wx_object:call(Frame, Request, infinity).
+
+%%%----------------------------------------------------------------------
+%%% Callback functions from gen_server
+%%%----------------------------------------------------------------------
+
+%%----------------------------------------------------------------------
+%% Func: init/1
+%% Returns: {ok, State} |
+%% {ok, State, Timeout} |
+%% ignore |
+%% {stop, Reason}
+%%----------------------------------------------------------------------
+
+init([S]) when is_record(S, state) ->
+ process_flag(trap_exit, S#state.trap_exit),
+ case S#state.parent_pid of
+ undefined -> ok;
+ ParentPid -> link(ParentPid)
+ end,
+ wx:debug(S#state.wx_debug),
+ S2 = create_window(S),
+ {S2#state.frame, S2}.
+
+%%----------------------------------------------------------------------
+%% Func: handle_call/3
+%% Returns: {reply, Reply, State} |
+%% {reply, Reply, State, Timeout} |
+%% {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, Reply, State} | (terminate/2 is called)
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_call(Request, From, S) ->
+ ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n",
+ [?MODULE, self(), Request, From, S]),
+ Reply = {error, {bad_request, Request}},
+ {reply, Reply, S}.
+
+%%----------------------------------------------------------------------
+%% Func: handle_cast/2
+%% Returns: {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_cast(Msg, S) ->
+ ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n",
+ [?MODULE, self(), Msg, S]),
+ {noreply, S}.
+
+%%----------------------------------------------------------------------
+%% Func: handle_event/2
+%% Returns: {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_event(#wx{id = Id,
+ event = #wxCommand{type = command_menu_selected}},
+ S) ->
+ case proplists:get_value(Id, S#state.menu_data) of
+ undefined ->
+ ignore;
+ Data when is_record(Data, filter) ->
+ F = Data,
+ ChildState= S#state{active_filter = F#filter.name},
+ case wx_object:start_link(?MODULE, [ChildState], []) of
+ {ok, Pid} when S#state.parent_pid =/= self() ->
+ unlink(Pid);
+ _ ->
+ ignore
+ end;
+ {hide, Actors} ->
+ send_viewer_event(S, {delete_actors, Actors});
+ {show, Actors} ->
+ send_viewer_event(S, {insert_actors, Actors});
+ {mode, Mode} ->
+ send_viewer_event(S, {mode, Mode});
+ Nyi ->
+ ok = error_logger:format("~p: click ~p ignored (nyi)~n",
+ [?MODULE, Nyi])
+ end,
+ case Id of
+ ?wxID_EXIT ->
+ wxFrame:destroy(S#state.frame),
+ opt_unlink(S#state.parent_pid),
+ {stop, shutdown, S};
+ ?wxID_SAVE ->
+ Event = S#state.event,
+ TimeStamp =
+ case S#state.event_order of
+ trace_ts -> Event#event.trace_ts;
+ event_ts -> Event#event.event_ts
+ end,
+ FileName = lists:flatten(["et_contents_viewer_", now_to_string(TimeStamp), ".txt"]),
+ Style = ?wxFD_SAVE bor ?wxFD_OVERWRITE_PROMPT,
+ Msg = "Select a file to the events to",
+ case select_file(S#state.frame, Msg, filename:absname(FileName), Style) of
+ {ok, FileName2} ->
+ Bin = list_to_binary(event_to_string(Event, S#state.event_order)),
+ file:write_file(FileName2, Bin);
+ cancel ->
+ ok
+ end,
+ {noreply, S};
+ ?wxID_PRINT ->
+ Html = wxHtmlEasyPrinting:new([{parentWindow, S#state.win}]),
+ Text = "<pre>" ++ wxTextCtrl:getValue(S#state.editor) ++ "</pre>",
+ wxHtmlEasyPrinting:previewText(Html, Text),
+ {noreply, S};
+ _ ->
+ {noreply, S}
+ end;
+handle_event(#wx{event = #wxKey{rawCode = KeyCode}}, S) ->
+ case KeyCode of
+ $c ->
+ wxFrame:destroy(S#state.frame),
+ opt_unlink(S#state.parent_pid),
+ {stop, normal, S};
+ $f ->
+ E = S#state.filtered_event,
+ From = E#event.from,
+ send_viewer_event(S, {delete_actors, [From]}),
+ {noreply, S};
+ $t ->
+ E = S#state.filtered_event,
+ To = E#event.to,
+ send_viewer_event(S, {delete_actors, [To]}),
+ {noreply, S};
+ $b ->
+ E = S#state.filtered_event,
+ From = E#event.from,
+ To = E#event.to,
+ send_viewer_event(S, {delete_actors, [From, To]}),
+ {noreply, S};
+
+ $F ->
+ E = S#state.filtered_event,
+ From = E#event.from,
+ send_viewer_event(S, {insert_actors, [From]}),
+ {noreply, S};
+ $T ->
+ E = S#state.filtered_event,
+ To = E#event.to,
+ send_viewer_event(S, {insert_actors, [To]}),
+ {noreply, S};
+ $B ->
+ E = S#state.filtered_event,
+ From = E#event.from,
+ To = E#event.to,
+ send_viewer_event(S, {insert_actors, [From, To]}),
+ {noreply, S};
+
+ $s ->
+ E = S#state.filtered_event,
+ From = E#event.from,
+ To = E#event.to,
+ First = et_collector:make_key(S#state.event_order, E),
+ Mode = {search_actors, forward, First, [From, To]},
+ send_viewer_event(S, {mode, Mode}),
+ {noreply, S};
+ $r ->
+ E = S#state.filtered_event,
+ From = E#event.from,
+ To = E#event.to,
+ First = et_collector:make_key(S#state.event_order, E),
+ Mode = {search_actors, reverse, First, [From, To]},
+ send_viewer_event(S, {mode, Mode}),
+ {noreply, S};
+ $a ->
+ send_viewer_event(S, {mode, all}),
+ {noreply, S};
+
+ $0 ->
+ case lists:keysearch(?DEFAULT_FILTER_NAME, #filter.name, S#state.filters) of
+ {value, F} when is_record(F, filter) ->
+ ChildState= S#state{active_filter = F#filter.name},
+ case wx_object:start_link(?MODULE, [ChildState], []) of
+ {ok, Pid} when S#state.parent_pid =/= self() ->
+ unlink(Pid);
+ _ ->
+ ignore
+ end;
+ false ->
+ ignore
+ end,
+ {noreply, S};
+ Int when is_integer(Int), Int > $0, Int =< $9 ->
+ case catch lists:nth(Int-$0, S#state.filters) of
+ F when is_record(F, filter) ->
+ ChildState= S#state{active_filter = F#filter.name},
+ case wx_object:start_link(?MODULE, [ChildState], []) of
+ {ok, Pid} when S#state.parent_pid =/= self() ->
+ unlink(Pid);
+ _ ->
+ ignore
+ end;
+ {'EXIT', _} ->
+ ignore
+ end,
+ {noreply, S};
+
+ _ ->
+ io:format("~p: ignored: ~p~n", [?MODULE, KeyCode]),
+ {noreply, S}
+ end;
+handle_event(#wx{event = #wxClose{}}, S) ->
+ opt_unlink(S#state.parent_pid),
+ {stop, shutdown, S};
+handle_event(#wx{event = #wxSize{size = {W, H}}}, S) ->
+ S2 = S#state{width = W, height = H},
+ {noreply, S2};
+handle_event(Wx = #wx{}, S) ->
+ io:format("~p got an unexpected event: ~p\n", [self(), Wx]),
+ {noreply, S}.
+
+%%----------------------------------------------------------------------
+%% Func: handle_info/2
+%% Returns: {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_info({stop, _From}, S) ->
+ wxFrame:destroy(S#state.frame),
+ opt_unlink(S#state.parent_pid),
+ {stop, shutdown, S};
+handle_info({'EXIT', Pid, Reason}, S) ->
+ if
+ Pid =:= S#state.parent_pid ->
+ wxFrame:destroy(S#state.frame),
+ opt_unlink(S#state.parent_pid),
+ {stop, Reason, S};
+ true ->
+ {noreply, S}
+ end;
+handle_info(Info, S) ->
+ ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n",
+ [?MODULE, self(), Info, S]),
+ {noreply, S}.
+
+%%----------------------------------------------------------------------
+%% Func: terminate/2
+%% Purpose: Shutdown the server
+%% Returns: any (ignored by gen_server)
+%%----------------------------------------------------------------------
+
+terminate(_Reason, _S) ->
+ ignore.
+
+%%----------------------------------------------------------------------
+%% Func: code_change/3
+%% Purpose: Convert process state when code is changed
+%% Returns: {ok, NewState}
+%%----------------------------------------------------------------------
+
+code_change(_OldVsn, S, _Extra) ->
+ {ok, S}.
+
+%%%----------------------------------------------------------------------
+%%% Handle graphics
+%%%----------------------------------------------------------------------
+
+opt_unlink(Pid) ->
+ if
+ Pid =:= undefined ->
+ ignore;
+ true ->
+ unlink(Pid)
+ end.
+
+create_window(S) ->
+ H = S#state.height,
+ W = S#state.width,
+ Name = S#state.active_filter,
+ Title = lists:concat([?MODULE, " (filter: ", Name, ")"]),
+ WinOpt = [{size, {W,H}}],
+ Frame = wxFrame:new(wx:null(), ?wxID_ANY, Title, WinOpt),
+ wxFrame:createStatusBar(Frame),
+
+ Panel = wxPanel:new(Frame, []),
+ Bar = wxMenuBar:new(),
+ wxFrame:setMenuBar(Frame,Bar),
+ create_file_menu(Bar),
+ Editor = wxTextCtrl:new(Panel, ?wxID_ANY, [{style, 0
+ bor ?wxDEFAULT
+ bor ?wxTE_MULTILINE
+ bor ?wxTE_READONLY
+ bor ?wxTE_DONTWRAP}]),
+ Font = wxFont:new(10, ?wxFONTFAMILY_TELETYPE, ?wxNORMAL, ?wxNORMAL,[]),
+ TextAttr = wxTextAttr:new(?wxBLACK, [{font, Font}]),
+ wxTextCtrl:setDefaultStyle(Editor, TextAttr),
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Sizer, Editor, [{flag, ?wxEXPAND}, {proportion, 1}]),
+ FilteredEvent = config_editor(Editor, S),
+ S2 = S#state{win = Frame, panel = Panel, filtered_event = FilteredEvent},
+ HideData = create_hide_menu(Bar, S2),
+ SearchData = create_search_menu(Bar, S2),
+ FilterData = create_filter_menu(Bar, S#state.filters),
+ wxFrame:connect(Frame, command_menu_selected, []),
+ wxFrame:connect(Frame, key_up),
+ wxFrame:connect(Frame, close_window, [{skip,true}]),
+ wxFrame:setFocus(Frame),
+ wxPanel:setSizer(Panel, Sizer),
+ wxFrame:show(Frame),
+ S2#state{menu_data = HideData++SearchData++FilterData, editor = Editor, frame = Frame}.
+
+menuitem(Menu, Id, Text, UserData) ->
+ Item = wxMenu:append(Menu, Id, Text),
+ {wxMenuItem:getId(Item), UserData}.
+
+create_file_menu(Bar) ->
+ Menu = wxMenu:new([]),
+ wxMenu:append(Menu, ?wxID_SAVE, "Save"),
+ wxMenu:append(Menu, ?wxID_PRINT,"Print"),
+ wxMenu:appendSeparator(Menu),
+ wxMenu:append(Menu, ?wxID_EXIT, "Close"),
+ wxMenuBar:append(Bar, Menu, "File").
+
+create_filter_menu(Bar, Filters) ->
+ Menu = wxMenu:new([]),
+ wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Select Filter"), [{enable, false}]),
+ wxMenu:appendSeparator(Menu),
+ Item = fun(F, {N,Acc}) when F#filter.name =:= ?DEFAULT_FILTER_NAME->
+ Label = lists:concat([pad_string(F#filter.name, 20, $\ , right), "(0)"]),
+ MenuItem = menuitem(Menu, ?wxID_ANY, Label, F),
+ {N + 1, [MenuItem|Acc]};
+ (F, {N, Acc}) ->
+ Name = F#filter.name,
+ Label = lists:concat([pad_string(Name, 20, $\ , right), "(", N, ")"]),
+ MenuItem = menuitem(Menu, ?wxID_ANY, Label, F),
+ {N + 1, [MenuItem|Acc]}
+ end,
+ Filters2 = lists:keysort(#filter.name, Filters),
+ {_,MenuData} = lists:foldl(Item, {1, []}, Filters2),
+ wxMenuBar:append(Bar, Menu, "Filters"),
+ MenuData.
+
+create_hide_menu(Bar, S) ->
+ Menu = wxMenu:new([]),
+ E = S#state.filtered_event,
+ From = E#event.from,
+ To = E#event.to,
+ MenuData =
+ if
+ S#state.viewer_pid =:= undefined ->
+ ignore;
+ From =:= To ->
+ wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Hide actor in Viewer "),
+ [{enable, false}]),
+ wxMenu:appendSeparator(Menu),
+ Hide = menuitem(Menu, ?wxID_ANY, "From=To (f|t|b)", {hide, [From]}),
+ wxMenu:appendSeparator(Menu),
+ wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Show actor in Viewer "),
+ [{enable, false}]),
+ wxMenu:appendSeparator(Menu),
+ Show = menuitem(Menu, ?wxID_ANY, "From=To (F|T|B)", {show, [From]}),
+ [Show,Hide];
+ true ->
+ wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Hide actor in Viewer "),
+ [{enable, false}]),
+ wxMenu:appendSeparator(Menu),
+ Hide = [menuitem(Menu, ?wxID_ANY, "From (f)", {hide, [From]}),
+ menuitem(Menu, ?wxID_ANY, "To (t)", {hide, [To]}),
+ menuitem(Menu, ?wxID_ANY, "Both (b)", {hide, [From, To]})],
+ wxMenu:appendSeparator(Menu),
+ wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Show actor in Viewer "),
+ [{enable, false}]),
+ wxMenu:appendSeparator(Menu),
+ Show = [menuitem(Menu, ?wxID_ANY, "From (F)", {show, [From]}),
+ menuitem(Menu, ?wxID_ANY, "To (T)", {show, [To]}),
+ menuitem(Menu, ?wxID_ANY, "Both (B)", {show, [From, To]})],
+ Show++Hide
+ end,
+ wxMenuBar:append(Bar, Menu, "Hide"),
+ MenuData.
+
+create_search_menu(Bar, S) ->
+ Menu = wxMenu:new([]),
+ E = S#state.filtered_event,
+ From = E#event.from,
+ To = E#event.to,
+ wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Search in Viewer "),
+ [{enable, false}]),
+ wxMenu:appendSeparator(Menu),
+ MenuData =
+ if
+ S#state.viewer_pid =:= undefined ->
+ [menuitem(Menu, ?wxID_ANY, "Abort search. Display all (a)", {mode, all})];
+ From =:= To ->
+ Key = et_collector:make_key(S#state.event_order, E),
+ ModeS = {search_actors, forward, Key, [From]},
+ ModeR = {search_actors, reverse, Key, [From]},
+ [menuitem(Menu, ?wxID_ANY, "Forward from this event (s)", {mode, ModeS}),
+ menuitem(Menu, ?wxID_ANY, "Reverse from this event (r)", {mode, ModeR}),
+ menuitem(Menu, ?wxID_ANY, "Abort search. Display all (a)", {mode, all})];
+ true ->
+ Key = et_collector:make_key(S#state.event_order, E),
+ ModeS = {search_actors, forward, Key, [From, To]},
+ ModeR = {search_actors, reverse, Key, [From, To]},
+ [menuitem(Menu, ?wxID_ANY, "Forward from this event (s)", {mode, ModeS}),
+ menuitem(Menu, ?wxID_ANY, "Reverse from this event (r)", {mode, ModeR}),
+ menuitem(Menu, ?wxID_ANY, "Abort search. Display all (a)", {mode, all})]
+ end,
+ wxMenuBar:append(Bar, Menu, "Search"),
+ MenuData.
+
+config_editor(Editor, S) ->
+ Event = S#state.event,
+ Name = S#state.active_filter,
+ {value, F} = lists:keysearch(Name, #filter.name, S#state.filters),
+ FilterFun = F#filter.function,
+ case catch FilterFun(Event) of
+ true ->
+ do_config_editor(Editor, Event, lightblue, S#state.event_order);
+ {true, Event2} when is_record(Event2, event) ->
+ do_config_editor(Editor, Event2, lightblue, S#state.event_order);
+ false ->
+ do_config_editor(Editor, Event, red, S#state.event_order);
+ Bad ->
+ Contents = {bad_filter, Name, Bad},
+ BadEvent = Event#event{contents = Contents},
+ do_config_editor(Editor, BadEvent, red, S#state.event_order)
+ end.
+
+do_config_editor(Editor, Event, _Colour, TsKey) ->
+ String = event_to_string(Event, TsKey),
+ wxTextCtrl:appendText(Editor, String),
+ Event.
+
+%%%----------------------------------------------------------------------
+%%% String handling
+%%%----------------------------------------------------------------------
+
+term_to_string(Term) ->
+ case catch io_lib:format("~s", [Term]) of
+ {'EXIT', _} -> io_lib:format("~p", [Term]);
+ GoodString -> GoodString
+ end.
+
+now_to_string({Mega, Sec, Micro} = Now)
+ when is_integer(Mega), is_integer(Sec), is_integer(Micro) ->
+ {{Y, Mo, D}, {H, Mi, S}} = calendar:now_to_universal_time(Now),
+ lists:concat([Y, "-",
+ pad_string(Mo, 2, $0, left), "-",
+ pad_string(D, 2, $0, left),
+ "T",
+ pad_string(H, 2, $0, left), ":",
+ pad_string(Mi, 2, $0, left), ":",
+ pad_string(S, 2, $0, left), ".",
+ Micro]);
+now_to_string(Other) ->
+ term_to_string(Other).
+
+event_to_string(Event, TsKey) ->
+ ReportedTs = Event#event.trace_ts,
+ ParsedTs = Event#event.event_ts,
+ Deep =
+ ["DETAIL LEVEL: ", term_to_string(Event#event.detail_level),
+ "\nLABEL: ", term_to_string(Event#event.label),
+ case Event#event.from =:= Event#event.to of
+ true ->
+ ["\nACTOR: ", term_to_string(Event#event.from)];
+ false ->
+ ["\nFROM: ", term_to_string(Event#event.from),
+ "\nTO: ", term_to_string(Event#event.to)]
+ end,
+ case ReportedTs =:= ParsedTs of
+ true ->
+ ["\nPARSED: ", now_to_string(ParsedTs)];
+ false ->
+ case TsKey of
+ trace_ts ->
+ ["\nTRACE_TS: ", now_to_string(ReportedTs),
+ "\nEVENT_TS: ", now_to_string(ParsedTs)];
+ event_ts ->
+ ["\nEVENT_TS: ", now_to_string(ParsedTs),
+ "\nTRACE_TS: ", now_to_string(ReportedTs)]
+ end
+ end,
+ "\nCONTENTS:\n\n", term_to_string(Event#event.contents)],
+ lists:flatten(Deep).
+
+pad_string(Int, MinLen, Char, Dir) when is_integer(Int) ->
+ pad_string(integer_to_list(Int), MinLen, Char, Dir);
+pad_string(Atom, MinLen, Char, Dir) when is_atom(Atom) ->
+ pad_string(atom_to_list(Atom), MinLen, Char, Dir);
+pad_string(String, MinLen, Char, Dir) when is_integer(MinLen), MinLen >= 0 ->
+ Len = length(String),
+ case {Len >= MinLen, Dir} of
+ {true, _} ->
+ String;
+ {false, right} ->
+ String ++ lists:duplicate(MinLen - Len, Char);
+ {false, left} ->
+ lists:duplicate(MinLen - Len, Char) ++ String
+ end.
+
+send_viewer_event(S, Event) ->
+ case S#state.viewer_pid of
+ ViewerPid when is_pid(ViewerPid) ->
+ ViewerPid ! {et, Event};
+ undefined ->
+ ignore
+ end.
+
+select_file(Frame, Message, DefaultFile, Style) ->
+ Dialog = wxFileDialog:new(Frame,
+ [{message, Message},
+ {defaultDir, filename:dirname(DefaultFile)},
+ {defaultFile, filename:basename(DefaultFile)},
+ {style, Style}]),
+ Choice =
+ case wxMessageDialog:showModal(Dialog) of
+ ?wxID_CANCEL -> cancel;
+ ?wxID_OK -> {ok, wxFileDialog:getPath(Dialog)}
+ end,
+ wxFileDialog:destroy(Dialog),
+ Choice.
diff --git a/lib/et/src/et_wx_viewer.erl b/lib/et/src/et_wx_viewer.erl
new file mode 100644
index 0000000000..5cd3563aed
--- /dev/null
+++ b/lib/et/src/et_wx_viewer.erl
@@ -0,0 +1,2122 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%----------------------------------------------------------------------
+%% Purpose: Displays a sequence chart for trace events (messages/actions)
+%%----------------------------------------------------------------------
+
+-module(et_wx_viewer).
+
+-behaviour(gen_server).
+
+%% External exports
+-export([start_link/1]).
+
+%% gen_server callbacks
+-export([init/1, terminate/2, code_change/3,
+ handle_call/3, handle_cast/2, handle_info/2]).
+
+-include("../include/et.hrl").
+-include("et_internal.hrl").
+-include_lib("wx/include/wx.hrl").
+
+-define(unknown, "UNKNOWN").
+-define(initial_x, 10).
+-define(incr_x, 60).
+-define(initial_y, 15).
+-define(incr_y, 15).
+
+-record(state,
+ {parent_pid, % Pid of parent process
+ auto_shutdown, % Shutdown collector when last subscriber dies
+ collector_pid, % Pid of collector process
+ event_order, % Field to be used as primary key
+ trace_pattern, % Collector trace pattern
+ active_filter, % Name of the active filter
+ filters, % List of possible filters
+ filter_menu,
+ pending_actor, % Pending actor - move or toggle
+ first_event, % Key of first event (regardless of visibility)
+ last_event, % Key of last event (regardless of visibility)
+ events_per_page, % Maximum number of shown events
+ events, % Queue containg all event keys (regardless of visibility)
+ n_events, % Number of events available in the collector
+ max_actors, % Maximum number of shown actors
+ actors, % List of known actors
+ refresh_needed, % Refresh is needed in order to show all actors
+ detail_level, % Show only events with lesser detail level
+ hide_actions, % Hide/show events where to == from actor (bool)
+ hide_actors, % Hide/show events with unknown actor (bool)
+ display_all,
+ context, % display | print
+ title, % GUI: Window title
+ frame, % GUI: Window object
+ menubar, % GUI: Menu bar object
+ packer, % GUI: Packer object
+ width, % GUI: Window width
+ height, % GUI: Window height
+ scale, % GUI: Scaling factor on canvas
+ normal_font, % GUI: Font to be used on text labels
+ bold_font, % GUI: Font to be used on text labels
+ pen,
+ brush,
+ print_psdd,
+ print_d,
+ canvas_width, % GUI: Canvas width
+ canvas_height, % GUI: Canvas height
+ canvas, % GUI: Canvas object
+ canvas_sizer,
+ scroll_bar, % GUI: Canvas scroll bar
+ y_pos, % GUI: Current y position on canvas
+ menu_data,
+ checkbox_data,
+ hide_actions_box,
+ hide_actors_box,
+ status_bar,
+ event_file,
+ wx_debug, % GUI: WX debug level
+ trap_exit}). % trap_exit process flag
+
+
+-record(actor, {name, string, include, exclude}).
+-record(e, {pos, key, event}).
+
+%%%----------------------------------------------------------------------
+%%% Client side
+%%%----------------------------------------------------------------------
+
+start_link(Options) ->
+ case parse_opt(Options, default_state(), []) of
+ {ok, S, CollectorOpt} ->
+ case S#state.collector_pid of
+ CollectorPid when is_pid(CollectorPid) ->
+ case gen_server:start_link(?MODULE, [S], []) of
+ {ok, Pid} when S#state.parent_pid =/= self() ->
+ unlink(Pid),
+ {ok, Pid};
+ Other ->
+ Other
+ end;
+ undefined ->
+ case et_collector:start_link([{auto_shutdown, true} | CollectorOpt]) of
+ {ok, CollectorPid} ->
+ S2 = S#state{collector_pid = CollectorPid},
+ case gen_server:start_link(?MODULE, [S2], []) of
+ {ok, Pid} when S#state.parent_pid =/= self() ->
+ unlink(Pid),
+ {ok, Pid};
+ Other ->
+ Other
+ end;
+ {error, Reason} ->
+ {error, {et_collector, Reason}}
+ end
+ end;
+ {error, Reason} ->
+ {error, Reason}
+ end.
+
+default_state() ->
+ #state{parent_pid = self(),
+ collector_pid = undefined,
+ n_events = 0,
+ detail_level = ?detail_level_max,
+ active_filter = ?DEFAULT_FILTER_NAME,
+ filters = [?DEFAULT_FILTER],
+ event_order = trace_ts,
+ events_per_page = 100,
+ first_event = first,
+ last_event = first,
+ events = queue_new(),
+ max_actors = 5,
+ actors = [create_actor(?unknown)],
+ pending_actor = ?unknown,
+ hide_actions = false,
+ hide_actors = false,
+ display_all = true,
+ context = display,
+ refresh_needed = false,
+ scale = 2,
+ canvas_height = 0,
+ canvas_width = 0,
+ width = 800,
+ height = 600,
+ event_file = filename:absname("et_viewer.etrace"),
+ wx_debug = 0,
+ trap_exit = true}.
+
+parse_opt([], S, CollectorOpt) ->
+ {ok, S, [{parent_pid, S#state.parent_pid} | CollectorOpt]};
+parse_opt([H | T], S, CollectorOpt) ->
+ case H of
+ {parent_pid, Parent} when is_pid(Parent); Parent =:= undefined ->
+ parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt);
+ {wx_debug, Level} ->
+ parse_opt(T, S#state{wx_debug = Level}, CollectorOpt);
+ {trap_exit, Bool} when Bool =:= true; Bool =:= false->
+ parse_opt(T, S#state{trap_exit = Bool}, CollectorOpt);
+ {title, Title} ->
+ parse_opt(T, S#state{title = name_to_string(Title)}, CollectorOpt);
+ {detail_level, Level} when is_integer(Level),
+ Level >= ?detail_level_min,
+ Level =< ?detail_level_max ->
+ parse_opt(T, S#state{detail_level = Level}, CollectorOpt);
+ {detail_level, max} ->
+ parse_opt(T, S#state{detail_level = ?detail_level_max}, CollectorOpt);
+ {detail_level, min} ->
+ parse_opt(T, S#state{detail_level = ?detail_level_min}, CollectorOpt);
+ {scale, Scale} when is_integer(Scale), Scale > 0 ->
+ parse_opt(T, S#state{scale = Scale}, CollectorOpt);
+ {width, W} when is_integer(W), W > 0 ->
+ parse_opt(T, S#state{width = W, canvas_width = W}, CollectorOpt);
+ {height, WH} when is_integer(WH), WH > 0 ->
+ parse_opt(T, S#state{height = WH, canvas_height = WH}, CollectorOpt);
+ {collector_pid, Pid} when is_pid(Pid) ->
+ parse_opt(T, S#state{collector_pid = Pid}, CollectorOpt);
+ {collector_pid, undefined} ->
+ parse_opt(T, S#state{collector_pid = undefined}, CollectorOpt);
+ {active_filter, Name} when is_atom(Name) ->
+ parse_opt(T, S#state{active_filter = Name}, CollectorOpt);
+ {event_order, trace_ts} -> %% BUGBUG: Verify event_order with collector
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{event_order = trace_ts}, CollectorOpt2);
+ {event_order, event_ts} -> %% BUGBUG: Verify event_order with collector
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{event_order = event_ts}, CollectorOpt2);
+ {trace_port, _Port} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {trace_max_queue, _Queue} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {trace_pattern, _Pattern} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {trace_global, _Boolean} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {trace_client, _Client} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {dict_insert, {filter, Name}, Fun} ->
+ if
+ is_atom(Name), is_function(Fun) ->
+ F = #filter{name = Name, function = Fun},
+ Filters = lists:keydelete(Name, #filter.name, S#state.filters),
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{filters = Filters ++ [F]}, CollectorOpt2);
+ true ->
+ {error, {bad_option, H}}
+ end;
+ {dict_insert, {subscriber, Pid}, _Val} ->
+ if
+ is_pid(Pid) ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ true ->
+ {error, {bad_option, H}}
+ end;
+ {dict_insert, _Key, _Val} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {dict_delete, {filter, Name}} ->
+ Filters = lists:keydelete(Name, #filter.name, S#state.filters),
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S#state{filters = Filters}, CollectorOpt2);
+ {dict_delete, _Key} ->
+ CollectorOpt2 = [H | CollectorOpt],
+ parse_opt(T, S, CollectorOpt2);
+ {max_events, _Max} ->
+ %% Kept for backward compatibility
+ parse_opt(T, S, CollectorOpt);
+ {max_actors, Max} when is_integer(Max), Max >= 0 ->
+ parse_opt(T, S#state{max_actors = Max}, CollectorOpt);
+ {max_actors, Max} when Max =:= infinity ->
+ parse_opt(T, S#state{max_actors = Max}, CollectorOpt);
+ {actors, ActorNames} when is_list(ActorNames) ->
+ ActorNames2 =
+ case lists:member(?unknown, ActorNames) of
+ false -> [?unknown | ActorNames];
+ true -> ActorNames
+ end,
+ Actors = [create_actor(Name) || Name <- ActorNames2],
+ parse_opt(T, S#state{actors = Actors}, CollectorOpt);
+ {include, ActorNames} when is_list(ActorNames) ->
+ Actors = [opt_create_actor(Name, include, S#state.actors) || Name <- ActorNames],
+ parse_opt(T, S#state{actors = Actors}, CollectorOpt);
+ {exclude, ActorNames} when is_list(ActorNames) ->
+ Actors = [opt_create_actor(Name, exclude, S#state.actors) || Name <- ActorNames],
+ parse_opt(T, S#state{actors = Actors}, CollectorOpt);
+ {first_event, _FirstKey} ->
+ %% NYI
+ parse_opt(T, S, CollectorOpt);
+ {hide_actors, Bool} when Bool =:= true; Bool =:= false ->
+ parse_opt(T, S#state{hide_actors = Bool}, CollectorOpt);
+ {hide_actions, Bool} when Bool =:= true; Bool =:= false ->
+ parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt);
+ {hide_unknown, Bool} when Bool =:= true; Bool =:= false ->
+ %% Kept for backward compatibility
+ parse_opt(T, S, CollectorOpt);
+ {display_mode, _Mode} ->
+ %% Kept for backward compatibility
+ parse_opt(T, S, CollectorOpt);
+ Bad ->
+ {error, {bad_option, Bad}}
+ end;
+parse_opt(BadList, _S, _CollectorOpt) ->
+ {error, {bad_option_list, BadList}}.
+
+do_dict_insert({filter, Name}, Fun, S) when is_atom(Name), is_function(Fun) ->
+ F = #filter{name = Name, function = Fun},
+ Filters = lists:keydelete(Name, #filter.name, S#state.filters),
+ Filters2 = lists:keysort(#filter.name, [F | Filters]),
+ S2 = create_filter_menu(S, S#state.active_filter, Filters2),
+ S2#state{filters = Filters2};
+do_dict_insert(_Key, _Val, S) ->
+ %%ok = error_logger:format("~p(~p): handle_info({et, {dict_insert, ~p, ~p}})~n",
+ %% [?MODULE, self(), Key, Val]),
+ S.
+
+do_dict_delete({filter, Name}, S) when is_atom(Name), Name =/= S#state.active_filter ->
+ Filters = lists:keydelete(Name, #filter.name, S#state.filters),
+ S2 = create_filter_menu(S, S#state.active_filter, Filters),
+ S2#state{filters = Filters};
+do_dict_delete(_Key, S) ->
+ %% ok = error_logger:format("~p(~p): handle_info({et, {dict_delete, ~p}})~n",
+ %% [?MODULE, self(), Key]),
+ S.
+
+%%%----------------------------------------------------------------------
+%%% Callback functions from gen_server
+%%%----------------------------------------------------------------------
+
+%%----------------------------------------------------------------------
+%% Func: init/1
+%% Returns: {ok, State} |
+%% {ok, State, Timeout} |
+%% ignore |
+%% {stop, Reason}
+%%----------------------------------------------------------------------
+
+init([S]) when is_record(S, state) ->
+ process_flag(trap_exit, S#state.trap_exit),
+ case S#state.parent_pid of
+ undefined -> ok;
+ ParentPid -> link(ParentPid)
+ end,
+ wx:new(),
+ wx:debug(S#state.wx_debug),
+ et_collector:dict_insert(S#state.collector_pid,
+ {subscriber, self()},
+ ?MODULE),
+ S2 = create_main_window(S),
+ EventsPerPage = events_per_page(S2, S2#state.height),
+ S3 = revert_main_window(S2#state{events_per_page = EventsPerPage}),
+ Timeout = timeout(S3),
+ {ok, S3, Timeout}.
+
+%%----------------------------------------------------------------------
+%% Func: handle_call/3
+%% Returns: {reply, Reply, State} |
+%% {reply, Reply, State, Timeout} |
+%% {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, Reply, State} | (terminate/2 is called)
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_call(get_collector_pid, _From, S) ->
+ Reply = S#state.collector_pid,
+ reply(Reply, S);
+handle_call(stop, _From, S) ->
+ wxFrame:destroy(S#state.frame),
+ opt_unlink(S#state.parent_pid),
+ {stop, shutdown, ok, S};
+handle_call({open_event, N}, _From, S) when is_integer(N), N > 0->
+ Reply = do_open_event(S, N),
+ reply(Reply, S);
+handle_call(Request, From, S) ->
+ ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n",
+ [?MODULE, self(), Request, From, S]),
+ Reply = {error, {bad_request, Request}},
+ reply(Reply, S).
+
+%%----------------------------------------------------------------------
+%% Func: handle_cast/2
+%% Returns: {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_cast(Msg, S) ->
+ ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n",
+ [?MODULE, self(), Msg, S]),
+ noreply(S).
+
+
+%%----------------------------------------------------------------------
+%% Func: handle_info/2
+%% Returns: {noreply, State} |
+%% {noreply, State, Timeout} |
+%% {stop, Reason, State} (terminate/2 is called)
+%%----------------------------------------------------------------------
+
+handle_info({et, {more_events, N}}, S) ->
+ %% io:format("more events: ~p \n", [N]),
+ S4 =
+ if
+ N =:= S#state.n_events ->
+ S;
+ true ->
+ Missing = S#state.events_per_page - queue_length(S#state.events),
+ if
+ Missing =:= 0 ->
+ update_scroll_bar(S#state{n_events = N});
+ Missing > 0 ->
+ OldEvents = queue_to_list(S#state.events),
+ {S2, NewEvents} =
+ collect_more_events(S#state{n_events = N},
+ S#state.last_event,
+ Missing),
+ S3 = replace_events(S2, OldEvents ++ NewEvents),
+ refresh_main_window(S3)
+ end
+ end,
+ noreply(S4);
+handle_info({et, {insert_actors, ActorNames}}, S) when is_list(ActorNames) ->
+ Fun = fun(N, Actors) ->
+ case lists:keymember(N, #actor.name, Actors) of
+ true -> Actors;
+ false -> Actors ++ [create_actor(N)]
+ end
+ end,
+ Actors = lists:foldl(Fun, S#state.actors, ActorNames),
+ S2 = refresh_main_window(S#state{actors = Actors}),
+ noreply(S2);
+handle_info({et, {delete_actors, ActorNames}}, S) when is_list(ActorNames)->
+ Fun = fun(N, Actors) when N =:= ?unknown ->
+ Actors;
+ (N, Actors) ->
+ lists:keydelete(N, #actor.name, Actors)
+ end,
+ Actors = lists:foldl(Fun, S#state.actors, ActorNames),
+ S2 = refresh_main_window(S#state{actors = Actors}),
+ noreply(S2);
+handle_info({et, {dict_insert, Key, Val}}, S) ->
+ S2 = do_dict_insert(Key, Val, S),
+ noreply(S2);
+handle_info({et, {dict_delete, Key}}, S) ->
+ S2 = do_dict_delete(Key, S),
+ noreply(S2);
+handle_info({et, first}, S) ->
+ S2 = scroll_first(S),
+ noreply(S2);
+handle_info({et, prev}, S) ->
+ S2 = scroll_prev(S),
+ noreply(S2);
+handle_info({et, next}, S) ->
+ S2 = scroll_next(S),
+ noreply(S2);
+handle_info({et, last}, S) ->
+ S2 = scroll_last(S),
+ noreply(S2);
+handle_info({et, refresh}, S) ->
+ S2 = revert_main_window(S),
+ noreply(S2);
+handle_info({et, {display_mode, _Mode}}, S) ->
+ %% Kept for backward compatibility
+ noreply(S);
+handle_info({et, close}, S) ->
+ wxFrame:destroy(S#state.frame),
+ opt_unlink(S#state.parent_pid),
+ {stop, shutdown, S};
+handle_info(#wx{id=?wxID_HELP}, S) ->
+ HelpString =
+ "Vertical scroll:\n"
+ "\tUse mouse wheel and up/down arrows to scroll little.\n"
+ "\tUse page up/down and home/end buttons to scroll more.\n\n"
+ "Display details of an event:\n"
+ "\tLeft mouse click on the event label or the arrow.\n\n"
+ "Highlight actor (toggle):\n"
+ "\tLeft mouse click on the actor name tag.\n"
+ "\tThe actor name will be enclosed in square brackets [].\n\n"
+ "Exclude actor (toggle):\n"
+ "\tRight mouse click on the actor name tag.\n"
+ "\tThe actor name will be enclosed in round brackets ().\n\n"
+ "Move actor:\n"
+ "\tLeft mouse button drag and drop on actor name tag.\n\n"
+ "Display all (reset settings for hidden and/or highlighted actors):\n"
+ "\tPress the 'a' button.",
+ Dialog =
+ wxMessageDialog:new(S#state.frame, HelpString,
+ [{style, 0
+ bor ?wxOK
+ bor ?wxICON_INFORMATION
+ bor ?wxSTAY_ON_TOP},
+ {caption, "Help"}]),
+ wxMessageDialog:showModal(Dialog),
+ noreply(S);
+handle_info(#wx{id=Id, event = #wxCommand{type = command_menu_selected}}, S=#state{filter_menu = {_,Data}}) ->
+ CollectorPid = S#state.collector_pid,
+ case get_value(Id, 3, S#state.menu_data) of
+ close ->
+ wxFrame:destroy(S#state.frame),
+ opt_unlink(S#state.parent_pid),
+ {stop, shutdown, S};
+ up ->
+ S2 = scroll_up(S),
+ noreply(S2);
+ down ->
+ S2 = scroll_down(S),
+ noreply(S2);
+ first ->
+ S2 = scroll_first(S),
+ noreply(S2);
+ prev ->
+ S2 = scroll_prev(S),
+ noreply(S2);
+ next ->
+ S2 = scroll_next(S),
+ noreply(S2);
+ last ->
+ S2 = scroll_last(S),
+ noreply(S2);
+ refresh ->
+ S2 = revert_main_window(S),
+ noreply(S2);
+ {display_mode, _Mode} ->
+ %% Kept for backward compatibility
+ noreply(S);
+ display_all ->
+ S2 = display_all(S),
+ noreply(S2);
+ close_all ->
+ close_all(S);
+ close_all_others ->
+ close_all_others(S);
+ first_all ->
+ et_collector:multicast(CollectorPid, first),
+ noreply(S);
+ prev_all ->
+ et_collector:multicast(CollectorPid, prev),
+ noreply(S);
+ next_all ->
+ et_collector:multicast(CollectorPid, next),
+ noreply(S);
+ last_all ->
+ et_collector:multicast(CollectorPid, last),
+ noreply(S);
+ refresh_all ->
+ et_collector:multicast(CollectorPid, refresh),
+ noreply(S);
+ clear_all ->
+ et_collector:clear_table(CollectorPid),
+ et_collector:multicast(CollectorPid, refresh),
+ noreply(S);
+ load_all ->
+ Style = ?wxFD_OPEN bor ?wxFD_OVERWRITE_PROMPT,
+ Msg = "Select a file to load events from",
+ S2 =
+ case select_file(S#state.frame, Msg, S#state.event_file, Style) of
+ {ok, NewFile} ->
+ et_collector:start_trace_client(CollectorPid, event_file, NewFile),
+ S#state{event_file = NewFile};
+ cancel ->
+ S
+ end,
+ noreply(S2);
+ save_all ->
+ Style = ?wxFD_SAVE bor ?wxFD_OVERWRITE_PROMPT,
+ Msg = "Select a file to save events to",
+ S2 =
+ case select_file(S#state.frame, Msg, S#state.event_file, Style) of
+ {ok, NewFile} ->
+ et_collector:save_event_file(CollectorPid, NewFile, [existing, write, keep]),
+ S#state{event_file = NewFile};
+ cancel ->
+ S
+ end,
+ noreply(S2);
+ print_setup ->
+ S2 = print_setup(S),
+ noreply(S2);
+ print_one_page = Scope ->
+ S2 = print(S, Scope),
+ noreply(S2);
+ print_all_pages = Scope ->
+ S2 = print(S, Scope),
+ noreply(S2);
+ {open_viewer, Scale} ->
+ Actors = [A#actor.name || A <- S#state.actors],
+ open_viewer(Scale, S#state.active_filter, Actors, S),
+ noreply(S);
+
+ _ ->
+ case get_value(Id, 3, Data) of
+ {data, F=#filter{}, Scale} ->
+ open_viewer(S#state.scale+Scale, F#filter.name, [?unknown], S);
+ {data, F=#filter{}} ->
+ open_viewer(S#state.scale, F#filter.name, [?unknown], S);
+ false ->
+ ok
+ end,
+ noreply(S)
+ end;
+handle_info(#wx{event = #wxCommand{type = command_slider_updated, commandInt = Level}}, S) ->
+ if
+ Level >= ?detail_level_min,
+ Level =< ?detail_level_max ->
+ S2 = S#state{detail_level = Level},
+ S3 = revert_main_window(S2),
+ noreply(S3);
+
+ true ->
+ noreply(S)
+ end;
+handle_info(#wx{id = Id, event = #wxCommand{type = command_checkbox_clicked, commandInt = Int}}, S) ->
+ case get_value(Id, 2, S#state.checkbox_data) of
+ hide_actions ->
+ case Int of
+ 1 ->
+ S2 = S#state{hide_actions = true},
+ S3 = revert_main_window(S2),
+ noreply(S3);
+ 0 ->
+ S2 = S#state{hide_actions = false},
+ S3 = revert_main_window(S2),
+ noreply(S3)
+ end;
+ hide_actors ->
+ case Int of
+ 1 ->
+ S2 = S#state{hide_actors = true},
+ S3 = revert_main_window(S2),
+ noreply(S3);
+ 0 ->
+ S2 = S#state{hide_actors = false},
+ S3 = revert_main_window(S2),
+ noreply(S3)
+ end;
+ false ->
+ noreply(S)
+ end;
+handle_info(#wx{event = #wxMouse{type = left_down, x = X, y = Y}}, S) ->
+ S3 =
+ case y_to_n(Y, S) of
+ actor ->
+ %% Actor click
+ case S#state.actors of
+ [] ->
+ S;
+ Actors ->
+ N = x_to_n(X, S),
+ A = lists:nth(N, Actors),
+ S#state{pending_actor = A}
+ end;
+ {event, N} ->
+ %% Event click
+ do_open_event(S, N),
+ S
+ end,
+ noreply(S3);
+handle_info(#wx{event = #wxMouse{type = left_up}}, S) when S#state.pending_actor =:= undefined ->
+ noreply(S);
+handle_info(#wx{event = #wxMouse{type = left_up, x = X, y = Y}}, S) ->
+ S3 =
+ case y_to_n(Y, S) of
+ actor ->
+ %% Actor click
+ case S#state.actors of
+ [] ->
+ S;
+ Actors ->
+ N = x_to_n(X, S),
+ A = lists:nth(N, Actors),
+ Pending = S#state.pending_actor,
+ if
+ A#actor.name =:= Pending#actor.name ->
+ %% Toggle include actor
+ A2 = A#actor{include = not A#actor.include},
+ %% io:format("include ~p: ~p -> ~p\n",
+ %% [A#actor.name, A#actor.include, A2#actor.include]),
+ Actors2 = lists:keyreplace(A#actor.name, #actor.name, Actors, A2),
+ DisplayAll = not lists:keymember(true, #actor.include, Actors2),
+ S2 = S#state{actors = Actors2, display_all = DisplayAll},
+ revert_main_window(S2);
+ true ->
+ move_actor(Pending, A, Actors, S)
+ end
+ end;
+ {event, _N} ->
+ %% Event click ignored
+ S
+ end,
+ noreply(S3#state{pending_actor = undefined});
+handle_info(#wx{event = #wxMouse{type = right_up, x = X, y = Y}}, S) ->
+ S3 =
+ case y_to_n(Y, S) of
+ actor ->
+ %% Actor click
+ case S#state.actors of
+ [] ->
+ S;
+ Actors ->
+ %% Toggle exclude actor
+ N = x_to_n(X, S),
+ A = lists:nth(N, Actors),
+ A2 = A#actor{exclude = not A#actor.exclude},
+ Actors2 = lists:keyreplace(A#actor.name, #actor.name, Actors, A2),
+ S2 = S#state{actors = Actors2},
+ revert_main_window(S2)
+ end;
+ {event, _N} ->
+ %% Event click ignored
+ S
+ end,
+ noreply(S3#state{pending_actor = undefined});
+handle_info(#wx{event = #wxKey{keyCode = KeyCode, shiftDown = SD}}, S) ->
+ case KeyCode of
+ $C when SD =:= true ->
+ close_all(S);
+ $c ->
+ close_all_others(S);
+ ?WXK_HOME ->
+ S2 = scroll_first(S),
+ noreply(S2);
+ ?WXK_END ->
+ S2 = scroll_last(S),
+ noreply(S2);
+ ?WXK_UP ->
+ S2 = scroll_up(S),
+ noreply(S2);
+ ?WXK_DOWN ->
+ S2 = scroll_down(S),
+ noreply(S2);
+ ?WXK_PAGEUP ->
+ S2 = scroll_prev(S),
+ noreply(S2);
+ ?WXK_PAGEDOWN ->
+ S2 = scroll_next(S),
+ noreply(S2);
+ $F when SD =:= true ->
+ et_collector:multicast(S#state.collector_pid, first),
+ noreply(S);
+ $F ->
+ S2 = scroll_first(S),
+ noreply(S2);
+ $P when SD =:= true ->
+ et_collector:multicast(S#state.collector_pid, prev),
+ noreply(S);
+ $P ->
+ S2 = scroll_prev(S),
+ noreply(S2);
+ $N when SD =:= true ->
+ et_collector:multicast(S#state.collector_pid, next),
+ noreply(S);
+ $N ->
+ S2 = scroll_next(S),
+ noreply(S2);
+ $L when SD =:= true ->
+ et_collector:multicast(S#state.collector_pid, last),
+ noreply(S);
+ $L ->
+ S2 = scroll_last(S),
+ noreply(S2);
+ $R when SD =:= true ->
+ et_collector:multicast(S#state.collector_pid, refresh),
+ noreply(S);
+ $R ->
+ S2 = revert_main_window(S),
+ noreply(S2);
+ $A ->
+ S2 = display_all(S),
+ noreply(S2);
+ $= ->
+ Scale = S#state.scale,
+ Actors = [A#actor.name || A <- S#state.actors],
+ open_viewer(Scale, S#state.active_filter, Actors, S),
+ noreply(S);
+ Int when Int =:= $+; Int =:= ?WXK_NUMPAD_ADD ->
+ Scale = S#state.scale + 1,
+ Actors = [A#actor.name || A <- S#state.actors],
+ open_viewer(Scale, S#state.active_filter, Actors, S),
+ noreply(S);
+ Int when Int =:= $-; Int =:= ?WXK_NUMPAD_SUBTRACT ->
+ case S#state.scale of
+ 1 ->
+ ignore;
+ Scale ->
+ Actors = [A#actor.name || A <- S#state.actors],
+ open_viewer(Scale - 1, S#state.active_filter, Actors, S)
+ end,
+ noreply(S);
+ $0 ->
+ case lists:keysearch(?DEFAULT_FILTER_NAME, #filter.name, S#state.filters) of
+ {value, F} when is_record(F, filter) ->
+ open_viewer(S#state.scale, F#filter.name, [?unknown], S);
+ false ->
+ ok
+ end,
+ noreply(S);
+ Int when is_integer(Int), Int > $0, Int =< $9 ->
+ case catch lists:nth(Int-$0, S#state.filters) of
+ F when is_record(F, filter) ->
+ open_viewer(S#state.scale, F#filter.name, [?unknown], S);
+ {'EXIT', _} ->
+ ok
+ end,
+ noreply(S);
+
+ _ ->
+ noreply(S)
+ end;
+handle_info(#wx{event = #wxScroll{type = scroll_changed}} = Wx, S) ->
+ get_latest_scroll(Wx),
+ Pos = wxScrollBar:getThumbPosition(S#state.scroll_bar),
+ {_, LineTopY, LineBotY} = calc_y(S),
+ Range = LineBotY - LineTopY,
+ N = round(S#state.n_events * Pos / Range),
+ Diff =
+ case N - event_pos(S) of
+ D when D < 0 -> D - 1;
+ D -> D + 1
+ end,
+ S2 = scroll_changed(S, Diff),
+ noreply(S2);
+handle_info(timeout, S) ->
+ noreply(S);
+handle_info({'EXIT', Pid, Reason}, S) ->
+ if
+ Pid =:= S#state.collector_pid ->
+ io:format("collector died: ~p\n\n", [Reason]),
+ wxFrame:destroy(S#state.frame),
+ {stop, Reason, S};
+ Pid =:= S#state.parent_pid ->
+ wxFrame:destroy(S#state.frame),
+ {stop, Reason, S};
+ true ->
+ noreply(S)
+ end;
+handle_info(#wx{event = #wxClose{}}, S) ->
+ opt_unlink(S#state.parent_pid),
+ {stop, shutdown, S};
+handle_info(#wx{event = #wxMouse{type = mousewheel, wheelRotation = Rot}}, S) when Rot > 0 ->
+ S2 = scroll_up(S),
+ noreply(S2);
+handle_info(#wx{event = #wxMouse{type = mousewheel, wheelRotation = Rot}}, S) when Rot < 0 ->
+ S2 = scroll_down(S),
+ noreply(S2);
+handle_info(#wx{event = #wxSize{size = {OldW, OldH}}} = Wx, S) ->
+ #wx{event = #wxSize{type = size, size = {W, H}}} = get_latest_resize(Wx),
+ S2 = S#state{width = W, height = H, canvas_width = W, canvas_height = H},
+ EventsPerPage = events_per_page(S, H),
+ Diff = EventsPerPage - S#state.events_per_page,
+ S6 =
+ if
+ OldW =:= W, OldH =:= H, S2#state.events_per_page =:= EventsPerPage ->
+ S2;
+ Diff =:= 0 ->
+ refresh_main_window(S2);
+ Diff > 0 ->
+ OldEvents = queue_to_list(S2#state.events),
+ {S3, NewEvents} = collect_more_events(S2, S2#state.last_event, Diff),
+ S4 = S3#state{events_per_page = EventsPerPage},
+ S5 = replace_events(S4, OldEvents ++ NewEvents),
+ refresh_main_window(S5);
+ Diff < 0 ->
+ OldEvents = queue_to_list(S2#state.events),
+ RevEvents = delete_n(lists:reverse(OldEvents), abs(Diff)),
+ S3 = S2#state{events_per_page = EventsPerPage},
+ S4 = replace_events(S3, lists:reverse(RevEvents)),
+ refresh_main_window(S4)
+ end,
+ noreply(S6);
+handle_info(#wx{event = #wxFocus{}}, S) ->
+ wxWindow:setFocus(S#state.canvas), % Get keyboard focus
+ noreply(S);
+handle_info(#wx{event = #wxMouse{type = enter_window}}, S) ->
+ wxWindow:setFocus(S#state.canvas), % Get keyboard focus
+ noreply(S);
+handle_info(#wx{event = #wxPaint{}}, S) ->
+ S2 = refresh_main_window(S),
+ noreply(S2);
+handle_info(#wx{event = #wxMouse{type = T, x=X,y=Y}}, S) ->
+ io:format("~p ~p\n", [T, {X,Y}]),
+ noreply(S);
+handle_info(Info, S) ->
+ ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n",
+ [?MODULE, self(), Info, S]),
+ noreply(S).
+
+%%----------------------------------------------------------------------
+%% Func: terminate/2
+%% Purpose: Shutdown the server
+%% Returns: any (ignored by gen_server)
+%%----------------------------------------------------------------------
+
+terminate(_Reason, _S) ->
+ ignore.
+
+%%----------------------------------------------------------------------
+%% Func: code_change/3
+%% Purpose: Convert process state when code is changed
+%% Returns: {ok, NewState}
+%%----------------------------------------------------------------------
+
+code_change(_OldVsn, S, _Extra) ->
+ {ok, S}.
+
+%%%----------------------------------------------------------------------
+%%% Handle stuff
+%%%----------------------------------------------------------------------
+
+reply(Reply, S) ->
+ Timeout = timeout(S),
+ {reply, Reply, S, Timeout}.
+
+noreply(S) ->
+ Timeout = timeout(S),
+ {noreply, S, Timeout}.
+
+timeout(_S) ->
+ infinity.
+
+scroll_first(S) ->
+ EventsPerPage = S#state.events_per_page,
+ {S2, NewEvents} =
+ collect_more_events(S, first, EventsPerPage),
+ S3 =
+ case NewEvents of
+ [] ->
+ S2;
+ [FirstE | _] ->
+ S2#state{first_event = FirstE}
+ end,
+ S4 = replace_events(S3, NewEvents),
+ refresh_main_window(S4).
+
+scroll_last(S) ->
+ case collect_more_events(S, last, -1) of
+ {_, []} ->
+ scroll_first(S);
+ {S2, NewEvents} ->
+ [FirstE | _] = NewEvents,
+ S3 = replace_events(S2#state{first_event = FirstE}, NewEvents),
+ refresh_main_window(S3)
+ end.
+
+scroll_prev(S) ->
+ scroll_up(S, S#state.events_per_page).
+
+scroll_next(S) ->
+ scroll_down(S, S#state.events_per_page).
+
+scroll_up(S) ->
+ scroll_up(S, calc_scroll(S)).
+
+scroll_up(S, Expected) ->
+ N = queue_length(S#state.events),
+ EventsPerPage = S#state.events_per_page,
+ Expected2 = adjust_expected(Expected, N, EventsPerPage),
+ OldEvents = queue_to_list(S#state.events),
+ case collect_more_events(S, S#state.first_event, -Expected2) of
+ {_, []} ->
+ S;
+ {S2, NewEvents} ->
+ NewN = length(NewEvents),
+ if
+ N + NewN > EventsPerPage ->
+ RevAllEvents = lists:reverse(OldEvents, lists:reverse(NewEvents)),
+ TooMany = N + NewN - EventsPerPage,
+ case delete_n(RevAllEvents, TooMany) of
+ [] ->
+ S;
+ [LastE | _] = RevEvents ->
+ Events = lists:reverse(RevEvents),
+ S3 = replace_events(S2#state{last_event = LastE}, Events),
+ refresh_main_window(S3)
+ end;
+ true ->
+ Events = NewEvents ++ OldEvents,
+ LastE = lists:last(Events),
+ S3 = replace_events(S2#state{last_event = LastE}, Events),
+ refresh_main_window(S3)
+ end
+ end.
+
+scroll_down(S) ->
+ scroll_down(S, calc_scroll(S)).
+
+scroll_down(S, Expected) ->
+ N = queue_length(S#state.events),
+ EventsPerPage = S#state.events_per_page,
+ Expected2 = adjust_expected(Expected, N, EventsPerPage),
+ OldEvents = queue_to_list(S#state.events),
+ case collect_more_events(S, S#state.last_event, Expected2) of
+ {_, []} ->
+ case collect_more_events(S, S#state.first_event, N - EventsPerPage) of
+ {_, []} ->
+ S;
+ {S2, NewEvents} ->
+ Events = NewEvents ++ OldEvents,
+ [FirstE | _] = Events,
+ S3 = replace_events(S2#state{first_event = FirstE}, Events),
+ refresh_main_window(S3)
+ end;
+ {S2, NewEvents} ->
+ AllEvents = OldEvents ++ NewEvents,
+ case delete_n(AllEvents, length(NewEvents)) of
+ [] ->
+ scroll_first(S);
+ Events ->
+ [FirstE | _] = Events,
+ S3 = replace_events(S2#state{first_event = FirstE}, Events),
+ refresh_main_window(S3)
+ end
+ end.
+
+scroll_changed(S, Expected) ->
+ if
+ Expected =:= 0 ->
+ refresh_main_window(S);
+ Expected < 0 ->
+ %% Up
+ OldPos = event_pos(S),
+ NewPos = lists:max([OldPos + Expected, 0]),
+ case S#state.first_event of
+ #e{key = Key, pos = OldPos} ->
+ jump_up(S, Key, OldPos, NewPos);
+ first ->
+ scroll_first(S);
+ last ->
+ scroll_last(S)
+ end;
+ true ->
+ %% Down
+ OldPos = event_pos(S),
+ NewPos = lists:min([OldPos + Expected, S#state.n_events]),
+ case S#state.first_event of
+ #e{key = Key, pos = OldPos} ->
+ jump_down(S, Key, OldPos, NewPos);
+ first = Key ->
+ jump_down(S, Key, 0, NewPos);
+ last ->
+ scroll_last(S)
+ end
+ end.
+
+jump_up(S, OldKey, OldPos, NewPos) ->
+ Try = NewPos - OldPos,
+ Order = S#state.event_order,
+ Fun = fun(Event, #e{pos = P}) when P >= NewPos ->
+ Key = et_collector:make_key(Order, Event),
+ #e{event = Event, key = Key, pos = P - 1};
+ (_, Acc) ->
+ Acc
+ end,
+ PrevE = et_collector:iterate(S#state.collector_pid,
+ OldKey,
+ Try,
+ Fun,
+ #e{key = OldKey, pos = OldPos}),
+ case collect_more_events(S, PrevE, S#state.events_per_page) of
+ {_, []} ->
+ S;
+ {S2, Events} ->
+ [FirstE | _] = Events,
+ S3 = replace_events(S2#state{first_event = FirstE}, Events),
+ refresh_main_window(S3)
+ end.
+
+jump_down(S, OldKey, OldPos, NewPos) ->
+ Try = NewPos - OldPos,
+ Order = S#state.event_order,
+ Fun = fun(Event, #e{pos = P}) when P < NewPos ->
+ Key = et_collector:make_key(Order, Event),
+ #e{event = Event, key = Key, pos = P + 1};
+ (_, Acc) ->
+ Acc
+ end,
+ PrevE = et_collector:iterate(S#state.collector_pid,
+ OldKey,
+ Try,
+ Fun,
+ #e{key = OldKey, pos = OldPos}),
+ case collect_more_events(S, PrevE, S#state.events_per_page) of
+ {_, []} ->
+ S;
+ {S2, Events} ->
+ [FirstE | _] = Events,
+ S3 = replace_events(S2#state{first_event = FirstE}, Events),
+ refresh_main_window(S3)
+ end.
+
+adjust_expected(Expected, N, EventsPerPage) ->
+ if
+ N < EventsPerPage ->
+ EventsPerPage - N;
+ Expected < EventsPerPage ->
+ Expected;
+ true ->
+ EventsPerPage
+ end.
+
+calc_scroll(S) ->
+ lists:max([S#state.events_per_page div 3, 1]).
+
+revert_main_window(S) ->
+ {S2, Events} = revert(S),
+ S3 = replace_events(S2, Events),
+ refresh_main_window(S3).
+
+revert(S) ->
+ EventsPerPage = S#state.events_per_page,
+ %% Find previous event
+ case collect_more_events(S, S#state.first_event, -1) of
+ {_, []} ->
+ collect_more_events(S, first, EventsPerPage);
+ {S2, [_PrevEvent]} ->
+ collect_more_events(S, S2#state.first_event, EventsPerPage)
+ end.
+
+delete_n(List, 0) ->
+ List;
+delete_n([], _) ->
+ [];
+delete_n([_ | Tail], N) when N > 0 ->
+ delete_n(Tail, N - 1).
+
+pick_n(Rest, 0, Acc) ->
+ {lists:reverse(Acc), Rest};
+pick_n([], _N, Acc) ->
+ {lists:reverse(Acc), []};
+pick_n([Head | Tail], N, Acc) when N > 0 ->
+ pick_n(Tail, N - 1, [Head | Acc]).
+
+close_all(S) ->
+ close_all_others(S),
+ wxFrame:destroy(S#state.frame),
+ opt_unlink(S#state.parent_pid),
+ {stop, shutdown, S}.
+
+close_all_others(S) ->
+ Fun =
+ fun({{subscriber, Pid}, _}) ->
+ if
+ Pid =:= self() ->
+ ignore;
+ true ->
+ unlink(Pid),
+ Pid ! {et, close}
+ end
+ end,
+ All = et_collector:dict_match(S#state.collector_pid,
+ {{subscriber, '_'}, '_'}),
+ lists:foreach(Fun, All),
+ noreply(S).
+
+opt_unlink(Pid) ->
+ if
+ Pid =:= undefined ->
+ ignore;
+ true ->
+ unlink(Pid)
+ end.
+
+%%%----------------------------------------------------------------------
+%%% Clone viewer
+%%%----------------------------------------------------------------------
+
+open_viewer(Scale, FilterName, Actors, S) ->
+ Filters = [{dict_insert, {filter, F#filter.name}, F#filter.function}
+ || F <- S#state.filters],
+ Options =
+ [{parent_pid, S#state.parent_pid},
+ {title, S#state.title},
+ {collector_pid, S#state.collector_pid},
+ {detail_level, S#state.detail_level},
+ {active_filter, FilterName},
+ {event_order, S#state.event_order},
+ {first_event, S#state.first_event},
+ {max_actors, S#state.max_actors},
+ {hide_actions, S#state.hide_actions},
+ {hide_actors, S#state.hide_actors},
+ {actors, Actors},
+ {scale, Scale},
+ {width, S#state.width},
+ {height, S#state.height} | Filters],
+ case start_link(Options) of
+ {ok, _ViewerPid} ->
+ %% unlink(ViewerPid),
+ ok;
+ {error, Reason} ->
+ ok = error_logger:format("~p: Failed to start a new window: ~p~n",
+ [?MODULE, Reason])
+ end.
+
+%%%----------------------------------------------------------------------
+%%% Handle graphics
+%%%----------------------------------------------------------------------
+
+create_main_window(S) ->
+ {NormalFont, BoldFont} = select_fonts(S#state.scale),
+ Name = name_to_string(S#state.active_filter),
+ Title = case S#state.title of
+ undefined -> atom_to_list(?MODULE);
+ Explicit -> name_to_string(Explicit)
+ end,
+ Frame = wxFrame:new(wx:null(),
+ ?wxID_ANY,
+ Title ++ " (filter: " ++ Name ++ ")",
+ [{size, {S#state.width, S#state.height}}]),
+ StatusBar = wxFrame:createStatusBar(Frame),
+
+ Panel = wxPanel:new(Frame, []),
+ Bar = wxMenuBar:new(),
+ wxFrame:setMenuBar(Frame,Bar),
+ MainSizer = wxBoxSizer:new(?wxVERTICAL),
+
+ MenuData = lists:flatten([create_file_menu(Bar),
+ create_viewer_menu(Bar),
+ create_collector_menu(Bar)]),
+ FilterMenu = wxMenu:new([]),
+ S2 = create_filter_menu(S#state{filter_menu = {FilterMenu,[]}},
+ S#state.active_filter,
+ S#state.filters),
+ wxMenuBar:append(Bar, FilterMenu, "Filters and scaling"),
+ create_help_menu(Bar),
+
+ OptSizer = wxBoxSizer:new(?wxHORIZONTAL),
+ CheckSizer = wxBoxSizer:new(?wxVERTICAL),
+ HideActions = wxCheckBox:new(Panel, ?wxID_ANY, "Hide From=To"),
+ wxCheckBox:setValue(HideActions, S#state.hide_actions),
+ HideActors = wxCheckBox:new(Panel, ?wxID_ANY, "Hide (excluded actors)"),
+ wxCheckBox:setValue(HideActors, S#state.hide_actors),
+ CheckBoxData = [{wxCheckBox:getId(HideActions), hide_actions},
+ {wxCheckBox:getId(HideActors), hide_actors}],
+ wxPanel:connect(Panel, command_checkbox_clicked),
+ wxSizer:add(CheckSizer, HideActions),
+ wxSizer:add(CheckSizer,HideActors),
+ wxSizer:add(OptSizer, CheckSizer, [{border, 10}, {flag, ?wxALL}]),
+ DetailLevelBox = wxStaticBoxSizer:new(?wxHORIZONTAL,
+ Panel,
+ [{label, "Detail level"}]),
+ DetailLevel = wxSlider:new(Panel, ?wxID_ANY,
+ S#state.detail_level,
+ ?detail_level_min,
+ ?detail_level_max,
+ [{style, ?wxSL_LABELS},
+ {size, {200,-1}}]),
+ wxStatusBar:setStatusText(StatusBar, where_text(S)),
+ wxFrame:connect(Frame, command_slider_updated),
+ wxSizer:add(DetailLevelBox, DetailLevel),
+ wxSizer:add(OptSizer, DetailLevelBox, [{border, 10}, {flag, ?wxALL}]),
+ wxSizer:addStretchSpacer(OptSizer),
+ wxSizer:add(MainSizer, OptSizer),
+ wxSizer:add(MainSizer,
+ wxStaticLine:new(Panel, [{style, ?wxLI_HORIZONTAL}]),
+ [{flag, ?wxEXPAND}]),
+
+ CanvasSizer = wxBoxSizer:new(?wxHORIZONTAL),
+ Canvas = wxPanel:new(Panel, []),
+ {CanvasW,CanvasH} = wxPanel:getSize(Canvas),
+ ScrollBar = wxScrollBar:new(Panel, ?wxID_ANY, [{style, ?wxSB_VERTICAL}]),
+
+ wxSizer:add(CanvasSizer, Canvas, [{flag, ?wxEXPAND}, {proportion, 1}]),
+ wxSizer:add(CanvasSizer, ScrollBar, [{flag, ?wxEXPAND}]),
+ wxSizer:add(MainSizer, CanvasSizer, [{flag, ?wxEXPAND}, {proportion, 1}]),
+ wxPanel:connect(Canvas, left_down),
+ wxPanel:connect(Canvas, left_up),
+ wxPanel:connect(Canvas, right_up),
+ wxPanel:connect(Canvas, size),
+ wxPanel:connect(Canvas, paint),
+ wxPanel:connect(Canvas, key_down),
+ wxPanel:connect(Canvas, kill_focus),
+ wxPanel:connect(Canvas, enter_window, [{skip, true}]),
+ wxFrame:connect(Frame, command_menu_selected),
+ wxFrame:connect(Frame, close_window),
+ wxFrame:connect(ScrollBar, scroll_changed),
+ wxPanel:setSize(Panel, {S#state.width, S#state.height}),
+ wxPanel:setSizer(Panel, MainSizer),
+ wxFrame:show(Frame),
+ wxPanel:setFocus(Canvas),
+ wxPanel:connect(Canvas, mousewheel),
+
+ S3 = S2#state{title = Title,
+ frame = Frame, packer = Panel,
+ normal_font = NormalFont, bold_font = BoldFont,
+ canvas_width = CanvasW, canvas_height = CanvasH,
+ canvas = Canvas,
+ canvas_sizer = CanvasSizer,
+ scroll_bar = ScrollBar,
+ y_pos = ?initial_y * S#state.scale,
+ pen = wxPen:new(),
+ brush = wxBrush:new(),
+ print_d = undefined,
+ print_psdd = undefined,
+ menu_data = MenuData,
+ checkbox_data = CheckBoxData,
+ hide_actions_box = HideActions,
+ hide_actors_box = HideActors,
+ status_bar = StatusBar},
+ DC = wxClientDC:new(Canvas),
+ S4 = draw_all_actors(S3, DC),
+ wxClientDC:destroy(DC),
+ S4.
+
+where_text(#state{n_events = N} = S) ->
+ Pos = event_pos(S),
+ lists:concat([Pos, " (", N, ")"]).
+
+event_pos(#state{first_event = E, events = Events, n_events = Last}) ->
+ case E of
+ #e{pos = Pos} ->
+ Pos;
+ first ->
+ case queue_length(Events) of
+ 0 ->
+ 0;
+ _ ->
+ 1
+ end;
+ last ->
+ Last
+ end.
+
+init_printers(#state{print_d = undefined, print_psdd = undefined} = S) ->
+ PD = wxPrintData:new(),
+ PSDD = wxPageSetupDialogData:new(PD),
+ wxPrintData:setPaperId(PD, ?wxPAPER_A4),
+ wxPageSetupDialogData:setMarginTopLeft(PSDD, {15,15}),
+ wxPageSetupDialogData:setMarginBottomRight(PSDD, {15,15}),
+ S#state{print_d = PD, print_psdd = PSDD};
+init_printers(#state{} = S) ->
+ S.
+
+select_fonts(Scale) when is_integer(Scale) ->
+ Size =
+ case Scale of
+ 1 -> 5;
+ 2 -> 10;
+ 3 -> 14;
+ 4 -> 20;
+ S -> S*6
+ end,
+ {wxFont:new(Size, ?wxFONTFAMILY_TELETYPE, ?wxNORMAL, ?wxNORMAL,[]),
+ wxFont:new(Size, ?wxFONTFAMILY_TELETYPE, ?wxNORMAL, ?wxBOLD,[])}.
+
+get_value(Key, Pos, TupleList) when is_list(TupleList)->
+ case lists:keysearch(Key, 1, TupleList) of
+ {value, Tuple} when is_tuple(Tuple)->
+ element(Pos, Tuple);
+ false ->
+ false
+ end.
+
+menuitem(Menu, Id, Text, UserData) ->
+ Item = wxMenu:append(Menu, Id, Text),
+ {wxMenuItem:getId(Item), Item, UserData}.
+
+create_file_menu(Bar) ->
+ Menu = wxMenu:new([]),
+ Data = [
+ menuitem(Menu, ?wxID_ANY, "Clear all events in the Collector", clear_all),
+ menuitem(Menu, ?wxID_ANY, "Load events to the Collector from file", load_all),
+ menuitem(Menu, ?wxID_ANY, "Save all events in the Collector to file", save_all),
+
+ menuitem(Menu, ?wxID_PRINT_SETUP, "Print setup", print_setup),
+ menuitem(Menu, ?wxID_ANY, "Print current page", print_one_page),
+ menuitem(Menu, ?wxID_PRINT, "Print all pages", print_all_pages),
+
+ menuitem(Menu, ?wxID_ANY, "Close this Viewer", close),
+ menuitem(Menu, ?wxID_ANY, "Close all other Viewers, but this (c)", close_all_others),
+ menuitem(Menu, ?wxID_ANY, "Close all Viewers and the Collector) (C) ", close_all)
+ ],
+ wxMenu:insertSeparator(Menu, 3),
+ wxMenu:insertSeparator(Menu, 7),
+ wxMenuBar:append(Bar, Menu, "File"),
+ Data.
+
+create_viewer_menu(Bar) ->
+ Menu = wxMenu:new([]),
+ wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Scroll this Viewer"),
+ [{enable, false}]),
+ wxMenu:appendSeparator(Menu),
+ D1 = [
+ menuitem(Menu, ?wxID_ANY, "First (f)", first),
+ menuitem(Menu, ?wxID_ANY, "Last (l)", last),
+ menuitem(Menu, ?wxID_ANY, "Prev (p)", prev),
+ menuitem(Menu, ?wxID_ANY, "Next (n)", next),
+ menuitem(Menu, ?wxID_ANY, "Refresh (r)", refresh)
+ ],
+ wxMenu:appendSeparator(Menu),
+ D2 = [
+ menuitem(Menu, ?wxID_ANY, "Up 5 (Up)", up),
+ menuitem(Menu, ?wxID_ANY, "Down 5 (Down)", down)
+ ],
+ wxMenu:appendSeparator(Menu),
+ wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Actor visibility in this Viewer"),
+ [{enable, false}]),
+ wxMenu:appendSeparator(Menu),
+ D3 = [menuitem(Menu, ?wxID_ANY, "Display all actors (a)", display_all)],
+ wxMenuBar:append(Bar, Menu, "Viewer"),
+ [D1,D2,D3].
+
+create_collector_menu(Bar) ->
+ Menu = wxMenu:new([]),
+ wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Scroll all Viewers"),
+ [{enable, false}]),
+ wxMenu:appendSeparator(Menu),
+ Data = [
+ menuitem(Menu, ?wxID_ANY, "First (F)", first_all),
+ menuitem(Menu, ?wxID_ANY, "Last (L)", last_all),
+ menuitem(Menu, ?wxID_ANY, "Prev (P)", prev_all),
+ menuitem(Menu, ?wxID_ANY, "Next (N)", next_all),
+ menuitem(Menu, ?wxID_ANY, "Refresh (R)", refresh_all)
+ ],
+ wxMenuBar:append(Bar, Menu, "Collector"),
+ Data.
+
+create_filter_menu(S=#state{filter_menu = {Menu,Data}}, ActiveFilterName, Filters) ->
+ wx:foreach(fun({_,I,_}) ->
+ wxMenu:delete(Menu,I);
+ (I) ->
+ try
+ wxMenu:delete(Menu,I)
+ catch
+ _:Reason ->
+ io:format("Could not delete item: ~p, because ~p.\n", [I, Reason])
+ end
+ end,
+ Data),
+ Item = fun(F, {N, Acc}) when F#filter.name =:= all ->
+ Label = lists:concat([pad_string(F#filter.name, 20), "(0)"]),
+ {N+1, [menuitem(Menu, ?wxID_ANY, Label, {data, F})|Acc]};
+ (F, {N, Acc}) ->
+ Label = lists:concat([pad_string(F#filter.name, 20), "(", N, ")"]),
+ {N+1, [menuitem(Menu, ?wxID_ANY, Label, {data, F})|Acc]}
+ end,
+ D1 = [I1 = wxMenu:append(Menu, ?wxID_ANY, "Same Filter New Scale"),
+ wxMenu:appendSeparator(Menu)],
+ wxMenuItem:enable(I1, [{enable,false}]),
+ {value, Filter} = lists:keysearch(ActiveFilterName, #filter.name, Filters),
+ Same = lists:concat([pad_string(ActiveFilterName, 20), "(=) same scale"]),
+ Larger = lists:concat([pad_string(ActiveFilterName, 20), "(+) bigger scale"]),
+ Smaller = lists:concat([pad_string(ActiveFilterName, 20), "(-) smaller scale"]),
+ D2 = [
+ menuitem(Menu, ?wxID_ANY, Same, {data, Filter, 0}),
+ menuitem(Menu, ?wxID_ANY, Smaller, {data, Filter, -1}),
+ menuitem(Menu, ?wxID_ANY, Larger, {data, Filter, 1}),
+ wxMenu:appendSeparator(Menu),
+ I2 = wxMenu:append(Menu, ?wxID_ANY, "New Filter Same Scale"),
+ wxMenu:appendSeparator(Menu)
+ ],
+ wxMenuItem:enable(I2, [{enable,false}]),
+ {_,D3} = lists:foldl(Item, {1,[]}, Filters),
+ S#state{filter_menu = {Menu, lists:flatten([D1,D2,D3])}}.
+
+create_help_menu(Bar) ->
+ Menu = wxMenu:new([]),
+ menuitem(Menu, ?wxID_HELP, "Info", help),
+ wxMenuBar:append(Bar, Menu, "Help").
+
+clear_canvas(S) ->
+ DC = wxClientDC:new(S#state.canvas),
+ wxDC:clear(DC),
+ {CanvasW, CanvasH} = wxPanel:getSize(S#state.canvas),
+ wxSizer:recalcSizes(S#state.canvas_sizer),
+ S2 = S#state{refresh_needed = false,
+ y_pos = ?initial_y * S#state.scale,
+ canvas_width = CanvasW,
+ canvas_height = CanvasH,
+ events = queue_new()},
+ S3 = draw_all_actors(S2, DC),
+ wxClientDC:destroy(DC),
+ S3.
+
+replace_events(S, []) ->
+ S#state{first_event = first,
+ last_event = first,
+ events = queue_new()};
+replace_events(S, Events) ->
+ Queue = lists:foldl(fun(E, Q) -> queue_in(E, Q) end, queue_new(), Events),
+ S#state{events = Queue}.
+
+refresh_main_window(S) ->
+ wx:batch(fun() ->
+ S2 = clear_canvas(S),
+ S3 = update_scroll_bar(S2),
+ display_events(S3, queue_to_list(S#state.events))
+ end).
+
+display_events(S, []) ->
+ S;
+display_events(S, Events) ->
+ DC = wxClientDC:new(S#state.canvas),
+ S2 = lists:foldl(fun(E, State) -> display_event(E, State, DC) end, S, Events),
+ wxClientDC:destroy(DC),
+ S2.
+
+collect_more_events(S, PrevKey = first, Try) ->
+ PrevE = #e{event = undefined, key = PrevKey, pos = 0},
+ S2 = S#state{first_event = PrevE, last_event = PrevE},
+ do_collect_more_events(S2, Try, PrevE, []);
+collect_more_events(S, PrevKey = last, Try) ->
+ PrevE = #e{event = undefined, key = PrevKey, pos = S#state.n_events},
+ S2 = S#state{first_event = PrevE, last_event = PrevE},
+ do_collect_more_events(S2, Try, PrevE, []);
+collect_more_events(S, #e{} = PrevE, Try) ->
+ do_collect_more_events(S, Try, PrevE, []).
+
+do_collect_more_events(#state{collector_pid = Collector,
+ event_order = Order,
+ active_filter = Active,
+ filters = Filters} = S,
+ Try,
+ PrevE,
+ Acc) ->
+ Incr =
+ if
+ Try < 0 -> -1;
+ true -> 1
+ end,
+ PrevKey = PrevE#e.key,
+ {value, #filter{function = FilterFun}} =
+ lists:keysearch(Active, #filter.name, Filters),
+ {_S, _Incr, _Order, _Active, _FilterFun, LastE, NewEvents} =
+ et_collector:iterate(Collector,
+ PrevKey,
+ Try,
+ fun collect_event/2,
+ {S, Incr, Order, Active, FilterFun, PrevE, []}),
+ Expected = abs(Try),
+ Actual = length(NewEvents),
+ Missing = Expected - Actual,
+ {S2, Acc2, Try2} =
+ if
+ Try < 0 ->
+ {S#state{first_event = LastE}, NewEvents ++ Acc, -Missing};
+ true ->
+ TmpEvents = lists:reverse(NewEvents),
+ {S#state{last_event = LastE}, Acc ++ TmpEvents, Missing}
+ end,
+ if
+ Missing =/= 0, PrevKey =/= LastE#e.key ->
+ do_collect_more_events(S2, Try2, LastE, Acc2);
+ true ->
+ {S2, Acc2}
+ end.
+
+collect_event(Event, {S, Incr, Order, Active, FilterFun, #e{pos = PrevPos}, Events}) ->
+ Key = et_collector:make_key(Order, Event),
+ E = #e{event = Event, key = Key, pos = PrevPos + Incr},
+ {LastE, Events2} =
+ case catch FilterFun(Event) of
+ true ->
+ case is_hidden(Event#event.from, Event#event.to, S) of
+ true ->
+ {E, Events};
+ false ->
+ {E, [E | Events]}
+ end;
+ {true, Event2} ->
+ Key2 = et_collector:make_key(Order, Event2),
+ E2 = E#e{event = Event2, key = Key2},
+ case is_hidden(Event2#event.from, Event2#event.to, S) of
+ true ->
+ {E2, Events};
+ false ->
+ {E2, [E2 | Events]}
+ end;
+ false ->
+ {E, Events};
+ Bad ->
+ Contents = {bad_filter, S#state.active_filter, Bad, Event},
+ Event2 = Event#event{contents = Contents,
+ from = bad_filter,
+ to = bad_filter},
+ E2 = E#e{event = Event2},
+ {E2, [E2 | Events]}
+ end,
+ {S, Incr, Order, Active, FilterFun, LastE, Events2}.
+
+display_event(#e{event = Event} = E, S, DC)
+ when Event#event.detail_level =< S#state.detail_level ->
+ {FromRefresh, From} = ensure_actor(Event#event.from, S, DC),
+ {FromName, FromPos, S2} = From,
+ {ToRefresh, To} = ensure_actor(Event#event.to, S2, DC),
+ {ToName, ToPos, S3} = To,
+ S4 =
+ if
+ FromRefresh =/= false, ToRefresh =/= false ->
+ S3#state{refresh_needed = true,
+ events = queue_in(E, S3#state.events)};
+ FromName =:= ToName ->
+ case S#state.hide_actions of
+ true ->
+ S3;
+ false ->
+ Label = name_to_string(Event#event.label),
+ draw_named_arrow(Label, FromName, ToName, FromPos, ToPos, E, S3, DC)
+ end;
+ true ->
+ Label = name_to_string(Event#event.label),
+ draw_named_arrow(Label, FromName, ToName, FromPos, ToPos, E, S3, DC)
+ end,
+ S4;
+display_event(#e{}, S, _DC) ->
+ S.
+
+draw_named_arrow(Label, FromName, ToName, FromPos, ToPos, E, S, DC) ->
+ case S#state.y_pos + (?incr_y * S#state.scale) of
+ _ when S#state.hide_actors =:= true, FromName =:= ?unknown ->
+ S;
+ _ when S#state.hide_actors =:= true, ToName =:= ?unknown ->
+ S;
+ Y when Y > S#state.canvas_height ->
+ S#state{refresh_needed = true,
+ events = queue_in(E, S#state.events)};
+ Y ->
+ S2 = S#state{y_pos = Y, events = queue_in(E, S#state.events)},
+ S3 = draw_arrow(FromPos, ToPos, S2, DC),
+ draw_label(Label, FromName, ToName, FromPos, ToPos, S3, DC)
+ end.
+
+draw_arrow(Pos, Pos, S, _DC) ->
+ S;
+draw_arrow(FromPos, ToPos, S, DC) ->
+ Y = S#state.y_pos,
+ wxPen:setColour(S#state.pen, ?wxBLACK),
+ wxDC:setPen(DC, S#state.pen),
+ wxDC:drawLine(DC, {FromPos , Y}, {ToPos, Y}),
+
+ %% Draw arrow head
+ Radians = calc_angle({FromPos, Y}, {ToPos, Y}),
+ Len = 5,
+ Radians2 = Radians + 3.665191429188092,
+ Radians3 = Radians + 2.617993877991494,
+ {X3, Y3} = calc_point({ToPos, Y}, Len, Radians2),
+ {X4, Y4} = calc_point({ToPos, Y}, Len, Radians3),
+ Points = [{round(ToPos), round(Y)},
+ {round(X3), round(Y3)},
+ {round(X4), round(Y4)}],
+ wxBrush:setColour(S#state.brush, ?wxBLACK),
+ wxDC:setBrush(DC, S#state.brush),
+ wxDC:drawPolygon(DC, Points, []),
+ S.
+
+ %% Calclulate angle in radians for a line between two points
+calc_angle({X1, Y1}, {X2, Y2}) ->
+ math:atan2((Y2 - Y1), (X2 - X1)).
+
+ %% Calc new point at a given distance and angle from another point
+calc_point({X, Y}, Length, Radians) ->
+ X2 = round(X + Length * math:cos(Radians)),
+ Y2 = round(Y + Length * math:sin(Radians)),
+ {X2, Y2}.
+
+draw_label(Label, FromName, ToName, FromPos, ToPos, S, DC) ->
+ Color =
+ if
+ FromName =:= ?unknown,
+ ToName =:= ?unknown -> {2, 71, 254};% blue
+ FromName =:= ?unknown -> {255,126,0}; % orange
+ ToName =:= ?unknown -> {255,126,0}; % orange
+ FromPos =:= ToPos -> {2, 71, 254};% blue
+ true -> {227,38, 54} % red
+ end,
+ Scale = S#state.scale,
+ X = lists:min([FromPos, ToPos]) + (6 * Scale),
+ Y = S#state.y_pos,
+ write_text(Label, X, Y, Color, S#state.normal_font, S, DC),
+ S.
+
+draw_all_actors(S, DC) ->
+ Scale = S#state.scale,
+ Fun = fun(A, X) ->
+ case draw_actor(A, X, S, DC) of
+ true ->
+ X + (?incr_x * Scale);
+ false ->
+ X
+ end
+ end,
+ lists:foldl(Fun, ?initial_x * Scale, S#state.actors),
+ S.
+
+%% Returns: {NeedsRefreshBool, {ActorPos, NewsS, NewActors}}
+ensure_actor(Name, S, DC) ->
+ do_ensure_actor(Name, S, S#state.actors, 0, DC).
+
+do_ensure_actor(Name, S, [H | _], N, _DC) when H#actor.name =:= Name ->
+ Pos = (?initial_x + (N * ?incr_x)) * S#state.scale,
+ {false, {Name, Pos, S}};
+do_ensure_actor(Name, S, [H | T], N, DC) ->
+ if
+ S#state.hide_actors, H#actor.exclude ->
+ do_ensure_actor(Name, S, T, N, DC);
+ true ->
+ do_ensure_actor(Name, S, T, N + 1, DC)
+ end;
+do_ensure_actor(Name, S, [], N, DC) ->
+ %% A brand new actor, let's see if it does fit
+ Pos = (?initial_x + (N * ?incr_x)) * S#state.scale,
+ MaxActors = S#state.max_actors,
+ if
+ is_integer(MaxActors), N > MaxActors ->
+ %% Failed on max_actors limit, put into unknown
+ %% Assume that unknown always is in actor list
+ ensure_actor(?unknown, S, DC);
+ Pos > (S#state.canvas_width - ((?initial_x - 15) * S#state.scale)) ->
+ %% New actor does not fit in canvas, refresh needed
+ A = create_actor(Name),
+ draw_actor(A, Pos, S, DC),
+ {true, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}};
+ true ->
+ %% New actor fits in canvas. Draw the new actor.
+ A = create_actor(Name),
+ draw_actor(A, Pos, S, DC),
+ {false, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}}
+ end.
+
+draw_actor(A, LineX, S, DC) ->
+ if
+ S#state.hide_actors, A#actor.exclude ->
+ false;
+ true ->
+ Scale = S#state.scale,
+ TextX = LineX - (5 * Scale),
+ {TextY, LineTopY, LineBotY} = calc_y(S),
+ Color =
+ case A#actor.name of
+ ?unknown -> {255,126,0};% orange
+ _ -> {227,38,54} % red
+ end,
+ {String, Font} =
+ if
+ S#state.context =:= display, A#actor.exclude ->
+ {"(" ++ A#actor.string ++ ")", S#state.normal_font};
+ S#state.context =:= display, A#actor.include ->
+ {"[" ++ A#actor.string ++ "]", S#state.bold_font};
+ true ->
+ {A#actor.string, S#state.normal_font}
+ end,
+ write_text(String, TextX, TextY, Color, Font, S, DC),
+ wxPen:setColour(S#state.pen, Color),
+ wxDC:setPen(DC, S#state.pen),
+ wxDC:drawLines(DC, [{LineX, LineTopY}, {LineX, LineBotY}]),
+ true
+ end.
+
+calc_y(#state{canvas_height = Height, scale = Scale}) ->
+ TextY = ?initial_y * Scale,
+ LineTopY = round(TextY + ((?incr_y / 2) * Scale)),
+ LineBotY = Height,
+ %% LineBotY = round(Height - ((?incr_y / 2) * Scale)),
+ {TextY, LineTopY, LineBotY}.
+
+display_all(S) ->
+ Actors = S#state.actors,
+ Actors2 = [A#actor{include = false, exclude = false} || A <- Actors],
+ S2 = S#state{actors = Actors2,
+ display_all = true,
+ hide_actions = false,
+ hide_actors = false},
+ wxCheckBox:setValue(S2#state.hide_actions_box, S2#state.hide_actions),
+ wxCheckBox:setValue(S2#state.hide_actors_box, S2#state.hide_actors),
+ revert_main_window(S2).
+
+is_hidden(A, S) ->
+ case S#state.display_all of
+ true ->
+ A#actor.exclude;
+ false ->
+ A#actor.exclude orelse not A#actor.include
+ end.
+
+is_hidden(From, To, S) ->
+ Actors = S#state.actors,
+ DisplayAll = S#state.display_all,
+ FromMatch = lists:keysearch(From, #actor.name, Actors),
+ ToMatch = lists:keysearch(To, #actor.name, Actors),
+ case {FromMatch, ToMatch} of
+ {false, false} ->
+ not DisplayAll;
+ {false, {value, T}} ->
+ is_hidden(T, S);
+ {{value, F}, false} ->
+ is_hidden(F, S);
+ {{value, F}, {value, T}} when DisplayAll ->
+ is_hidden(F, S) orelse is_hidden(T, S);
+ {{value, F}, {value, T}} when F#actor.include; T#actor.include ->
+ F#actor.exclude orelse T#actor.exclude;
+ {{value, _F}, {value, _T}}->
+ true
+ end.
+
+move_actor(From, To, Actors, S) ->
+ Pos = #actor.name,
+ ToName = To#actor.name,
+ FromName = From#actor.name,
+ ToIx = actor_index(ToName, Pos, Actors),
+ FromIx = actor_index(FromName, Pos, Actors),
+ if
+ FromIx =/= 0, ToIx =/= 0, ToIx > FromIx ->
+ Actors2 = lists:keydelete(FromName, Pos, Actors),
+ Actors3 = insert_actor_after(From, To, Actors2),
+ S2 = S#state{actors = Actors3},
+ refresh_main_window(S2);
+ FromIx =/= 0, ToIx =/= 0 ->
+ Actors2 = lists:keydelete(FromName, Pos, Actors),
+ Actors3 = insert_actor_before(From, To, Actors2),
+ S2 = S#state{actors = Actors3},
+ refresh_main_window(S2);
+ true ->
+ %% Ignore
+ S
+ end.
+
+insert_actor_after(From, To, [H | T]) ->
+ case To#actor.name =:= H#actor.name of
+ true -> [H, From | T];
+ false -> [H | insert_actor_after(From, To, T)]
+ end;
+insert_actor_after(_From, _To, []) ->
+ [].
+
+insert_actor_before(From, To, [H | T]) ->
+ case To#actor.name =:= H#actor.name of
+ true -> [From, H | T];
+ false -> [H | insert_actor_before(From, To, T)]
+ end;
+insert_actor_before(_From, _To, []) ->
+ [].
+
+actor_index(_Key, _Pos, []) ->
+ 0;
+actor_index(Key, Pos, [H | T]) ->
+ case Key =:= element(Pos, H) of
+ false -> actor_index(Key, Pos, T) + 1;
+ true -> 1
+ end.
+
+y_to_n(Y, S) ->
+ Y2 = ((Y / S#state.scale) - ?initial_y + (?incr_y / 2)),
+ N = round(Y2 / ?incr_y - 0.2),
+ MaxN = queue_length(S#state.events),
+ if
+ N =< 0 -> actor;
+ N > MaxN -> actor;
+ true -> {event, N}
+ end.
+
+x_to_n(X, S) ->
+ Scale = S#state.scale,
+ Len = length(S#state.actors),
+ X2 = X - (?initial_x * Scale),
+ N = X2 / (?incr_x * Scale),
+ N2 = trunc(N + 1.5),
+ if
+ N2 > Len -> Len;
+ N2 < 1 -> 1;
+ true -> N2
+ end.
+
+write_text(Text, X, Y, Color, Font, S, DC) ->
+ wxDC:setFont(DC, Font),
+ wxDC:setTextForeground(DC, Color),
+ wxDC:drawText(DC, Text, {X, round(Y - (?incr_y * S#state.scale / 2))-3}).
+
+do_open_event(S, N) ->
+ Events = queue_to_list(S#state.events),
+ S2 = S#state{events = list_to_queue(Events)},
+ case catch lists:nth(N, Events) of
+ {'EXIT', _} ->
+ {error, {no_such_event, N}};
+ #e{key = Key} ->
+ Pid = S#state.collector_pid,
+ Fun = fun create_contents_window/2,
+ Prev = et_collector:iterate(Pid, Key, -1),
+ {S2, Res} =
+ if
+ Prev =:= Key ->
+ et_collector:iterate(Pid, first, 1, Fun, {S2, []});
+ true ->
+ et_collector:iterate(Pid, Prev, 1, Fun, {S2, []})
+ end,
+ case Res of
+ [] ->
+ {error, no_contents_viewer_started};
+ [Single] ->
+ Single;
+ Multi ->
+ {error, {too_many, Multi}}
+ end
+ end.
+
+create_contents_window(Event, {S, Res}) ->
+ Options = [{viewer_pid, self()},
+ {event, Event},
+ {event_order, S#state.event_order},
+ {active_filter, S#state.active_filter},
+ {wx_debug, S#state.wx_debug}
+ | S#state.filters],
+ case catch et_wx_contents_viewer:start_link(Options) of
+ {ok, Pid} ->
+ {S, [{ok, Pid} | Res]};
+ {error, Reason} ->
+ ok = error_logger:format("~p(~p): create_contents_window(~p) ->~n ~p~n",
+ [?MODULE, self(), Options, Reason]),
+ {S, [{error, Reason} | Res]};
+ Stuff ->
+ {S, [{error, {stuff, Stuff}} | Res]}
+ end.
+
+print_setup(S) ->
+ S2 = #state{print_psdd = PSDD0, print_d = PD0} = init_printers(S),
+
+ wxPageSetupDialogData:setPrintData(PSDD0, PD0),
+ PSD = wxPageSetupDialog:new(S#state.frame, [{data,PSDD0}]),
+ wxPageSetupDialog:showModal(PSD),
+
+ PSDD1 = wxPageSetupDialog:getPageSetupData(PSD),
+ PD1 = wxPageSetupDialogData:getPrintData(PSDD1),
+
+ %% Create new objects using copy constructor
+ PD = wxPrintData:new(PD1),
+ PsDD = wxPageSetupDialogData:new(PSDD1),
+ wxPageSetupDialog:destroy(PSD),
+ wxPageSetupDialogData:destroy(PSDD0),
+ wxPrintData:destroy(PD0),
+ S2#state{print_psdd=PsDD, print_d=PD}.
+
+print(#state{print_d = undefined, print_psdd = undefined} = S, Scope) ->
+ S2 = print_setup(S),
+ print(S2, Scope);
+print(#state{print_psdd = PSDD, print_d = PD} = S, Scope) ->
+ PDD = wxPrintDialogData:new(PD),
+ wxPrintDialogData:enablePrintToFile(PDD, true),
+ wxPrintDialogData:enablePageNumbers(PDD, true),
+ wxPrintDialogData:enableSelection(PDD, true),
+ Tab = ets:new(?MODULE, [public]),
+ GetPageInfo =
+ fun(This) ->
+ {_, _, PW, PH} = wxPrintout:getPaperRectPixels(This),
+ PrinterS = S#state{context = printer,
+ canvas_width = PW,
+ canvas_height = PH},
+ EventsPerPage = events_per_page(PrinterS, PH),
+ PagedEvents = paged_events(PrinterS, Scope, EventsPerPage),
+ [ets:insert(Tab, PE) || PE <- PagedEvents],
+ ets:insert(Tab, PrinterS),
+ NumPages = length(PagedEvents),
+ {1, NumPages, 1, NumPages}
+ end,
+ HasPage =
+ fun(_This, Page) ->
+ Size = ets:info(Tab, size),
+ NumPages = Size - 1,
+ (Page >= 1) andalso (Page =< NumPages)
+ end,
+ OnPrintPage =
+ fun(This, Page) ->
+ wxPrintout:mapScreenSizeToPageMargins(This, PSDD),
+ [PrinterS] = ets:lookup(Tab, state),
+ Events = ets:lookup_element(Tab, Page, 2),
+ DC = wxPrintout:getDC(This),
+ PrinterS2 = draw_all_actors(PrinterS, DC),
+ PrinterS3 = PrinterS2#state{y_pos = ?initial_y * PrinterS2#state.scale},
+ lists:foldl(fun(E, State) -> display_event(E, State, DC) end,
+ PrinterS3,
+ Events),
+ true
+ end,
+ Printout1 = wxPrintout:new("Print", OnPrintPage,
+ [{getPageInfo, GetPageInfo}, {hasPage, HasPage}]),
+ Printout2 = wxPrintout:new("Print", OnPrintPage,
+ [{getPageInfo, GetPageInfo}, {hasPage, HasPage}]),
+ Preview = wxPrintPreview:new(Printout1, [{printoutForPrinting, Printout2}, {data,PDD}]),
+ case wxPrintPreview:isOk(Preview) of
+ true ->
+ PF = wxPreviewFrame:new(Preview, S#state.frame, []),
+ wxPreviewFrame:centre(PF, [{dir, ?wxBOTH}]),
+ wxPreviewFrame:initialize(PF),
+ wxPreviewFrame:centre(PF),
+ wxPreviewFrame:show(PF),
+ OnClose = fun(_Wx, EventRef) -> ets:delete(Tab), wxEvent:skip(EventRef) end,
+ wxPreviewFrame:connect(PF, close_window, [{callback, OnClose}]);
+ false ->
+ io:format("Could not create preview window.\n"
+ "Perhaps your current printer is not set correctly?~n", []),
+ wxPrintPreview:destroy(Preview),
+ ets:delete(Tab)
+ end,
+ S.
+
+paged_events(S, Scope, EventsPerPage) ->
+ {_, Events} =
+ case Scope of
+ print_one_page ->
+ revert(S#state{events_per_page = EventsPerPage});
+ print_all_pages ->
+ collect_more_events(S, first, S#state.n_events)
+ end,
+ split_list(Events, EventsPerPage).
+
+split_list(List, N) when is_integer(N), N > 0 ->
+ do_split_list(List, N, 1, []).
+
+do_split_list([], _N, _Page, Acc) ->
+ lists:reverse(Acc);
+do_split_list(List, N, Page, Acc) ->
+ {Items, Rest} = pick_n(List, N, []),
+ do_split_list(Rest, N, Page + 1, [{Page, Items} | Acc]).
+
+get_latest_resize(#wx{obj = ObjRef, event = #wxSize{}} = Wx) ->
+ receive
+ #wx{obj = ObjRef, event = #wxSize{}} = Wx2 ->
+ get_latest_resize(Wx2)
+ after 100 ->
+ Wx
+ end.
+
+get_latest_scroll(#wx{obj = ObjRef, event = #wxScroll{type = scroll_changed}} = Wx) ->
+ receive
+ #wx{obj = ObjRef, event = #wxScroll{type = scroll_changed}} = Wx2 ->
+ get_latest_scroll(Wx2)
+ after 100 ->
+ Wx
+ end.
+
+update_scroll_bar(#state{scroll_bar = ScrollBar,
+ status_bar = StatusBar,
+ events_per_page = EventsPerPage,
+ n_events = N} = S) ->
+ Opts = [{refresh, true}],
+ {_, LineTopY, LineBotY} = calc_y(S),
+ Range = LineBotY - LineTopY,
+ EventPos =
+ case event_pos(S) of
+ 1 -> 0;
+ P -> P
+ end,
+ if
+ N =/= 0,
+ EventsPerPage =/= 0 ->
+ PixelsPerEvent = Range / EventsPerPage,
+ Share = EventsPerPage / N,
+ wxScrollBar:setScrollbar(ScrollBar,
+ trunc(EventPos * Share * PixelsPerEvent),
+ round(Share * Range),
+ Range,
+ round(Share * Range),
+ Opts);
+ true ->
+ wxScrollBar:setScrollbar(ScrollBar,
+ 0,
+ Range,
+ Range,
+ Range,
+ Opts)
+ end,
+ wxStatusBar:setStatusText(StatusBar, where_text(S)),
+ S.
+
+events_per_page(S, PageHeight) ->
+ EventsPerPage = ((PageHeight - (?initial_y * S#state.scale)) div (?incr_y * S#state.scale)),
+ lists:max([1, EventsPerPage]).
+
+select_file(Frame, Message, DefaultFile, Style) ->
+ Dialog = wxFileDialog:new(Frame,
+ [{message, Message},
+ {defaultDir, filename:dirname(DefaultFile)},
+ {defaultFile, filename:basename(DefaultFile)},
+ {style, Style}]),
+ Choice =
+ case wxMessageDialog:showModal(Dialog) of
+ ?wxID_CANCEL -> cancel;
+ ?wxID_OK -> {ok, wxFileDialog:getPath(Dialog)}
+ end,
+ wxFileDialog:destroy(Dialog),
+ Choice.
+
+%%%----------------------------------------------------------------------
+%%% String padding of actors
+%%%----------------------------------------------------------------------
+
+opt_create_actor(Name, Tag, S) ->
+ Actors = S#state.actors,
+ New =
+ case lists:keysearch(Name, #actor.name, Actors) of
+ {value, Old} -> Old;
+ false -> create_actor(Name)
+ end,
+ case Tag of
+ include -> New#actor{include = true};
+ exclude -> New#actor{exclude = true}
+ end.
+
+create_actor(Name) ->
+ String = name_to_string(Name),
+ %% PaddedString = pad_string(String, 8),
+ #actor{name = Name, string = String, include = false, exclude = false}.
+
+name_to_string(Name) ->
+ case catch io_lib:format("~s", [Name]) of
+ {'EXIT', _} -> lists:flatten(io_lib:format("~w", [Name]));
+ GoodString -> lists:flatten(GoodString)
+ end.
+
+pad_string(Atom, MinLen) when is_atom(Atom) ->
+ pad_string(atom_to_list(Atom), MinLen);
+pad_string(String, MinLen) when is_integer(MinLen), MinLen >= 0 ->
+ Len = length(String),
+ case Len >= MinLen of
+ true ->
+ String;
+ false ->
+ String ++ lists:duplicate(MinLen - Len, $ )
+ end.
+
+%%%----------------------------------------------------------------------
+%%% Queue management
+%%%----------------------------------------------------------------------
+
+queue_new() ->
+ {0, [], []}.
+
+queue_in(X, {Size, In, Out}) ->
+ {Size + 1, [X | In], Out}.
+
+%% queue_out(Q) ->
+%% case Q of
+%% {Size, In, [H | Out]} -> {{value, H}, {Size - 1, In, Out}};
+%% {Size, [], []} -> {empty, {Size, [], []}};
+%% {Size, In, _} -> queue_out({Size, [], lists:reverse(In)})
+%% end.
+
+queue_to_list({_Size, [], Out}) ->
+ Out;
+queue_to_list({_Size, In, Out}) ->
+ Out ++ lists:reverse(In).
+
+queue_length({Size, _In, _Out}) ->
+ Size.
+
+list_to_queue(List) when is_list(List) ->
+ {length(List), [], List}.
diff --git a/lib/et/src/modules.mk b/lib/et/src/modules.mk
index 8e9dd1a386..8d6c0902fb 100644
--- a/lib/et/src/modules.mk
+++ b/lib/et/src/modules.mk
@@ -1,27 +1,30 @@
#-*-makefile-*- ; force emacs to enter makefile-mode
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2001-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2001-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
MODULES = \
et \
et_collector \
- et_contents_viewer \
+ et_gs_contents_viewer \
+ et_gs_viewer \
et_selector \
- et_viewer
+ et_viewer \
+ et_wx_contents_viewer \
+ et_wx_viewer
HRL_FILES = \
../include/et.hrl
diff --git a/lib/et/doc/src/make.dep b/lib/et/test/Makefile
index fae2cd02b3..9aedf96ce9 100644
--- a/lib/et/doc/src/make.dep
+++ b/lib/et/test/Makefile
@@ -1,53 +1,81 @@
-#-*-makefile-*- ; force emacs to enter makefile-mode
+#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2002-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2009-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
+
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
# ----------------------------------------------------
-# >>>> Do not edit this file <<<<
-# This file was automaticly generated by
-# /home/otp/bin/docdepend
+# Target Specs
# ----------------------------------------------------
+MODULES= \
+ ett \
+ et_wx_SUITE \
+ et_test_lib
+
+
+ERL_FILES= $(MODULES:%=%.erl)
+
+HRL_FILES= et_test_lib.hrl
+
+TARGET_FILES= \
+ $(MODULES:%=$(EBIN)/%.$(EMULATOR))
+
+INSTALL_PROGS= $(TARGET_FILES)
# ----------------------------------------------------
-# TeX files that the DVI file depend on
+# Release directory specification
# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/et_test
-book.dvi: book.tex et.tex et_architecture.tex et_collector.tex \
- et_examples.tex et_intro.tex et_selector.tex \
- et_viewer.tex part.tex ref_man.tex
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+#ERL_COMPILE_FLAGS +=
+
+EBIN = .
# ----------------------------------------------------
-# Source inlined when transforming from source to LaTeX
+# Targets
# ----------------------------------------------------
-book.tex: ref_man.xml
+tests debug opt: $(TARGET_FILES)
-et_architecture.tex: ../../examples/et_demo.erl
+clean:
+ rm -f $(TARGET_FILES)
+ rm -f core
-et_examples.tex: ../../examples/et_demo.erl
+docs:
# ----------------------------------------------------
-# Pictures that the DVI file depend on
-# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_spec: opt
+
+release_tests_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)
+ $(INSTALL_DATA) et.spec $(ERL_FILES) $(HRL_FILES) $(RELSYSDIR)
+ $(INSTALL_PROGRAM) ett $(INSTALL_PROGS) $(RELSYSDIR)
+# chmod -f -R u+w $(RELSYSDIR)
+# @tar cf - *_SUITE_data | (cd $(RELSYSDIR); tar xf -)
-book.dvi: sim_trans.ps sim_trans_contents_viewer_collector.ps \
- sim_trans_contents_viewer_mgr_actors.ps sim_trans_mgr_actors.ps \
- sim_trans_move_actor.ps sim_trans_write_lock.ps
+release_docs_spec:
-book.dvi: live_trans.ps megaco_collector.ps megaco_filter.ps \
- megaco_tracer.ps sim_trans.ps
diff --git a/lib/et/test/README b/lib/et/test/README
new file mode 100644
index 0000000000..4269186c93
--- /dev/null
+++ b/lib/et/test/README
@@ -0,0 +1,30 @@
+
+Testing and running et tests.
+
+Testing gui api/applications can be hard, but we can at least
+test that wxerlang behaves as we expected, i.e. that the api
+is consistent and that it don't crash.
+
+The tests are structured as they are because we want you to
+be able to run them in three different ways.
+ - direct via an erlang shell
+ - via common_test application
+ - via erlang/OTP inhouse ts tool.
+
+To run all the tests compile them and on unix
+run ./ett to create an erlang terminal.
+
+Invoke ett:t(). in the erlang shell to run all regression tests.
+If you want to specific tests invoke ett:t(Module)
+or ett:t(Module, TestCase).
+
+To run all tests including the ones that require manual intervention run.
+ett:t(all, [{user,true}]).
+
+To see every test_case window use
+ett:t(all, [{user,step}]).
+This requires that you manually close each window to step to the
+next test_case.
+
+If you want to run specific test_cases use:
+ett:t({Module,TestCase}, [{user,step}]).
diff --git a/lib/et/test/et.spec b/lib/et/test/et.spec
new file mode 100644
index 0000000000..69cd8d7582
--- /dev/null
+++ b/lib/et/test/et.spec
@@ -0,0 +1,2 @@
+{topcase, {dir, "../et_test"}}.
+
diff --git a/lib/et/test/et_test_lib.erl b/lib/et/test/et_test_lib.erl
new file mode 100644
index 0000000000..b91b63786c
--- /dev/null
+++ b/lib/et/test/et_test_lib.erl
@@ -0,0 +1,329 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+
+-module(et_test_lib).
+-compile(export_all).
+
+-include("et_test_lib.hrl").
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+init_per_suite(Config) when is_list(Config)->
+ incr_timetrap(Config, 5).
+
+end_per_suite(Config) when is_list(Config)->
+ ok.
+
+incr_timetrap(Config, Times) ->
+ Key = tc_timeout,
+ KeyPos = 1,
+ NewTime =
+ case lists:keysearch(Key, KeyPos, Config) of
+ {value, {Key, OldTime}} ->
+ (timer:minutes(1) + OldTime) * Times;
+ false ->
+ timer:minutes(1) * Times
+ end,
+ lists:keystore(Key, KeyPos, Config, {Key, NewTime}).
+
+set_kill_timer(Config) ->
+ case init:get_argument(et_test_timeout) of
+ {ok, _} ->
+ Config;
+ _ ->
+ Time =
+ case lookup_config(tc_timeout, Config) of
+ [] ->
+ timer:minutes(5);
+ ConfigTime when is_integer(ConfigTime) ->
+ ConfigTime
+ end,
+ WatchDog = test_server:timetrap(Time),
+ [{kill_timer, WatchDog} | Config]
+ end.
+
+reset_kill_timer(Config) ->
+ DogKiller =
+ case get(et_test_server) of
+ true ->
+ fun(P) when is_pid(P) -> P ! stop;
+ (_) -> ok
+ end;
+ _ ->
+ fun(Ref) -> test_server:timetrap_cancel(Ref) end
+ end,
+ case lists:keysearch(kill_timer, 1, Config) of
+ {value, {kill_timer, WatchDog}} ->
+ DogKiller(WatchDog),
+ lists:keydelete(kill_timer, 1, Config);
+ _ ->
+ Config
+ end.
+
+lookup_config(Key,Config) ->
+ case lists:keysearch(Key, 1, Config) of
+ {value,{Key,Val}} ->
+ Val;
+ _ ->
+ []
+ end.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+wx_init_per_suite(Config) ->
+ {_Pid, Ref} =
+ spawn_monitor(fun() ->
+ %% Avoid test case crash if wx master process dies
+ process_flag(trap_exit, true),
+ try
+ case os:type() of
+ {unix,darwin} ->
+ exit({skipped, "Can not test on MacOSX"});
+ {unix, _} ->
+ io:format("DISPLAY ~s~n", [os:getenv("DISPLAY")]),
+ case proplists:get_value(xserver, Config, none) of
+ none -> ignore;
+ Server -> os:putenv("DISPLAY", Server)
+ end;
+ _ ->
+ ignore
+ end,
+ wx:new(),
+ wx:destroy()
+ catch
+ error:undef ->
+ exit({skipped, "No wx compiled for this platform"});
+ _:Reason ->
+ exit({skipped, lists:flatten(io_lib:format("Start wx failed: ~p", [Reason]))})
+ end,
+ exit(normal)
+ end),
+ receive
+ {'DOWN', Ref, _, _, normal} ->
+ init_per_suite(Config);
+ {'DOWN', Ref, _, _, {skipped, _} = Skipped} ->
+ Skipped;
+ {'DOWN', Ref, _, _, Reason} ->
+ exit({wx_init_per_suite, Reason})
+ after timer:minutes(1) ->
+ exit({wx_init_per_suite, timeout})
+ end.
+
+wx_end_per_suite(Config) ->
+ end_per_suite(Config).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+init_per_testcase(_Func, Config) when is_list(Config) ->
+ set_kill_timer(Config),
+ global:register_name(et_global_logger, group_leader()),
+ Config.
+
+end_per_testcase(_Func, Config) when is_list(Config) ->
+ global:unregister_name(et_global_logger),
+ reset_kill_timer(Config),
+ Config.
+
+%% Backwards compatible with test_server
+tc_info(suite) -> [];
+tc_info(doc) -> "".
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Use ?log(Format, Args) as wrapper
+log(Format, Args, LongFile, Line) ->
+ File = filename:basename(LongFile),
+ Format2 = lists:concat([File, "(", Line, ")", ": ", Format]),
+ log(Format2, Args).
+
+log(Format, Args) ->
+ case global:whereis_name(et_global_logger) of
+ undefined ->
+ io:format(user, Format, Args);
+ Pid ->
+ io:format(Pid, Format, Args)
+ end.
+
+verbose(Format, Args, File, Line) ->
+ Arg = et_test_verbose,
+ case get(Arg) of
+ false ->
+ ok;
+ true ->
+ log(Format, Args, File, Line);
+ undefined ->
+ case init:get_argument(Arg) of
+ {ok, List} when is_list(List) ->
+ case lists:last(List) of
+ ["true"] ->
+ put(Arg, true),
+ log(Format, Args, File, Line);
+ _ ->
+ put(Arg, false),
+ ok
+ end;
+ _ ->
+ put(Arg, false),
+ ok
+ end
+ end.
+
+error(Format, Args, File, Line) ->
+ global:send(et_global_logger, {failed, File, Line}),
+ Fail = {filename:basename(File),Line,Args},
+ case global:whereis_name(et_test_case_sup) of
+ undefined -> ignore;
+ Pid -> Pid ! Fail
+ %% global:send(et_test_case_sup, Fail),
+ end,
+ log("<ERROR>~n" ++ Format, Args, File, Line).
+
+
+pick_msg() ->
+ receive
+ Message -> Message
+ after 4000 -> timeout
+ end.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Utility functions
+
+user_available(Config) ->
+ false /= proplists:get_value(user, Config, false).
+
+
+wx_destroy(Frame, Config) ->
+ case proplists:get_value(user, Config, false) of
+ false ->
+ timer:sleep(100),
+ ?m(ok, wxFrame:destroy(Frame)),
+ ?m(ok, wx:destroy());
+ true ->
+ timer:sleep(500),
+ ?m(ok, wxFrame:destroy(Frame)),
+ ?m(ok, wx:destroy());
+ step -> %% Wait for user to close window
+ ?m(ok, wxEvtHandler:connect(Frame, close_window, [{skip,true}])),
+ wait_for_close()
+ end.
+
+wait_for_close() ->
+ receive
+ #wx{event=#wxClose{}} ->
+ ?log("Got close~n",[]),
+ ?m(ok, wx:destroy());
+ #wx{obj=Obj, event=Event} ->
+ try
+ Name = wxTopLevelWindow:getTitle(Obj),
+ ?log("~p Event: ~p~n", [Name, Event])
+ catch _:_ ->
+ ?log("Event: ~p~n", [Event])
+ end,
+ wait_for_close();
+ Other ->
+ ?log("Unexpected: ~p~n", [Other]),
+ wait_for_close()
+ end.
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% A small test server, which can be run standalone in a shell
+
+run_test(Test = {_,_},Config) ->
+ run_test([Test],Config);
+run_test([{Module, TC} | Rest], Config) ->
+ log("\n\n=== Eval test suite: ~w ===~n", [Module]),
+ case catch Module:init_per_suite(Config) of
+ {skipped, Reason} ->
+ log("Test suite skipped: ~s~n", [Reason]),
+ [{skipped, Reason}];
+ NewConfig when is_list(NewConfig) ->
+ Res =
+ if
+ TC =:= all ->
+ [do_run_test(Module, Test, NewConfig) || Test <- Module:all()];
+ is_list(TC) ->
+ [do_run_test(Module, Test, NewConfig) || Test <- TC];
+ true ->
+ [do_run_test(Module, TC, NewConfig)]
+ end,
+ Module:end_per_suite(NewConfig),
+ Res ++ run_test(Rest, NewConfig);
+ Error ->
+ ?error("Test suite skipped: ~w~n", [Error]),
+ [{skipped, Error}]
+ end;
+run_test([], _Config) ->
+ [].
+
+do_run_test(Module, all, Config) ->
+ All = [{Module, Test} || Test <- Module:all()],
+ run_test(All, Config);
+do_run_test(Module, TestCase, Config) ->
+ log("Eval test case: ~w~n", [{Module, TestCase}]),
+ Sec = timer:seconds(1) * 1000,
+ {T, Res} =
+ timer:tc(?MODULE, eval_test_case, [Module, TestCase, Config]),
+ log("Tested ~w in ~w sec~n", [TestCase, T div Sec]),
+ {T div Sec, Res}.
+
+eval_test_case(Mod, Fun, Config) ->
+ flush(),
+ global:register_name(et_test_case_sup, self()),
+ Flag = process_flag(trap_exit, true),
+ Pid = spawn_link(?MODULE, test_case_evaluator, [Mod, Fun, [Config]]),
+ R = wait_for_evaluator(Pid, Mod, Fun, Config),
+ global:unregister_name(et_test_case_sup),
+ process_flag(trap_exit, Flag),
+ R.
+
+test_case_evaluator(Mod, Fun, [Config]) ->
+ NewConfig = Mod:init_per_testcase(Fun, Config),
+ R = apply(Mod, Fun, [NewConfig]),
+ Mod:fin_per_testcase(Fun, NewConfig),
+ exit({test_case_ok, R}).
+
+wait_for_evaluator(Pid, Mod, Fun, Config) ->
+ receive
+ {'EXIT', Pid, {test_case_ok, _PidRes}} ->
+ Errors = flush(),
+ Res =
+ case Errors of
+ [] -> ok;
+ Errors -> failed
+ end,
+ {Res, {Mod, Fun}, Errors};
+ {'EXIT', Pid, {skipped, Reason}} ->
+ log("<WARNING> Test case ~w skipped, because ~p~n",
+ [{Mod, Fun}, Reason]),
+ Mod:fin_per_testcase(Fun, Config),
+ {skip, {Mod, Fun}, Reason};
+ {'EXIT', Pid, Reason} ->
+ log("<ERROR> Eval process ~w exited, because\n\t~p~n",
+ [{Mod, Fun}, Reason]),
+ Mod:fin_per_testcase(Fun, Config),
+ {crash, {Mod, Fun}, Reason}
+ end.
+
+flush() ->
+ receive Msg -> [Msg | flush()]
+ after 0 -> []
+ end.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/lib/et/test/et_test_lib.hrl b/lib/et/test/et_test_lib.hrl
new file mode 100644
index 0000000000..0d75318d99
--- /dev/null
+++ b/lib/et/test/et_test_lib.hrl
@@ -0,0 +1,90 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+
+-include_lib("wx/include/wx.hrl").
+
+-define(log(Format,Args), et_test_lib:log(Format,Args,?FILE,?LINE)).
+-define(warning(Format,Args), ?log("<WARNING>\n " ++ Format,Args)).
+-define(error(Format,Args), et_test_lib:error(Format,Args,?FILE,?LINE)).
+-define(verbose(Format,Args), et_test_lib:verbose(Format,Args,?FILE,?LINE)).
+
+-define(fatal(Format,Args),
+ ?error(Format, Args),
+ exit({test_case_fatal, Format, Args, ?FILE, ?LINE})).
+
+-define(skip(Format,Args),
+ ?warning(Format, Args),
+ exit({skipped, ?flat_format(Format, Args)})).
+
+-define(ignore(Expr),
+ fun() ->
+ AcTuAlReS = (catch (Expr)),
+ ?verbose("ok: ~p\n",[AcTuAlReS])
+ end()).
+
+-define(msym(ExpectedRes, Expr),
+ fun() ->
+ AcTuAlReS = (catch (Expr)),
+ case AcTuAlReS of
+ ExpectedRes ->
+ ?verbose("ok: ~p\n",[AcTuAlReS]),
+ AcTuAlReS;
+ _ ->
+ et_test_lib:error("Not matching actual result was:\n ~p \nExpected ~s\n",
+ [AcTuAlReS, ??ExpectedRes],
+ ?FILE, ?LINE),
+ AcTuAlReS
+ end
+ end()).
+
+-define(m(ExpectedRes, Expr),
+ fun() ->
+ AcTuAlReS = (catch (Expr)),
+ case AcTuAlReS of
+ ExpectedRes ->
+ ?verbose("ok: ~p\n",[AcTuAlReS]),
+ AcTuAlReS;
+ _ ->
+ et_test_lib:error("Not matching actual result was:\n\t~p \nExpected:\n\t~p\n",
+ [AcTuAlReS, ExpectedRes],
+ ?FILE, ?LINE),
+ AcTuAlReS
+ end
+ end()).
+
+-define(m_receive(ExpectedMsg),
+ ?m(ExpectedMsg,et_test_lib:pick_msg())).
+
+-define(m_multi_receive(ExpectedMsgs),
+ fun() ->
+ TmPeXpCtEdMsGs = lists:sort(ExpectedMsgs),
+ AcTuAlReS =
+ lists:sort(lists:map(fun(_) ->
+ et_test_lib:pick_msg()
+ end, TmPeXpCtEdMsGs)),
+ case AcTuAlReS of
+ TmPeXpCtEdMsGs ->
+ ?verbose("ok: ~p\n",[AcTuAlReS]),
+ AcTuAlReS;
+ _ ->
+ et_test_lib:error("Not matching actual result was:\n ~p \nExpected ~p\n",
+ [AcTuAlReS, ExpectedMsgs],
+ ?FILE, ?LINE),
+ AcTuAlReS
+ end
+ end()).
diff --git a/lib/et/test/et_wx_SUITE.erl b/lib/et/test/et_wx_SUITE.erl
new file mode 100644
index 0000000000..1a16ca69a3
--- /dev/null
+++ b/lib/et/test/et_wx_SUITE.erl
@@ -0,0 +1,100 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+
+-module(et_wx_SUITE).
+
+-export([all/0, init_per_suite/1, end_per_suite/1,
+ init_per_testcase/2, fin_per_testcase/2, end_per_testcase/2]).
+
+-compile(export_all).
+
+-include("et_test_lib.hrl").
+
+%% Initialization functions.
+init_per_suite(Config) ->
+ et_test_lib:wx_init_per_suite(Config).
+
+end_per_suite(Config) ->
+ et_test_lib:wx_end_per_suite(Config).
+
+init_per_testcase(Func,Config) ->
+ et_test_lib:init_per_testcase(Func,Config).
+end_per_testcase(Func,Config) ->
+ et_test_lib:end_per_testcase(Func,Config).
+fin_per_testcase(Func,Config) -> %% For test_server
+ et_test_lib:end_per_testcase(Func,Config).
+
+%% SUITE specification
+all() ->
+ all(suite).
+all(suite) ->
+ [
+ start_all_windows
+ ].
+
+%% The test cases
+
+%% Display all windows and see if something crashes
+start_all_windows(TestInfo) when is_atom(TestInfo) ->
+ et_test_lib:tc_info(TestInfo);
+start_all_windows(_Config) ->
+ process_flag(trap_exit, true),
+ {ok, ViewerPid} = ?msym({ok, _}, et_viewer:start_link([])),
+ CollectorPid = et_viewer:get_collector_pid(ViewerPid),
+ ?msym({ok, _}, et_collector:report_event(CollectorPid,
+ 60,
+ some_from_actor,
+ some_to_actor,
+ some_label,
+ "Some details")),
+ timer:sleep(timer:seconds(1)),
+
+ {ok, EventPid1} = ?msym({ok, _}, et_viewer:open_event(ViewerPid, 1)),
+ {ok, EventPid2} = ?msym({ok, _}, et_viewer:open_event(ViewerPid, 1)),
+ timer:sleep(timer:seconds(10)),
+
+ ?msym(alive, process_state(ViewerPid)),
+ ?msym(alive, process_state(CollectorPid)),
+ ?msym(alive, process_state(EventPid1)),
+ ?msym(alive, process_state(EventPid2)),
+
+ ?m(ok, et_wx_contents_viewer:stop(EventPid1)),
+ timer:sleep(timer:seconds(1)),
+
+ ?msym(alive, process_state(ViewerPid)),
+ ?msym(alive, process_state(CollectorPid)),
+ ?msym(dead, process_state(EventPid1)),
+ ?msym(alive, process_state(EventPid2)),
+
+ ?m(ok, et_viewer:stop(ViewerPid)),
+ timer:sleep(timer:seconds(1)),
+
+ ?msym(dead, process_state(ViewerPid)),
+ ?msym(dead, process_state(CollectorPid)),
+ ?msym(dead, process_state(EventPid1)),
+ ?msym(dead, process_state(EventPid2)),
+
+ ?m([], et_test_lib:flush()),
+
+ ok.
+
+process_state(Pid) ->
+ case process_info(Pid, group_leader) of
+ {group_leader, _} -> alive;
+ undefined -> dead
+ end.
diff --git a/lib/et/test/ett b/lib/et/test/ett
new file mode 100755
index 0000000000..da2443df61
--- /dev/null
+++ b/lib/et/test/ett
@@ -0,0 +1,55 @@
+#! /bin/sh -f
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 2009-2010. All Rights Reserved.
+#
+# The contents of this file are subject to the Erlang Public License,
+# Version 1.1, (the "License"); you may not use this file except in
+# compliance with the License. You should have received a copy of the
+# Erlang Public License along with this software. If not, it can be
+# retrieved online at http://www.erlang.org/.
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# %CopyrightEnd%
+
+# Usage: ett [-cerl] <args to erlang startup script>
+
+emu=erl
+while [ $# -gt 0 ]; do
+ case "$1" in
+ "-cerl")
+ shift
+ emu=cerl
+ ;;
+ *)
+ break
+ ;;
+ esac
+done
+
+log=test_log_$$
+latest=test_log_latest
+args=${1+"$@"}
+
+erlcmd="$emu -sname test_server -smp -pa ../../et/ebin $p $args -et_test_verbose true -et_test_timeout"
+
+echo "Give the following command in order to see the outcome:"
+echo ""
+echo " less $log"
+
+rm "$latest" 2>/dev/null
+ln -s "$log" "$latest"
+touch "$log"
+
+ostype=`uname -s`
+if [ "$ostype" = "SunOS" ] ; then
+ /usr/openwin/bin/xterm -T "Testing et" -l -lf "$log" -e $erlcmd &
+else
+ xterm -T "Testing et" -e script -f -c "$erlcmd" "$log" &
+fi
+
+tail -f "$log" | egrep 'Eval|<ERROR>|NYI'
diff --git a/lib/et/test/ett.erl b/lib/et/test/ett.erl
new file mode 100644
index 0000000000..1896e65842
--- /dev/null
+++ b/lib/et/test/ett.erl
@@ -0,0 +1,154 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+
+-module(ett).
+-compile(export_all).
+
+%% Modules or suites can be shortcuts, for example wx expands to et_wx_SUITE.
+%%
+%% t(Tests) run et testcases.
+%% Tests can be module, {module, test_case} or [module|{module,test_case}]
+
+t() ->
+ t(read_test_case()).
+t(Test) ->
+ t(Test, []).
+
+t(Mod, TC) when is_atom(Mod), is_atom(TC) ->
+ t({Mod,TC}, []);
+t(all, Config) when is_list(Config) ->
+ Fs = filelib:wildcard("et_*_SUITE.erl"),
+ t([list_to_atom(filename:rootname(File)) || File <- Fs], Config);
+t(Test,Config) when is_list(Config) ->
+ Tests = resolve(Test),
+ write_test_case(Test),
+ Res = et_test_lib:run_test(Tests, Config),
+ append_test_case_info(Test, Res).
+
+user() ->
+ user(read_test_case()).
+user(Mod) ->
+ t(Mod, [{user,step}]).
+user(Mod,Tc) when is_atom(Tc) ->
+ t({Mod,Tc}, [{user,step}]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Resolves the name of test suites and test cases
+%% according to the alias definitions. Single atoms
+%% are assumed to be the name of a test suite.
+
+resolve(Suite0) when is_atom(Suite0) ->
+ case alias(Suite0) of
+ Suite when is_atom(Suite) ->
+ {Suite, all};
+ {Suite, Case} ->
+ {Suite, Case}
+ end;
+resolve({Suite0, Case}) when is_atom(Suite0), is_atom(Case) ->
+ case alias(Suite0) of
+ Suite when is_atom(Suite) ->
+ {Suite, Case};
+ {Suite, Case2} ->
+ {Suite, Case2}
+ end;
+resolve(List) when is_list(List) ->
+ [resolve(Case) || Case <- List].
+
+alias(Suite) when is_atom(Suite) ->
+ Str = atom_to_list(Suite),
+ case {Str, lists:reverse(Str)} of
+ {"et" ++ _, "ETIUS" ++ _} ->
+ Suite;
+ _ ->
+ list_to_atom("et_" ++ Str ++ "_SUITE")
+ end.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+config_fname() ->
+ "et_test_case_config".
+
+%% Read default config file
+read_config() ->
+ Fname = config_fname(),
+ et_test_lib:log("Consulting file ~s...~n", [Fname]),
+ case file:consult(Fname) of
+ {ok, Config} ->
+ et_test_lib:log("Read config ~w~n", [Config]),
+ Config;
+ _Error ->
+ Config = et_test_lib:default_config(),
+ et_test_lib:log("<>WARNING<> Using default config: ~w~n", [Config]),
+ Config
+ end.
+
+%% Write new default config file
+write_config(Config) when is_list(Config) ->
+ Fname = config_fname(),
+ {ok, Fd} = file:open(Fname, write),
+ write_list(Fd, Config),
+ file:close(Fd).
+
+write_list(Fd, [H | T]) ->
+ ok = io:format(Fd, "~p.~n",[H]),
+ write_list(Fd, T);
+write_list(_, []) ->
+ ok.
+
+test_case_fname() ->
+ "et_test_case_info".
+
+%% Read name of test case
+read_test_case() ->
+ Fname = test_case_fname(),
+ case file:open(Fname, [read]) of
+ {ok, Fd} ->
+ Res = io:read(Fd, []),
+ file:close(Fd),
+ case Res of
+ {ok, TestCase} ->
+ et_test_lib:log("Using test case ~w from file ~s~n",
+ [TestCase, Fname]),
+ TestCase;
+ {error, _} ->
+ default_test_case(Fname)
+ end;
+ {error, _} ->
+ default_test_case(Fname)
+ end.
+
+default_test_case(Fname) ->
+ TestCase = all,
+ et_test_lib:log("<>WARNING<> Cannot read file ~s, "
+ "using default test case: ~w~n",
+ [Fname, TestCase]),
+ TestCase.
+
+write_test_case(TestCase) ->
+ Fname = test_case_fname(),
+ {ok, Fd} = file:open(Fname, write),
+ ok = io:format(Fd, "~p.~n",[TestCase]),
+ file:close(Fd).
+
+append_test_case_info(TestCase, TestCaseInfo) ->
+ Fname = test_case_fname(),
+ {ok, Fd} = file:open(Fname, [read, write]),
+ ok = io:format(Fd, "~p.~n",[TestCase]),
+ ok = io:format(Fd, "~p.~n",[TestCaseInfo]),
+ file:close(Fd),
+ TestCaseInfo.
diff --git a/lib/et/vsn.mk b/lib/et/vsn.mk
index c6d58e2055..b7d65b12a2 100644
--- a/lib/et/vsn.mk
+++ b/lib/et/vsn.mk
@@ -1,23 +1,24 @@
# This is an -*-makefile-*- file.
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2002-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2002-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
-ET_VSN = 1.3.3
+ET_VSN = 1.4
+TICKETS = OTP-8058
-TICKETS = OTP-8201
+TICKETS_1_3_3 = OTP-8201
TICKETS_1_3_2 = OTP-8078
TICKETS_1_3_1 = OTP-7830
diff --git a/lib/eunit/info b/lib/eunit/info
index 138f4dc040..e7e6265940 100644
--- a/lib/eunit/info
+++ b/lib/eunit/info
@@ -1,2 +1,2 @@
-group: tools
+group: test
short: Support for unit testing.
diff --git a/lib/eunit/test/Makefile b/lib/eunit/test/Makefile
index 83fca0ade4..74d485d1cc 100644
--- a/lib/eunit/test/Makefile
+++ b/lib/eunit/test/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2009-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
include $(ERL_TOP)/make/target.mk
@@ -50,7 +50,7 @@ EBIN = .
make_emakefile:
$(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) -o$(EBIN) \
- $(MODULES) >> $(EMAKEFILE)
+ $(MODULES) > $(EMAKEFILE)
tests debug opt: make_emakefile
erl $(ERL_MAKE_FLAGS) -make
diff --git a/lib/eunit/vsn.mk b/lib/eunit/vsn.mk
index 002703b1b3..3bfa9c8000 100644
--- a/lib/eunit/vsn.mk
+++ b/lib/eunit/vsn.mk
@@ -1 +1 @@
-EUNIT_VSN = 2.1.4
+EUNIT_VSN = 2.1.5
diff --git a/lib/hipe/Makefile b/lib/hipe/Makefile
index 10bf82b2d7..54efd7fcaf 100644
--- a/lib/hipe/Makefile
+++ b/lib/hipe/Makefile
@@ -27,7 +27,7 @@ else
HIPE_SUBDIRS =
endif
-ALWAYS_SUBDIRS = misc main cerl icode flow util
+ALWAYS_SUBDIRS = misc main cerl icode flow util doc/src
ifdef HIPE_ENABLED
# "rtl" below must be the first directory so that file rtl/hipe_literals.hrl
diff --git a/lib/hipe/doc/Makefile b/lib/hipe/doc/Makefile
index 340f909aa6..cdf9c9c798 100644
--- a/lib/hipe/doc/Makefile
+++ b/lib/hipe/doc/Makefile
@@ -1,21 +1,28 @@
-# ``The contents of this file are subject to the Erlang Public License,
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 2006-2010. All Rights Reserved.
+#
+# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
-# retrieved via the world wide web at http://www.erlang.org/.
-#
+# 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%
+#
SHELL=/bin/sh
include $(ERL_TOP)/make/target.mk
include $(ERL_TOP)/make/$(TARGET)/otp.mk
clean:
- -rm -f *.html edoc-info stylesheet.css
+ -rm -f *.html edoc-info stylesheet.css erlang.png
# ----------------------------------------------------
# Special Build Targets
diff --git a/lib/hipe/doc/src/Makefile b/lib/hipe/doc/src/Makefile
index 3b63e57549..d440178e4c 100644
--- a/lib/hipe/doc/src/Makefile
+++ b/lib/hipe/doc/src/Makefile
@@ -1,19 +1,20 @@
-# ``The contents of this file are subject to the Erlang Public License,
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 2006-2010. All Rights Reserved.
+#
+# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
-# retrieved via the world wide web at http://www.erlang.org/.
-#
+# 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 Utvecklings AB.
-# Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings
-# AB. All Rights Reserved.''
-#
-# $Id$
+#
+# %CopyrightEnd%
#
include $(ERL_TOP)/make/target.mk
include $(ERL_TOP)/make/$(TARGET)/otp.mk
@@ -33,7 +34,7 @@ RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN)
# ----------------------------------------------------
# Target Specs
# ----------------------------------------------------
-XML_APPLICATION_FILES =
+XML_APPLICATION_FILES = ref_man.xml
XML_REF3_FILES =
XML_PART_FILES = part_notes.xml
diff --git a/lib/hipe/doc/src/book.xml b/lib/hipe/doc/src/book.xml
index 236dfc69a1..9c95e3a827 100644
--- a/lib/hipe/doc/src/book.xml
+++ b/lib/hipe/doc/src/book.xml
@@ -4,7 +4,7 @@
<book xmlns:xi="http://www.w3.org/2001/XInclude">
<header titlestyle="normal">
<copyright>
- <year>2006</year><year>2009</year>
+ <year>2006</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>HiPE</title>
@@ -31,6 +31,9 @@
<preamble>
</preamble>
<pagetext>HiPE</pagetext>
+ <applications>
+ <xi:include href="ref_man.xml"/>
+ </applications>
<releasenotes>
<xi:include href="notes.xml"/>
</releasenotes>
diff --git a/lib/hipe/doc/src/hipe_app.xml b/lib/hipe/doc/src/hipe_app.xml
new file mode 100644
index 0000000000..56729d4cc4
--- /dev/null
+++ b/lib/hipe/doc/src/hipe_app.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE appref SYSTEM "appref.dtd">
+
+<appref>
+ <header>
+ <copyright>
+ <year>1997</year><year>2010</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>snmp</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date></date>
+ <rev></rev>
+ <file>hipe.xml</file>
+ </header>
+ <app>HiPE</app>
+ <appsummary>The HiPE Application</appsummary>
+ <description>
+ <p>
+ The normal way to native-compile an Erlang module using HiPE is to include the atom native
+ in the Erlang compiler options, as in:
+ <code>
+ 1> <input>c(my_module, [native]).</input></code>
+ Options to the HiPE compiler are then passed as follows:
+ <code>
+ 1> <input>c(my_module, [native,{hipe,Options}]).</input></code>
+ For on-line help in the Erlang shell, call <c>hipe:help()</c>.
+ Details on HiPE compiler options are given by <c>hipe:help_options()</c>.
+ </p>
+ </description>
+ <section>
+ <title>SEE ALSO</title>
+ <p>
+ <seealso marker="stdlib:c">c(3)</seealso>,
+ <seealso marker="compiler:compile">compile(3)</seealso>
+ </p>
+ </section>
+
+</appref>
+
diff --git a/lib/et/doc/src/part_notes.xml b/lib/hipe/doc/src/ref_man.xml
index 00b3d9df23..09d10147ee 100644
--- a/lib/et/doc/src/part_notes.xml
+++ b/lib/hipe/doc/src/ref_man.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="latin1" ?>
-<!DOCTYPE part SYSTEM "part.dtd">
+<!DOCTYPE application SYSTEM "application.dtd">
-<part xmlns:xi="http://www.w3.org/2001/XInclude">
+<application xmlns:xi="http://www.w3.org/2001/XInclude">
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>1996</year><year>2009</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -21,16 +21,15 @@
</legalnotice>
- <title>Event Tracer (ET) Release Notes</title>
- <prepared>H&aring;kan Mattsson</prepared>
+ <title>HiPE</title>
+ <prepared></prepared>
<docno></docno>
- <date></date>
- <rev>%VSN%</rev>
+ <date>1997-06-04</date>
+ <rev>1.3.1</rev>
+ <file>ref_man.xml</file>
</header>
<description>
- <p>The Event Tracer (ET) uses the built-in trace mechanism in Erlang
- and provides tools for collection and graphical viewing of trace data.</p>
</description>
- <xi:include href="notes.xml"/>
-</part>
+ <xi:include href="hipe_app.xml"/>
+</application>
diff --git a/lib/hipe/info b/lib/hipe/info
index 51b5dfb979..fe08fc8990 100644
--- a/lib/hipe/info
+++ b/lib/hipe/info
@@ -1,2 +1,2 @@
-group: basic
+group: misc Miscellaneous Applications
short: High Performance Erlang \ No newline at end of file
diff --git a/lib/hipe/rtl/Makefile b/lib/hipe/rtl/Makefile
index beab8da547..55d20af8af 100644
--- a/lib/hipe/rtl/Makefile
+++ b/lib/hipe/rtl/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2001-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2001-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -113,8 +113,11 @@ HIPE_MKLITERALS=$(ERL_TOP)/bin/$(TARGET)/hipe_mkliterals
hipe_literals.hrl: $(HIPE_MKLITERALS)
$(HIPE_MKLITERALS) -e > hipe_literals.hrl
+# Need to generate hipe.hrl from one and only one target in one and only
+# one makefile; otherwise, clearmake will force rebuilds of hipe over and
+# over again.
../main/hipe.hrl: ../vsn.mk ../main/hipe.hrl.src
- sed -e "s;%VSN%;$(HIPE_VSN);" ../main/hipe.hrl.src > ../main/hipe.hrl
+ (cd ../main && $(MAKE) hipe.hrl)
$(EBIN)/hipe_rtl.beam: hipe_rtl.hrl ../main/hipe.hrl
$(EBIN)/hipe_rtl_arch.beam: hipe_rtl.hrl hipe_literals.hrl
diff --git a/lib/inets/doc/src/httpc.xml b/lib/inets/doc/src/httpc.xml
index e143ba2c1a..ca93190f61 100644
--- a/lib/inets/doc/src/httpc.xml
+++ b/lib/inets/doc/src/httpc.xml
@@ -277,7 +277,7 @@ ssl_options() = {verify, code()} |
stream_start, Headers}, {http, {RequestId, stream,
BinBodyPart}, {http, {RequestId, stream_end, Headers}. When
streaming to to the calling processes using the option
- <c>{self once}</c> the first message will have an additional
+ <c>{self, once}</c> the first message will have an additional
element e.i. {http, {RequestId, stream_start, Headers, Pid},
this is the process id that should be used as an argument to
http:stream_next/1 to trigger the next message to be sent to
@@ -329,7 +329,7 @@ ssl_options() = {verify, code()} |
<p>Note that the validity of the options are <em>not</em>
checked in any way. </p>
<p>Note that this may change the socket behaviour
- (see <seealso marker="inet#setopts">inet:setopts/2</seealso>)
+ (see <seealso marker="kernel:inet#setopts">inet:setopts/2</seealso>)
for an already existing, and therefor already connected
request handler. </p>
<p>By defaults the socket options set by the
diff --git a/lib/inets/doc/src/notes.xml b/lib/inets/doc/src/notes.xml
index e95c8d6e97..0c524f00d1 100644
--- a/lib/inets/doc/src/notes.xml
+++ b/lib/inets/doc/src/notes.xml
@@ -354,7 +354,7 @@
request, when the client connects to the server. Default
value is that of the <c>timeout</c> option. </p>
<p>See the
- <seealso marker="http#request2">request/4,5</seealso>
+ <seealso marker="httpc#request2">request/4,5</seealso>
function for more info. </p>
<p>Own Id: OTP-7298</p>
<!-- <p>Aux Id: seq11086</p> -->
@@ -461,7 +461,7 @@
the client connects to the server. </p>
<p>As a side-effect of this, the option <c>ipv6</c> has been
removed and replaced by the <c>ipfamily</c> option. </p>
- <p>See <seealso marker="http#set_options">http:set_options/1,2</seealso>
+ <p>See <seealso marker="httpc#set_options">http:set_options/1,2</seealso>
for more info. </p>
<p>*** POTENTIAL INCOMPATIBILITY ***</p>
<p>Own Id: OTP-8004</p>
diff --git a/lib/inets/src/http_client/httpc_handler.erl b/lib/inets/src/http_client/httpc_handler.erl
index fec74932a2..31585537d4 100644
--- a/lib/inets/src/http_client/httpc_handler.erl
+++ b/lib/inets/src/http_client/httpc_handler.erl
@@ -267,9 +267,14 @@ handle_call({connect_and_send, #request{address = Address0,
%%send_ssl_tunnel_request(Address, Request,
%% #state{options = Options,
%% status = ssl_tunnel});
- Reason = https_through_proxy_is_not_currently_supported,
- Error = {error, Reason},
- {stop, Error, Error, State};
+ Reason = {failed_connecting,
+ https_through_proxy_is_not_currently_supported},
+ %% Send a reply to the original caller
+ ErrorResponse = httpc_response:error(Request, Reason),
+ httpc_response:send(Request#request.from, ErrorResponse),
+ %% Reply to the manager
+ ErrorReply = {error, Reason},
+ {stop, normal, ErrorReply, State};
true ->
case connect_and_send_first_request(Address, Request, State) of
{ok, NewState} ->
diff --git a/lib/inets/src/http_client/httpc_manager.erl b/lib/inets/src/http_client/httpc_manager.erl
index f8fc6322ed..f3cd81f4a7 100644
--- a/lib/inets/src/http_client/httpc_manager.erl
+++ b/lib/inets/src/http_client/httpc_manager.erl
@@ -62,7 +62,7 @@
starter, % Pid of the handler starter process (temp): pid()
handler, % Pid of the handler process: pid()
from, % From for the request: from()
- state % State of the handler: initiating | operational | canceled
+ state % State of the handler: initiating | started | operational | canceled
}).
%% Entries in the handler / request cross-ref table
@@ -539,6 +539,11 @@ handle_cast(Msg, #state{profile_name = ProfileName} = State) ->
%% {stop, Reason, State} (terminate/2 is called)
%% Description: Handling all non call/cast messages
%%---------------------------------------------------------
+
+handle_info({started, StarterPid, ReqId, HandlerPid}, State) ->
+ handle_started(StarterPid, ReqId, HandlerPid, State),
+ {noreply, State};
+
handle_info({connect_and_send, StarterPid, ReqId, HandlerPid, Res}, State) ->
handle_connect_and_send(StarterPid, ReqId, HandlerPid, Res, State),
{noreply, State};
@@ -633,6 +638,38 @@ get_handler_info(Tab) ->
%%
%% The request handler process is started asynchronously by a
+%% "starter process". When the handler has sucessfully been started,
+%% this message (started) is sent.
+%%
+
+handle_started(StarterPid, ReqId, HandlerPid,
+ #state{profile_name = Profile,
+ handler_db = HandlerDb}) ->
+ case ets:lookup(HandlerDb, ReqId) of
+ [#handler_info{state = initiating} = HandlerInfo] ->
+ ?hcri("received started ack for initiating handler", []),
+ HandlerInfo2 = HandlerInfo#handler_info{handler = HandlerPid,
+ state = started},
+ ets:insert(HandlerDb, HandlerInfo2),
+ ok;
+
+ [#handler_info{state = State}] ->
+ error_report(Profile,
+ "unexpected (started) message for handler (~p) in state "
+ "~p regarding request ~p - ignoring", [HandlerPid, State, ReqId]),
+ ?hcri("received unexpected started message", [{state, State}]),
+ ok;
+
+ [] ->
+ error_report(Profile,
+ "unknown handler ~p (~p) started for request ~w - canceling",
+ [HandlerPid, StarterPid, ReqId]),
+ httpc_handler:cancel(ReqId, HandlerPid)
+ end.
+
+
+%%
+%% The request handler process is started asynchronously by a
%% "starter process". When that process terminates it sends
%% one of two messages. These ara handled by the two functions
%% below.
@@ -642,8 +679,8 @@ handle_connect_and_send(_StarterPid, ReqId, HandlerPid, Result,
#state{profile_name = Profile,
handler_db = HandlerDb}) ->
case ets:lookup(HandlerDb, ReqId) of
- [#handler_info{state = initiating} = HandlerInfo] when Result =:= ok ->
- ?hcri("received connect-and-send ack for initiating handler", []),
+ [#handler_info{state = started} = HandlerInfo] when Result =:= ok ->
+ ?hcri("received connect-and-send ack for started handler", []),
HandlerInfo2 = HandlerInfo#handler_info{starter = undefined,
handler = HandlerPid,
state = operational},
@@ -658,28 +695,24 @@ handle_connect_and_send(_StarterPid, ReqId, HandlerPid, Result,
ets:insert(HandlerDb, HandlerInfo2),
ok;
- [#handler_info{from = From}] ->
+ [#handler_info{state = State}] when Result =/= ok ->
error_report(Profile,
- "handler (~p) failed to connect and/or "
+ "handler (~p, ~w) failed to connect and/or "
"send request ~p"
- "~n Error: ~p", [HandlerPid, ReqId, Result]),
- ?hcri("received connect-and-send error", [{result, Result}]),
- Reason2 =
- case Result of
- {error, Reason} ->
- {failed_connecting, Reason};
- _ ->
- {failed_connecting, Result}
- end,
- DummyReq = #request{id = ReqId},
- httpc_response:send(From, httpc_response:error(DummyReq, Reason2)),
- %% gen_server:reply(From, Error),
+ "~n Result: ~p",
+ [HandlerPid, State, ReqId, Result]),
+ ?hcri("received connect-and-send error",
+ [{result, Result}, {state, State}]),
+ %% We don't need to send a response to the original caller
+ %% because the handler already sent one in its terminate
+ %% function.
ets:delete(HandlerDb, ReqId),
ok;
[] ->
error_report(Profile,
- "handler successfully (~p) started for unknown request ~p",
+ "handler (~p) successfully started "
+ "for unknown request ~p => canceling",
[HandlerPid, ReqId]),
httpc_handler:cancel(ReqId, HandlerPid)
end.
@@ -689,13 +722,11 @@ handle_failed_starting_handler(_StarterPid, ReqId, Error,
#state{profile_name = Profile,
handler_db = HandlerDb}) ->
case ets:lookup(HandlerDb, ReqId) of
- [#handler_info{state = canceled,
- from = From}] ->
+ [#handler_info{state = canceled}] ->
error_report(Profile,
"failed starting handler for request ~p"
"~n Error: ~p", [ReqId, Error]),
request_canceled(Profile, ReqId), % Fake signal from handler
- gen_server:reply(From, Error),
ets:delete(HandlerDb, ReqId),
ok;
@@ -703,7 +734,15 @@ handle_failed_starting_handler(_StarterPid, ReqId, Error,
error_report(Profile,
"failed starting handler for request ~p"
"~n Error: ~p", [ReqId, Error]),
- gen_server:reply(From, Error),
+ Reason2 =
+ case Error of
+ {error, Reason} ->
+ {failed_connecting, Reason};
+ _ ->
+ {failed_connecting, Error}
+ end,
+ DummyReq = #request{id = ReqId},
+ httpc_response:send(From, httpc_response:error(DummyReq, Reason2)),
ets:delete(HandlerDb, ReqId),
ok;
@@ -719,10 +758,32 @@ maybe_handle_terminating_starter(MeybeStarterPid, Reason, HandlerDb) ->
Pattern = #handler_info{starter = MeybeStarterPid, _ = '_'},
case ets:match_object(HandlerDb, Pattern) of
[#handler_info{id = ReqId, from = From, state = initiating}] ->
- Error = {error, {failed_starting_request_handler, Reason}},
- gen_server:reply(From, Error),
+ %% The starter process crashed before it could start the
+ %% the handler process, therefor we need to answer the
+ %% original caller.
+ ?hcri("starter process crashed bfore starting handler",
+ [{starter, MeybeStarterPid}, {reason, Reason}]),
+ Reason2 =
+ case Reason of
+ {error, Error} ->
+ {failed_connecting, Error};
+ _ ->
+ {failed_connecting, Reason}
+ end,
+ DummyReq = #request{id = ReqId},
+ httpc_response:send(From, httpc_response:error(DummyReq, Reason2)),
ets:delete(HandlerDb, ReqId),
ok;
+
+ [#handler_info{state = State} = HandlerInfo] ->
+ %% The starter process crashed after the handler was started.
+ %% The handler will answer to the original caller.
+ ?hcri("starter process crashed after starting handler",
+ [{starter, MeybeStarterPid}, {reason, Reason}, {state, State}]),
+ HandlerInfo2 = HandlerInfo#handler_info{starter = undefined},
+ ets:insert(HandlerDb, HandlerInfo2),
+ ok;
+
_ ->
ok
end.
@@ -886,6 +947,9 @@ create_handler_starter(#request{id = Id,
[{id, Id}, {profile, ProfileName}, {result, Result1}]),
case Result1 of
{ok, HandlerPid} ->
+ StartedMessage =
+ {started, self(), Id, HandlerPid},
+ ManagerPid ! StartedMessage,
Result2 = httpc_handler:connect_and_send(Request,
HandlerPid),
?hcrd("handler starter - connected and sent",
diff --git a/lib/inets/test/httpc_SUITE.erl b/lib/inets/test/httpc_SUITE.erl
index 96099c49fd..aa65fb1197 100644
--- a/lib/inets/test/httpc_SUITE.erl
+++ b/lib/inets/test/httpc_SUITE.erl
@@ -1440,13 +1440,31 @@ proxy_page_does_not_exist(Config) when is_list(Config) ->
%%-------------------------------------------------------------------------
+
proxy_https_not_supported(doc) ->
[];
proxy_https_not_supported(suite) ->
[];
proxy_https_not_supported(Config) when is_list(Config) ->
- {error, {failed_connecting, https_through_proxy_is_not_currently_supported}} =
- http:request(get, {"https://login.yahoo.com", []}, [], []),
+ Result = http:request(get, {"https://login.yahoo.com", []}, [], []),
+ case Result of
+ {error, Reason} ->
+ %% ok so far
+ case Reason of
+ {failed_connecting, Why} ->
+ %% ok, now check why
+ case Why of
+ https_through_proxy_is_not_currently_supported ->
+ ok;
+ _ ->
+ tsf({unexpected_why, Why})
+ end;
+ _ ->
+ tsf({unexpected_reason, Reason})
+ end;
+ _ ->
+ tsf({unexpected_result, Result})
+ end,
ok.
diff --git a/lib/inets/vsn.mk b/lib/inets/vsn.mk
index 746517eed5..23de8906e7 100644
--- a/lib/inets/vsn.mk
+++ b/lib/inets/vsn.mk
@@ -19,7 +19,7 @@
APPLICATION = inets
INETS_VSN = 5.3
-PRE_VSN =-p13
+PRE_VSN =
APP_VSN = "$(APPLICATION)-$(INETS_VSN)$(PRE_VSN)"
TICKETS = \
diff --git a/lib/jinterface/vsn.mk b/lib/jinterface/vsn.mk
index 243547cf1f..6b5719d7c5 100644
--- a/lib/jinterface/vsn.mk
+++ b/lib/jinterface/vsn.mk
@@ -1,19 +1,19 @@
##
## %CopyrightBegin%
-##
-## Copyright Ericsson AB 2000-2009. All Rights Reserved.
-##
+##
+## Copyright Ericsson AB 2000-2010. All Rights Reserved.
+##
## The contents of this file are subject to the Erlang Public License,
## Version 1.1, (the "License"); you may not use this file except in
## compliance with the License. You should have received a copy of the
## Erlang Public License along with this software. If not, it can be
## retrieved online at http://www.erlang.org/.
-##
+##
## Software distributed under the License is distributed on an "AS IS"
## basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
## the License for the specific language governing rights and limitations
## under the License.
-##
+##
## %CopyrightEnd%
-JINTERFACE_VSN = 1.5.2
+JINTERFACE_VSN = 1.5.3
diff --git a/lib/kernel/doc/src/gen_sctp.xml b/lib/kernel/doc/src/gen_sctp.xml
index de41178a17..3a8011e28b 100644
--- a/lib/kernel/doc/src/gen_sctp.xml
+++ b/lib/kernel/doc/src/gen_sctp.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2007</year><year>2009</year>
+ <year>2007</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>gen_sctp</title>
@@ -170,10 +170,19 @@
<p>Establishes a new association for the socket <c>Socket</c>,
with the peer (SCTP server socket) given by
<c>Addr</c> and <c>Port</c>. The <c>Timeout</c>,
- is expressed in milliseconds.</p>
- <p>A socket can be associated with multiple peers.
- <marker id="record-sctp_assoc_change"></marker>
+ is expressed in milliseconds. A socket can be associated with multiple peers.</p>
+ <p><b>WARNING:</b>Using a value of <c>Timeout</c> less than
+ the maximum time taken by the OS to establish an association (around 4.5 minutes
+ if the default values from RFC 4960 are used) can result in
+ inconsistent or incorrect return values. This is especially
+ relevant for associations sharing the same <c>Socket</c>
+ (i.e. source address and port) since the controlling process
+ blocks until <c>connect/*</c> returns.
+ <seealso marker="#connect_init/4">connect_init/*</seealso>
+ provides an alternative not subject to this limitation.</p>
+
+ <p><marker id="record-sctp_assoc_change"></marker>
The result of <c>connect/*</c> is an <c>#sctp_assoc_change{}</c>
event which contains, in particular, the new
<seealso marker="#type-assoc_id">Association ID:</seealso></p>
@@ -233,6 +242,45 @@
</desc>
</func>
<func>
+ <name>connect_init(Socket, Addr, Port, Opts) -&gt; ok | {error, posix()}</name>
+ <fsummary>Same as <c>connect_init(Socket, Addr, Port, Opts, infinity)</c>.</fsummary>
+ <desc>
+ <p>Same as <c>connect_init(Socket, Addr, Port, Opts, infinity)</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>connect_init(Socket, Addr, Port, [Opt], Timeout) -&gt; ok | {error, posix()}</name>
+ <fsummary>Initiate a new association for the socket <c>Socket</c>, with a peer (SCTP server socket)</fsummary>
+ <type>
+ <v>Socket = sctp_socket()</v>
+ <v>Addr = ip_address() | Host</v>
+ <v>Port = port_number()</v>
+ <v>Opt = sctp_option()</v>
+ <v>Timeout = timeout()</v>
+ <v>Host = atom() | string()</v>
+ </type>
+ <desc>
+ <p>Initiates a new association for the socket <c>Socket</c>,
+ with the peer (SCTP server socket) given by
+ <c>Addr</c> and <c>Port</c>.</p>
+ <p>The fundamental difference between this API
+ and <c>connect/*</c> is that the return value is that of the
+ underlying OS connect(2) system call. If <c>ok</c> is returned
+ then the result of the association establishement is received
+ by the calling process as
+ an <seealso marker="#record-sctp_assoc_change">
+ #sctp_assoc_change{}</seealso>
+ event. The calling process must be prepared to receive this, or
+ poll for it using <c>recv/*</c> depending on the value of the
+ active option.</p>
+ <p>The parameters are as described
+ in <seealso marker="#connect/5">connect/*</seealso>, with the
+ exception of the <c>Timeout</c> value.</p>
+ <p>The timer associated with <c>Timeout</c> only supervises
+ IP resolution of <c>Addr</c></p>
+ </desc>
+ </func>
+ <func>
<name>controlling_process(sctp_socket(), pid()) -&gt; ok</name>
<fsummary>Assign a new controlling process pid to the socket</fsummary>
<desc>
@@ -1058,6 +1106,65 @@
gen_sctp:close(S). </pre>
<p></p>
</item>
+ <item>
+ <p>A very simple Erlang SCTP Client which uses the
+ connect_init API.</p>
+ <pre>
+-module(ex3).
+
+-export([client/4]).
+-include_lib("kernel/include/inet.hrl").
+-include_lib("kernel/include/inet_sctp.hrl").
+
+client(Peer1, Port1, Peer2, Port2)
+ when is_tuple(Peer1), is_integer(Port1), is_tuple(Peer2), is_integer(Port2) -&gt;
+ {ok,S} = gen_sctp:open(),
+ SctpInitMsgOpt = {sctp_initmsg,#sctp_initmsg{num_ostreams=5}},
+ ActiveOpt = {active, true},
+ Opts = [SctpInitMsgOpt, ActiveOpt],
+ ok = gen_sctp:connect(S, Peer1, Port1, Opts),
+ ok = gen_sctp:connect(S, Peer2, Port2, Opts),
+ io:format("Connections initiated~n", []),
+ client_loop(S, Peer1, Port1, undefined, Peer2, Port2, undefined).
+
+client_loop(S, Peer1, Port1, AssocId1, Peer2, Port2, AssocId2) -&gt;
+ receive
+ {sctp, S, Peer1, Port1, {_Anc, SAC}}
+ when is_record(SAC, sctp_assoc_change), AssocId1 == undefined -&gt;
+ io:format("Association 1 connect result: ~p. AssocId: ~p~n",
+ [SAC#sctp_assoc_change.state,
+ SAC#sctp_assoc_change.assoc_id]),
+ client_loop(S, Peer1, Port1, SAC#sctp_assoc_change.assoc_id,
+ Peer2, Port2, AssocId2);
+
+ {sctp, S, Peer2, Port2, {_Anc, SAC}}
+ when is_record(SAC, sctp_assoc_change), AssocId2 == undefined -&gt;
+ io:format("Association 2 connect result: ~p. AssocId: ~p~n",
+ [SAC#sctp_assoc_change.state, SAC#sctp_assoc_change.assoc_id]),
+ client_loop(S, Peer1, Port1, AssocId1, Peer2, Port2,
+ SAC#sctp_assoc_change.assoc_id);
+
+ {sctp, S, Peer1, Port1, Data} -&gt;
+ io:format("Association 1: received ~p~n", [Data]),
+ client_loop(S, Peer1, Port1, AssocId1,
+ Peer2, Port2, AssocId2);
+
+ {sctp, S, Peer2, Port2, Data} -&gt;
+ io:format("Association 2: received ~p~n", [Data]),
+ client_loop(S, Peer1, Port1, AssocId1,
+ Peer2, Port2, AssocId2);
+
+ Other -&gt;
+ io:format("Other ~p~n", [Other]),
+ client_loop(S, Peer1, Port1, AssocId1,
+ Peer2, Port2, AssocId2)
+
+ after 5000 -&gt;
+ ok
+ end.
+</pre>
+ <p></p>
+ </item>
</list>
</section>
diff --git a/lib/kernel/src/Makefile b/lib/kernel/src/Makefile
index ef280058fb..9db6014a7d 100644
--- a/lib/kernel/src/Makefile
+++ b/lib/kernel/src/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1996-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1996-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -143,6 +143,9 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# FLAGS
# ----------------------------------------------------
+ifeq ($(NATIVE_LIBS_ENABLED),yes)
+ERL_COMPILE_FLAGS += +native
+endif
ERL_COMPILE_FLAGS += -I../include
# ----------------------------------------------------
@@ -154,7 +157,7 @@ debug opt: $(TARGET_FILES)
# Note: In the open-source build clean must not destroyed the preloaded
# beam files.
clean:
- rm -f $(NON_PRECIOUS_TARGETS)
+ rm -f $(TARGET_FILES)
rm -f core
diff --git a/lib/kernel/src/code.erl b/lib/kernel/src/code.erl
index 89d893f8c1..ffe58ae7a9 100644
--- a/lib/kernel/src/code.erl
+++ b/lib/kernel/src/code.erl
@@ -465,7 +465,8 @@ search([{Dir, File} | Tail]) ->
build([]) -> [];
build([Dir|Tail]) ->
- Files = filter(objfile_extension(), Dir, file:list_dir(Dir)),
+ Files = filter(objfile_extension(), Dir,
+ erl_prim_loader:list_dir(Dir)),
[decorate(Files, Dir) | build(Tail)].
decorate([], _) -> [];
diff --git a/lib/kernel/src/file.erl b/lib/kernel/src/file.erl
index fa86d53dc9..a42771dfb6 100644
--- a/lib/kernel/src/file.erl
+++ b/lib/kernel/src/file.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(file).
@@ -73,6 +73,7 @@
%% data types
-type filename() :: string().
+-type file_info() :: #file_info{}.
-type io_device() :: pid() | #file_descriptor{}.
-type location() :: integer() | {'bof', integer()} | {'cur', integer()}
| {'eof', integer()} | 'bof' | 'cur' | 'eof'.
diff --git a/lib/kernel/src/gen_sctp.erl b/lib/kernel/src/gen_sctp.erl
index fcd1d1564a..5a31e3976f 100644
--- a/lib/kernel/src/gen_sctp.erl
+++ b/lib/kernel/src/gen_sctp.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2007-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2007-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -27,7 +27,7 @@
-include("inet_sctp.hrl").
-export([open/0,open/1,open/2,close/1]).
--export([listen/2,connect/4,connect/5]).
+-export([listen/2,connect/4,connect/5,connect_init/4,connect_init/5]).
-export([eof/2,abort/2]).
-export([send/3,send/4,recv/1,recv/2]).
-export([error_string/1]).
@@ -80,7 +80,26 @@ listen(S, Flag) ->
connect(S, Addr, Port, Opts) ->
connect(S, Addr, Port, Opts, infinity).
-connect(S, Addr, Port, Opts, Timeout) when is_port(S), is_list(Opts) ->
+connect(S, Addr, Port, Opts, Timeout) ->
+ case do_connect(S, Addr, Port, Opts, Timeout, true) of
+ badarg ->
+ erlang:error(badarg, [S,Addr,Port,Opts,Timeout]);
+ Result ->
+ Result
+ end.
+
+connect_init(S, Addr, Port, Opts) ->
+ connect_init(S, Addr, Port, Opts, infinity).
+
+connect_init(S, Addr, Port, Opts, Timeout) ->
+ case do_connect(S, Addr, Port, Opts, Timeout, false) of
+ badarg ->
+ erlang:error(badarg, [S,Addr,Port,Opts,Timeout]);
+ Result ->
+ Result
+ end.
+
+do_connect(S, Addr, Port, Opts, Timeout, ConnWait) when is_port(S), is_list(Opts) ->
case inet_db:lookup_socket(S) of
{ok,Mod} ->
case Mod:getserv(Port) of
@@ -89,21 +108,26 @@ connect(S, Addr, Port, Opts, Timeout) when is_port(S), is_list(Opts) ->
Timer ->
try Mod:getaddr(Addr, Timer) of
{ok,IP} ->
- Mod:connect(S, IP, Port, Opts, Timer);
+ ConnectTimer = if ConnWait == false ->
+ nowait;
+ true ->
+ Timer
+ end,
+ Mod:connect(S, IP, Port, Opts, ConnectTimer);
Error -> Error
after
inet:stop_timer(Timer)
end
catch
error:badarg ->
- erlang:error(badarg, [S,Addr,Port,Opts,Timeout])
+ badarg
end;
Error -> Error
end;
Error -> Error
end;
-connect(S, Addr, Port, Opts, Timeout) ->
- erlang:error(badarg, [S,Addr,Port,Opts,Timeout]).
+do_connect(_S, _Addr, _Port, _Opts, _Timeout, _ConnWait) ->
+ badarg.
diff --git a/lib/kernel/src/hipe_unified_loader.erl b/lib/kernel/src/hipe_unified_loader.erl
index 7e26d57ced..f289b8110d 100644
--- a/lib/kernel/src/hipe_unified_loader.erl
+++ b/lib/kernel/src/hipe_unified_loader.erl
@@ -103,10 +103,15 @@ load_native_code(Mod, Bin) when is_atom(Mod), is_binary(Bin) ->
case code:get_chunk(Bin, ChunkTag) of
undefined -> no_native;
NativeCode when is_binary(NativeCode) ->
- OldReferencesToPatch = patch_to_emu_step1(Mod),
- case load_module(Mod, NativeCode, Bin, OldReferencesToPatch) of
- bad_crc -> no_native;
- Result -> Result
+ erlang:system_flag(multi_scheduling, block),
+ try
+ OldReferencesToPatch = patch_to_emu_step1(Mod),
+ case load_module(Mod, NativeCode, Bin, OldReferencesToPatch) of
+ bad_crc -> no_native;
+ Result -> Result
+ end
+ after
+ erlang:system_flag(multi_scheduling, unblock)
end
end
catch
@@ -121,8 +126,17 @@ load_native_code(Mod, Bin) when is_atom(Mod), is_binary(Bin) ->
post_beam_load(Mod) when is_atom(Mod) ->
Architecture = erlang:system_info(hipe_architecture),
- try chunk_name(Architecture) of _ChunkTag -> patch_to_emu(Mod)
- catch _:_ -> ok
+ try chunk_name(Architecture) of
+ _ChunkTag ->
+ erlang:system_flag(multi_scheduling, block),
+ try
+ patch_to_emu(Mod)
+ after
+ erlang:system_flag(multi_scheduling, unblock)
+ end
+ catch
+ _:_ ->
+ ok
end.
%%========================================================================
@@ -141,6 +155,14 @@ version_check(Version, Mod) when is_atom(Mod) ->
-spec load_module(Mod, binary(), _) -> 'bad_crc' | {'module',Mod}
when is_subtype(Mod,atom()).
load_module(Mod, Bin, Beam) ->
+ erlang:system_flag(multi_scheduling, block),
+ try
+ load_module_nosmp(Mod, Bin, Beam)
+ after
+ erlang:system_flag(multi_scheduling, unblock)
+ end.
+
+load_module_nosmp(Mod, Bin, Beam) ->
load_module(Mod, Bin, Beam, []).
load_module(Mod, Bin, Beam, OldReferencesToPatch) ->
@@ -154,6 +176,14 @@ load_module(Mod, Bin, Beam, OldReferencesToPatch) ->
-spec load(Mod, binary()) -> 'bad_crc' | {'module',Mod}
when is_subtype(Mod,atom()).
load(Mod, Bin) ->
+ erlang:system_flag(multi_scheduling, block),
+ try
+ load_nosmp(Mod, Bin)
+ after
+ erlang:system_flag(multi_scheduling, unblock)
+ end.
+
+load_nosmp(Mod, Bin) ->
?debug_msg("********* Loading funs in module ~w *********\n",[Mod]),
%% Loading just some functions in a module; patch closures separately.
put(hipe_patch_closures, true),
diff --git a/lib/kernel/src/inet.erl b/lib/kernel/src/inet.erl
index b86aa1839e..eb503235d8 100644
--- a/lib/kernel/src/inet.erl
+++ b/lib/kernel/src/inet.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(inet).
@@ -45,6 +45,7 @@
%% resolve
-export([gethostbyname/1, gethostbyname/2, gethostbyname/3,
gethostbyname_tm/3]).
+-export([gethostbyname_string/2, gethostbyname_self/2]).
-export([gethostbyaddr/1, gethostbyaddr/2,
gethostbyaddr_tm/2]).
@@ -411,7 +412,17 @@ gethostbyname(Name,Family,Timeout) ->
Res.
gethostbyname_tm(Name,Family,Timer) ->
- gethostbyname_tm(Name,Family,Timer,inet_db:res_option(lookup)).
+ Opts0 = inet_db:res_option(lookup),
+ Opts =
+ case (lists:member(native, Opts0) orelse
+ lists:member(string, Opts0) orelse
+ lists:member(nostring, Opts0)) of
+ true ->
+ Opts0;
+ false ->
+ [string|Opts0]
+ end,
+ gethostbyname_tm(Name, Family, Timer, Opts).
-spec gethostbyaddr(Address :: string() | ip_address()) ->
@@ -850,75 +861,61 @@ getaddrs_tm(Address, Family, Timer) ->
%%
%% gethostbyname with option search
%%
-gethostbyname_tm(Name, Type, Timer, [dns | Opts]) ->
- Res = inet_res:gethostbyname_tm(Name, Type, Timer),
- case Res of
- {ok,_} -> Res;
- {error,timeout} -> Res;
- {error,formerr} -> {error,einval};
- {error,_} -> gethostbyname_tm(Name,Type,Timer,Opts)
- end;
-gethostbyname_tm(Name, Type, Timer, [file | Opts]) ->
- case inet_hosts:gethostbyname(Name, Type) of
- {error,formerr} -> {error,einval};
- {error,_} -> gethostbyname_tm(Name,Type,Timer,Opts);
- Result -> Result
- end;
-gethostbyname_tm(Name, Type, Timer, [yp | Opts]) ->
+gethostbyname_tm(Name, Type, Timer, [string|_]=Opts) ->
+ Result = gethostbyname_string(Name, Type),
+ gethostbyname_tm(Name, Type, Timer, Opts, Result);
+gethostbyname_tm(Name, Type, Timer, [dns|_]=Opts) ->
+ Result = inet_res:gethostbyname_tm(Name, Type, Timer),
+ gethostbyname_tm(Name, Type, Timer, Opts, Result);
+gethostbyname_tm(Name, Type, Timer, [file|_]=Opts) ->
+ Result = inet_hosts:gethostbyname(Name, Type),
+ gethostbyname_tm(Name, Type, Timer, Opts, Result);
+gethostbyname_tm(Name, Type, Timer, [yp|_]=Opts) ->
gethostbyname_tm_native(Name, Type, Timer, Opts);
-gethostbyname_tm(Name, Type, Timer, [nis | Opts]) ->
+gethostbyname_tm(Name, Type, Timer, [nis|_]=Opts) ->
gethostbyname_tm_native(Name, Type, Timer, Opts);
-gethostbyname_tm(Name, Type, Timer, [nisplus | Opts]) ->
+gethostbyname_tm(Name, Type, Timer, [nisplus|_]=Opts) ->
gethostbyname_tm_native(Name, Type, Timer, Opts);
-gethostbyname_tm(Name, Type, Timer, [wins | Opts]) ->
+gethostbyname_tm(Name, Type, Timer, [wins|_]=Opts) ->
gethostbyname_tm_native(Name, Type, Timer, Opts);
-gethostbyname_tm(Name, Type, Timer, [native | Opts]) ->
+gethostbyname_tm(Name, Type, Timer, [native|_]=Opts) ->
gethostbyname_tm_native(Name, Type, Timer, Opts);
-gethostbyname_tm(_, _, _, [no_default|_]) ->
- %% If the native resolver has failed, we should not bother
- %% to try to be smarter and parse the IP address here.
- {error,nxdomain};
-gethostbyname_tm(Name, Type, Timer, [_ | Opts]) ->
+gethostbyname_tm(Name, Type, Timer, [_|_]=Opts) ->
gethostbyname_tm(Name, Type, Timer, Opts);
-%% Last resort - parse the hostname as address
-gethostbyname_tm(Name, inet, _Timer, []) ->
- case inet_parse:ipv4_address(Name) of
- {ok,IP4} ->
- {ok,make_hostent(Name, [IP4], [], inet)};
- _ ->
- gethostbyname_self(Name)
- end;
-gethostbyname_tm(Name, inet6, _Timer, []) ->
- case inet_parse:ipv6_address(Name) of
- {ok,IP6} ->
- {ok,make_hostent(Name, [IP6], [], inet6)};
- _ ->
- %% Even if Name is a valid IPv4 address, we can't
- %% assume it's correct to return it on a IPv6
- %% format ( {0,0,0,0,0,16#ffff,?u16(A,B),?u16(C,D)} ).
- %% This host might not support IPv6.
- gethostbyname_self(Name)
+%% Make sure we always can look up our own hostname.
+gethostbyname_tm(Name, Type, Timer, []) ->
+ Result = gethostbyname_self(Name, Type),
+ gethostbyname_tm(Name, Type, Timer, [], Result).
+
+gethostbyname_tm(Name, Type, Timer, Opts, Result) ->
+ case Result of
+ {ok,_} ->
+ Result;
+ {error,formerr} ->
+ {error,einval};
+ {error,_} when Opts =:= [] ->
+ {error,nxdomain};
+ {error,_} ->
+ gethostbyname_tm(Name, Type, Timer, tl(Opts))
end.
gethostbyname_tm_native(Name, Type, Timer, Opts) ->
%% Fixme: add (global) timeout to gethost_native
- case inet_gethost_native:gethostbyname(Name, Type) of
- {error,formerr} -> {error,einval};
- {error,timeout} -> {error,timeout};
- {error,_} -> gethostbyname_tm(Name, Type, Timer, Opts++[no_default]);
- Result -> Result
- end.
+ Result = inet_gethost_native:gethostbyname(Name, Type),
+ gethostbyname_tm(Name, Type, Timer, Opts, Result).
-%% Make sure we always can look up our own hostname.
-gethostbyname_self(Name) ->
- Type = case inet_db:res_option(inet6) of
- true -> inet6;
- false -> inet
- end,
+
+
+gethostbyname_self(Name, Type) when is_atom(Name) ->
+ gethostbyname_self(atom_to_list(Name), Type);
+gethostbyname_self(Name, Type)
+ when is_list(Name), Type =:= inet;
+ is_list(Name), Type =:= inet6 ->
case inet_db:gethostname() of
Name ->
- {ok,make_hostent(Name, [translate_ip(loopback, Type)],
- [], Type)};
+ {ok,make_hostent(Name,
+ [translate_ip(loopback, Type)],
+ [], Type)};
Self ->
case inet_db:res_option(domain) of
"" -> {error,nxdomain};
@@ -931,7 +928,31 @@ gethostbyname_self(Name) ->
_ -> {error,nxdomain}
end
end
- end.
+ end;
+gethostbyname_self(_, _) ->
+ {error,formerr}.
+
+gethostbyname_string(Name, Type) when is_atom(Name) ->
+ gethostbyname_string(atom_to_list(Name), Type);
+gethostbyname_string(Name, Type)
+ when is_list(Name), Type =:= inet;
+ is_list(Name), Type =:= inet6 ->
+ case
+ case Type of
+ inet ->
+ inet_parse:ipv4_address(Name);
+ inet6 ->
+ %% XXX should we really translate IPv4 addresses here
+ %% even if we do not know if this host can do IPv6?
+ inet_parse:ipv6_address(Name)
+ end of
+ {ok,IP} ->
+ {ok,make_hostent(Name, [IP], [], Type)};
+ {error,einval} ->
+ {error,nxdomain}
+ end;
+gethostbyname_string(_, _) ->
+ {error,formerr}.
make_hostent(Name, Addrs, Aliases, Type) ->
#hostent{h_name = Name,
diff --git a/lib/kernel/src/inet_config.erl b/lib/kernel/src/inet_config.erl
index b5317f72f5..311e6bc9f9 100644
--- a/lib/kernel/src/inet_config.erl
+++ b/lib/kernel/src/inet_config.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(inet_config).
@@ -130,21 +130,25 @@ init() ->
{unix,_} ->
%% The Etc variable enables us to run tests with other
%% configuration files than the normal ones
- Etc = case os:getenv("ERL_INET_ETC_DIR") of
- false -> ?DEFAULT_ETC;
- _EtcDir ->
- _EtcDir
- end,
+ Etc =
+ case os:getenv("ERL_INET_ETC_DIR") of
+ false ->
+ ?DEFAULT_ETC;
+ _EtcDir ->
+ _EtcDir
+ end,
case inet_db:res_option(resolv_conf) of
undefined ->
- inet_db:set_resolv_conf(filename:join(Etc,
- ?DEFAULT_RESOLV));
+ inet_db:res_option(
+ resolv_conf_name,
+ filename:join(Etc, ?DEFAULT_RESOLV));
_ -> ok
end,
case inet_db:res_option(hosts_file) of
undefined ->
- inet_db:set_hosts_file(filename:join(Etc,
- ?DEFAULT_HOSTS));
+ inet_db:res_option(
+ hosts_file_name,
+ filename:join(Etc, ?DEFAULT_HOSTS));
_ -> ok
end;
_ -> ok
diff --git a/lib/kernel/src/inet_db.erl b/lib/kernel/src/inet_db.erl
index 211847014f..a05b380855 100644
--- a/lib/kernel/src/inet_db.erl
+++ b/lib/kernel/src/inet_db.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -425,7 +425,9 @@ res_optname(usevc) -> res_usevc;
res_optname(edns) -> res_edns;
res_optname(udp_payload_size) -> res_udp_payload_size;
res_optname(resolv_conf) -> res_resolv_conf;
+res_optname(resolv_conf_name) -> res_resolv_conf;
res_optname(hosts_file) -> res_hosts_file;
+res_optname(hosts_file_name) -> res_hosts_file;
res_optname(_) -> undefined.
res_check_option(nameserver, NSs) -> %% Legacy
@@ -458,9 +460,15 @@ res_check_option(udp_payload_size, S) when is_integer(S), S >= 512 -> true;
res_check_option(resolv_conf, "") -> true;
res_check_option(resolv_conf, F) ->
res_check_option_absfile(F);
+res_check_option(resolv_conf_name, "") -> true;
+res_check_option(resolv_conf_name, F) ->
+ res_check_option_absfile(F);
res_check_option(hosts_file, "") -> true;
res_check_option(hosts_file, F) ->
res_check_option_absfile(F);
+res_check_option(hosts_file_name, "") -> true;
+res_check_option(hosts_file_name, F) ->
+ res_check_option_absfile(F);
res_check_option(_, _) -> false.
res_check_option_absfile(F) ->
@@ -503,7 +511,7 @@ res_update_hosts() ->
res_update(res_hosts_file, res_hosts_file_tm, res_hosts_file_info,
set_hosts_file_tm, fun set_hosts_file/1).
-res_update(Tag, TagTm, TagInfo, CallTag, SetFun) ->
+res_update(Tag, TagTm, TagInfo, TagSetTm, SetFun) ->
case db_get(TagTm) of
undefined -> ok;
TM ->
@@ -522,12 +530,12 @@ res_update(Tag, TagTm, TagInfo, CallTag, SetFun) ->
atime = undefined},
case db_get(TagInfo) of
Finfo ->
- call({CallTag, Now});
+ call({TagSetTm, Now});
_ ->
SetFun(File)
end;
_ ->
- call({CallTag, Now}),
+ call({TagSetTm, Now}),
error
end
end;
@@ -974,37 +982,55 @@ handle_call(Request, From, #state{db=Db}=State) ->
{reply, error, State}
end;
+ {res_set, hosts_file_name=Option, Fname} ->
+ handle_set_file(
+ Option, Fname, res_hosts_file_tm, res_hosts_file_info,
+ undefined, From, State);
+ {res_set, resolv_conf_name=Option, Fname} ->
+ handle_set_file(
+ Option, Fname, res_resolv_conf_tm, res_resolv_conf_info,
+ undefined, From, State);
+
{res_set, hosts_file=Option, Fname} ->
- handle_set_file(Option, Fname,
- res_hosts_file_tm, res_hosts_file_info,
- fun (Bin) ->
- case inet_parse:hosts(Fname,
- {chars,Bin}) of
- {ok,Opts} ->
- [{load_hosts_file,Opts}];
- _ -> error
- end
- end,
- From, State);
+ handle_set_file(
+ Option, Fname, res_hosts_file_tm, res_hosts_file_info,
+ fun (Bin) ->
+ case inet_parse:hosts(
+ Fname, {chars,Bin}) of
+ {ok,Opts} ->
+ [{load_hosts_file,Opts}];
+ _ -> error
+ end
+ end,
+ From, State);
%%
{res_set, resolv_conf=Option, Fname} ->
- handle_set_file(Option, Fname,
- res_resolv_conf_tm, res_resolv_conf_info,
- fun (Bin) ->
- case inet_parse:resolv(Fname,
- {chars,Bin}) of
- {ok,Opts} ->
- [del_ns,
- clear_search,
- clear_cache
- |[Opt ||
- {T,_}=Opt <- Opts,
- (T =:= nameserver orelse
- T =:= search)]];
- _ -> error
- end
- end,
- From, State);
+ handle_set_file(
+ Option, Fname, res_resolv_conf_tm, res_resolv_conf_info,
+ fun (Bin) ->
+ case inet_parse:resolv(
+ Fname, {chars,Bin}) of
+ {ok,Opts} ->
+ Search =
+ lists:foldl(
+ fun ({search,L}, _) ->
+ L;
+ ({domain,""}, S) ->
+ S;
+ ({domain,D}, _) ->
+ [D];
+ (_, S) ->
+ S
+ end, [], Opts),
+ [del_ns,
+ clear_search,
+ clear_cache,
+ {search,Search}
+ |[Opt || {nameserver,_}=Opt <- Opts]];
+ _ -> error
+ end
+ end,
+ From, State);
%%
{res_set, Opt, Value} ->
case res_optname(Opt) of
@@ -1156,6 +1182,12 @@ handle_set_file(Option, Fname, TagTm, TagInfo, ParseFun, From,
ets:delete(Db, TagInfo),
ets:delete(Db, TagTm),
handle_set_file(ParseFun, <<>>, From, State);
+ true when ParseFun =:= undefined ->
+ File = filename:flatten(Fname),
+ ets:insert(Db, {res_optname(Option), File}),
+ ets:insert(Db, {TagInfo, undefined}),
+ ets:insert(Db, {TagTm, 0}),
+ {reply,ok,State};
true ->
File = filename:flatten(Fname),
ets:insert(Db, {res_optname(Option), File}),
@@ -1178,7 +1210,8 @@ handle_set_file(Option, Fname, TagTm, TagInfo, ParseFun, From,
handle_set_file(ParseFun, Bin, From, State) ->
case ParseFun(Bin) of
- error -> {reply,error,State};
+ error ->
+ {reply,error,State};
Opts ->
handle_rc_list(Opts, From, State)
end.
diff --git a/lib/kernel/src/inet_gethost_native.erl b/lib/kernel/src/inet_gethost_native.erl
index abdbe2b8cf..fabe9bf8b3 100644
--- a/lib/kernel/src/inet_gethost_native.erl
+++ b/lib/kernel/src/inet_gethost_native.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1998-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1998-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(inet_gethost_native).
@@ -443,19 +443,23 @@ gethostbyname(Name) ->
gethostbyname(Name, inet).
gethostbyname(Name, inet) when is_list(Name) ->
- getit(?OP_GETHOSTBYNAME, ?PROTO_IPV4, Name);
+ getit(?OP_GETHOSTBYNAME, ?PROTO_IPV4, Name, Name);
gethostbyname(Name, inet6) when is_list(Name) ->
- getit(?OP_GETHOSTBYNAME, ?PROTO_IPV6, Name);
+ getit(?OP_GETHOSTBYNAME, ?PROTO_IPV6, Name, Name);
gethostbyname(Name, Type) when is_atom(Name) ->
gethostbyname(atom_to_list(Name), Type);
gethostbyname(_, _) ->
{error, formerr}.
-gethostbyaddr({A,B,C,D}) when ?VALID_V4(A), ?VALID_V4(B), ?VALID_V4(C), ?VALID_V4(D) ->
- getit(?OP_GETHOSTBYADDR, ?PROTO_IPV4, <<A,B,C,D>>);
-gethostbyaddr({A,B,C,D,E,F,G,H}) when ?VALID_V6(A), ?VALID_V6(B), ?VALID_V6(C), ?VALID_V6(D),
- ?VALID_V6(E), ?VALID_V6(F), ?VALID_V6(G), ?VALID_V6(H) ->
- getit(?OP_GETHOSTBYADDR, ?PROTO_IPV6, <<A:16,B:16,C:16,D:16,E:16,F:16,G:16,H:16>>);
+gethostbyaddr({A,B,C,D}=Addr)
+ when ?VALID_V4(A), ?VALID_V4(B), ?VALID_V4(C), ?VALID_V4(D) ->
+ getit(?OP_GETHOSTBYADDR, ?PROTO_IPV4, <<A,B,C,D>>, Addr);
+gethostbyaddr({A,B,C,D,E,F,G,H}=Addr)
+ when ?VALID_V6(A), ?VALID_V6(B), ?VALID_V6(C), ?VALID_V6(D),
+ ?VALID_V6(E), ?VALID_V6(F), ?VALID_V6(G), ?VALID_V6(H) ->
+ getit
+ (?OP_GETHOSTBYADDR, ?PROTO_IPV6,
+ <<A:16,B:16,C:16,D:16,E:16,F:16,G:16,H:16>>, Addr);
gethostbyaddr(Addr) when is_list(Addr) ->
case inet_parse:address(Addr) of
{ok, IP} -> gethostbyaddr(IP);
@@ -466,30 +470,30 @@ gethostbyaddr(Addr) when is_atom(Addr) ->
gethostbyaddr(_) -> {error, formerr}.
control({debug_level, Level}) when is_integer(Level) ->
- getit(?OP_CONTROL, ?SETOPT_DEBUG_LEVEL, <<Level:32>>);
+ getit(?OP_CONTROL, ?SETOPT_DEBUG_LEVEL, <<Level:32>>, undefined);
control(soft_restart) ->
- getit(restart_port);
+ getit(restart_port, undefined);
control(_) -> {error, formerr}.
-getit(Op, Proto, Data) ->
- getit({Op, Proto, Data}).
+getit(Op, Proto, Data, DefaultName) ->
+ getit({Op, Proto, Data}, DefaultName).
-getit(Req) ->
+getit(Req, DefaultName) ->
Pid = ensure_started(),
Ref = make_ref(),
Pid ! {{self(),Ref}, Req},
receive
{Ref, {ok,BinHostent}} ->
- parse_address(BinHostent);
- {Ref, Error} ->
- Error
+ parse_address(BinHostent, DefaultName);
+ {Ref, Result} ->
+ Result
after 5000 ->
Ref2 = erlang:monitor(process,Pid),
Res2 = receive
{Ref, {ok,BinHostent}} ->
- parse_address(BinHostent);
- {Ref, Error} ->
- Error;
+ parse_address(BinHostent, DefaultName);
+ {Ref, Result} ->
+ Result;
{'DOWN', Ref2, process,
Pid, Reason} ->
{error, Reason}
@@ -546,21 +550,23 @@ ensure_started() ->
Pid
end.
-parse_address(BinHostent) ->
+parse_address(BinHostent, DefaultName) ->
case catch
begin
case BinHostent of
<<?UNIT_ERROR, Errstring/binary>> ->
{error, list_to_atom(listify(Errstring))};
<<?UNIT_IPV4, Naddr:32, T0/binary>> ->
- {T1,Addresses} = pick_addresses_v4(Naddr, T0),
- [Name | Names] = pick_names(T1),
+ {T1, Addresses} = pick_addresses_v4(Naddr, T0),
+ {Name, Names} =
+ expand_default_name(pick_names(T1), DefaultName),
{ok, #hostent{h_addr_list = Addresses, h_addrtype = inet,
h_aliases = Names, h_length = ?UNIT_IPV4,
h_name = Name}};
<<?UNIT_IPV6, Naddr:32, T0/binary>> ->
- {T1,Addresses} = pick_addresses_v6(Naddr, T0),
- [Name | Names] = pick_names(T1),
+ {T1, Addresses} = pick_addresses_v6(Naddr, T0),
+ {Name, Names} =
+ expand_default_name(pick_names(T1), DefaultName),
{ok, #hostent{h_addr_list = Addresses, h_addrtype = inet6,
h_aliases = Names, h_length = ?UNIT_IPV6,
h_name = Name}};
@@ -573,7 +579,15 @@ parse_address(BinHostent) ->
Normal ->
Normal
end.
-
+
+expand_default_name([], DefaultName) when is_list(DefaultName) ->
+ {DefaultName, []};
+expand_default_name([], DefaultName) when is_tuple(DefaultName) ->
+ {inet_parse:ntoa(DefaultName), []};
+expand_default_name([Name|Names], DefaultName)
+ when is_list(DefaultName); is_tuple(DefaultName) ->
+ {Name, Names}.
+
listify(Bin) ->
N = byte_size(Bin) - 1,
<<Bin2:N/binary, Ch>> = Bin,
diff --git a/lib/kernel/src/inet_parse.erl b/lib/kernel/src/inet_parse.erl
index 62d44fb723..3bd5fa0958 100644
--- a/lib/kernel/src/inet_parse.erl
+++ b/lib/kernel/src/inet_parse.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(inet_parse).
@@ -34,6 +34,7 @@
-export([nsswitch_conf/1, nsswitch_conf/2]).
-export([ipv4_address/1, ipv6_address/1]).
+-export([ipv4strict_address/1, ipv6strict_address/1]).
-export([address/1]).
-export([visible_string/1, domain/1]).
-export([ntoa/1, dots/1]).
@@ -456,17 +457,15 @@ is_dom2(_) ->
%%
-%% Test ipv4 address or ipv6 address
+%% Parse ipv4 address or ipv6 address
%% Return {ok, Address} | {error, Reason}
%%
address(Cs) when is_list(Cs) ->
case ipv4_address(Cs) of
- {ok,IP} -> {ok,IP};
+ {ok,IP} ->
+ {ok,IP};
_ ->
- case ipv6_address(Cs) of
- {ok, IP} -> {ok, IP};
- Error -> Error
- end
+ ipv6strict_address(Cs)
end;
address(_) ->
{error, einval}.
@@ -477,49 +476,145 @@ address(_) ->
%% d1.d2.d4
%% d1.d4
%% d4
+%% Any d may be octal, hexadecimal or decimal by C language standards.
+%% d4 fills all LSB bytes. This is legacy behaviour from Solaris
+%% and FreeBSD. And partly Linux that behave the same except
+%% it does not accept hexadecimal.
%%
%% Return {ok, IP} | {error, einval}
%%
ipv4_address(Cs) ->
- case catch ipv4_addr(Cs) of
- {'EXIT',_} -> {error,einval};
- Addr -> {ok,Addr}
+ try ipv4_addr(Cs) of
+ Addr ->
+ {ok,Addr}
+ catch
+ error:badarg ->
+ {error,einval}
end.
-ipv4_addr(Cs) ->
- ipv4_addr(d3(Cs), []).
+ipv4_addr(Cs) ->
+ case ipv4_addr(Cs, []) of
+ [D] when D < (1 bsl 32) ->
+ <<D1,D2,D3,D4>> = <<D:32>>,
+ {D1,D2,D3,D4};
+ [D,D1] when D < (1 bsl 24), D1 < 256 ->
+ <<D2,D3,D4>> = <<D:24>>,
+ {D1,D2,D3,D4};
+ [D,D2,D1] when D < (1 bsl 16), (D2 bor D1) < 256 ->
+ <<D3,D4>> = <<D:16>>,
+ {D1,D2,D3,D4};
+ [D4,D3,D2,D1] when (D4 bor D3 bor D2 bor D1) < 256 ->
+ {D1,D2,D3,D4};
+ _ ->
+ erlang:error(badarg)
+ end.
-ipv4_addr({Cs0,[]}, A) when length(A) =< 3 ->
- case [tod(Cs0)|A] of
- [D4,D3,D2,D1] ->
+ipv4_addr([_|_], [_,_,_,_]) ->
+ %% Early bailout for extra characters
+ erlang:error(badarg);
+ipv4_addr("0x"++Cs, Ds) ->
+ ipv4_addr(strip0(Cs), Ds, [], 16, 8);
+ipv4_addr("0X"++Cs, Ds) ->
+ ipv4_addr(strip0(Cs), Ds, [], 16, 8);
+ipv4_addr("0"++Cs, Ds) ->
+ ipv4_addr(strip0(Cs), Ds, [$0], 8, 11);
+ipv4_addr(Cs, Ds) when is_list(Cs) ->
+ ipv4_addr(Cs, Ds, [], 10, 10).
+
+ipv4_addr(Cs0, Ds, Rs, Base, N) ->
+ case ipv4_field(Cs0, N, Rs, Base) of
+ {D,""} ->
+ [D|Ds];
+ {D,[$.|[_|_]=Cs]} ->
+ ipv4_addr(Cs, [D|Ds]);
+ {_,_} ->
+ erlang:error(badarg)
+ end.
+
+strip0("0"++Cs) ->
+ strip0(Cs);
+strip0(Cs) when is_list(Cs) ->
+ Cs.
+
+
+%%
+%% Parse IPv4 strict dotted decimal address, no leading zeros:
+%% d1.d2.d3.d4
+%%
+%% Return {ok, IP} | {error, einval}
+%%
+ipv4strict_address(Cs) ->
+ try ipv4strict_addr(Cs) of
+ Addr ->
+ {ok,Addr}
+ catch
+ error:badarg ->
+ {error,einval}
+ end.
+
+ipv4strict_addr(Cs) ->
+ case ipv4strict_addr(Cs, []) of
+ [D4,D3,D2,D1] when (D4 bor D3 bor D2 bor D1) < 256 ->
{D1,D2,D3,D4};
- [D4,D2,D1] ->
- {D1,D2,0,D4};
- [D4,D1] ->
- {D1,0,0,D4};
- [D4] ->
- {0,0,0,D4}
- end;
-ipv4_addr({Cs0,"."++Cs1}, A) when length(A) =< 2 ->
- ipv4_addr(d3(Cs1), [tod(Cs0)|A]).
+ _ ->
+ erlang:error(badarg)
+ end.
+
+ipv4strict_addr([_|_], [_,_,_,_]) ->
+ %% Early bailout for extra characters
+ erlang:error(badarg);
+ipv4strict_addr("0", Ds) ->
+ [0|Ds];
+ipv4strict_addr("0."++Cs, Ds) ->
+ ipv4strict_addr(Cs, [0|Ds]);
+ipv4strict_addr(Cs0, Ds) when is_list(Cs0) ->
+ case ipv4_field(Cs0, 3, [], 10) of
+ {D,""} ->
+ [D|Ds];
+ {D,[$.|[_|_]=Cs]} ->
+ ipv4strict_addr(Cs, [D|Ds]);
+ {_,_} ->
+ erlang:error(badarg)
+ end.
+
-d3(Cs) -> d3(Cs, []).
-d3([C|Cs], R) when C >= $0, C =< $9, length(R) =< 2 ->
- d3(Cs, [C|R]);
-d3(Cs, [_|_]=R) ->
- {lists:reverse(R),Cs}.
+ipv4_field("", _, Rs, Base) ->
+ {ipv4_field(Rs, Base),""};
+ipv4_field("."++_=Cs, _, Rs, Base) ->
+ {ipv4_field(Rs, Base),Cs};
+ipv4_field("0"++_, _, [], _) ->
+ erlang:error(badarg);
+ipv4_field([C|Cs], N, Rs, Base) when N > 0 ->
+ ipv4_field(Cs, N-1, [C|Rs], Base);
+ipv4_field(Cs, _, _, _) when is_list(Cs) ->
+ erlang:error(badarg).
+
+ipv4_field(Rs, Base) ->
+ V = erlang:list_to_integer(lists:reverse(Rs), Base),
+ if V < 0 ->
+ erlang:error(badarg);
+ true ->
+ V
+ end.
-tod(Cs) ->
- case erlang:list_to_integer(Cs) of
- D when D >= 0, D =< 255 ->
- D;
+
+
+%%
+%% Forgiving IPv6 address
+%%
+%% Accepts IPv4 address and returns it as a IPv4 compatible IPv6 address
+%%
+ipv6_address(Cs) ->
+ case ipv4_address(Cs) of
+ {ok,{D1,D2,D3,D4}} ->
+ {ok,{0,0,0,0,0,16#ffff,(D1 bsl 8) bor D2,(D3 bsl 8) bor D4}};
_ ->
- erlang:error(badarg, [Cs])
+ ipv6strict_address(Cs)
end.
%%
-%% Parse IPv6 address:
+%% Parse IPv6 address according to RFC 4291:
%% x1:x2:x3:x4:x5:x6:x7:x8
%% x1:x2::x7:x8
%% ::x7:x8
@@ -530,77 +625,89 @@ tod(Cs) ->
%% ::x5:x6:d7a.d7b.d8a.d8b
%% x1:x2::d7a.d7b.d8a.d8b
%% ::d7a.d7b.d8a.d8b
+%% etc
%%
%% Return {ok, IP} | {error, einval}
%%
-ipv6_address(Cs) ->
- case catch ipv6_addr(Cs) of
- {'EXIT',_} -> {error,einval};
- Addr -> {ok,Addr}
+ipv6strict_address(Cs) ->
+ try ipv6_addr(Cs) of
+ Addr ->
+ {ok,Addr}
+ catch
+ error:badarg ->
+ {error,einval}
end.
ipv6_addr("::") ->
- ipv6_addr_done([], []);
+ ipv6_addr_done([], [], 0);
ipv6_addr("::"++Cs) ->
- ipv6_addr(x4(Cs), [], []);
+ ipv6_addr(hex(Cs), [], [], 0);
ipv6_addr(Cs) ->
- ipv6_addr(x4(Cs), []).
+ ipv6_addr(hex(Cs), [], 0).
%% Before "::"
-ipv6_addr({Cs0,[]}, A) when length(A) =:= 7 ->
- ipv6_addr_done([tox(Cs0)|A]);
-ipv6_addr({Cs0,"::"}, A) when length(A) =< 6 ->
- ipv6_addr_done([tox(Cs0)|A], []);
-ipv6_addr({Cs0,"::"++Cs1}, A) when length(A) =< 5 ->
- ipv6_addr(x4(Cs1), [tox(Cs0)|A], []);
-ipv6_addr({Cs0,":"++Cs1}, A) when length(A) =< 6 ->
- ipv6_addr(x4(Cs1), [tox(Cs0)|A]);
-ipv6_addr({Cs0,"."++Cs1}, A) when length(A) =:= 6 ->
- ipv6_addr(d3(Cs1), A, [], [tod(Cs0)]).
+ipv6_addr({Cs0,[]}, A, N) when N == 7 ->
+ ipv6_addr_done([hex_to_int(Cs0)|A]);
+ipv6_addr({Cs0,"::"}, A, N) when N =< 6 ->
+ ipv6_addr_done([hex_to_int(Cs0)|A], [], N+1);
+ipv6_addr({Cs0,"::"++Cs1}, A, N) when N =< 5 ->
+ ipv6_addr(hex(Cs1), [hex_to_int(Cs0)|A], [], N+1);
+ipv6_addr({Cs0,":"++Cs1}, A, N) when N =< 6 ->
+ ipv6_addr(hex(Cs1), [hex_to_int(Cs0)|A], N+1);
+ipv6_addr({Cs0,"."++_=Cs1}, A, N) when N == 6 ->
+ ipv6_addr_done(A, [], N, ipv4strict_addr(Cs0++Cs1));
+ipv6_addr(_, _, _) ->
+ erlang:error(badarg).
%% After "::"
-ipv6_addr({Cs0,[]}, A, B) when length(A)+length(B) =< 6 ->
- ipv6_addr_done(A, [tox(Cs0)|B]);
-ipv6_addr({Cs0,":"++Cs1}, A, B) when length(A)+length(B) =< 5 ->
- ipv6_addr(x4(Cs1), A, [tox(Cs0)|B]);
-ipv6_addr({Cs0,"."++Cs1}, A, B) when length(A)+length(B) =< 5 ->
- ipv6_addr(x4(Cs1), A, B, [tod(Cs0)]).
+ipv6_addr({Cs0,[]}, A, B, N) when N =< 6 ->
+ ipv6_addr_done(A, [hex_to_int(Cs0)|B], N+1);
+ipv6_addr({Cs0,":"++Cs1}, A, B, N) when N =< 5 ->
+ ipv6_addr(hex(Cs1), A, [hex_to_int(Cs0)|B], N+1);
+ipv6_addr({Cs0,"."++_=Cs1}, A, B, N) when N =< 5 ->
+ ipv6_addr_done(A, B, N, ipv4strict_addr(Cs0++Cs1));
+ipv6_addr(_, _, _, _) ->
+ erlang:error(badarg).
-%% After "."
-ipv6_addr({Cs0,[]}, A, B, C) when length(C) =:= 3 ->
- ipv6_addr_done(A, B, [tod(Cs0)|C]);
-ipv6_addr({Cs0,"."++Cs1}, A, B, C) when length(C) =< 2 ->
- ipv6_addr(d3(Cs1), A, B, [tod(Cs0)|C]).
+ipv6_addr_done(Ar, Br, N, {D1,D2,D3,D4}) ->
+ ipv6_addr_done(Ar, [((D3 bsl 8) bor D4),((D1 bsl 8) bor D2)|Br], N+2).
-ipv6_addr_done(Ar, Br, [D4,D3,D2,D1]) ->
- ipv6_addr_done(Ar, [((D3 bsl 8) bor D4),((D1 bsl 8) bor D2)|Br]).
-
-ipv6_addr_done(Ar, Br) ->
- ipv6_addr_done(Br++dup(8-length(Ar)-length(Br), 0, Ar)).
+ipv6_addr_done(Ar, Br, N) ->
+ ipv6_addr_done(Br++dup(8-N, 0, Ar)).
ipv6_addr_done(Ar) ->
list_to_tuple(lists:reverse(Ar)).
-x4(Cs) -> x4(Cs, []).
-
-x4([C|Cs], R) when C >= $0, C =< $9, length(R) =< 3 ->
- x4(Cs, [C|R]);
-x4([C|Cs], R) when C >= $a, C =< $f, length(R) =< 3 ->
- x4(Cs, [C|R]);
-x4([C|Cs], R) when C >= $A, C =< $F, length(R) =< 3 ->
- x4(Cs, [C|R]);
-x4(Cs, [_|_]=R) ->
- {lists:reverse(R),Cs}.
-
-tox(Cs) ->
- erlang:list_to_integer(Cs, 16).
+%% Collect Hex digits
+hex(Cs) -> hex(Cs, []).
+%%
+hex([C|Cs], R) when C >= $0, C =< $9 ->
+ hex(Cs, [C|R]);
+hex([C|Cs], R) when C >= $a, C =< $f ->
+ hex(Cs, [C|R]);
+hex([C|Cs], R) when C >= $A, C =< $F ->
+ hex(Cs, [C|R]);
+hex(Cs, [_|_]=R) when is_list(Cs) ->
+ {lists:reverse(R),Cs};
+hex(_, _) ->
+ erlang:error(badarg).
+
+%% Hex string to integer
+hex_to_int(Cs0) ->
+ case strip0(Cs0) of
+ Cs when length(Cs) =< 4 ->
+ erlang:list_to_integer("0"++Cs, 16);
+ _ ->
+ erlang:error(badarg)
+ end.
+%% Dup onto head of existing list
dup(0, _, L) ->
L;
dup(N, E, L) when is_integer(N), N >= 1 ->
- dup(N-1, E, [E|L]);
-dup(N, E, L) ->
- erlang:error(badarg, [N,E,L]).
+ dup(N-1, E, [E|L]).
+
+
%% Convert IPv4 adress to ascii
%% Convert IPv6 / IPV4 adress to ascii (plain format)
@@ -674,7 +781,7 @@ separate(_E, [H], R) ->
lists:reverse(R, [H]).
%% convert to A.B decimal form
-dig_to_dec(0) -> [$0,$.,$0];
+dig_to_dec(0) -> "0.0";
dig_to_dec(X) ->
integer_to_list((X bsr 8) band 16#ff) ++ "." ++
integer_to_list(X band 16#ff).
diff --git a/lib/kernel/src/inet_sctp.erl b/lib/kernel/src/inet_sctp.erl
index 30c0e85dd9..795bf83807 100644
--- a/lib/kernel/src/inet_sctp.erl
+++ b/lib/kernel/src/inet_sctp.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2007-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2007-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%% SCTP protocol contribution by Leonid Timochouk and Serge Aleynikov.
@@ -64,16 +64,22 @@ close(S) ->
listen(S, Flag) ->
prim_inet:listen(S, Flag).
+%% A non-blocking connect is implemented when the initial call is to
+%% gen_sctp:connect_init which passes the value nowait as the Timer
connect(S, Addr, Port, Opts, Timer) ->
case prim_inet:chgopts(S, Opts) of
ok ->
case prim_inet:getopt(S, active) of
{ok,Active} ->
- Timeout = inet:timeout(Timer),
+ Timeout = if Timer =:= nowait ->
+ infinity; %% don't start driver timer in inet_drv
+ true ->
+ inet:timeout(Timer)
+ end,
case prim_inet:connect(S, Addr, Port, Timeout) of
- ok ->
+ ok when Timer =/= nowait ->
connect_get_assoc(S, Addr, Port, Active, Timer);
- Err1 -> Err1
+ OkOrErr1 -> OkOrErr1
end;
Err2 -> Err2
end;
@@ -89,10 +95,10 @@ connect(S, Addr, Port, Opts, Timer) ->
%% connect_get_assoc/5 below mistakes it for an invalid response
%% for a socket in {active,false} or {active,once} modes.
%%
-%% In {active,true} mode it probably gets right, but it is
-%% a blocking connect that is implemented even for {active,true},
-%% and that may be a shortcoming. A non-blocking connect
-%% would be nice to have.
+%% In {active,true} mode the window of time for the race is smaller,
+%% but it is possible and also it is a blocking connect that is
+%% implemented even for {active,true}, and that may be a
+%% shortcoming.
connect_get_assoc(S, Addr, Port, false, Timer) ->
case recv(S, inet:timeout(Timer)) of
diff --git a/lib/kernel/src/user.erl b/lib/kernel/src/user.erl
index edf650ec59..17dc5a56a2 100644
--- a/lib/kernel/src/user.erl
+++ b/lib/kernel/src/user.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(user).
@@ -698,7 +698,11 @@ get_chars_more(State, M, F, Xa, Port, Q, Fmt) ->
prompt(_Port, '') -> ok;
prompt(Port, Prompt) ->
- put_port(io_lib:format_prompt(Prompt), Port).
+ put_port(wrap_characters_to_binary(io_lib:format_prompt(Prompt),unicode,
+ case get(unicode) of
+ true -> unicode;
+ _ -> latin1
+ end), Port).
%% Convert error code to make it look as before
err_func(io_lib, get_until, {_,F,_}) ->
diff --git a/lib/kernel/test/Makefile b/lib/kernel/test/Makefile
index ffad998d96..293c368e2a 100644
--- a/lib/kernel/test/Makefile
+++ b/lib/kernel/test/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1997-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1997-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
include $(ERL_TOP)/make/target.mk
@@ -116,7 +116,7 @@ EBIN = .
make_emakefile:
$(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) -o$(EBIN) '*_SUITE_make' \
- >> $(EMAKEFILE)
+ > $(EMAKEFILE)
$(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) \
>> $(EMAKEFILE)
diff --git a/lib/kernel/test/bif_SUITE.erl b/lib/kernel/test/bif_SUITE.erl
index c78d82659f..ae2a3a08ff 100644
--- a/lib/kernel/test/bif_SUITE.erl
+++ b/lib/kernel/test/bif_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1998-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1998-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(bif_SUITE).
@@ -66,7 +66,7 @@ spawn_opt_tests(suite) ->
spawn1(doc) -> ["Test spawn/1"];
spawn1(suite) ->
[];
-spawn1(Config) when list(Config) ->
+spawn1(Config) when is_list(Config) ->
?line Node = node(),
?line Parent = self(),
?line {_, _, FA, _} = fetch_proc_vals(self()),
@@ -83,7 +83,7 @@ spawn1(Config) when list(Config) ->
spawn2(doc) -> ["Test spawn/2"];
spawn2(suite) ->
[];
-spawn2(Config) when list(Config) ->
+spawn2(Config) when is_list(Config) ->
?line {ok, Node} = start_node(spawn2),
?line Parent = self(),
@@ -105,7 +105,7 @@ spawn2(Config) when list(Config) ->
spawn3(doc) -> ["Test spawn/3"];
spawn3(suite) ->
[];
-spawn3(Config) when list(Config) ->
+spawn3(Config) when is_list(Config) ->
?line Node = node(),
?line Parent = self(),
@@ -127,7 +127,7 @@ spawn3(Config) when list(Config) ->
spawn4(doc) -> ["Test spawn/4"];
spawn4(suite) ->
[];
-spawn4(Config) when list(Config) ->
+spawn4(Config) when is_list(Config) ->
?line {ok, Node} = start_node(spawn4),
?line Parent = self(),
@@ -154,7 +154,7 @@ spawn4(Config) when list(Config) ->
spawn_link1(doc) -> ["Test spawn_link/1"];
spawn_link1(suite) ->
[];
-spawn_link1(Config) when list(Config) ->
+spawn_link1(Config) when is_list(Config) ->
?line Node = node(),
?line Parent = self(),
?line {_, _, FA, _} = fetch_proc_vals(self()),
@@ -171,7 +171,7 @@ spawn_link1(Config) when list(Config) ->
spawn_link2(doc) -> ["Test spawn_link/2"];
spawn_link2(suite) ->
[];
-spawn_link2(Config) when list(Config) ->
+spawn_link2(Config) when is_list(Config) ->
?line {ok, Node} = start_node(spawn_link2),
?line Parent = self(),
@@ -192,7 +192,7 @@ spawn_link2(Config) when list(Config) ->
spawn_link3(doc) -> ["Test spawn_link/3"];
spawn_link3(suite) ->
[];
-spawn_link3(Config) when list(Config) ->
+spawn_link3(Config) when is_list(Config) ->
?line Node = node(),
?line Parent = self(),
@@ -214,7 +214,7 @@ spawn_link3(Config) when list(Config) ->
spawn_link4(doc) -> ["Test spawn_link/4"];
spawn_link4(suite) ->
[];
-spawn_link4(Config) when list(Config) ->
+spawn_link4(Config) when is_list(Config) ->
?line {ok, Node} = start_node(spawn_link4),
?line Parent = self(),
@@ -240,7 +240,7 @@ spawn_link4(Config) when list(Config) ->
spawn_opt2(doc) -> ["Test spawn_opt/2"];
spawn_opt2(suite) ->
[];
-spawn_opt2(Config) when list(Config) ->
+spawn_opt2(Config) when is_list(Config) ->
?line Node = node(),
?line Parent = self(),
?line {_, _, FA, _} = fetch_proc_vals(self()),
@@ -275,7 +275,7 @@ spawn_opt2(Config) when list(Config) ->
spawn_opt3(doc) -> ["Test spawn_opt/3"];
spawn_opt3(suite) ->
[];
-spawn_opt3(Config) when list(Config) ->
+spawn_opt3(Config) when is_list(Config) ->
?line {ok, Node} = start_node(spawn_opt3),
?line Parent = self(),
?line {_, _, FA, _} = fetch_proc_vals(self()),
@@ -312,7 +312,7 @@ spawn_opt3(Config) when list(Config) ->
spawn_opt4(doc) -> ["Test spawn_opt/4"];
spawn_opt4(suite) ->
[];
-spawn_opt4(Config) when list(Config) ->
+spawn_opt4(Config) when is_list(Config) ->
?line Node = node(),
?line Parent = self(),
?line {_, _, FA, _} = fetch_proc_vals(self()),
@@ -352,7 +352,7 @@ spawn_opt4(Config) when list(Config) ->
spawn_opt5(doc) -> ["Test spawn_opt/5"];
spawn_opt5(suite) ->
[];
-spawn_opt5(Config) when list(Config) ->
+spawn_opt5(Config) when is_list(Config) ->
?line {ok, Node} = start_node(spawn_opt5),
?line Parent = self(),
?line {_, _, FA, _} = fetch_proc_vals(self()),
@@ -396,7 +396,7 @@ spawn_failures(doc) ->
["Test failure behavior of spawn bifs"];
spawn_failures(suite) ->
[];
-spawn_failures(Config) when list(Config) ->
+spawn_failures(Config) when is_list(Config) ->
?line ThisNode = node(),
?line {ok, Node} = start_node(spawn_remote_failure),
@@ -556,7 +556,7 @@ wilderness(doc) ->
"wilderness of the heap are interpreted correct by the emulator "];
wilderness(suite) ->
[];
-wilderness(Config) when list(Config) ->
+wilderness(Config) when is_list(Config) ->
?line Dog = ?t:timetrap(?default_timeout),
?line OKParams = {512, 8},
?line Alloc = erlang:system_info(allocator),
@@ -604,11 +604,11 @@ run_wilderness_test({Set_tt, Set_tp}, {Exp_tt, Exp_tp}) ->
end,
stop_node(Node).
-to_string(X) when integer(X) ->
+to_string(X) when is_integer(X) ->
integer_to_list(X);
-to_string(X) when atom(X) ->
+to_string(X) when is_atom(X) ->
atom_to_list(X);
-to_string(X) when list(X) ->
+to_string(X) when is_list(X) ->
X.
get_nodenames(N, T) ->
diff --git a/lib/kernel/test/cleanup.erl b/lib/kernel/test/cleanup.erl
index 6e1a1edeac..831ceba8f5 100644
--- a/lib/kernel/test/cleanup.erl
+++ b/lib/kernel/test/cleanup.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(cleanup).
@@ -31,7 +31,7 @@ cleanup(_) ->
?line case nodes() of
[] ->
ok;
- Nodes when list(Nodes) ->
+ Nodes when is_list(Nodes) ->
Kill = fun(Node) -> spawn(Node, erlang, halt, []) end,
?line lists:foreach(Kill, Nodes),
?line test_server:fail({nodes_left, Nodes})
diff --git a/lib/kernel/test/code_SUITE.erl b/lib/kernel/test/code_SUITE.erl
index 38aadac202..37b9200942 100644
--- a/lib/kernel/test/code_SUITE.erl
+++ b/lib/kernel/test/code_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(code_SUITE).
@@ -26,7 +26,7 @@
delete/1, purge/1, soft_purge/1, is_loaded/1, all_loaded/1,
load_binary/1, dir_req/1, object_code/1, set_path_file/1,
sticky_dir/1, pa_pz_option/1, add_del_path/1,
- dir_disappeared/1, ext_mod_dep/1,
+ dir_disappeared/1, ext_mod_dep/1, clash/1,
load_cached/1, start_node_with_cache/1, add_and_rehash/1,
where_is_file_cached/1, where_is_file_no_cache/1,
purge_stacktrace/1, mult_lib_roots/1, bad_erl_libs/1,
@@ -48,7 +48,7 @@ all(suite) ->
delete, purge, soft_purge, is_loaded, all_loaded,
load_binary, dir_req, object_code, set_path_file,
pa_pz_option, add_del_path,
- dir_disappeared, ext_mod_dep,
+ dir_disappeared, ext_mod_dep, clash,
load_cached, start_node_with_cache, add_and_rehash,
where_is_file_no_cache, where_is_file_cached,
purge_stacktrace, mult_lib_roots, bad_erl_libs,
@@ -531,7 +531,7 @@ pa_pz_option(Config) when is_list(Config) ->
add_del_path(suite) ->
[];
add_del_path(doc) -> ["add_path, del_path should not cause priv_dir(App) to fail"];
-add_del_path(Config) ->
+add_del_path(Config) when is_list(Config) ->
DDir = ?config(data_dir,Config),
Dir1 = filename:join(DDir,"dummy_app-1.0/ebin"),
Dir2 = filename:join(DDir,"dummy_app-2.0/ebin"),
@@ -545,9 +545,41 @@ add_del_path(Config) ->
ok.
+clash(Config) when is_list(Config) ->
+ DDir = ?config(data_dir,Config)++"clash/",
+ P = code:get_path(),
+
+ %% test non-clashing entries
+
+ %% remove "." to prevent clash with test-server path
+ ?line true = code:del_path("."),
+ ?line true = code:add_path(DDir++"foobar-0.1/ebin"),
+ ?line true = code:add_path(DDir++"zork-0.8/ebin"),
+ ?line test_server:capture_start(),
+ ?line code:clash(),
+ ?line test_server:capture_stop(),
+ ?line OKMsg = test_server:capture_get(),
+ ?line lists:prefix("** Found 0 name clashes in code paths", OKMsg),
+ ?line true = code:set_path(P),
+
+ %% test clashing entries
+
+ %% remove "." to prevent clash with test-server path
+ ?line true = code:del_path("."),
+ ?line true = code:add_path(DDir++"foobar-0.1/ebin"),
+ ?line true = code:add_path(DDir++"foobar-0.1.ez/foobar-0.1/ebin"),
+ ?line test_server:capture_start(),
+ ?line code:clash(),
+ ?line test_server:capture_stop(),
+ ?line [ErrMsg1|_] = test_server:capture_get(),
+ ?line {match, [" hides "]} = re:run(ErrMsg1, "\\*\\* .*( hides ).*",
+ [{capture,all_but_first,list}]),
+ ?line true = code:set_path(P),
+ ok.
+
ext_mod_dep(suite) ->
[];
-ext_mod_dep(doce) ->
+ext_mod_dep(doc) ->
["Every module that the code_server uses should be preloaded, "
"this test case verifies that"];
ext_mod_dep(Config) when is_list(Config) ->
diff --git a/lib/kernel/test/code_SUITE_data/clash/foobar-0.1.ez b/lib/kernel/test/code_SUITE_data/clash/foobar-0.1.ez
new file mode 100644
index 0000000000..33d8a59b92
--- /dev/null
+++ b/lib/kernel/test/code_SUITE_data/clash/foobar-0.1.ez
Binary files differ
diff --git a/lib/kernel/test/code_SUITE_data/clash/foobar-0.1/ebin/baz.beam b/lib/kernel/test/code_SUITE_data/clash/foobar-0.1/ebin/baz.beam
new file mode 100644
index 0000000000..da87f32b9f
--- /dev/null
+++ b/lib/kernel/test/code_SUITE_data/clash/foobar-0.1/ebin/baz.beam
@@ -0,0 +1 @@
+baz 298734
diff --git a/lib/kernel/test/code_SUITE_data/clash/foobar-0.1/ebin/blarg.beam b/lib/kernel/test/code_SUITE_data/clash/foobar-0.1/ebin/blarg.beam
new file mode 100644
index 0000000000..e4c70c267c
--- /dev/null
+++ b/lib/kernel/test/code_SUITE_data/clash/foobar-0.1/ebin/blarg.beam
@@ -0,0 +1 @@
+baz 86234
diff --git a/lib/kernel/test/code_SUITE_data/clash/zork-0.8.ez b/lib/kernel/test/code_SUITE_data/clash/zork-0.8.ez
new file mode 100644
index 0000000000..051fa1efe4
--- /dev/null
+++ b/lib/kernel/test/code_SUITE_data/clash/zork-0.8.ez
Binary files differ
diff --git a/lib/kernel/test/code_SUITE_data/clash/zork-0.8/ebin/bork.beam b/lib/kernel/test/code_SUITE_data/clash/zork-0.8/ebin/bork.beam
new file mode 100644
index 0000000000..7b292c0b44
--- /dev/null
+++ b/lib/kernel/test/code_SUITE_data/clash/zork-0.8/ebin/bork.beam
@@ -0,0 +1 @@
+baz 23784
diff --git a/lib/kernel/test/code_SUITE_data/clash/zork-0.8/ebin/flarp.beam b/lib/kernel/test/code_SUITE_data/clash/zork-0.8/ebin/flarp.beam
new file mode 100644
index 0000000000..7b2f6a850f
--- /dev/null
+++ b/lib/kernel/test/code_SUITE_data/clash/zork-0.8/ebin/flarp.beam
@@ -0,0 +1 @@
+baz 3246238
diff --git a/lib/kernel/test/erl_distribution_SUITE.erl b/lib/kernel/test/erl_distribution_SUITE.erl
index 8f2e2512e0..d15f6aa0d5 100644
--- a/lib/kernel/test/erl_distribution_SUITE.erl
+++ b/lib/kernel/test/erl_distribution_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(erl_distribution_SUITE).
@@ -62,7 +62,7 @@ all(suite) ->
table_waste, net_setuptime,
monitor_nodes].
-init_per_testcase(Func, Config) when atom(Func), list(Config) ->
+init_per_testcase(Func, Config) when is_atom(Func), is_list(Config) ->
Dog=?t:timetrap(?t:minutes(4)),
[{watchdog, Dog}|Config].
@@ -72,7 +72,7 @@ fin_per_testcase(_Func, Config) ->
tick(suite) -> [];
tick(doc) -> [];
-tick(Config) when list(Config) ->
+tick(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(120)),
PaDir = filename:dirname(code:which(erl_distribution_SUITE)),
@@ -119,7 +119,7 @@ tick(Config) when list(Config) ->
monitor_node(Node, true),
receive
- {tick_test, T} when integer(T) ->
+ {tick_test, T} when is_integer(T) ->
stop_node(ServNode),
stop_node(Node),
T;
@@ -141,7 +141,7 @@ table_waste(doc) ->
["Checks that pinging nonexistyent nodes does not waste space in distribution table"];
table_waste(suite) ->
[];
-table_waste(Config) when list(Config) ->
+table_waste(Config) when is_list(Config) ->
?line {ok, HName} = inet:gethostname(),
F = fun(0,_F) -> [];
(N,F) ->
@@ -161,7 +161,7 @@ illegal_nodenames(doc) ->
["Test that pinging an illegal nodename does not kill the node"];
illegal_nodenames(suite) ->
[];
-illegal_nodenames(Config) when list(Config) ->
+illegal_nodenames(Config) when is_list(Config) ->
?line Dog=?t:timetrap(?t:minutes(2)),
PaDir = filename:dirname(code:which(erl_distribution_SUITE)),
?line {ok, Node}=start_node(illegal_nodenames, "-pa " ++ PaDir),
@@ -269,12 +269,12 @@ tick_cli_test1(Node) ->
tick_change(doc) -> ["OTP-4255"];
tick_change(suite) -> [];
-tick_change(Config) when list(Config) ->
+tick_change(Config) when is_list(Config) ->
?line PaDir = filename:dirname(code:which(?MODULE)),
?line [BN, CN] = get_nodenames(2, tick_change),
?line DefaultTT = net_kernel:get_net_ticktime(),
?line case DefaultTT of
- I when integer(I) -> ?line ok;
+ I when is_integer(I) -> ?line ok;
_ -> ?line ?t:fail(DefaultTT)
end,
@@ -445,7 +445,7 @@ hidden_node(doc) ->
["Basic test of hidden node"];
hidden_node(suite) ->
[];
-hidden_node(Config) when list(Config) ->
+hidden_node(Config) when is_list(Config) ->
?line Dog = ?t:timetrap(?t:seconds(40)),
PaDir = filename:dirname(code:which(?MODULE)),
VArgs = "-pa " ++ PaDir,
@@ -548,7 +548,7 @@ monitor_nodes(suite) ->
monitor_nodes_nodedown_reason(doc) -> [];
monitor_nodes_nodedown_reason(suite) -> [];
-monitor_nodes_nodedown_reason(Config) when list(Config) ->
+monitor_nodes_nodedown_reason(Config) when is_list(Config) ->
?line MonNodeState = monitor_node_state(),
?line ok = net_kernel:monitor_nodes(true),
?line ok = net_kernel:monitor_nodes(true, [nodedown_reason]),
@@ -603,7 +603,7 @@ monitor_nodes_nodedown_reason(Config) when list(Config) ->
monitor_nodes_complex_nodedown_reason(doc) -> [];
monitor_nodes_complex_nodedown_reason(suite) -> [];
-monitor_nodes_complex_nodedown_reason(Config) when list(Config) ->
+monitor_nodes_complex_nodedown_reason(Config) when is_list(Config) ->
?line MonNodeState = monitor_node_state(),
?line Me = self(),
?line ok = net_kernel:monitor_nodes(true, [nodedown_reason]),
@@ -885,7 +885,7 @@ monitor_nodes_errors(doc) ->
[];
monitor_nodes_errors(suite) ->
[];
-monitor_nodes_errors(Config) when list(Config) ->
+monitor_nodes_errors(Config) when is_list(Config) ->
?line MonNodeState = monitor_node_state(),
?line error = net_kernel:monitor_nodes(asdf),
?line {error,
@@ -922,7 +922,7 @@ monitor_nodes_combinations(doc) ->
[];
monitor_nodes_combinations(suite) ->
[];
-monitor_nodes_combinations(Config) when list(Config) ->
+monitor_nodes_combinations(Config) when is_list(Config) ->
?line MonNodeState = monitor_node_state(),
?line monitor_nodes_all_comb(true),
?line [VisibleName, HiddenName] = get_nodenames(2,
@@ -1044,7 +1044,7 @@ monitor_nodes_cleanup(doc) ->
[];
monitor_nodes_cleanup(suite) ->
[];
-monitor_nodes_cleanup(Config) when list(Config) ->
+monitor_nodes_cleanup(Config) when is_list(Config) ->
?line MonNodeState = monitor_node_state(),
?line Me = self(),
?line No = monitor_nodes_all_comb(true),
@@ -1076,7 +1076,7 @@ monitor_nodes_many(doc) ->
[];
monitor_nodes_many(suite) ->
[];
-monitor_nodes_many(Config) when list(Config) ->
+monitor_nodes_many(Config) when is_list(Config) ->
?line MonNodeState = monitor_node_state(),
?line [Name] = get_nodenames(1, monitor_nodes_many),
%% We want to perform more than 2^16 net_kernel:monitor_nodes
@@ -1139,10 +1139,10 @@ start_node(Name, Param, this) ->
start_node(Name, Param, "this") ->
NewParam = Param ++ " -pa " ++ filename:dirname(code:which(?MODULE)),
?t:start_node(Name, peer, [{args, NewParam}, {erl, [this]}]);
-start_node(Name, Param, Rel) when atom(Rel) ->
+start_node(Name, Param, Rel) when is_atom(Rel) ->
NewParam = Param ++ " -pa " ++ filename:dirname(code:which(?MODULE)),
?t:start_node(Name, peer, [{args, NewParam}, {erl, [{release, atom_to_list(Rel)}]}]);
-start_node(Name, Param, Rel) when list(Rel) ->
+start_node(Name, Param, Rel) when is_list(Rel) ->
NewParam = Param ++ " -pa " ++ filename:dirname(code:which(?MODULE)),
?t:start_node(Name, peer, [{args, NewParam}, {erl, [{release, Rel}]}]).
@@ -1216,9 +1216,9 @@ wait_until(Fun) ->
end
end.
-repeat(Fun, 0) when function(Fun) ->
+repeat(Fun, 0) when is_function(Fun) ->
ok;
-repeat(Fun, N) when function(Fun), integer(N), N > 0 ->
+repeat(Fun, N) when is_function(Fun), is_integer(N), N > 0 ->
Fun(),
repeat(Fun, N-1).
diff --git a/lib/kernel/test/error_logger_SUITE.erl b/lib/kernel/test/error_logger_SUITE.erl
index a737949bbb..eda86861d5 100644
--- a/lib/kernel/test/error_logger_SUITE.erl
+++ b/lib/kernel/test/error_logger_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(error_logger_SUITE).
@@ -45,7 +45,7 @@ all(suite) ->
error_report(suite) -> [];
error_report(doc) -> [];
-error_report(Config) when list(Config) ->
+error_report(Config) when is_list(Config) ->
?line error_logger:add_report_handler(?MODULE, self()),
Rep1 = [{tag1,"data1"},{tag2,data2},{tag3,3}],
Rep2 = [testing,"testing",{tag1,"tag1"}],
@@ -85,7 +85,7 @@ error_report(Config) when list(Config) ->
info_report(suite) -> [];
info_report(doc) -> [];
-info_report(Config) when list(Config) ->
+info_report(Config) when is_list(Config) ->
?line error_logger:add_report_handler(?MODULE, self()),
Rep1 = [{tag1,"data1"},{tag2,data2},{tag3,3}],
Rep2 = [testing,"testing",{tag1,"tag1"}],
@@ -125,7 +125,7 @@ info_report(Config) when list(Config) ->
error(suite) -> [];
error(doc) -> [];
-error(Config) when list(Config) ->
+error(Config) when is_list(Config) ->
?line error_logger:add_report_handler(?MODULE, self()),
Msg1 = "This is a plain text string~n",
Msg2 = "This is a text with arguments ~p~n",
@@ -160,7 +160,7 @@ error(Config) when list(Config) ->
info(suite) -> [];
info(doc) -> [];
-info(Config) when list(Config) ->
+info(Config) when is_list(Config) ->
?line error_logger:add_report_handler(?MODULE, self()),
Msg1 = "This is a plain text string~n",
Msg2 = "This is a text with arguments ~p~n",
@@ -188,7 +188,7 @@ info(Config) when list(Config) ->
emulator(suite) -> [];
emulator(doc) -> [];
-emulator(Config) when list(Config) ->
+emulator(Config) when is_list(Config) ->
?line error_logger:add_report_handler(?MODULE, self()),
spawn(?MODULE, generate_error, []),
reported(emulator),
@@ -215,7 +215,7 @@ tty(Config) when is_list(Config) ->
logfile(suite) -> [];
logfile(doc) -> [];
-logfile(Config) when list(Config) ->
+logfile(Config) when is_list(Config) ->
?line case error_logger:logfile(filename) of
{error, no_log_file} -> % Ok, we continues.
do_logfile();
@@ -236,7 +236,7 @@ do_logfile() ->
add(suite) -> [];
add(doc) -> [];
-add(Config) when list(Config) ->
+add(Config) when is_list(Config) ->
?line {'EXIT',_} = (catch error_logger:add_report_handler("dummy")),
?line {'EXIT',_} = error_logger:add_report_handler(non_existing),
?line my_error = error_logger:add_report_handler(?MODULE, [error]),
@@ -246,7 +246,7 @@ add(Config) when list(Config) ->
delete(suite) -> [];
delete(doc) -> [];
-delete(Config) when list(Config) ->
+delete(Config) when is_list(Config) ->
?line {'EXIT',_} = (catch error_logger:delete_report_handler("dummy")),
?line {error,_} = error_logger:delete_report_handler(non_existing),
ok.
@@ -265,7 +265,7 @@ reported(Tag, Type, Report) ->
reported(emulator) ->
receive
- {error, "~s~n", String} when list(String) ->
+ {error, "~s~n", String} when is_list(String) ->
test_server:messages_get(),
ok
after 1000 ->
@@ -277,9 +277,9 @@ reported(emulator) ->
%% Sends a notification to the Tester process about the events
%% generated by the Tester process.
%%-----------------------------------------------------------------
-init(Tester) when pid(Tester) ->
+init(Tester) when is_pid(Tester) ->
{ok, Tester};
-init(Config) when list(Config) ->
+init(Config) when is_list(Config) ->
my_error.
handle_event({Tag, _GL, {_EPid, Type, Report}}, Tester) ->
diff --git a/lib/kernel/test/file_SUITE.erl b/lib/kernel/test/file_SUITE.erl
index c645d0f842..d01e1f1fcf 100644
--- a/lib/kernel/test/file_SUITE.erl
+++ b/lib/kernel/test/file_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -3371,7 +3371,7 @@ read_line_create_files(TestData) ->
[ Function(File) || {Function,File,_,_} <- TestData ].
read_line_remove_files(TestData) ->
- [ file:delete(File) || {Function,File,_,_} <- TestData ].
+ [ file:delete(File) || {_Function,File,_,_} <- TestData ].
read_line_1(suite) ->
[];
diff --git a/lib/kernel/test/gen_sctp_SUITE.erl b/lib/kernel/test/gen_sctp_SUITE.erl
index dd7d5f111a..fad8c7398b 100644
--- a/lib/kernel/test/gen_sctp_SUITE.erl
+++ b/lib/kernel/test/gen_sctp_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2007-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2007-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(gen_sctp_SUITE).
@@ -24,10 +24,11 @@
%%-compile(export_all).
-export([all/1,init_per_testcase/2,fin_per_testcase/2,
- basic/1,xfer_min/1,xfer_active/1,api_open_close/1,api_listen/1]).
+ basic/1,api_open_close/1,api_listen/1,api_connect_init/1,
+ xfer_min/1,xfer_active/1]).
all(suite) ->
- [basic,xfer_min,xfer_active,api_open_close,api_listen].
+ [basic,api_open_close,api_listen,api_connect_init,xfer_min,xfer_active].
init_per_testcase(_Func, Config) ->
Dog = test_server:timetrap(test_server:seconds(15)),
@@ -325,7 +326,7 @@ api_listen(Config) when is_list(Config) ->
?line {ok,{Localhost,
Pb,[],
#sctp_assoc_change{
- state = comm_lost}}} =
+ state=comm_lost}}} =
gen_sctp:recv(Sa, infinity);
{error,#sctp_assoc_change{state=cant_assoc}} -> ok
end,
@@ -336,3 +337,48 @@ api_listen(Config) when is_list(Config) ->
?line ok = gen_sctp:close(Sa),
?line ok = gen_sctp:close(Sb),
ok.
+
+api_connect_init(doc) ->
+ "Test the API function connect_init/4";
+api_connect_init(suite) ->
+ [];
+api_connect_init(Config) when is_list(Config) ->
+ ?line Localhost = {127,0,0,1},
+
+ ?line {ok,S} = gen_sctp:open(),
+ ?line {ok,Pb} = inet:port(S),
+ ?line try gen_sctp:connect_init(S, Localhost, not_allowed_for_port, [])
+ catch error:badarg -> ok
+ end,
+ ?line try gen_sctp:connect_init(S, Localhost, 12345, not_allowed_for_opts)
+ catch error:badarg -> ok
+ end,
+ ?line ok = gen_sctp:close(S),
+ ?line {error,closed} = gen_sctp:connect_init(S, Localhost, 12345, []),
+
+ ?line {ok,Sb} = gen_sctp:open(Pb),
+ ?line {ok,Sa} = gen_sctp:open(),
+ ?line case gen_sctp:connect_init(Sa, localhost, Pb, []) of
+ {error,econnrefused} ->
+ ?line {ok,{Localhost,
+ Pb,[],
+ #sctp_assoc_change{state=comm_lost}}} =
+ gen_sctp:recv(Sa, infinity);
+ ok ->
+ ?line {ok,{Localhost,
+ Pb,[],
+ #sctp_assoc_change{state=cant_assoc}}} =
+ gen_sctp:recv(Sa, infinity)
+ end,
+ ?line ok = gen_sctp:listen(Sb, true),
+ ?line case gen_sctp:connect_init(Sa, localhost, Pb, []) of
+ ok ->
+ ?line {ok,{Localhost,
+ Pb,[],
+ #sctp_assoc_change{
+ state = comm_up}}} =
+ gen_sctp:recv(Sa, infinity)
+ end,
+ ?line ok = gen_sctp:close(Sa),
+ ?line ok = gen_sctp:close(Sb),
+ ok.
diff --git a/lib/kernel/test/global_group_SUITE.erl b/lib/kernel/test/global_group_SUITE.erl
index a8b87390eb..430cc61267 100644
--- a/lib/kernel/test/global_group_SUITE.erl
+++ b/lib/kernel/test/global_group_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1998-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1998-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -42,7 +42,7 @@ all(suite) ->
-define(TESTCASE, testcase_name).
-define(testcase, ?config(?TESTCASE, Config)).
-init_per_testcase(Case, Config) when atom(Case), list(Config) ->
+init_per_testcase(Case, Config) when is_atom(Case), is_list(Config) ->
Dog=?t:timetrap(?t:minutes(5)),
[{?TESTCASE, Case}, {watchdog, Dog}|Config].
@@ -59,7 +59,7 @@ fin_per_testcase(_Func, Config) ->
start_gg_proc(suite) -> [];
start_gg_proc(doc) -> ["Check that the global_group processes are started automatically. "];
-start_gg_proc(Config) when list(Config) ->
+start_gg_proc(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(120)),
?line Dir = ?config(priv_dir, Config),
@@ -94,7 +94,7 @@ start_gg_proc(Config) when list(Config) ->
no_gg_proc(suite) -> [];
no_gg_proc(doc) -> ["Start a system without global groups. Nodes are not "
"synced at start (sync_nodes_optional is not defined)"];
-no_gg_proc(Config) when list(Config) ->
+no_gg_proc(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(200)),
?line Dir = ?config(priv_dir, Config),
@@ -267,7 +267,7 @@ no_gg_proc_sync(suite) -> [];
no_gg_proc_sync(doc) ->
["Start a system without global groups, but syncing the nodes by using "
"sync_nodes_optional."];
-no_gg_proc_sync(Config) when list(Config) ->
+no_gg_proc_sync(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(200)),
?line Dir = ?config(priv_dir, Config),
@@ -441,7 +441,7 @@ no_gg_proc_sync(Config) when list(Config) ->
compatible(suite) -> [];
compatible(doc) ->
["Check that a system without global groups is compatible with the old R4 system."];
-compatible(Config) when list(Config) ->
+compatible(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(200)),
?line Dir = ?config(priv_dir, Config),
@@ -614,7 +614,7 @@ compatible(Config) when list(Config) ->
one_grp(suite) -> [];
one_grp(doc) -> ["Test a system with only one global group. "];
-one_grp(Config) when list(Config) ->
+one_grp(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(120)),
?line Dir = ?config(priv_dir, Config),
@@ -701,7 +701,7 @@ one_grp(Config) when list(Config) ->
one_grp_x(suite) -> [];
one_grp_x(doc) -> ["Check a system with only one global group. "
"Start the nodes with different time intervals. "];
-one_grp_x(Config) when list(Config) ->
+one_grp_x(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(120)),
?line Dir = ?config(priv_dir, Config),
@@ -763,7 +763,7 @@ one_grp_x(Config) when list(Config) ->
two_grp(suite) -> [];
two_grp(doc) -> ["Test a two global group system. "];
-two_grp(Config) when list(Config) ->
+two_grp(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(200)),
?line Dir = ?config(priv_dir, Config),
@@ -1063,7 +1063,7 @@ two_grp(Config) when list(Config) ->
hidden_groups(suite) -> [];
hidden_groups(doc) -> ["Test hidden global groups."];
-hidden_groups(Config) when list(Config) ->
+hidden_groups(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(200)),
?line Dir = ?config(priv_dir, Config),
@@ -1138,7 +1138,7 @@ hidden_groups(Config) when list(Config) ->
test_exit(suite) -> [];
test_exit(doc) -> ["Checks when the search process exits. "];
-test_exit(Config) when list(Config) ->
+test_exit(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(120)),
?line NN = node_name(atom_to_list(node())),
diff --git a/lib/kernel/test/heart_SUITE.erl b/lib/kernel/test/heart_SUITE.erl
index b06244db3c..0d0296238b 100644
--- a/lib/kernel/test/heart_SUITE.erl
+++ b/lib/kernel/test/heart_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(heart_SUITE).
@@ -80,7 +80,7 @@ start_check(Type, Name) ->
end,
erlang:monitor_node(Node, true),
case rpc:call(Node, erlang, whereis, [heart]) of
- Pid when pid(Pid) ->
+ Pid when is_pid(Pid) ->
ok;
_ ->
test_server:fail(heart_not_started)
@@ -355,7 +355,7 @@ erl() ->
end.
name(Node) when is_list(Node) -> name(Node,[]);
-name(Node) when atom(Node) -> name(atom_to_list(Node),[]).
+name(Node) when is_atom(Node) -> name(atom_to_list(Node),[]).
name([$@|Node], Name) ->
case lists:member($., Node) of
@@ -368,7 +368,7 @@ name([H|T], Name) ->
name(T, [H|Name]).
-atom_conv(A) when atom(A) ->
+atom_conv(A) when is_atom(A) ->
atom_to_list(A);
atom_conv(A) when is_list(A) ->
A.
diff --git a/lib/kernel/test/inet_SUITE.erl b/lib/kernel/test/inet_SUITE.erl
index cf33e8b27f..eb8f918491 100644
--- a/lib/kernel/test/inet_SUITE.erl
+++ b/lib/kernel/test/inet_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(inet_SUITE).
@@ -28,7 +28,7 @@
gethostnative_parallell/1, cname_loop/1,
gethostnative_soft_restart/1,gethostnative_debug_level/1,getif/1]).
--export([get_hosts/1, get_ipv6_hosts/1, parse_hosts/1,
+-export([get_hosts/1, get_ipv6_hosts/1, parse_hosts/1, parse_address/1,
kill_gethost/0, parallell_gethost/0]).
-export([init_per_testcase/2, end_per_testcase/2]).
@@ -249,14 +249,16 @@ t_getaddr_v6(Config) when is_list(Config) ->
?line {ok,IP46} = inet:getaddr(IP46, inet6),
?line {ok,IP46} = inet:getaddr(Name, inet6),
?line {ok,IP46} = inet:getaddr(FullName, inet6),
- ?line IP4toIP6 = inet:getaddr(IPStr, inet6),
- ?line case IP4toIP6 of
- {ok,IP46} -> % only native can do this
- ?line true = lists:member(native,
- inet_db:res_option(lookup));
- {error,nxdomain} ->
- ok
- end,
+ ?line {ok,IP46} = inet:getaddr(IPStr, inet6),
+%% ?line IP4toIP6 = inet:getaddr(IPStr, inet6),
+%% ?line case IP4toIP6 of
+%% {ok,IP46} ->
+%% ?line ok;
+%% {error,nxdomain} ->
+%% ?line false =
+%% lists:member(native,
+%% inet_db:res_option(lookup))
+%% end,
?line {Name6, FullName6, IPStr6, IP6, _} =
?config(test_host_ipv6_only, Config),
?line {ok,_} = inet:getaddr(list_to_atom(Name6), inet6),
@@ -301,7 +303,6 @@ ipv4_to_ipv6(Config) when is_list(Config) ->
end,
?line case {IP4to6Res,inet:gethostbyname(IPStr, inet6)} of
{true,{ok,HEnt}} ->
- ?line true = lists:member(native, inet_db:res_option(lookup)),
?line HEnt_ = HEnt#hostent{h_addrtype = inet6,
h_length = 16,
h_addr_list = [IP_46]},
@@ -374,9 +375,10 @@ get_hosts([C|Rest], Cur, Ip, Result) ->
get_hosts([], _, _, Result) ->
Result.
-parse(suite) -> [parse_hosts];
+parse(suite) -> [parse_hosts, parse_address];
parse(doc) -> ["Test that parsing of the hosts file or equivalent works,",
"and that erroneous lines are skipped"].
+
parse_hosts(Config) when is_list(Config) ->
?line DataDir = ?config(data_dir,Config),
?line HostFile = filename:join(DataDir, "hosts"),
@@ -388,6 +390,170 @@ parse_hosts(Config) when is_list(Config) ->
?line ResolvErr1 = filename:join(DataDir,"resolv.conf.err1"),
?line inet_parse:resolv(ResolvErr1).
+parse_address(Config) when is_list(Config) ->
+ V4Strict =
+ [{{0,0,0,0},"0.0.0.0"},
+ {{1,2,3,4},"1.2.3.4"},
+ {{253,252,251,250},"253.252.251.250"},
+ {{1,2,255,254},"1.2.255.254"}],
+ V6Strict =
+ [{{0,0,0,0,0,0,0,0},"::"},
+ {{15,0,0,0,0,0,0,2},"f::2"},
+ {{15,16#f11,0,0,0,0,256,2},"f:f11::0100:2"},
+ {{0,0,0,0,0,0,0,16#17},"::17"},
+ {{16#700,0,0,0,0,0,0,0},"0700::"},
+ {{0,0,0,0,0,0,2,1},"::2:1"},
+ {{0,0,0,0,0,3,2,1},"::3:2:1"},
+ {{0,0,0,0,4,3,2,1},"::4:3:2:1"},
+ {{0,0,0,5,4,3,2,1},"::5:4:3:2:1"},
+ {{0,0,6,5,4,3,2,1},"::6:5:4:3:2:1"},
+ {{0,7,6,5,4,3,2,1},"::7:6:5:4:3:2:1"},
+ {{7,0,0,0,0,0,0,0},"7::"},
+ {{7,6,0,0,0,0,0,0},"7:6::"},
+ {{7,6,5,0,0,0,0,0},"7:6:5::"},
+ {{7,6,5,4,0,0,0,0},"7:6:5:4::"},
+ {{7,6,5,4,3,0,0,0},"7:6:5:4:3::"},
+ {{7,6,5,4,3,2,0,0},"7:6:5:4:3:2::"},
+ {{7,6,5,4,3,2,1,0},"7:6:5:4:3:2:1::"},
+ {{16#c11,16#c22,16#5c33,16#c440,16#55c0,16#c66c,16#77,16#88},
+ "c11:0c22:5c33:c440:55c0:c66c:77:0088"},
+ {{16#c11,0,16#5c33,16#c440,16#55c0,16#c66c,16#77,16#88},
+ "c11::5c33:c440:55c0:c66c:77:0088"},
+ {{16#c11,16#c22,0,16#c440,16#55c0,16#c66c,16#77,16#88},
+ "c11:0c22::c440:55c0:c66c:77:0088"},
+ {{16#c11,16#c22,16#5c33,0,16#55c0,16#c66c,16#77,16#88},
+ "c11:0c22:5c33::55c0:c66c:77:0088"},
+ {{16#c11,16#c22,16#5c33,16#c440,0,16#c66c,16#77,16#88},
+ "c11:0c22:5c33:c440::c66c:77:0088"},
+ {{16#c11,16#c22,16#5c33,16#c440,16#55c0,0,16#77,16#88},
+ "c11:0c22:5c33:c440:55c0::77:0088"},
+ {{16#c11,16#c22,16#5c33,16#c440,16#55c0,16#c66c,0,16#88},
+ "c11:0c22:5c33:c440:55c0:c66c::0088"},
+ {{16#c11,0,0,16#c440,16#55c0,16#c66c,16#77,16#88},
+ "c11::c440:55c0:c66c:77:0088"},
+ {{16#c11,16#c22,0,0,16#55c0,16#c66c,16#77,16#88},
+ "c11:0c22::55c0:c66c:77:0088"},
+ {{16#c11,16#c22,16#5c33,0,0,16#c66c,16#77,16#88},
+ "c11:0c22:5c33::c66c:77:0088"},
+ {{16#c11,16#c22,16#5c33,16#c440,0,0,16#77,16#88},
+ "c11:0c22:5c33:c440::77:0088"},
+ {{16#c11,16#c22,16#5c33,16#c440,16#55c0,0,0,16#88},
+ "c11:0c22:5c33:c440:55c0::0088"},
+ {{16#c11,0,0,0,16#55c0,16#c66c,16#77,16#88},
+ "c11::55c0:c66c:77:0088"},
+ {{16#c11,16#c22,0,0,0,16#c66c,16#77,16#88},
+ "c11:0c22::c66c:77:0088"},
+ {{16#c11,16#c22,16#5c33,0,0,0,16#77,16#88},
+ "c11:0c22:5c33::77:0088"},
+ {{16#c11,16#c22,16#5c33,16#c440,0,0,0,16#88},
+ "c11:0c22:5c33:c440::0088"},
+ {{16#c11,0,0,0,0,16#c66c,16#77,16#88},
+ "c11::c66c:77:0088"},
+ {{16#c11,16#c22,0,0,0,0,16#77,16#88},
+ "c11:0c22::77:0088"},
+ {{16#c11,16#c22,16#5c33,0,0,0,0,16#88},
+ "c11:0c22:5c33::0088"},
+ {{16#c11,0,0,0,0,0,16#77,16#88},
+ "c11::77:0088"},
+ {{16#c11,16#c22,0,0,0,0,0,16#88},
+ "c11:0c22::0088"},
+ {{0,0,0,0,0,65535,258,65534},"::FFFF:1.2.255.254"},
+ {{16#ffff,16#ffff,16#ffff,16#ffff,16#ffff,16#ffff,16#ffff,16#ffff},
+ "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"}
+ |[{{D2,0,0,0,0,P,(D1 bsl 8) bor D2,(D3 bsl 8) bor D4},
+ erlang:integer_to_list(D2, 16)++"::"++Q++S}
+ || {{D1,D2,D3,D4},S} <- V4Strict,
+ {P,Q} <- [{0,""},{16#17,"17:"},{16#ff0,"0ff0:"}]]],
+ V4Sloppy =
+ [{{10,1,16#98,16#76},"10.0x019876"},
+ {{8#12,1,8#130,8#321},"012.01.054321"},
+ {{255,255,255,255},"255.255.255.0377"},
+ {{255,255,255,255},"0Xff.000000000377.0x0000ff.255"},
+ {{255,255,255,255},"255.255.65535"},
+ {{255,255,255,255},"255.0xFF.0177777"},
+ {{255,255,255,255},"255.16777215"},
+ {{255,255,255,255},"00377.0XFFFFFF"},
+ {{255,255,255,255},"4294967295"},
+ {{255,255,255,255},"0xffffffff"},
+ {{255,255,255,255},"00000000000037777777777"},
+ {{16#12,16#34,16#56,16#78},"0x12345678"},
+ {{16#12,16#34,16#56,16#78},"0x12.0x345678"},
+ {{16#12,16#34,16#56,16#78},"0x12.0X34.0x5678"},
+ {{16#12,16#34,16#56,16#78},"0x12.0X34.0x56.0X78"},
+ {{0,0,0,0},"0"},
+ {{0,0,0,0},"00"},
+ {{0,0,0,0},"0.0"},
+ {{0,0,0,0},"00.00.00"},
+ {{0,0,0,0},"0.00.0.0"},
+ {{0,0,0,0},"0.0.000000000000.0"}],
+ V6Sloppy =
+ [{{0,0,0,0,0,65535,(D1 bsl 8) bor D2,(D3 bsl 8) bor D4},S}
+ || {{D1,D2,D3,D4},S} <- V4Strict++V4Sloppy],
+ V4Err =
+ ["0.256.0.1",
+ "1.2.3.4.5",
+ "256.255.65535",
+ "4294967296",
+ "0x100000000",
+ "040000000000",
+ "1.2.3.-4",
+ "1.2.-3.4",
+ "1.-2.3.4",
+ "-1.2.3.4",
+ "10.",
+ "172.16.",
+ "198.168.0.",
+ "127.0.0.1."],
+ V6Err =
+ [":::",
+ "f:::2",
+ "::-1",
+ "::g",
+ "f:f11::10100:2",
+ "::17000",
+ "10000::",
+ "::8:7:6:5:4:3:2:1",
+ "8:7:6:5:4:3:2:1::",
+ "8:7:6:5:4::3:2:1",
+ "::1.2.3.4.5",
+ "::1.2.3.04",
+ "::1.256.3.4",
+ "::-5.4.3.2",
+ "::5.-4.3.2",
+ "::5.4.-3.2",
+ "::5.4.3.-2",
+ "::FFFF:1.2.3.4.5",
+ "::10.",
+ "::FFFF:172.16.",
+ "fe80::198.168.0.",
+ "fec0::fFfF:127.0.0.1."],
+ t_parse_address
+ (ipv6_address,
+ V6Strict++V6Sloppy++V6Err++V4Err),
+ t_parse_address
+ (ipv6strict_address,
+ V6Strict++V6Err++V4Err++[S || {_,S} <- V6Sloppy]),
+ t_parse_address
+ (ipv4_address,
+ V4Strict++V4Sloppy++V4Err++V6Err++[S || {_,S} <- V6Strict]),
+ t_parse_address
+ (ipv4strict_address,
+ V4Strict++V4Err++V6Err++[S || {_,S} <- V4Sloppy++V6Strict]).
+
+t_parse_address(Func, []) ->
+ io:format("~p done.~n", [Func]),
+ ok;
+t_parse_address(Func, [{Addr,String}|L]) ->
+ io:format("~p = ~p.~n", [Addr,String]),
+ {ok,Addr} = inet_parse:Func(String),
+ t_parse_address(Func, L);
+t_parse_address(Func, [String|L]) ->
+ io:format("~p.~n", [String]),
+ {error,einval} = inet_parse:Func(String),
+ t_parse_address(Func, L).
+
+
+
t_gethostnative(suite) ->[];
t_gethostnative(doc) ->[];
t_gethostnative(Config) when is_list(Config) ->
diff --git a/lib/kernel/test/inet_res_SUITE.erl b/lib/kernel/test/inet_res_SUITE.erl
index 659cfc5988..cc32d1f8f9 100644
--- a/lib/kernel/test/inet_res_SUITE.erl
+++ b/lib/kernel/test/inet_res_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(inet_res_SUITE).
@@ -239,16 +239,37 @@ resolve(_Opts, []) -> ok;
resolve(Opts, [{Class,Type,Name,Answers,Authority}=Q|Qs]) ->
io:format("Query: ~p~nOptions: ~p~n", [Q,Opts]),
{ok,Msg} = inet_res:resolve(Name, Class, Type, Opts),
- if Answers =/= undefined ->
- AnList = lists:sort(Answers),
- AnList = lists:sort([inet_dns:rr(RR, data) ||
- RR <- inet_dns:msg(Msg, anlist)]);
- true -> ok end,
- if Authority =/= undefined ->
- NsList = lists:sort(Authority),
- NsList = lists:sort([inet_dns:rr(RR, data) ||
- RR <- inet_dns:msg(Msg, nslist)]);
- true -> ok end,
+ AnList =
+ if
+ Answers =/= undefined ->
+ lists:sort(Answers);
+ true ->
+ undefined
+ end,
+ NsList =
+ if
+ Authority =/= undefined ->
+ lists:sort(Authority);
+ true ->
+ undefined
+ end,
+ case {lists:sort
+ ([inet_dns:rr(RR, data) || RR <- inet_dns:msg(Msg, anlist)]),
+ lists:sort
+ ([inet_dns:rr(RR, data) || RR <- inet_dns:msg(Msg, nslist)])} of
+ {AnList,NsList} ->
+ ok;
+ {NsList,AnList} when Type =:= ns ->
+ %% This whole case statement is kind of inside out just
+ %% to accept this case when some legacy DNS resolvers
+ %% return the answer to a NS query in the answer section
+ %% instead of in the authority section.
+ ok;
+ {AnList,_} when NsList =:= undefined ->
+ ok;
+ {_,NsList} when AnList =:= undefined ->
+ ok
+ end,
Buf = inet_dns:encode(Msg),
{ok,Msg} = inet_dns:decode(Buf),
resolve(Opts, Qs).
@@ -292,10 +313,23 @@ edns0(Config) when is_list(Config) ->
MXs = lists:sort(inet_res_filter(inet_dns:msg(Msg2, anlist), in, mx)),
Buf2 = inet_dns:encode(Msg2),
{ok,Msg2} = inet_dns:decode(Buf2),
- [OptRR] = [RR || RR <- inet_dns:msg(Msg2, arlist),
- inet_dns:rr(RR, type) =:= opt],
- io:format("~p~n", [inet_dns:rr(OptRR)]),
- ok.
+ case [RR || RR <- inet_dns:msg(Msg2, arlist),
+ inet_dns:rr(RR, type) =:= opt] of
+ [OptRR] ->
+ io:format("~p~n", [inet_dns:rr(OptRR)]),
+ ok;
+ [] ->
+ case os:type() of
+ {unix,sunos} ->
+ case os:version() of
+ {M,V,_} when M < 5; M == 5, V =< 8 ->
+ %% In our test park only known platform
+ %% with an DNS resolver that can not do
+ %% EDNS0.
+ {comment,"No EDNS0"}
+ end
+ end
+ end.
inet_res_filter(Anlist, Class, Type) ->
[inet_dns:rr(RR, data) || RR <- Anlist,
@@ -331,11 +365,13 @@ files_monitor(suite) ->
files_monitor(doc) ->
["Tests monitoring of /etc/hosts and /etc/resolv.conf, but not them"];
files_monitor(Config) when is_list(Config) ->
+ Search = inet_db:res_option(search),
HostsFile = inet_db:res_option(hosts_file),
ResolvConf = inet_db:res_option(resolv_conf),
Inet6 = inet_db:res_option(inet6),
try do_files_monitor(Config)
after
+ inet_db:res_option(search, Search),
inet_db:res_option(resolv_conf, ResolvConf),
inet_db:res_option(hosts_file, HostsFile),
inet_db:res_option(inet6, Inet6)
@@ -344,7 +380,13 @@ files_monitor(Config) when is_list(Config) ->
do_files_monitor(Config) ->
Dir = ?config(priv_dir, Config),
{ok,Hostname} = inet:gethostname(),
- FQDN = Hostname++"."++inet_db:res_option(domain),
+ FQDN =
+ case inet_db:res_option(domain) of
+ "" ->
+ Hostname;
+ _ ->
+ Hostname++"."++inet_db:res_option(domain)
+ end,
HostsFile = filename:join(Dir, "files_monitor_hosts"),
ResolvConf = filename:join(Dir, "files_monitor_resolv.conf"),
ok = inet_db:res_option(resolv_conf, ResolvConf),
@@ -362,20 +404,20 @@ do_files_monitor(Config) ->
{error,nxdomain} = inet_res:gethostbyname(FQDN),
{ok,{127,0,0,10}} = inet:getaddr("mx.otptest", inet),
{ok,{0,0,0,0,0,0,32512,28}} = inet:getaddr("resolve.otptest", inet6),
- ok = inet_db:res_option(inet6, true),
{ok,#hostent{h_name = Hostname,
h_addrtype = inet6,
h_length = 16,
h_addr_list = [{0,0,0,0,0,0,0,1}]}} =
- inet:gethostbyname(Hostname),
+ inet:gethostbyname(Hostname, inet6),
{ok,#hostent{h_name = FQDN,
h_addrtype = inet6,
h_length = 16,
h_addr_list = [{0,0,0,0,0,0,0,1}]}} =
- inet:gethostbyname(FQDN),
+ inet:gethostbyname(FQDN, inet6),
{error,nxdomain} = inet_res:gethostbyname("resolve"),
%% XXX inet does not honour res_option inet6, might be a problem?
%% therefore inet_res is called here
+ ok = inet_db:res_option(inet6, true),
{ok,#hostent{h_name = "resolve.otptest",
h_addrtype = inet6,
h_length = 16,
diff --git a/lib/kernel/test/init_SUITE.erl b/lib/kernel/test/init_SUITE.erl
index 3d777f93a4..bbd8261197 100644
--- a/lib/kernel/test/init_SUITE.erl
+++ b/lib/kernel/test/init_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(init_SUITE).
@@ -44,7 +44,7 @@ all(suite) ->
restart,
get_status, script_id, boot].
-init_per_testcase(Func, Config) when atom(Func), list(Config) ->
+init_per_testcase(Func, Config) when is_atom(Func), is_list(Config) ->
Dog=?t:timetrap(?t:seconds(?DEFAULT_TIMEOUT_SEC)),
[{watchdog, Dog}|Config].
@@ -477,7 +477,7 @@ script_id(Config) when is_list(Config) ->
?line {Name, Vsn} = init:script_id(),
?line if
- list(Name), list(Vsn) ->
+ is_list(Name), is_list(Vsn) ->
ok;
true ->
?t:fail(not_standard_script)
diff --git a/lib/kernel/test/kernel_SUITE.erl b/lib/kernel/test/kernel_SUITE.erl
index 225bc38b05..bb1d905de3 100644
--- a/lib/kernel/test/kernel_SUITE.erl
+++ b/lib/kernel/test/kernel_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%%----------------------------------------------------------------
@@ -56,6 +56,6 @@ app_test(doc) ->
["Tests the applications consistency."];
app_test(suite) ->
[];
-app_test(Config) when list(Config) ->
+app_test(Config) when is_list(Config) ->
?line ok=?t:app_test(kernel),
ok.
diff --git a/lib/kernel/test/kernel_config_SUITE.erl b/lib/kernel/test/kernel_config_SUITE.erl
index 6b7d788e60..c72fc3f02d 100644
--- a/lib/kernel/test/kernel_config_SUITE.erl
+++ b/lib/kernel/test/kernel_config_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(kernel_config_SUITE).
@@ -56,7 +56,7 @@ from(_, []) -> [].
%%-----------------------------------------------------------------
sync(doc) -> [];
sync(suite) -> [];
-sync(Conf) when list(Conf) ->
+sync(Conf) when is_list(Conf) ->
?line Dog = ?t:timetrap(?t:seconds(120)),
% Write a config file
Dir = ?config(priv_dir,Conf),
diff --git a/lib/kernel/test/loose_node.erl b/lib/kernel/test/loose_node.erl
index ac1ddb8d9a..87a4ef01c0 100644
--- a/lib/kernel/test/loose_node.erl
+++ b/lib/kernel/test/loose_node.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -55,7 +55,7 @@
%% Exported functions.
%%
-stop(Node) when atom(Node) ->
+stop(Node) when is_atom(Node) ->
rpc:cast(Node, erlang, halt, []),
io:format("Stopped loose node ~p~n", [Node]),
ok.
@@ -63,9 +63,10 @@ stop(Node) when atom(Node) ->
start(Name, Args) ->
start(Name, Args, -1).
-start(Name, Args, TimeOut) when atom(Name) ->
+start(Name, Args, TimeOut) when is_atom(Name) ->
start(atom_to_list(Name), Args, TimeOut);
-start(Name, Args, TimeOut) when list(Name), list(Args), integer(TimeOut) ->
+start(Name, Args, TimeOut)
+ when is_list(Name), is_list(Args), is_integer(TimeOut) ->
Parent = self(),
Ref = make_ref(),
Starter
@@ -119,7 +120,7 @@ start(Name, Args, TimeOut) when list(Name), list(Args), integer(TimeOut) ->
io:format("Trying to start loose node...~n"
" --> ~p~n", [Cmd]),
Res = case open_port({spawn, Cmd}, []) of
- P when port(P) ->
+ P when is_port(P) ->
receive
{loose_node_started,
Node,
@@ -150,14 +151,14 @@ start(Name, Args, TimeOut) when list(Name), list(Args), integer(TimeOut) ->
%% Exported functions for internal use.
%%
-loose_node_started([Name, Node, TimeOutSecs]) when list(Name),
- list(Node),
- list(TimeOutSecs) ->
+loose_node_started([Name, Node, TimeOutSecs]) when is_list(Name),
+ is_list(Node),
+ is_list(TimeOutSecs) ->
spawn_opt(fun () ->
process_flag(trap_exit, true),
Proc = {list_to_atom(Name), list_to_atom(Node)},
Timeout = case catch list_to_integer(TimeOutSecs) of
- I when integer(I), I >= 0 -> I*1000;
+ I when is_integer(I), I >= 0 -> I*1000;
_ -> infinity
end,
wait_until(fun () -> is_alive() end),
diff --git a/lib/kernel/test/os_SUITE.erl b/lib/kernel/test/os_SUITE.erl
index 667f267079..1673b33010 100644
--- a/lib/kernel/test/os_SUITE.erl
+++ b/lib/kernel/test/os_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(os_SUITE).
@@ -32,7 +32,7 @@ space_in_cwd(doc) ->
"Test that executing a command in a current working directory "
"with space in its name works.";
space_in_cwd(suite) -> [];
-space_in_cwd(Config) when list(Config) ->
+space_in_cwd(Config) when is_list(Config) ->
?line PrivDir = ?config(priv_dir, Config),
?line Dirname = filename:join(PrivDir, "cwd with space"),
?line ok = file:make_dir(Dirname),
@@ -60,7 +60,7 @@ space_in_cwd(Config) when list(Config) ->
quoting(doc) -> "Test that various ways of quoting arguments work.";
quoting(suite) -> [];
-quoting(Config) when list(Config) ->
+quoting(Config) when is_list(Config) ->
?line DataDir = ?config(data_dir, Config),
?line Echo = filename:join(DataDir, "my_echo"),
@@ -78,7 +78,7 @@ quoting(Config) when list(Config) ->
space_in_name(doc) ->
"Test that program with a space in its name can be executed.";
space_in_name(suite) -> [];
-space_in_name(Config) when list(Config) ->
+space_in_name(Config) when is_list(Config) ->
?line PrivDir = ?config(priv_dir, Config),
?line DataDir = ?config(data_dir, Config),
?line Spacedir = filename:join(PrivDir, "program files"),
@@ -108,7 +108,7 @@ space_in_name(Config) when list(Config) ->
bad_command(doc) ->
"Check that a bad command doesn't crasch the server or the emulator (it used to).";
bad_command(suite) -> [];
-bad_command(Config) when list(Config) ->
+bad_command(Config) when is_list(Config) ->
?line catch os:cmd([a|b]),
?line catch os:cmd({bad, thing}),
@@ -120,7 +120,7 @@ bad_command(Config) when list(Config) ->
find_executable(suite) -> [];
find_executable(doc) -> [];
-find_executable(Config) when list(Config) ->
+find_executable(Config) when is_list(Config) ->
case os:type() of
{win32, _} ->
?line DataDir = filename:join(?config(data_dir, Config), "win32"),
@@ -159,7 +159,7 @@ find_exe(Where, Name, Ext, Path) ->
case os:find_executable(Name, Path) of
Expected ->
ok;
- Name when list(Name) ->
+ Name when is_list(Name) ->
case filename:absname(Name) of
Expected ->
ok;
@@ -176,7 +176,7 @@ find_exe(Where, Name, Ext, Path) ->
unix_comment_in_command(doc) ->
"OTP-1805: Test that os:cmd(\"ls #\") works correctly (used to hang).";
unix_comment_in_command(suite) -> [];
-unix_comment_in_command(Config) when list(Config) ->
+unix_comment_in_command(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(20)),
?line Priv = ?config(priv_dir, Config),
?line ok = file:set_cwd(Priv),
diff --git a/lib/kernel/test/pdict_SUITE.erl b/lib/kernel/test/pdict_SUITE.erl
index 6aa434b614..87ee951a0c 100644
--- a/lib/kernel/test/pdict_SUITE.erl
+++ b/lib/kernel/test/pdict_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(pdict_SUITE).
@@ -49,7 +49,7 @@ simple(doc) ->
["Tests simple functionality in process dictionary."];
simple(suite) ->
[];
-simple(Config) when list(Config) ->
+simple(Config) when is_list(Config) ->
XX = get(),
erase(),
L = [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,
@@ -146,7 +146,7 @@ info(doc) ->
["Tests process_info(Pid, dictionary)"];
info(suite) ->
[];
-info(Config) when list(Config) ->
+info(Config) when is_list(Config) ->
L = [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,
q,r,s,t,u,v,x,y,z,'A','B','C','D'],
process_flag(trap_exit,true),
diff --git a/lib/kernel/test/rpc_SUITE.erl b/lib/kernel/test/rpc_SUITE.erl
index 2b39e31a80..2b7de40797 100644
--- a/lib/kernel/test/rpc_SUITE.erl
+++ b/lib/kernel/test/rpc_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(rpc_SUITE).
@@ -333,7 +333,7 @@ suicide(exit, Reason) ->
suicide(erlang, exit, [Name, Reason]) when is_atom(Name) ->
case whereis(Name) of
- Pid when pid(Pid) -> suicide(erlang, exit, [Pid, Reason])
+ Pid when is_pid(Pid) -> suicide(erlang, exit, [Pid, Reason])
end;
suicide(Mod, Func, Args) ->
spawn_link(
@@ -448,7 +448,7 @@ call_benchmark(Config) when is_list(Config) ->
?t:timetrap_cancel(Timetrap),
ok.
-do_call_benchmark(Node, M) when integer(M), M > 0 ->
+do_call_benchmark(Node, M) when is_integer(M), M > 0 ->
do_call_benchmark(Node, erlang:now(), 0, M).
do_call_benchmark(Node, {A,B,C}, M, M) ->
diff --git a/lib/kernel/test/seq_trace_SUITE.erl b/lib/kernel/test/seq_trace_SUITE.erl
index f582b94c97..b557c7fb1e 100644
--- a/lib/kernel/test/seq_trace_SUITE.erl
+++ b/lib/kernel/test/seq_trace_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1998-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1998-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(seq_trace_SUITE).
@@ -381,7 +381,7 @@ port(Config) when is_list(Config) ->
get_port_message(Port) ->
receive
- {Port,{data,Bin}} when binary(Bin) ->
+ {Port,{data,Bin}} when is_binary(Bin) ->
binary_to_term(Bin);
Other ->
?t:fail({unexpected,Other})
@@ -678,7 +678,7 @@ transparent_tracer() ->
receive {started, Ref} -> ok end,
fun(pid) ->
Pid;
- ({stop, N}) when integer(N), N >= 0 ->
+ ({stop, N}) when is_integer(N), N >= 0 ->
Mref = erlang:monitor(process, Pid),
receive
{'DOWN', Mref, _, _, _} ->
@@ -717,7 +717,7 @@ simple_tracer(Data, DN) ->
From ! {tracerlog,lists:reverse(Data)}
end.
-stop_tracer(N) when integer(N) ->
+stop_tracer(N) when is_integer(N) ->
case catch (seq_trace_SUITE_tracer ! {stop,N,self()}) of
{'EXIT', _} ->
{error, not_started};
diff --git a/lib/kernel/test/wrap_log_reader_SUITE.erl b/lib/kernel/test/wrap_log_reader_SUITE.erl
index 1d1570fbd9..ceac593e44 100644
--- a/lib/kernel/test/wrap_log_reader_SUITE.erl
+++ b/lib/kernel/test/wrap_log_reader_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1998-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1998-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -48,7 +48,7 @@
all(suite) ->
[no_file, one, two, four, wrap, wrapping, external, error].
-init_per_testcase(Func, Config) when atom(Func), list(Config) ->
+init_per_testcase(Func, Config) when is_atom(Func), is_list(Config) ->
Dog=?t:timetrap(?t:seconds(60)),
[{watchdog, Dog} | Config].
@@ -58,7 +58,7 @@ fin_per_testcase(_Func, _Config) ->
no_file(suite) -> [];
no_file(doc) -> ["No log file exists"];
-no_file(Conf) when list(Conf) ->
+no_file(Conf) when is_list(Conf) ->
?line code:add_path(?config(data_dir,Conf)),
Dir = ?privdir(Conf),
File = join(Dir, "sune.LOG"),
@@ -81,7 +81,7 @@ one(doc) -> ["One index file"].
one_empty(suite) -> [];
one_empty(doc) -> ["One empty index file"];
-one_empty(Conf) when list(Conf) ->
+one_empty(Conf) when is_list(Conf) ->
Dir = ?privdir(Conf),
File = join(Dir, "sune.LOG"),
delete_files(File),
@@ -107,7 +107,7 @@ one_empty(Conf) when list(Conf) ->
one_filled(suite) -> [];
one_filled(doc) -> ["One filled index file"];
-one_filled(Conf) when list(Conf) ->
+one_filled(Conf) when is_list(Conf) ->
Dir = ?privdir(Conf),
File = join(Dir, "sune.LOG"),
delete_files(File),
@@ -144,7 +144,7 @@ two(doc) -> ["Two index files"].
two_filled(suite) -> [];
two_filled(doc) -> ["Two filled index files"];
-two_filled(Conf) when list(Conf) ->
+two_filled(Conf) when is_list(Conf) ->
Dir = ?privdir(Conf),
File = list_to_atom(join(Dir, "sune.LOG")),
delete_files(File),
@@ -186,7 +186,7 @@ four(doc) -> ["Four index files"].
four_filled(suite) -> [];
four_filled(doc) -> ["Four filled index files"];
-four_filled(Conf) when list(Conf) ->
+four_filled(Conf) when is_list(Conf) ->
Dir = ?privdir(Conf),
File = join(Dir, "sune.LOG"),
delete_files(File),
@@ -231,7 +231,7 @@ wrap(doc) -> ["Wrap index file, first wrapping"].
wrap_filled(suite) -> [];
wrap_filled(doc) -> ["First wrap, open, filled index file"];
-wrap_filled(Conf) when list(Conf) ->
+wrap_filled(Conf) when is_list(Conf) ->
Dir = ?privdir(Conf),
File = join(Dir, "sune.LOG"),
delete_files(File),
@@ -274,7 +274,7 @@ test_wrap(File) ->
wrapping(suite) -> [];
wrapping(doc) -> ["Wrapping at the same time as reading"];
-wrapping(Conf) when list(Conf) ->
+wrapping(Conf) when is_list(Conf) ->
Dir = ?privdir(Conf),
File = join(Dir, "sune.LOG"),
delete_files(File),
@@ -329,7 +329,7 @@ wrapping(Conf) when list(Conf) ->
external(suite) -> [];
external(doc) -> ["External format"];
-external(Conf) when list(Conf) ->
+external(Conf) when is_list(Conf) ->
Dir = ?privdir(Conf),
File = join(Dir, "sune.LOG"),
delete_files(File),
@@ -349,7 +349,7 @@ external(Conf) when list(Conf) ->
error(suite) -> [];
error(doc) -> ["Error situations"];
-error(Conf) when list(Conf) ->
+error(Conf) when is_list(Conf) ->
Dir = ?privdir(Conf),
File = join(Dir, "sune.LOG"),
delete_files(File),
diff --git a/lib/megaco/configure.in b/lib/megaco/configure.in
index 297d618369..8f94a4efcf 100644
--- a/lib/megaco/configure.in
+++ b/lib/megaco/configure.in
@@ -1,20 +1,20 @@
dnl Process this file with autoconf to produce a configure script. -*-m4-*-
dnl
dnl %CopyrightBegin%
-dnl
-dnl Copyright Ericsson AB 2001-2009. All Rights Reserved.
-dnl
+dnl
+dnl Copyright Ericsson AB 2001-2010. All Rights Reserved.
+dnl
dnl The contents of this file are subject to the Erlang Public License,
dnl Version 1.1, (the "License"); you may not use this file except in
dnl compliance with the License. You should have received a copy of the
dnl Erlang Public License along with this software. If not, it can be
dnl retrieved online at http://www.erlang.org/.
-dnl
+dnl
dnl Software distributed under the License is distributed on an "AS IS"
dnl basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
dnl the License for the specific language governing rights and limitations
dnl under the License.
-dnl
+dnl
dnl %CopyrightEnd%
dnl
@@ -145,12 +145,14 @@ AC_ARG_ENABLE(megaco_flex_scanner_lineno,
AC_SUBST(ENABLE_MEGACO_FLEX_SCANNER_LINENO)
+dnl This is the os flavour, should be unix, vxworks or win32
+if test "X$host" = "Xwin32"; then
+ ERLANG_OSTYPE=win32
+else
+ ERLANG_OSTYPE=unix
+fi
-dnl
-dnl C compiler (related) defs
-dnl
-
-AC_PROG_CC
+AC_SUBST(ERLANG_OSTYPE)
dnl Magic test for clearcase.
if test -d ../../system; then
@@ -158,33 +160,55 @@ if test -d ../../system; then
else
OTP_EXTRA_FLAGS=
fi
+AC_SUBST(OTP_EXTRA_FLAGS)
+
+dnl
+dnl If ${ERL_TOP}/make/otp_ded.mk.in exists and contains DED_MK_VSN > 0,
+dnl every thing releted to compiling Dynamic Erlang Drivers can be found
+dnl in $(ERL_TOP)/make/$(TARGET)/ded.mk at compile time. If not, try to
+dnl figure these things out.
+dnl
+
+AC_MSG_CHECKING([for usable Dynamic Erlang Driver configuration])
+[
+ ded_mk_in="${ERL_TOP}/make/otp_ded.mk.in"
+ ded_mk_vsn=
+ test -r "$ded_mk_in" &&
+ ded_mk_vsn=`sed -n "s/^DED_MK_VSN[ ]*=[ ]*\(.*\)/\1/p" < "$ded_mk_in"`
+ test "$ded_mk_vsn" != "" || ded_mk_vsn=0
+]
+
+if test $ded_mk_vsn -gt 0; then
+
+HAVE_USABLE_OTP_DED_MK=yes
+AC_MSG_RESULT([yes])
+CC=false
+AC_SUBST(CC)
+DED_LD=false
+AC_SUBST(DED_LD)
+
+else dnl --- begin no usable otp_ded.mk.in ---
+
+HAVE_USABLE_OTP_DED_MK=no
+AC_MSG_RESULT([no])
dnl
-dnl The ErlDrvEntry struct changed in R13 (another field)
+dnl C compiler (related) defs
dnl
-AC_CHECK_MEMBERS([struct ErlDrvEntry.stop_select],
- [
- CFLAGS="$CFLAGS -DMEGACO_DRV_ENTRY_HAS_STOP_SELECT"
- ],
- [],
- [
- #include "erl_driver.h"
- ])
+AC_PROG_CC
dnl
dnl Flags to the C compiler
dnl
-dnl make sure we find config.h
-CFLAGS="$CFLAGS -I${ERL_TOP}/erts/$host -I${ERL_TOP}/erts/include/$host $OTP_EXTRA_FLAGS"
if test "X$host" = "Xwin32"; then
DED_CFLAGS="$CFLAGS"
else
case $host_os in
darwin*)
- CFLAGS="$CFLAGS -no-cpp-precomp"
+ CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
;;
esac
@@ -196,22 +220,10 @@ else
fi
dnl emulator includes needed
-DED_INCLUDE="-I${ERL_TOP}/erts/emulator/beam -I${ERL_TOP}/erts/include -I${ERL_TOP}/erts/include/$host"
-
-DED_CFLAGS="$DED_INCLUDE $DED_CFLAGS"
-
-
+DED_INCLUDES="-I${ERL_TOP}/erts/emulator/beam -I${ERL_TOP}/erts/include -I${ERL_TOP}/erts/include/$host -I${ERL_TOP}/erts/include/internal -I${ERL_TOP}/erts/include/internal/$host -I${ERL_TOP}/erts/emulator/sys/$ERLANG_OSTYPE"
-AC_SUBST(DED_CFLAGS)
-
-
-AC_CHECK_PROGS(DED_LD, [ld.sh ld], no_ld)
-if test "$DED_LD" = no_ld; then
- AC_MSG_ERROR([ld is required to build the flex scanner!])
-fi
+DED_THR_DEFS="-D_THREAD_SAFE -D_REENTRANT"
-
-AC_MSG_CHECKING(for linker flags for loadable drivers)
case $host_os in
win32)
DED_LDFLAGS="-dll"
@@ -230,33 +242,36 @@ case $host_os in
# Mach-O linker, a shared lib and a loadable
# object file is not the same thing.
DED_LDFLAGS="-bundle -flat_namespace -undefined suppress"
- DED_CFLAGS="$DED_CFLAGS -fno-common"
+ DED_LD="$CC"
;;
*)
# assume GNU linker and ELF
DED_LDFLAGS="-shared"
;;
esac
+
+AC_CHECK_PROGS(DED_LD, [$LD ld.sh])
+AC_CHECK_TOOL(DED_LD, ld, no_ld)
+if test "$DED_LD" = no_ld; then
+ AC_MSG_ERROR([ld is required to build the flex scanner!])
+fi
+
+AC_MSG_CHECKING(for linker flags for loadable drivers)
DED_LDFLAGS="$LDFLAGS $DED_LDFLAGS"
AC_MSG_RESULT([$DED_LDFLAGS])
-AC_SUBST(DED_LDFLAGS)
+fi dnl --- end no usable otp_ded.mk.in ---
+
+AC_SUBST(HAVE_USABLE_OTP_DED_MK)
+AC_SUBST(DED_CFLAGS)
+AC_SUBST(DED_INCLUDES)
+AC_SUBST(DED_THR_DEFS)
+AC_SUBST(DED_LDFLAGS)
AC_CHECK_PROG(PERL, perl, perl, no_perl)
if test "$PERL" = no_perl; then
AC_MSG_ERROR([Perl is required to build the flex scanner!])
fi
-
-dnl This is the os flavour, should be unix, vxworks or win32
-if test "X$host" = "Xwin32"; then
- ERLANG_OSTYPE=win32
-else
- ERLANG_OSTYPE=unix
-fi
-
-AC_SUBST(ERLANG_OSTYPE)
-
-
AC_OUTPUT(src/flex/$host/Makefile:src/flex/Makefile.in)
diff --git a/lib/megaco/doc/src/Makefile b/lib/megaco/doc/src/Makefile
index 2c55e92914..2355a1b8b9 100644
--- a/lib/megaco/doc/src/Makefile
+++ b/lib/megaco/doc/src/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2000-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2000-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
include $(ERL_TOP)/make/target.mk
@@ -49,6 +49,9 @@ include files.mk
# ----------------------------------------------------
+XML_FILES = $(BOOK_FILES) $(XML_APPLICATION_FILES) $(XML_REF3_FILES) \
+ $(XML_PART_FILES) $(XML_CHAPTER_FILES)
+
INTERNAL_HTML_FILES = $(TECHNICAL_DESCR_FILES:%.xml=$(HTMLDIR)/%.html)
HTML_APP_FILES = $(XML_APPLICATION_FILES:%.xml=$(HTMLDIR)/%.html)
@@ -104,8 +107,10 @@ INDEX_SRC = $(INDEX_FILE).src
INDEX_TARGET = $(DOCDIR)/$(INDEX_FILE)
STANDARD_DIR = ../standard
-STANDARDS = $(STANDARD_DIR)/rfc3015.txt \
- $(STANDARD_DIR)/implementors_guide_v6.pdf
+STANDARDS = $(STANDARD_DIR)/rfc3525.txt \
+ $(STANDARD_DIR)/rfc4234.txt \
+ $(STANDARD_DIR)/rfc4566.txt \
+ $(STANDARD_DIR)/implementors_guide_v10-13.pdf
# ----------------------------------------------------
# FLAGS
diff --git a/lib/megaco/doc/src/megaco_codec_transform.xml b/lib/megaco/doc/src/megaco_codec_transform.xml
index 71f7fc689f..89ed3fd654 100644
--- a/lib/megaco/doc/src/megaco_codec_transform.xml
+++ b/lib/megaco/doc/src/megaco_codec_transform.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>megaco_codec_transform</title>
@@ -36,8 +36,8 @@
<description>
<p>This module implements a simple megaco message transformation utility.</p>
- <p><em>Note</em> that this module is <em>not</em> included in the runtime part of
- the application.</p>
+ <p><em>Note</em> that this module is <em>not</em> included in the
+ runtime part of the application.</p>
<marker id="export_messages"></marker>
</description>
@@ -51,15 +51,16 @@
<v>MessagePackage = atom()</v>
</type>
<desc>
- <p>Export the messages in the <c>MessagePackage</c> (default is <c>time_test</c>). </p>
- <p>The out produced by this function is a directory structure with the
- following structure: </p>
+ <p>Export the messages in the <c>MessagePackage</c> (default
+ is <c>time_test</c>). </p>
+ <p>The output produced by this function is a directory structure
+ with the following structure: </p>
<code type="none"><![CDATA[
-\011 <message package>/pretty/<message-files>
-\011 compact/<message-files>
-\011 per/<message-files>
-\011 ber/<message-files>
-\011 erlang/<message-files>
+<message package>/pretty/<message-files>
+ compact/<message-files>
+ per/<message-files>
+ ber/<message-files>
+ erlang/<message-files>
]]></code>
</desc>
</func>
diff --git a/lib/megaco/doc/src/megaco_debug.xml b/lib/megaco/doc/src/megaco_debug.xml
index 1b99985341..2523a3be86 100644
--- a/lib/megaco/doc/src/megaco_debug.xml
+++ b/lib/megaco/doc/src/megaco_debug.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>2000</year><year>2009</year>
+ <year>2000</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Testing and tools</title>
@@ -159,12 +159,12 @@
<p>When run as above (this will take some time), the measurement
process is done as follows:</p>
<pre>
-\011 For each codec:
-\011 For each message:
-\011 Read the message from the file
-\011 Detect message version
-\011 Measure decode
- Measure encode
+For each codec:
+ For each message:
+ Read the message from the file
+ Detect message version
+ Measure decode
+ Measure encode
Write results, encode, decode and total, to file
</pre>
</item>
@@ -218,11 +218,11 @@ message() = binary()
with the following structure:
</p>
<code type="none"><![CDATA[
-\011 <message package>/pretty/<message-files>
-\011 compact/
-\011 per/
-\011 ber/<message-files>
-\011 erlang/
+<message package>/pretty/<message-files>
+ compact/
+ per/
+ ber/<message-files>
+ erlang/
]]></code>
<p>The file includes both version 1, 2 and version 3 messages.</p>
</section>
diff --git a/lib/megaco/doc/src/megaco_performance.xml b/lib/megaco/doc/src/megaco_performance.xml
index b34ee4f389..72b5c156ba 100644
--- a/lib/megaco/doc/src/megaco_performance.xml
+++ b/lib/megaco/doc/src/megaco_performance.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Performance comparison</title>
@@ -257,12 +257,12 @@ MEGACO/1 [124.124.124.222]
Transaction = 9998 {
Context = - {
ServiceChange = ROOT {
- \011Services {
- \011 Method = Restart,
- \011 ServiceChangeAddress = 55555,
- \011 Profile = ResGW/1,
- \011 Reason = "901 MG Cold Boot"
- \011}
+ Services {
+ Method = Restart,
+ ServiceChangeAddress = 55555,
+ Profile = ResGW/1,
+ Reason = "901 MG Cold Boot"
+ }
}
}
} </pre>
diff --git a/lib/megaco/doc/src/notes.xml b/lib/megaco/doc/src/notes.xml
index bacb7275d7..116020de87 100644
--- a/lib/megaco/doc/src/notes.xml
+++ b/lib/megaco/doc/src/notes.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>2000</year><year>2009</year>
+ <year>2000</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Megaco Release Notes</title>
@@ -36,27 +36,33 @@
section is the version number of Megaco.</p>
<section>
- <title>Megaco 3.13.0.1</title>
+ <title>Megaco 3.13.1</title>
- <p>Version 3.13.0.1 supports code replacement in runtime from/to
+ <p>Version 3.13.1 supports code replacement in runtime from/to
version 3.13, 3.12 and 3.11.3.</p>
<section>
<title>Improvements and new features</title>
+<!--
<p>-</p>
+-->
-<!--
<list type="bulleted">
<item>
- <p>The documentation is now built with open source tools
- (<em>xsltproc</em> and <em>fop</em>) that exists on most
- platforms. One visible change is that the frames are removed.</p>
- <p>Own Id: OTP-8249</p>
+ <p>Various changes to configure and makefile(s) to facilitate cross
+ compilation. </p>
+ <p>Own Id: OTP-8323</p>
+ </item>
+
+ <item>
+ <p>Added a help target in the test Makefile to explain
+ the most useful make targets, used when testing the
+ application using the test-server provided with megaco.</p>
+ <p>Own Id: OTP-8362</p>
</item>
</list>
--->
</section>
@@ -68,32 +74,26 @@
<list type="bulleted">
<item>
- <p>Fixing copyright problems.</p>
+ <p>Callbacks, when the callback module is unknown (undefined),
+ results in warning messages. </p>
+ <p>A raise condition scenario. As part of a cancelation operation,
+ replies with waiting acknowledgements is cancelled. This includes
+ informing the user (via a call to the handle_trans_ack callback
+ function). It is possible that at this point the connection data
+ has been removed, which makes it impossible for megaco to
+ perform this operation, resulting in the warning message. The
+ solution is to also store the callback module with the other
+ reply information, to be used when cleaning up after a
+ cancelation. </p>
+ <p>Own Id: OTP-8328</p>
+ <p>Aux Id: Seq 11384</p>
</item>
</list>
</section>
- <section>
- <title>Incompatibilities</title>
- <p>-</p>
-
-<!--
- <list type="bulleted">
- <item>
- <p>For those implementing their own codec's, the new megaco_encoder
- behaviour will require three more functions. See above for more
- info. </p>
- <p>Own Id: OTP-7168</p>
- <p>Aux Id: Seq 10867</p>
- </item>
-
- </list>
--->
-
- </section>
- </section> <!-- 3.13.0.1 -->
+ </section> <!-- 3.13.1 -->
<section>
diff --git a/lib/megaco/doc/standard/H.248.1-Corr1-200403.doc b/lib/megaco/doc/standard/H.248.1-Corr1-200403.doc
deleted file mode 100644
index 39ef6e4efa..0000000000
--- a/lib/megaco/doc/standard/H.248.1-Corr1-200403.doc
+++ /dev/null
Binary files differ
diff --git a/lib/megaco/doc/standard/rfc2327.txt b/lib/megaco/doc/standard/rfc2327.txt
deleted file mode 100644
index ce77de6128..0000000000
--- a/lib/megaco/doc/standard/rfc2327.txt
+++ /dev/null
@@ -1,2355 +0,0 @@
-
-
-
-
-
-
-Network Working Group M. Handley
-Request for Comments: 2327 V. Jacobson
-Category: Standards Track ISI/LBNL
- April 1998
-
-
- SDP: Session Description Protocol
-
-Status of this Memo
-
- This document specifies an Internet standards track protocol for the
- Internet community, and requests discussion and suggestions for
- improvements. Please refer to the current edition of the "Internet
- Official Protocol Standards" (STD 1) for the standardization state
- and status of this protocol. Distribution of this memo is unlimited.
-
-Copyright Notice
-
- Copyright (C) The Internet Society (1998). All Rights Reserved.
-
-Abstract
-
- This document defines the Session Description Protocol, SDP. SDP is
- intended for describing multimedia sessions for the purposes of
- session announcement, session invitation, and other forms of
- multimedia session initiation.
-
- This document is a product of the Multiparty Multimedia Session
- Control (MMUSIC) working group of the Internet Engineering Task
- Force. Comments are solicited and should be addressed to the working
- group's mailing list at [email protected] and/or the authors.
-
-1. Introduction
-
- On the Internet multicast backbone (Mbone), a session directory tool
- is used to advertise multimedia conferences and communicate the
- conference addresses and conference tool-specific information
- necessary for participation. This document defines a session
- description protocol for this purpose, and for general real-time
- multimedia session description purposes. This memo does not describe
- multicast address allocation or the distribution of SDP messages in
- detail. These are described in accompanying memos. SDP is not
- intended for negotiation of media encodings.
-
-
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 1]
-
-RFC 2327 SDP April 1998
-
-
-2. Background
-
- The Mbone is the part of the internet that supports IP multicast, and
- thus permits efficient many-to-many communication. It is used
- extensively for multimedia conferencing. Such conferences usually
- have the property that tight coordination of conference membership is
- not necessary; to receive a conference, a user at an Mbone site only
- has to know the conference's multicast group address and the UDP
- ports for the conference data streams.
-
- Session directories assist the advertisement of conference sessions
- and communicate the relevant conference setup information to
- prospective participants. SDP is designed to convey such information
- to recipients. SDP is purely a format for session description - it
- does not incorporate a transport protocol, and is intended to use
- different transport protocols as appropriate including the Session
- Announcement Protocol [4], Session Initiation Protocol [11], Real-
- Time Streaming Protocol [12], electronic mail using the MIME
- extensions, and the Hypertext Transport Protocol.
-
- SDP is intended to be general purpose so that it can be used for a
- wider range of network environments and applications than just
- multicast session directories. However, it is not intended to
- support negotiation of session content or media encodings - this is
- viewed as outside the scope of session description.
-
-3. Glossary of Terms
-
- The following terms are used in this document, and have specific
- meaning within the context of this document.
-
- Conference
- A multimedia conference is a set of two or more communicating users
- along with the software they are using to communicate.
-
- Session
- A multimedia session is a set of multimedia senders and receivers
- and the data streams flowing from senders to receivers. A
- multimedia conference is an example of a multimedia session.
-
- Session Advertisement
- See session announcement.
-
- Session Announcement
- A session announcement is a mechanism by which a session
- description is conveyed to users in a proactive fashion, i.e., the
- session description was not explicitly requested by the user.
-
-
-
-
-Handley & Jacobson Standards Track [Page 2]
-
-RFC 2327 SDP April 1998
-
-
- Session Description
- A well defined format for conveying sufficient information to
- discover and participate in a multimedia session.
-
-3.1. Terminology
-
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
- "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
- document are to be interpreted as described in RFC 2119.
-
-4. SDP Usage
-
-4.1. Multicast Announcements
-
- SDP is a session description protocol for multimedia sessions. A
- common mode of usage is for a client to announce a conference session
- by periodically multicasting an announcement packet to a well known
- multicast address and port using the Session Announcement Protocol
- (SAP).
-
- SAP packets are UDP packets with the following format:
-
- |--------------------|
- | SAP header |
- |--------------------|
- | text payload |
- |//////////
-
-
- The header is the Session Announcement Protocol header. SAP is
- described in more detail in a companion memo [4]
-
- The text payload is an SDP session description, as described in this
- memo. The text payload should be no greater than 1 Kbyte in length.
- If announced by SAP, only one session announcement is permitted in a
- single packet.
-
-4.2. Email and WWW Announcements
-
- Alternative means of conveying session descriptions include
- electronic mail and the World Wide Web. For both email and WWW
- distribution, the use of the MIME content type "application/sdp"
- should be used. This enables the automatic launching of applications
- for participation in the session from the WWW client or mail reader
- in a standard manner.
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 3]
-
-RFC 2327 SDP April 1998
-
-
- Note that announcements of multicast sessions made only via email or
- the World Wide Web (WWW) do not have the property that the receiver
- of a session announcement can necessarily receive the session because
- the multicast sessions may be restricted in scope, and access to the
- WWW server or reception of email is possible outside this scope. SAP
- announcements do not suffer from this mismatch.
-
-5. Requirements and Recommendations
-
- The purpose of SDP is to convey information about media streams in
- multimedia sessions to allow the recipients of a session description
- to participate in the session. SDP is primarily intended for use in
- an internetwork, although it is sufficiently general that it can
- describe conferences in other network environments.
-
- A multimedia session, for these purposes, is defined as a set of
- media streams that exist for some duration of time. Media streams
- can be many-to-many. The times during which the session is active
- need not be continuous.
-
- Thus far, multicast based sessions on the Internet have differed from
- many other forms of conferencing in that anyone receiving the traffic
- can join the session (unless the session traffic is encrypted). In
- such an environment, SDP serves two primary purposes. It is a means
- to communicate the existence of a session, and is a means to convey
- sufficient information to enable joining and participating in the
- session. In a unicast environment, only the latter purpose is likely
- to be relevant.
-
- Thus SDP includes:
-
- o Session name and purpose
-
- o Time(s) the session is active
-
- o The media comprising the session
-
- o Information to receive those media (addresses, ports, formats and
- so on)
-
- As resources necessary to participate in a session may be limited,
- some additional information may also be desirable:
-
- o Information about the bandwidth to be used by the conference
-
- o Contact information for the person responsible for the session
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 4]
-
-RFC 2327 SDP April 1998
-
-
- In general, SDP must convey sufficient information to be able to join
- a session (with the possible exception of encryption keys) and to
- announce the resources to be used to non-participants that may need
- to know.
-
-5.1. Media Information
-
- SDP includes:
-
- o The type of media (video, audio, etc)
-
- o The transport protocol (RTP/UDP/IP, H.320, etc)
-
- o The format of the media (H.261 video, MPEG video, etc)
-
- For an IP multicast session, the following are also conveyed:
-
- o Multicast address for media
-
- o Transport Port for media
-
- This address and port are the destination address and destination
- port of the multicast stream, whether being sent, received, or both.
-
- For an IP unicast session, the following are conveyed:
-
- o Remote address for media
-
- o Transport port for contact address
-
- The semantics of this address and port depend on the media and
- transport protocol defined. By default, this is the remote address
- and remote port to which data is sent, and the remote address and
- local port on which to receive data. However, some media may define
- to use these to establish a control channel for the actual media
- flow.
-
-5.2. Timing Information
-
- Sessions may either be bounded or unbounded in time. Whether or not
- they are bounded, they may be only active at specific times.
-
- SDP can convey:
-
- o An arbitrary list of start and stop times bounding the session
-
- o For each bound, repeat times such as "every Wednesday at 10am for
- one hour"
-
-
-
-Handley & Jacobson Standards Track [Page 5]
-
-RFC 2327 SDP April 1998
-
-
- This timing information is globally consistent, irrespective of local
- time zone or daylight saving time.
-
-5.3. Private Sessions
-
- It is possible to create both public sessions and private sessions.
- Private sessions will typically be conveyed by encrypting the session
- description to distribute it. The details of how encryption is
- performed are dependent on the mechanism used to convey SDP - see [4]
- for how this is done for session announcements.
-
- If a session announcement is private it is possible to use that
- private announcement to convey encryption keys necessary to decode
- each of the media in a conference, including enough information to
- know which encryption scheme is used for each media.
-
-5.4. Obtaining Further Information about a Session
-
- A session description should convey enough information to decide
- whether or not to participate in a session. SDP may include
- additional pointers in the form of Universal Resources Identifiers
- (URIs) for more information about the session.
-
-5.5. Categorisation
-
- When many session descriptions are being distributed by SAP or any
- other advertisement mechanism, it may be desirable to filter
- announcements that are of interest from those that are not. SDP
- supports a categorisation mechanism for sessions that is capable of
- being automated.
-
-5.6. Internationalization
-
- The SDP specification recommends the use of the ISO 10646 character
- sets in the UTF-8 encoding (RFC 2044) to allow many different
- languages to be represented. However, to assist in compact
- representations, SDP also allows other character sets such as ISO
- 8859-1 to be used when desired. Internationalization only applies to
- free-text fields (session name and background information), and not
- to SDP as a whole.
-
-6. SDP Specification
-
- SDP session descriptions are entirely textual using the ISO 10646
- character set in UTF-8 encoding. SDP field names and attributes names
- use only the US-ASCII subset of UTF-8, but textual fields and
- attribute values may use the full ISO 10646 character set. The
- textual form, as opposed to a binary encoding such as ASN/1 or XDR,
-
-
-
-Handley & Jacobson Standards Track [Page 6]
-
-RFC 2327 SDP April 1998
-
-
- was chosen to enhance portability, to enable a variety of transports
- to be used (e.g, session description in a MIME email message) and to
- allow flexible, text-based toolkits (e.g., Tcl/Tk ) to be used to
- generate and to process session descriptions. However, since the
- total bandwidth allocated to all SAP announcements is strictly
- limited, the encoding is deliberately compact. Also, since
- announcements may be transported via very unreliable means (e.g.,
- email) or damaged by an intermediate caching server, the encoding was
- designed with strict order and formatting rules so that most errors
- would result in malformed announcements which could be detected
- easily and discarded. This also allows rapid discarding of encrypted
- announcements for which a receiver does not have the correct key.
-
- An SDP session description consists of a number of lines of text of
- the form <type>=<value> <type> is always exactly one character and is
- case-significant. <value> is a structured text string whose format
- depends on <type>. It also will be case-significant unless a
- specific field defines otherwise. Whitespace is not permitted either
- side of the `=' sign. In general <value> is either a number of fields
- delimited by a single space character or a free format string.
-
- A session description consists of a session-level description
- (details that apply to the whole session and all media streams) and
- optionally several media-level descriptions (details that apply onto
- to a single media stream).
-
- An announcement consists of a session-level section followed by zero
- or more media-level sections. The session-level part starts with a
- `v=' line and continues to the first media-level section. The media
- description starts with an `m=' line and continues to the next media
- description or end of the whole session description. In general,
- session-level values are the default for all media unless overridden
- by an equivalent media-level value.
-
- When SDP is conveyed by SAP, only one session description is allowed
- per packet. When SDP is conveyed by other means, many SDP session
- descriptions may be concatenated together (the `v=' line indicating
- the start of a session description terminates the previous
- description). Some lines in each description are required and some
- are optional but all must appear in exactly the order given here (the
- fixed order greatly enhances error detection and allows for a simple
- parser). Optional items are marked with a `*'.
-
-Session description
- v= (protocol version)
- o= (owner/creator and session identifier).
- s= (session name)
- i=* (session information)
-
-
-
-Handley & Jacobson Standards Track [Page 7]
-
-RFC 2327 SDP April 1998
-
-
- u=* (URI of description)
- e=* (email address)
- p=* (phone number)
- c=* (connection information - not required if included in all media)
- b=* (bandwidth information)
- One or more time descriptions (see below)
- z=* (time zone adjustments)
- k=* (encryption key)
- a=* (zero or more session attribute lines)
- Zero or more media descriptions (see below)
-
-Time description
- t= (time the session is active)
- r=* (zero or more repeat times)
-
-Media description
- m= (media name and transport address)
- i=* (media title)
- c=* (connection information - optional if included at session-level)
- b=* (bandwidth information)
- k=* (encryption key)
- a=* (zero or more media attribute lines)
-
- The set of `type' letters is deliberately small and not intended to
- be extensible -- SDP parsers must completely ignore any announcement
- that contains a `type' letter that it does not understand. The
- `attribute' mechanism ("a=" described below) is the primary means for
- extending SDP and tailoring it to particular applications or media.
- Some attributes (the ones listed in this document) have a defined
- meaning but others may be added on an application-, media- or
- session-specific basis. A session directory must ignore any
- attribute it doesn't understand.
-
- The connection (`c=') and attribute (`a=') information in the
- session-level section applies to all the media of that session unless
- overridden by connection information or an attribute of the same name
- in the media description. For instance, in the example below, each
- media behaves as if it were given a `recvonly' attribute.
-
- An example SDP description is:
-
- v=0
- o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
- s=SDP Seminar
- i=A Seminar on the session description protocol
- u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
- [email protected] (Mark Handley)
- c=IN IP4 224.2.17.12/127
-
-
-
-Handley & Jacobson Standards Track [Page 8]
-
-RFC 2327 SDP April 1998
-
-
- t=2873397496 2873404696
- a=recvonly
- m=audio 49170 RTP/AVP 0
- m=video 51372 RTP/AVP 31
- m=application 32416 udp wb
- a=orient:portrait
-
- Text records such as the session name and information are bytes
- strings which may contain any byte with the exceptions of 0x00 (Nul),
- 0x0a (ASCII newline) and 0x0d (ASCII carriage return). The sequence
- CRLF (0x0d0a) is used to end a record, although parsers should be
- tolerant and also accept records terminated with a single newline
- character. By default these byte strings contain ISO-10646
- characters in UTF-8 encoding, but this default may be changed using
- the `charset' attribute.
-
- Protocol Version
-
- v=0
-
- The "v=" field gives the version of the Session Description Protocol.
- There is no minor version number.
-
- Origin
-
- o=<username> <session id> <version> <network type> <address type>
- <address>
-
- The "o=" field gives the originator of the session (their username
- and the address of the user's host) plus a session id and session
- version number.
-
- <username> is the user's login on the originating host, or it is "-"
- if the originating host does not support the concept of user ids.
- <username> must not contain spaces. <session id> is a numeric string
- such that the tuple of <username>, <session id>, <network type>,
- <address type> and <address> form a globally unique identifier for
- the session.
-
- The method of <session id> allocation is up to the creating tool, but
- it has been suggested that a Network Time Protocol (NTP) timestamp be
- used to ensure uniqueness [1].
-
- <version> is a version number for this announcement. It is needed
- for proxy announcements to detect which of several announcements for
- the same session is the most recent. Again its usage is up to the
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 9]
-
-RFC 2327 SDP April 1998
-
-
- creating tool, so long as <version> is increased when a modification
- is made to the session data. Again, it is recommended (but not
- mandatory) that an NTP timestamp is used.
-
- <network type> is a text string giving the type of network.
- Initially "IN" is defined to have the meaning "Internet". <address
- type> is a text string giving the type of the address that follows.
- Initially "IP4" and "IP6" are defined. <address> is the globally
- unique address of the machine from which the session was created.
- For an address type of IP4, this is either the fully-qualified domain
- name of the machine, or the dotted-decimal representation of the IP
- version 4 address of the machine. For an address type of IP6, this
- is either the fully-qualified domain name of the machine, or the
- compressed textual representation of the IP version 6 address of the
- machine. For both IP4 and IP6, the fully-qualified domain name is
- the form that SHOULD be given unless this is unavailable, in which
- case the globally unique address may be substituted. A local IP
- address MUST NOT be used in any context where the SDP description
- might leave the scope in which the address is meaningful.
-
- In general, the "o=" field serves as a globally unique identifier for
- this version of this session description, and the subfields excepting
- the version taken together identify the session irrespective of any
- modifications.
-
- Session Name
-
- s=<session name>
-
- The "s=" field is the session name. There must be one and only one
- "s=" field per session description, and it must contain ISO 10646
- characters (but see also the `charset' attribute below).
-
- Session and Media Information
-
- i=<session description>
-
- The "i=" field is information about the session. There may be at
- most one session-level "i=" field per session description, and at
- most one "i=" field per media. Although it may be omitted, this is
- discouraged for session announcements, and user interfaces for
- composing sessions should require text to be entered. If it is
- present it must contain ISO 10646 characters (but see also the
- `charset' attribute below).
-
- A single "i=" field can also be used for each media definition. In
- media definitions, "i=" fields are primarily intended for labeling
- media streams. As such, they are most likely to be useful when a
-
-
-
-Handley & Jacobson Standards Track [Page 10]
-
-RFC 2327 SDP April 1998
-
-
- single session has more than one distinct media stream of the same
- media type. An example would be two different whiteboards, one for
- slides and one for feedback and questions.
-
- URI
-
- u=<URI>
-
- o A URI is a Universal Resource Identifier as used by WWW clients
-
- o The URI should be a pointer to additional information about the
- conference
-
- o This field is optional, but if it is present it should be specified
- before the first media field
-
- o No more than one URI field is allowed per session description
-
-
- Email Address and Phone Number
-
- e=<email address>
- p=<phone number>
-
- o These specify contact information for the person responsible for
- the conference. This is not necessarily the same person that
- created the conference announcement.
-
- o Either an email field or a phone field must be specified.
- Additional email and phone fields are allowed.
-
- o If these are present, they should be specified before the first
- media field.
-
- o More than one email or phone field can be given for a session
- description.
-
- o Phone numbers should be given in the conventional international
-
- format - preceded by a "+ and the international country code.
- There must be a space or a hyphen ("-") between the country code
- and the rest of the phone number. Spaces and hyphens may be used
- to split up a phone field to aid readability if desired. For
- example:
-
- p=+44-171-380-7777 or p=+1 617 253 6011
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 11]
-
-RFC 2327 SDP April 1998
-
-
- o Both email addresses and phone numbers can have an optional free
- text string associated with them, normally giving the name of the
- person who may be contacted. This should be enclosed in
- parenthesis if it is present. For example:
-
- [email protected] (Mark Handley)
-
- The alternative RFC822 name quoting convention is also allowed for
- both email addresses and phone numbers. For example,
-
- e=Mark Handley <[email protected]>
-
- The free text string should be in the ISO-10646 character set with
- UTF-8 encoding, or alternatively in ISO-8859-1 or other encodings
- if the appropriate charset session-level attribute is set.
-
- Connection Data
-
- c=<network type> <address type> <connection address>
-
- The "c=" field contains connection data.
-
- A session announcement must contain one "c=" field in each media
- description (see below) or a "c=" field at the session-level. It may
- contain a session-level "c=" field and one additional "c=" field per
- media description, in which case the per-media values override the
- session-level settings for the relevant media.
-
- The first sub-field is the network type, which is a text string
- giving the type of network. Initially "IN" is defined to have the
- meaning "Internet".
-
- The second sub-field is the address type. This allows SDP to be used
- for sessions that are not IP based. Currently only IP4 is defined.
-
- The third sub-field is the connection address. Optional extra
- subfields may be added after the connection address depending on the
- value of the <address type> field.
-
- For IP4 addresses, the connection address is defined as follows:
-
- o Typically the connection address will be a class-D IP multicast
-
- group address. If the session is not multicast, then the
- connection address contains the fully-qualified domain name or the
- unicast IP address of the expected data source or data relay or
- data sink as determined by additional attribute fields. It is not
- expected that fully-qualified domain names or unicast addresses
-
-
-
-Handley & Jacobson Standards Track [Page 12]
-
-RFC 2327 SDP April 1998
-
-
- will be given in a session description that is communicated by a
- multicast announcement, though this is not prohibited. If a
- unicast data stream is to pass through a network address
- translator, the use of a fully-qualified domain name rather than an
- unicast IP address is RECOMMENDED. In other cases, the use of an
- IP address to specify a particular interface on a multi-homed host
- might be required. Thus this specification leaves the decision as
- to which to use up to the individual application, but all
- applications MUST be able to cope with receiving both formats.
-
- o Conferences using an IP multicast connection address must also have
- a time to live (TTL) value present in addition to the multicast
- address. The TTL and the address together define the scope with
- which multicast packets sent in this conference will be sent. TTL
- values must be in the range 0-255.
-
- The TTL for the session is appended to the address using a slash as
- a separator. An example is:
-
- c=IN IP4 224.2.1.1/127
-
- Hierarchical or layered encoding schemes are data streams where the
- encoding from a single media source is split into a number of
- layers. The receiver can choose the desired quality (and hence
- bandwidth) by only subscribing to a subset of these layers. Such
- layered encodings are normally transmitted in multiple multicast
- groups to allow multicast pruning. This technique keeps unwanted
- traffic from sites only requiring certain levels of the hierarchy.
- For applications requiring multiple multicast groups, we allow the
- following notation to be used for the connection address:
-
- <base multicast address>/<ttl>/<number of addresses>
-
- If the number of addresses is not given it is assumed to be one.
- Multicast addresses so assigned are contiguously allocated above
- the base address, so that, for example:
-
- c=IN IP4 224.2.1.1/127/3
-
- would state that addresses 224.2.1.1, 224.2.1.2 and 224.2.1.3 are
- to be used at a ttl of 127. This is semantically identical to
- including multiple "c=" lines in a media description:
-
- c=IN IP4 224.2.1.1/127
- c=IN IP4 224.2.1.2/127
- c=IN IP4 224.2.1.3/127
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 13]
-
-RFC 2327 SDP April 1998
-
-
- Multiple addresses or "c=" lines can only be specified on a per-
- media basis, and not for a session-level "c=" field.
-
- It is illegal for the slash notation described above to be used for
- IP unicast addresses.
-
- Bandwidth
-
- b=<modifier>:<bandwidth-value>
-
- o This specifies the proposed bandwidth to be used by the session or
- media, and is optional.
-
- o <bandwidth-value> is in kilobits per second
-
- o <modifier> is a single alphanumeric word giving the meaning of the
- bandwidth figure.
-
- o Two modifiers are initially defined:
-
- CT Conference Total: An implicit maximum bandwidth is associated with
- each TTL on the Mbone or within a particular multicast
- administrative scope region (the Mbone bandwidth vs. TTL limits are
- given in the MBone FAQ). If the bandwidth of a session or media in
- a session is different from the bandwidth implicit from the scope,
- a `b=CT:...' line should be supplied for the session giving the
- proposed upper limit to the bandwidth used. The primary purpose of
- this is to give an approximate idea as to whether two or more
- conferences can co-exist simultaneously.
-
- AS Application-Specific Maximum: The bandwidth is interpreted to be
- application-specific, i.e., will be the application's concept of
- maximum bandwidth. Normally this will coincide with what is set on
- the application's "maximum bandwidth" control if applicable.
-
- Note that CT gives a total bandwidth figure for all the media at
- all sites. AS gives a bandwidth figure for a single media at a
- single site, although there may be many sites sending
- simultaneously.
-
- o Extension Mechanism: Tool writers can define experimental bandwidth
- modifiers by prefixing their modifier with "X-". For example:
-
- b=X-YZ:128
-
- SDP parsers should ignore bandwidth fields with unknown modifiers.
- Modifiers should be alpha-numeric and, although no length limit is
- given, they are recommended to be short.
-
-
-
-Handley & Jacobson Standards Track [Page 14]
-
-RFC 2327 SDP April 1998
-
-
- Times, Repeat Times and Time Zones
-
- t=<start time> <stop time>
-
- o "t=" fields specify the start and stop times for a conference
- session. Multiple "t=" fields may be used if a session is active
- at multiple irregularly spaced times; each additional "t=" field
- specifies an additional period of time for which the session will
- be active. If the session is active at regular times, an "r="
- field (see below) should be used in addition to and following a
- "t=" field - in which case the "t=" field specifies the start and
- stop times of the repeat sequence.
-
- o The first and second sub-fields give the start and stop times for
- the conference respectively. These values are the decimal
- representation of Network Time Protocol (NTP) time values in
- seconds [1]. To convert these values to UNIX time, subtract
- decimal 2208988800.
-
- o If the stop-time is set to zero, then the session is not bounded,
- though it will not become active until after the start-time. If
- the start-time is also zero, the session is regarded as permanent.
-
- User interfaces should strongly discourage the creation of
- unbounded and permanent sessions as they give no information about
- when the session is actually going to terminate, and so make
- scheduling difficult.
-
- The general assumption may be made, when displaying unbounded
- sessions that have not timed out to the user, that an unbounded
- session will only be active until half an hour from the current
- time or the session start time, whichever is the later. If
- behaviour other than this is required, an end-time should be given
- and modified as appropriate when new information becomes available
- about when the session should really end.
-
- Permanent sessions may be shown to the user as never being active
- unless there are associated repeat times which state precisely when
- the session will be active. In general, permanent sessions should
- not be created for any session expected to have a duration of less
- than 2 months, and should be discouraged for sessions expected to
- have a duration of less than 6 months.
-
- r=<repeat interval> <active duration> <list of offsets from start-
- time>
-
- o "r=" fields specify repeat times for a session. For example, if
- a session is active at 10am on Monday and 11am on Tuesday for one
-
-
-
-Handley & Jacobson Standards Track [Page 15]
-
-RFC 2327 SDP April 1998
-
-
- hour each week for three months, then the <start time> in the
- corresponding "t=" field would be the NTP representation of 10am on
- the first Monday, the <repeat interval> would be 1 week, the
- <active duration> would be 1 hour, and the offsets would be zero
- and 25 hours. The corresponding "t=" field stop time would be the
- NTP representation of the end of the last session three months
- later. By default all fields are in seconds, so the "r=" and "t="
- fields might be:
-
- t=3034423619 3042462419
- r=604800 3600 0 90000
-
- To make announcements more compact, times may also be given in units
- of days, hours or minutes. The syntax for these is a number
- immediately followed by a single case-sensitive character.
- Fractional units are not allowed - a smaller unit should be used
- instead. The following unit specification characters are allowed:
-
- d - days (86400 seconds)
- h - minutes (3600 seconds)
- m - minutes (60 seconds)
- s - seconds (allowed for completeness but not recommended)
-
- Thus, the above announcement could also have been written:
-
- r=7d 1h 0 25h
-
- Monthly and yearly repeats cannot currently be directly specified
- with a single SDP repeat time - instead separate "t" fields should
- be used to explicitly list the session times.
-
- z=<adjustment time> <offset> <adjustment time> <offset> ....
-
- o To schedule a repeated session which spans a change from daylight-
- saving time to standard time or vice-versa, it is necessary to
- specify offsets from the base repeat times. This is required
- because different time zones change time at different times of day,
- different countries change to or from daylight time on different
- dates, and some countries do not have daylight saving time at all.
-
- Thus in order to schedule a session that is at the same time winter
- and summer, it must be possible to specify unambiguously by whose
- time zone a session is scheduled. To simplify this task for
- receivers, we allow the sender to specify the NTP time that a time
- zone adjustment happens and the offset from the time when the
- session was first scheduled. The "z" field allows the sender to
- specify a list of these adjustment times and offsets from the base
- time.
-
-
-
-Handley & Jacobson Standards Track [Page 16]
-
-RFC 2327 SDP April 1998
-
-
- An example might be:
-
- z=2882844526 -1h 2898848070 0
-
- This specifies that at time 2882844526 the time base by which the
- session's repeat times are calculated is shifted back by 1 hour,
- and that at time 2898848070 the session's original time base is
- restored. Adjustments are always relative to the specified start
- time - they are not cumulative.
-
- o If a session is likely to last several years, it is expected
- that
- the session announcement will be modified periodically rather than
- transmit several years worth of adjustments in one announcement.
-
- Encryption Keys
-
- k=<method>
- k=<method>:<encryption key>
-
- o The session description protocol may be used to convey encryption
- keys. A key field is permitted before the first media entry (in
- which case it applies to all media in the session), or for each
- media entry as required.
-
- o The format of keys and their usage is outside the scope of this
- document, but see [3].
-
- o The method indicates the mechanism to be used to obtain a usable
- key by external means, or from the encoded encryption key given.
-
- The following methods are defined:
-
- k=clear:<encryption key>
- The encryption key (as described in [3] for RTP media streams
- under the AV profile) is included untransformed in this key
- field.
-
- k=base64:<encoded encryption key>
- The encryption key (as described in [3] for RTP media streams
- under the AV profile) is included in this key field but has been
- base64 encoded because it includes characters that are
- prohibited in SDP.
-
- k=uri:<URI to obtain key>
- A Universal Resource Identifier as used by WWW clients is
- included in this key field. The URI refers to the data
- containing the key, and may require additional authentication
-
-
-
-Handley & Jacobson Standards Track [Page 17]
-
-RFC 2327 SDP April 1998
-
-
- before the key can be returned. When a request is made to the
- given URI, the MIME content-type of the reply specifies the
- encoding for the key in the reply. The key should not be
- obtained until the user wishes to join the session to reduce
- synchronisation of requests to the WWW server(s).
-
- k=prompt
- No key is included in this SDP description, but the session or
- media stream referred to by this key field is encrypted. The
- user should be prompted for the key when attempting to join the
- session, and this user-supplied key should then be used to
- decrypt the media streams.
-
- Attributes
-
- a=<attribute>
- a=<attribute>:<value>
-
- Attributes are the primary means for extending SDP. Attributes may
- be defined to be used as "session-level" attributes, "media-level"
- attributes, or both.
-
- A media description may have any number of attributes ("a=" fields)
- which are media specific. These are referred to as "media-level"
- attributes and add information about the media stream. Attribute
- fields can also be added before the first media field; these
- "session-level" attributes convey additional information that applies
- to the conference as a whole rather than to individual media; an
- example might be the conference's floor control policy.
-
- Attribute fields may be of two forms:
-
- o property attributes. A property attribute is simply of the form
- "a=<flag>". These are binary attributes, and the presence of the
- attribute conveys that the attribute is a property of the session.
- An example might be "a=recvonly".
-
- o value attributes. A value attribute is of the form
- "a=<attribute>:<value>". An example might be that a whiteboard
- could have the value attribute "a=orient:landscape"
-
- Attribute interpretation depends on the media tool being invoked.
- Thus receivers of session descriptions should be configurable in
- their interpretation of announcements in general and of attributes in
- particular.
-
- Attribute names must be in the US-ASCII subset of ISO-10646/UTF-8.
-
-
-
-
-Handley & Jacobson Standards Track [Page 18]
-
-RFC 2327 SDP April 1998
-
-
- Attribute values are byte strings, and MAY use any byte value except
- 0x00 (Nul), 0x0A (LF), and 0x0D (CR). By default, attribute values
- are to be interpreted as in ISO-10646 character set with UTF-8
- encoding. Unlike other text fields, attribute values are NOT
- normally affected by the `charset' attribute as this would make
- comparisons against known values problematic. However, when an
- attribute is defined, it can be defined to be charset-dependent, in
- which case it's value should be interpreted in the session charset
- rather than in ISO-10646.
-
- Attributes that will be commonly used can be registered with IANA
- (see Appendix B). Unregistered attributes should begin with "X-" to
- prevent inadvertent collision with registered attributes. In either
- case, if an attribute is received that is not understood, it should
- simply be ignored by the receiver.
-
- Media Announcements
-
- m=<media> <port> <transport> <fmt list>
-
- A session description may contain a number of media descriptions.
- Each media description starts with an "m=" field, and is terminated
- by either the next "m=" field or by the end of the session
- description. A media field also has several sub-fields:
-
- o The first sub-field is the media type. Currently defined media are
- "audio", "video", "application", "data" and "control", though this
- list may be extended as new communication modalities emerge (e.g.,
- telepresense). The difference between "application" and "data" is
- that the former is a media flow such as whiteboard information, and
- the latter is bulk-data transfer such as multicasting of program
- executables which will not typically be displayed to the user.
- "control" is used to specify an additional conference control
- channel for the session.
-
- o The second sub-field is the transport port to which the media
- stream will be sent. The meaning of the transport port depends on
- the network being used as specified in the relevant "c" field and
- on the transport protocol defined in the third sub-field. Other
- ports used by the media application (such as the RTCP port, see
- [2]) should be derived algorithmically from the base media port.
-
- Note: For transports based on UDP, the value should be in the range
- 1024 to 65535 inclusive. For RTP compliance it should be an even
- number.
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 19]
-
-RFC 2327 SDP April 1998
-
-
- For applications where hierarchically encoded streams are being
- sent to a unicast address, it may be necessary to specify multiple
- transport ports. This is done using a similar notation to that
- used for IP multicast addresses in the "c=" field:
-
- m=<media> <port>/<number of ports> <transport> <fmt list>
-
- In such a case, the ports used depend on the transport protocol.
- For RTP, only the even ports are used for data and the
- corresponding one-higher odd port is used for RTCP. For example:
-
- m=video 49170/2 RTP/AVP 31
-
- would specify that ports 49170 and 49171 form one RTP/RTCP pair and
- 49172 and 49173 form the second RTP/RTCP pair. RTP/AVP is the
- transport protocol and 31 is the format (see below).
-
- It is illegal for both multiple addresses to be specified in the
- "c=" field and for multiple ports to be specified in the "m=" field
- in the same session description.
-
- o The third sub-field is the transport protocol. The transport
- protocol values are dependent on the address-type field in the "c="
- fields. Thus a "c=" field of IP4 defines that the transport
- protocol runs over IP4. For IP4, it is normally expected that most
- media traffic will be carried as RTP over UDP. The following
- transport protocols are preliminarily defined, but may be extended
- through registration of new protocols with IANA:
-
- - RTP/AVP - the IETF's Realtime Transport Protocol using the
- Audio/Video profile carried over UDP.
-
- - udp - User Datagram Protocol
-
- If an application uses a single combined proprietary media format
- and transport protocol over UDP, then simply specifying the
- transport protocol as udp and using the format field to distinguish
- the combined protocol is recommended. If a transport protocol is
- used over UDP to carry several distinct media types that need to be
- distinguished by a session directory, then specifying the transport
- protocol and media format separately is necessary. RTP is an
- example of a transport-protocol that carries multiple payload
- formats that must be distinguished by the session directory for it
- to know how to start appropriate tools, relays, mixers or
- recorders.
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 20]
-
-RFC 2327 SDP April 1998
-
-
- The main reason to specify the transport-protocol in addition to
- the media format is that the same standard media formats may be
- carried over different transport protocols even when the network
- protocol is the same - a historical example is vat PCM audio and
- RTP PCM audio. In addition, relays and monitoring tools that are
- transport-protocol-specific but format-independent are possible.
-
- For RTP media streams operating under the RTP Audio/Video Profile
- [3], the protocol field is "RTP/AVP". Should other RTP profiles be
- defined in the future, their profiles will be specified in the same
- way. For example, the protocol field "RTP/XYZ" would specify RTP
- operating under a profile whose short name is "XYZ".
-
- o The fourth and subsequent sub-fields are media formats. For audio
- and video, these will normally be a media payload type as defined
- in the RTP Audio/Video Profile.
-
- When a list of payload formats is given, this implies that all of
- these formats may be used in the session, but the first of these
- formats is the default format for the session.
-
- For media whose transport protocol is not RTP or UDP the format
- field is protocol specific. Such formats should be defined in an
- additional specification document.
-
- For media whose transport protocol is RTP, SDP can be used to
- provide a dynamic binding of media encoding to RTP payload type.
- The encoding names in the RTP AV Profile do not specify unique
- audio encodings (in terms of clock rate and number of audio
- channels), and so they are not used directly in SDP format fields.
- Instead, the payload type number should be used to specify the
- format for static payload types and the payload type number along
- with additional encoding information should be used for dynamically
- allocated payload types.
-
- An example of a static payload type is u-law PCM coded single
- channel audio sampled at 8KHz. This is completely defined in the
- RTP Audio/Video profile as payload type 0, so the media field for
- such a stream sent to UDP port 49232 is:
-
- m=video 49232 RTP/AVP 0
-
- An example of a dynamic payload type is 16 bit linear encoded
- stereo audio sampled at 16KHz. If we wish to use dynamic RTP/AVP
- payload type 98 for such a stream, additional information is
- required to decode it:
-
- m=video 49232 RTP/AVP 98
-
-
-
-Handley & Jacobson Standards Track [Page 21]
-
-RFC 2327 SDP April 1998
-
-
- a=rtpmap:98 L16/16000/2
-
- The general form of an rtpmap attribute is:
-
- a=rtpmap:<payload type> <encoding name>/<clock rate>[/<encoding
- parameters>]
-
- For audio streams, <encoding parameters> may specify the number of
- audio channels. This parameter may be omitted if the number of
- channels is one provided no additional parameters are needed. For
- video streams, no encoding parameters are currently specified.
-
- Additional parameters may be defined in the future, but
- codecspecific parameters should not be added. Parameters added to
- an rtpmap attribute should only be those required for a session
- directory to make the choice of appropriate media too to
- participate in a session. Codec-specific parameters should be
- added in other attributes.
-
- Up to one rtpmap attribute can be defined for each media format
- specified. Thus we might have:
-
- m=audio 49230 RTP/AVP 96 97 98
- a=rtpmap:96 L8/8000
- a=rtpmap:97 L16/8000
- a=rtpmap:98 L16/11025/2
-
- RTP profiles that specify the use of dynamic payload types must
- define the set of valid encoding names and/or a means to register
- encoding names if that profile is to be used with SDP.
-
- Experimental encoding formats can also be specified using rtpmap.
- RTP formats that are not registered as standard format names must
- be preceded by "X-". Thus a new experimental redundant audio
- stream called GSMLPC using dynamic payload type 99 could be
- specified as:
-
- m=video 49232 RTP/AVP 99
- a=rtpmap:99 X-GSMLPC/8000
-
- Such an experimental encoding requires that any site wishing to
- receive the media stream has relevant configured state in its
- session directory to know which tools are appropriate.
-
- Note that RTP audio formats typically do not include information
- about the number of samples per packet. If a non-default (as
- defined in the RTP Audio/Video Profile) packetisation is required,
- the "ptime" attribute is used as given below.
-
-
-
-Handley & Jacobson Standards Track [Page 22]
-
-RFC 2327 SDP April 1998
-
-
- For more details on RTP audio and video formats, see [3].
-
- o Formats for non-RTP media should be registered as MIME content
- types as described in Appendix B. For example, the LBL whiteboard
- application might be registered as MIME content-type application/wb
- with encoding considerations specifying that it operates over UDP,
- with no appropriate file format. In SDP this would then be
- expressed using a combination of the "media" field and the "fmt"
- field, as follows:
-
- m=application 32416 udp wb
-
- Suggested Attributes
-
- The following attributes are suggested. Since application writers
- may add new attributes as they are required, this list is not
- exhaustive.
-
- a=cat:<category>
- This attribute gives the dot-separated hierarchical category of
- the session. This is to enable a receiver to filter unwanted
- sessions by category. It would probably have been a compulsory
- separate field, except for its experimental nature at this time.
- It is a session-level attribute, and is not dependent on charset.
-
- a=keywds:<keywords>
- Like the cat attribute, this is to assist identifying wanted
- sessions at the receiver. This allows a receiver to select
- interesting session based on keywords describing the purpose of
- the session. It is a session-level attribute. It is a charset
- dependent attribute, meaning that its value should be interpreted
- in the charset specified for the session description if one is
- specified, or by default in ISO 10646/UTF-8.
-
- a=tool:<name and version of tool>
- This gives the name and version number of the tool used to create
- the session description. It is a session-level attribute, and is
- not dependent on charset.
-
- a=ptime:<packet time>
- This gives the length of time in milliseconds represented by the
- media in a packet. This is probably only meaningful for audio
- data. It should not be necessary to know ptime to decode RTP or
- vat audio, and it is intended as a recommendation for the
- encoding/packetisation of audio. It is a media attribute, and is
- not dependent on charset.
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 23]
-
-RFC 2327 SDP April 1998
-
-
- a=recvonly
- This specifies that the tools should be started in receive-only
- mode where applicable. It can be either a session or media
- attribute, and is not dependent on charset.
-
- a=sendrecv
- This specifies that the tools should be started in send and
- receive mode. This is necessary for interactive conferences with
- tools such as wb which defaults to receive only mode. It can be
- either a session or media attribute, and is not dependent on
- charset.
-
- a=sendonly
- This specifies that the tools should be started in send-only
- mode. An example may be where a different unicast address is to
- be used for a traffic destination than for a traffic source. In
- such a case, two media descriptions may be use, one sendonly and
- one recvonly. It can be either a session or media attribute, but
- would normally only be used as a media attribute, and is not
- dependent on charset.
-
- a=orient:<whiteboard orientation>
- Normally this is only used in a whiteboard media specification.
- It specifies the orientation of a the whiteboard on the screen.
- It is a media attribute. Permitted values are `portrait',
- `landscape' and `seascape' (upside down landscape). It is not
- dependent on charset
-
- a=type:<conference type>
- This specifies the type of the conference. Suggested values are
- `broadcast', `meeting', `moderated', `test' and `H332'.
- `recvonly' should be the default for `type:broadcast' sessions,
- `type:meeting' should imply `sendrecv' and `type:moderated'
- should indicate the use of a floor control tool and that the
- media tools are started so as to "mute" new sites joining the
- conference.
-
- Specifying the attribute type:H332 indicates that this loosely
- coupled session is part of a H.332 session as defined in the ITU
- H.332 specification [10]. Media tools should be started
- `recvonly'.
-
- Specifying the attribute type:test is suggested as a hint that,
- unless explicitly requested otherwise, receivers can safely avoid
- displaying this session description to users.
-
- The type attribute is a session-level attribute, and is not
- dependent on charset.
-
-
-
-Handley & Jacobson Standards Track [Page 24]
-
-RFC 2327 SDP April 1998
-
-
- a=charset:<character set>
- This specifies the character set to be used to display the
- session name and information data. By default, the ISO-10646
- character set in UTF-8 encoding is used. If a more compact
- representation is required, other character sets may be used such
- as ISO-8859-1 for Northern European languages. In particular,
- the ISO 8859-1 is specified with the following SDP attribute:
-
- a=charset:ISO-8859-1
-
- This is a session-level attribute; if this attribute is present,
- it must be before the first media field. The charset specified
- MUST be one of those registered with IANA, such as ISO-8859-1.
- The character set identifier is a US-ASCII string and MUST be
- compared against the IANA identifiers using a case-insensitive
- comparison. If the identifier is not recognised or not
- supported, all strings that are affected by it SHOULD be regarded
- as byte strings.
-
- Note that a character set specified MUST still prohibit the use
- of bytes 0x00 (Nul), 0x0A (LF) and 0x0d (CR). Character sets
- requiring the use of these characters MUST define a quoting
- mechanism that prevents these bytes appearing within text fields.
-
- a=sdplang:<language tag>
- This can be a session level attribute or a media level attribute.
- As a session level attribute, it specifies the language for the
- session description. As a media level attribute, it specifies
- the language for any media-level SDP information field associated
- with that media. Multiple sdplang attributes can be provided
- either at session or media level if multiple languages in the
- session description or media use multiple languages, in which
- case the order of the attributes indicates the order of
- importance of the various languages in the session or media from
- most important to least important.
-
- In general, sending session descriptions consisting of multiple
- languages should be discouraged. Instead, multiple descriptions
- should be sent describing the session, one in each language.
- However this is not possible with all transport mechanisms, and
- so multiple sdplang attributes are allowed although not
- recommended.
-
- The sdplang attribute value must be a single RFC 1766 language
- tag in US-ASCII. It is not dependent on the charset attribute.
- An sdplang attribute SHOULD be specified when a session is of
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 25]
-
-RFC 2327 SDP April 1998
-
-
- sufficient scope to cross geographic boundaries where the
- language of recipients cannot be assumed, or where the session is
- in a different language from the locally assumed norm.
-
- a=lang:<language tag>
- This can be a session level attribute or a media level attribute.
- As a session level attribute, it specifies the default language
- for the session being described. As a media level attribute, it
- specifies the language for that media, overriding any session-
- level language specified. Multiple lang attributes can be
- provided either at session or media level if multiple languages
- if the session description or media use multiple languages, in
- which case the order of the attributes indicates the order of
- importance of the various languages in the session or media from
- most important to least important.
-
- The lang attribute value must be a single RFC 1766 language tag
- in US-ASCII. It is not dependent on the charset attribute. A
- lang attribute SHOULD be specified when a session is of
- sufficient scope to cross geographic boundaries where the
- language of recipients cannot be assumed, or where the session is
- in a different language from the locally assumed norm.
-
- a=framerate:<frame rate>
- This gives the maximum video frame rate in frames/sec. It is
- intended as a recommendation for the encoding of video data.
- Decimal representations of fractional values using the notation
- "<integer>.<fraction>" are allowed. It is a media attribute, is
- only defined for video media, and is not dependent on charset.
-
- a=quality:<quality>
- This gives a suggestion for the quality of the encoding as an
- integer value.
-
- The intention of the quality attribute for video is to specify a
- non-default trade-off between frame-rate and still-image quality.
- For video, the value in the range 0 to 10, with the following
- suggested meaning:
-
- 10 - the best still-image quality the compression scheme can
- give.
-
- 5 - the default behaviour given no quality suggestion.
-
- 0 - the worst still-image quality the codec designer thinks is
- still usable.
-
- It is a media attribute, and is not dependent on charset.
-
-
-
-Handley & Jacobson Standards Track [Page 26]
-
-RFC 2327 SDP April 1998
-
-
- a=fmtp:<format> <format specific parameters>
- This attribute allows parameters that are specific to a
- particular format to be conveyed in a way that SDP doesn't have
- to understand them. The format must be one of the formats
- specified for the media. Format-specific parameters may be any
- set of parameters required to be conveyed by SDP and given
- unchanged to the media tool that will use this format.
-
- It is a media attribute, and is not dependent on charset.
-
-6.1. Communicating Conference Control Policy
-
- There is some debate over the way conference control policy should be
- communicated. In general, the authors believe that an implicit
- declarative style of specifying conference control is desirable where
- possible.
-
- A simple declarative style uses a single conference attribute field
- before the first media field, possibly supplemented by properties
- such as `recvonly' for some of the media tools. This conference
- attribute conveys the conference control policy. An example might be:
-
- a=type:moderated
-
- In some cases, however, it is possible that this may be insufficient
- to communicate the details of an unusual conference control policy.
- If this is the case, then a conference attribute specifying external
- control might be set, and then one or more "media" fields might be
- used to specify the conference control tools and configuration data
- for those tools. An example is an ITU H.332 session:
-
- c=IN IP4 224.5.6.7
- a=type:H332
- m=audio 49230 RTP/AVP 0
- m=video 49232 RTP/AVP 31
- m=application 12349 udp wb
- m=control 49234 H323 mc
- c=IN IP4 134.134.157.81
-
- In this example, a general conference attribute (type:H332) is
- specified stating that conference control will be provided by an
- external H.332 tool, and a contact addresses for the H.323 session
- multipoint controller is given.
-
- In this document, only the declarative style of conference control
- declaration is specified. Other forms of conference control should
- specify an appropriate type attribute, and should define the
- implications this has for control media.
-
-
-
-Handley & Jacobson Standards Track [Page 27]
-
-RFC 2327 SDP April 1998
-
-
-7. Security Considerations
-
- SDP is a session description format that describes multimedia
- sessions. A session description should not be trusted unless it has
- been obtained by an authenticated transport protocol from a trusted
- source. Many different transport protocols may be used to distribute
- session description, and the nature of the authentication will differ
- from transport to transport.
-
- One transport that will frequently be used to distribute session
- descriptions is the Session Announcement Protocol (SAP). SAP
- provides both encryption and authentication mechanisms but due to the
- nature of session announcements it is likely that there are many
- occasions where the originator of a session announcement cannot be
- authenticated because they are previously unknown to the receiver of
- the announcement and because no common public key infrastructure is
- available.
-
- On receiving a session description over an unauthenticated transport
- mechanism or from an untrusted party, software parsing the session
- should take a few precautions. Session description contain
- information required to start software on the receivers system.
- Software that parses a session description MUST not be able to start
- other software except that which is specifically configured as
- appropriate software to participate in multimedia sessions. It is
- normally considered INAPPROPRIATE for software parsing a session
- description to start, on a user's system, software that is
- appropriate to participate in multimedia sessions, without the user
- first being informed that such software will be started and giving
- their consent. Thus a session description arriving by session
- announcement, email, session invitation, or WWW page SHOULD not
- deliver the user into an {it interactive} multimedia session without
- the user being aware that this will happen. As it is not always
- simple to tell whether a session is interactive or not, applications
- that are unsure should assume sessions are interactive.
-
- In this specification, there are no attributes which would allow the
- recipient of a session description to be informed to start multimedia
- tools in a mode where they default to transmitting. Under some
- circumstances it might be appropriate to define such attributes. If
- this is done an application parsing a session description containing
- such attributes SHOULD either ignore them, or inform the user that
- joining this session will result in the automatic transmission of
- multimedia data. The default behaviour for an unknown attribute is
- to ignore it.
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 28]
-
-RFC 2327 SDP April 1998
-
-
- Session descriptions may be parsed at intermediate systems such as
- firewalls for the purposes of opening a hole in the firewall to allow
- the participation in multimedia sessions. It is considered
- INAPPROPRIATE for a firewall to open such holes for unicast data
- streams unless the session description comes in a request from inside
- the firewall.
-
- For multicast sessions, it is likely that local administrators will
- apply their own policies, but the exclusive use of "local" or "site-
- local" administrative scope within the firewall and the refusal of
- the firewall to open a hole for such scopes will provide separation
- of global multicast sessions from local ones.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 29]
-
-RFC 2327 SDP April 1998
-
-
-Appendix A: SDP Grammar
-
- This appendix provides an Augmented BNF grammar for SDP. ABNF is
- defined in RFC 2234.
-
-
- announcement = proto-version
- origin-field
- session-name-field
- information-field
- uri-field
- email-fields
- phone-fields
- connection-field
- bandwidth-fields
- time-fields
- key-field
- attribute-fields
- media-descriptions
-
- proto-version = "v=" 1*DIGIT CRLF
- ;this memo describes version 0
-
- origin-field = "o=" username space
- sess-id space sess-version space
- nettype space addrtype space
- addr CRLF
-
- session-name-field = "s=" text CRLF
-
- information-field = ["i=" text CRLF]
-
- uri-field = ["u=" uri CRLF]
-
- email-fields = *("e=" email-address CRLF)
-
- phone-fields = *("p=" phone-number CRLF)
-
-
- connection-field = ["c=" nettype space addrtype space
- connection-address CRLF]
- ;a connection field must be present
- ;in every media description or at the
- ;session-level
-
-
- bandwidth-fields = *("b=" bwtype ":" bandwidth CRLF)
-
-
-
-
-Handley & Jacobson Standards Track [Page 30]
-
-RFC 2327 SDP April 1998
-
-
- time-fields = 1*( "t=" start-time space stop-time
- *(CRLF repeat-fields) CRLF)
- [zone-adjustments CRLF]
-
-
- repeat-fields = "r=" repeat-interval space typed-time
- 1*(space typed-time)
-
-
- zone-adjustments = time space ["-"] typed-time
- *(space time space ["-"] typed-time)
-
-
- key-field = ["k=" key-type CRLF]
-
-
- key-type = "prompt" |
- "clear:" key-data |
- "base64:" key-data |
- "uri:" uri
-
-
- key-data = email-safe | "~" | "
-
-
- attribute-fields = *("a=" attribute CRLF)
-
-
- media-descriptions = *( media-field
- information-field
- *(connection-field)
- bandwidth-fields
- key-field
- attribute-fields )
-
-
- media-field = "m=" media space port ["/" integer]
- space proto 1*(space fmt) CRLF
-
-
- media = 1*(alpha-numeric)
- ;typically "audio", "video", "application"
- ;or "data"
-
- fmt = 1*(alpha-numeric)
- ;typically an RTP payload type for audio
- ;and video media
-
-
-
-
-Handley & Jacobson Standards Track [Page 31]
-
-RFC 2327 SDP April 1998
-
-
- proto = 1*(alpha-numeric)
- ;typically "RTP/AVP" or "udp" for IP4
-
-
- port = 1*(DIGIT)
- ;should in the range "1024" to "65535" inclusive
- ;for UDP based media
-
-
- attribute = (att-field ":" att-value) | att-field
-
-
- att-field = 1*(alpha-numeric)
-
-
- att-value = byte-string
-
-
- sess-id = 1*(DIGIT)
- ;should be unique for this originating username/host
-
-
- sess-version = 1*(DIGIT)
- ;0 is a new session
-
-
- connection-address = multicast-address
- | addr
-
-
- multicast-address = 3*(decimal-uchar ".") decimal-uchar "/" ttl
- [ "/" integer ]
- ;multicast addresses may be in the range
- ;224.0.0.0 to 239.255.255.255
-
- ttl = decimal-uchar
-
- start-time = time | "0"
-
- stop-time = time | "0"
-
- time = POS-DIGIT 9*(DIGIT)
- ;sufficient for 2 more centuries
-
-
- repeat-interval = typed-time
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 32]
-
-RFC 2327 SDP April 1998
-
-
- typed-time = 1*(DIGIT) [fixed-len-time-unit]
-
-
- fixed-len-time-unit = "d" | "h" | "m" | "s"
-
-
- bwtype = 1*(alpha-numeric)
-
- bandwidth = 1*(DIGIT)
-
-
- username = safe
- ;pretty wide definition, but doesn't include space
-
-
- email-address = email | email "(" email-safe ")" |
- email-safe "<" email ">"
-
-
- email = ;defined in RFC822
-
-
- uri= ;defined in RFC1630
-
-
- phone-number = phone | phone "(" email-safe ")" |
- email-safe "<" phone ">"
-
-
- phone = "+" POS-DIGIT 1*(space | "-" | DIGIT)
- ;there must be a space or hyphen between the
- ;international code and the rest of the number.
-
-
- nettype = "IN"
- ;list to be extended
-
-
- addrtype = "IP4" | "IP6"
- ;list to be extended
-
-
- addr = FQDN | unicast-address
-
-
- FQDN = 4*(alpha-numeric|"-"|".")
- ;fully qualified domain name as specified in RFC1035
-
-
-
-
-Handley & Jacobson Standards Track [Page 33]
-
-RFC 2327 SDP April 1998
-
-
- unicast-address = IP4-address | IP6-address
-
-
- IP4-address = b1 "." decimal-uchar "." decimal-uchar "." b4
- b1 = decimal-uchar
- ;less than "224"; not "0" or "127"
- b4 = decimal-uchar
- ;not "0"
-
- IP6-address = ;to be defined
-
-
- text = byte-string
- ;default is to interpret this as IS0-10646 UTF8
- ;ISO 8859-1 requires a "a=charset:ISO-8859-1"
- ;session-level attribute to be used
-
-
- byte-string = 1*(0x01..0x09|0x0b|0x0c|0x0e..0xff)
- ;any byte except NUL, CR or LF
-
-
- decimal-uchar = DIGIT
- | POS-DIGIT DIGIT
- | ("1" 2*(DIGIT))
- | ("2" ("0"|"1"|"2"|"3"|"4") DIGIT)
- | ("2" "5" ("0"|"1"|"2"|"3"|"4"|"5"))
-
-
- integer = POS-DIGIT *(DIGIT)
-
-
- alpha-numeric = ALPHA | DIGIT
-
-
- DIGIT = "0" | POS-DIGIT
-
-
- POS-DIGIT = "1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
-
-
- ALPHA = "a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"|"k"|
- "l"|"m"|"n"|"o "|"p"|"q"|"r"|"s"|"t"|"u"|"v"|
- "w"|"x"|"y"|"z"|"A"|"B"|"C "|"D"|"E"|"F"|"G"|
- "H"|"I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|" Q"|"R"|
- "S"|"T"|"U"|"V"|"W"|"X"|"Y"|"Z"
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 34]
-
-RFC 2327 SDP April 1998
-
-
- email-safe = safe | space | tab
-
-
- safe = alpha-numeric |
- "'" | "'" | "-" | "." | "/" | ":" | "?" | """ |
- "#" | "$" | "&" | "*" | ";" | "=" | "@" | "[" |
- "]" | "^" | "_" | "`" | "{" | "|" | "}" | "+" |
- "~" | "
-
-
- space = %d32
- tab = %d9
- CRLF = %d13.10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 35]
-
-RFC 2327 SDP April 1998
-
-
-Appendix B: Guidelines for registering SDP names with IANA
-
- There are seven field names that may be registered with IANA. Using
- the terminology in the SDP specification BNF, they are "media",
- "proto", "fmt", "att-field", "bwtype", "nettype" and "addrtype".
-
- "media" (eg, audio, video, application, data).
-
- Packetized media types, such as those used by RTP, share the
- namespace used by media types registry [RFC 2048] (i.e. "MIME
- types"). The list of valid media names is the set of top-level
- MIME content types. The set of media is intended to be small and
- not to be extended except under rare circumstances. (The MIME
- subtype corresponds to the "fmt" parameter below).
-
- "proto"
-
- In general this should be an IETF standards-track transport
- protocol identifier such as RTP/AVP (rfc 1889 under the rfc 1890
- profile).
-
- However, people will want to invent their own proprietary
- transport protocols. Some of these should be registered as a
- "fmt" using "udp" as the protocol and some of which probably
- can't be.
-
- Where the protocol and the application are intimately linked,
- such as with the LBL whiteboard wb which used a proprietary and
- special purpose protocol over UDP, the protocol name should be
- "udp" and the format name that should be registered is "wb". The
- rules for formats (see below) apply to such registrations.
-
- Where the proprietary transport protocol really carries many
- different data formats, it is possible to register a new protocol
- name with IANA. In such a case, an RFC MUST be produced
- describing the protocol and referenced in the registration. Such
- an RFC MAY be informational, although it is preferable if it is
- standards-track.
-
- "fmt"
-
- The format namespace is dependent on the context of the "proto"
- field, so a format cannot be registered without specifying one or
- more transport protocols that it applies to.
-
- Formats cover all the possible encodings that might want to be
- transported in a multimedia session.
-
-
-
-
-Handley & Jacobson Standards Track [Page 36]
-
-RFC 2327 SDP April 1998
-
-
- For RTP formats that have been assigned static payload types, the
- payload type number is used. For RTP formats using a dynamic
- payload type number, the dynamic payload type number is given as
- the format and an additional "rtpmap" attribute specifies the
- format and parameters.
-
- For non-RTP formats, any unregistered format name may be
- registered through the MIME-type registration process [RFC 2048].
- The type given here is the MIME subtype only (the top-level MIME
- content type is specified by the media parameter). The MIME type
- registration SHOULD reference a standards-track RFC which
- describes the transport protocol for this media type. If there
- is an existing MIME type for this format, the MIME registration
- should be augmented to reference the transport specification for
- this media type. If there is not an existing MIME type for this
- format, and there exists no appropriate file format, this should
- be noted in the encoding considerations as "no appropriate file
- format".
-
- "att-field" (Attribute names)
-
- Attribute field names MAY be registered with IANA, although this
- is not compulsory, and unknown attributes are simply ignored.
-
- When an attribute is registered, it must be accompanied by a
- brief specification stating the following:
-
- o contact name, email address and telephone number
-
- o attribute-name (as it will appear in SDP)
-
- o long-form attribute name in English
-
- o type of attribute (session level, media level, or both)
-
- o whether the attribute value is subject to the charset
- attribute.
-
- o a one paragraph explanation of the purpose of the attribute.
-
- o a specification of appropriate attribute values for this
- attribute.
-
- IANA will not sanity check such attribute registrations except to
- ensure that they do not clash with existing registrations.
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 37]
-
-RFC 2327 SDP April 1998
-
-
- Although the above is the minimum that IANA will accept, if the
- attribute is expected to see widespread use and interoperability
- is an issue, authors are encouraged to produce a standards-track
- RFC that specifies the attribute more precisely.
-
- Submitters of registrations should ensure that the specification
- is in the spirit of SDP attributes, most notably that the
- attribute is platform independent in the sense that it makes no
- implicit assumptions about operating systems and does not name
- specific pieces of software in a manner that might inhibit
- interoperability.
-
- "bwtype" (bandwidth specifiers)
-
- A proliferation of bandwidth specifiers is strongly discouraged.
-
- New bandwidth specifiers may be registered with IANA. The
- submission MUST reference a standards-track RFC specifying the
- semantics of the bandwidth specifier precisely, and indicating
- when it should be used, and why the existing registered bandwidth
- specifiers do not suffice.
-
- "nettype" (Network Type)
-
- New network types may be registered with IANA if SDP needs to be
- used in the context of non-internet environments. Whilst these
- are not normally the preserve of IANA, there may be circumstances
- when an Internet application needs to interoperate with a non-
- internet application, such as when gatewaying an internet
- telephony call into the PSTN. The number of network types should
- be small and should be rarely extended. A new network type
- cannot be registered without registering at least one address
- type to be used with that network type. A new network type
- registration MUST reference an RFC which gives details of the
- network type and address type and specifies how and when they
- would be used. Such an RFC MAY be Informational.
-
- "addrtype" (Address Type)
-
- New address types may be registered with IANA. An address type
- is only meaningful in the context of a network type, and any
- registration of an address type MUST specify a registered network
- type, or be submitted along with a network type registration. A
- new address type registration MUST reference an RFC giving
- details of the syntax of the address type. Such an RFC MAY be
- Informational. Address types are not expected to be registered
- frequently.
-
-
-
-
-Handley & Jacobson Standards Track [Page 38]
-
-RFC 2327 SDP April 1998
-
-
- Registration Procedure
-
- To register a name the above guidelines should be followed regarding
- the required level of documentation that is required. The
- registration itself should be sent to IANA. Attribute registrations
- should include the information given above. Other registrations
- should include the following additional information:
-
- o contact name, email address and telephone number
-
- o name being registered (as it will appear in SDP)
-
- o long-form name in English
-
- o type of name ("media", "proto", "fmt", "bwtype", "nettype", or
- "addrtype")
-
- o a one paragraph explanation of the purpose of the registered name.
-
- o a reference to the specification (eg RFC number) of the registered
- name.
-
- IANA may refer any registration to the IESG or to any appropriate
- IETF working group for review, and may request revisions to be made
- before a registration will be made.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 39]
-
-RFC 2327 SDP April 1998
-
-
-Appendix C: Authors' Addresses
-
- Mark Handley
- Information Sciences Institute
- c/o MIT Laboratory for Computer Science
- 545 Technology Square
- Cambridge, MA 02139
- United States
- electronic mail: [email protected]
-
- Van Jacobson
- MS 46a-1121
- Lawrence Berkeley Laboratory
- Berkeley, CA 94720
- United States
- electronic mail: [email protected]
-
-Acknowledgments
-
- Many people in the IETF MMUSIC working group have made comments and
- suggestions contributing to this document. In particular, we would
- like to thank Eve Schooler, Steve Casner, Bill Fenner, Allison
- Mankin, Ross Finlayson, Peter Parnes, Joerg Ott, Carsten Bormann, Rob
- Lanphier and Steve Hanna.
-
-References
-
- [1] Mills, D., "Network Time Protocol (version 3) specification and
- implementation", RFC 1305, March 1992.
-
- [2] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP:
- A Transport Protocol for Real-Time Applications", RFC 1889, January
- 1996.
-
- [3] Schulzrinne, H., "RTP Profile for Audio and Video Conferences
- with Minimal Control", RFC 1890, January 1996
-
- [4] Handley, M., "SAP - Session Announcement Protocol", Work in
- Progress.
-
- [5] V. Jacobson, S. McCanne, "vat - X11-based audio teleconferencing
- tool" vat manual page, Lawrence Berkeley Laboratory, 1994.
-
- [6] The Unicode Consortium, "The Unicode Standard -- Version 2.0",
- Addison-Wesley, 1996.
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 40]
-
-RFC 2327 SDP April 1998
-
-
- [7] ISO/IEC 10646-1:1993. International Standard -- Information
- technol- ogy -- Universal Multiple-Octet Coded Character Set (UCS) --
- Part 1: Architecture and Basic Multilingual Plane. Five amendments
- and a techn- ical corrigendum have been published up to now. UTF-8
- is described in Annex R, published as Amendment 2.
-
- [8] Goldsmith, D., and M. Davis, "Using Unicode with MIME", RFC 1641,
- July 1994.
-
- [9] Yergeau, F., "UTF-8, a transformation format of Unicode and ISO
- 10646", RFC 2044, October 1996.
-
- [10] ITU-T Recommendation H.332 (1998): "Multimedia Terminal for
- Receiving Internet-based H.323 Conferences", ITU, Geneva.
-
- [11] Handley, M., Schooler, E., and H. Schulzrinne, "Session
- Initiation Protocol (SIP)", Work in Progress.
-
- [12] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time Streaming
- Protocol (RTSP)", RFC 2326, April 1998.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 41]
-
-RFC 2327 SDP April 1998
-
-
-Full Copyright Statement
-
- Copyright (C) The Internet Society (1998). All Rights Reserved.
-
- This document and translations of it may be copied and furnished to
- others, and derivative works that comment on or otherwise explain it
- or assist in its implementation may be prepared, copied, published
- and distributed, in whole or in part, without restriction of any
- kind, provided that the above copyright notice and this paragraph are
- included on all such copies and derivative works. However, this
- document itself may not be modified in any way, such as by removing
- the copyright notice or references to the Internet Society or other
- Internet organizations, except as needed for the purpose of
- developing Internet standards in which case the procedures for
- copyrights defined in the Internet Standards process must be
- followed, or as required to translate it into languages other than
- English.
-
- The limited permissions granted above are perpetual and will not be
- revoked by the Internet Society or its successors or assigns.
-
- This document and the information contained herein is provided on an
- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Handley & Jacobson Standards Track [Page 42]
-
diff --git a/lib/megaco/doc/standard/rfc3266.txt b/lib/megaco/doc/standard/rfc3266.txt
deleted file mode 100644
index f047f12a1f..0000000000
--- a/lib/megaco/doc/standard/rfc3266.txt
+++ /dev/null
@@ -1,283 +0,0 @@
-
-
-
-
-
-
-Network Working Group S. Olson
-Request for Comments: 3266 Microsoft
-Updates: 2327 G. Camarillo
-Category: Standards Track Ericsson
- A. B. Roach
- dynamicsoft
- June 2002
-
-
- Support for IPv6 in Session Description Protocol (SDP)
-
-Status of this Memo
-
- This document specifies an Internet standards track protocol for the
- Internet community, and requests discussion and suggestions for
- improvements. Please refer to the current edition of the "Internet
- Official Protocol Standards" (STD 1) for the standardization state
- and status of this protocol. Distribution of this memo is unlimited.
-
-Copyright Notice
-
- Copyright (C) The Internet Society (2002). All Rights Reserved.
-
-Abstract
-
- This document describes the use of Internet Protocol Version 6 (IPv6)
- addresses in conjunction with the Session Description Protocol (SDP).
- Specifically, this document clarifies existing text in SDP with
- regards to the syntax of IPv6 addresses.
-
-1. Introduction
-
- SDP is intended for describing multimedia sessions for the purposes
- of session announcement, session invitation, and other forms of
- multimedia session initiation. It is a text format description that
- provides many details of a multimedia session including: the
- originator of the session, a URL related to the session, the
- connection address for the session media(s), and optional attributes
- for the session media(s). Each of these pieces of information may
- involve one or more IPv6 addresses. The ABNF for IP addresses in SDP
- currently leaves the syntax for IPv6 addresses undefined. This
- document attempts to complete the ABNF to include IPv6 addresses.
-
- Accordingly, the address type "IP6" indicating an IPv6 address,
- should be allowed in the connection field, "c=", of the SDP. The
- ABNF already reflects this, though the "Connection Data" text under
- section 6 of RFC 2328 currently only defines the "IP4" address type.
-
-
-
-
-Olson, et. al. Standards Track [Page 1]
-
-RFC 3266 Support for IPv6 in Session Description Protocol June 2002
-
-
-2. Terminology
-
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
- "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
- document are to be interpreted as described in RFC 2119 [5].
-
-3. Syntax
-
- RFC 2373 [1] gives an ABNF for the text representation of IPv6
- addresses in Appendix B. RFC 2732 [3] covers the text representation
- of IPv6 addresses when used within a URL. Using the ABNF described
- in these documents, the following updated ABNF for SDP is proposed.
-
- uri = ; defined in RFC1630 and RFC2732
-
- multicast-address = IP4-multicast / IP6-multicast
-
- IP4-multicast = m1 3*( "." decimal-uchar )
- "/" ttl [ "/" integer ]
- ; IPv4 multicast addresses may be in the
- ; range 224.0.0.0 to 239.255.255.255
-
- m1 = ("22" ("4"/"5"/"6"/"7"/"8"/"9")) /
- ("23" DIGIT ))
-
- IP6-multicast = hexpart
- ; IPv6 address starting with FF
-
- addr = FQDN / unicast-address
-
- FQDN = 4*(alpha-numeric/"-"/".")
- ; fully qualified domain name as specified
- ; in RFC1035
- unicast-address = IP4-address / IP6-address
-
- IP4-address = b1 3*("." decimal-uchar) / "0.0.0.0"
-
- b1 = decimal-uchar
- ; less than "224"; not "0" or "127"
-
- ; The following is from RFC2373 Appendix B. It is a direct copy.
- IP6-address = hexpart [ ":" IP4-address ]
-
- hexpart = hexseq / hexseq "::" [ hexseq ] /
- "::" [ hexseq ]
-
-
-
-
-
-
-Olson, et. al. Standards Track [Page 2]
-
-RFC 3266 Support for IPv6 in Session Description Protocol June 2002
-
-
- hexseq = hex4 *( ":" hex4)
-
- hex4 = 1*4HEXDIG
-
-4. Example SDP description with IPv6 addresses
-
- The following is an example SDP description using the above ABNF for
- IPv6 addresses. In particular, the origin and connection fields
- contain IPv6 addresses.
-
- v=0
- o=nasa1 971731711378798081 0 IN IP6 2201:056D::112E:144A:1E24
- s=(Almost) live video feed from Mars-II satellite
- p=+1 713 555 1234
- c=IN IP6 FF1E:03AD::7F2E:172A:1E24
- t=3338481189 3370017201
- m=audio 6000 RTP/AVP 2
- a=rtpmap:2 G726-32/8000
- m=video 6024 RTP/AVP 107
- a=rtpmap:107 H263-1998/90000
-
-5. Note for implementors
-
- An implementation may receive an SDP session description with an IPv6
- address whose format [1] is internally that of an IPv4 mapped
- address. Note that such an address is actually the address of an
- IPv4-only node, and implementors are warned to interpret IPv4 mapped
- addresses as equivalent to IP4.
-
-6. IANA Considerations
-
- This document updates the definition of the IP6 addrtype parameter
- found in RFC 2327.
-
-7. Security Considerations
-
- No additional considerations above what is stated in section 7 of RFC
- 2327.
-
-8. References
-
- [1] Hinden, R. and S. Deering, "IP Version 6 Addressing
- Architecture", RFC 2373, July 1998.
-
- [2] Handley, M. and V. Jacobson, "SDP: Session Description
- Protocol", RFC 2327, April 1998.
-
-
-
-
-
-Olson, et. al. Standards Track [Page 3]
-
-RFC 3266 Support for IPv6 in Session Description Protocol June 2002
-
-
- [3] Hinden, R., Carpenter, B. and L. Masinter, "Format for Literal
- IPv6 Addresses in URL's", RFC 2732, December 1999.
-
- [4] Crocker, D. and P. Overell, "Augmented BNF for Syntax
- Specifications: ABNF", RFC 2234, November 1997.
-
- [5] Bradner, S., "Key words for Use in RFCs to Indicate Requirement
- Levels", BCP 14, RFC 2119, March 1997.
-
-9. Authors' Addresses
-
- Sean Olson
- Microsoft
- One Microsoft Way
- Redmond, WA 98052
- USA
-
-
-
- Gonzalo Camarillo
- Ericsson
- Advanced Signalling Research Lab.
- FIN-02420 Jorvas
- Finland
-
- Phone: +358 9 299 3371
- Fax: +358 9 299 3118
-
-
- Adam Roach
- dynamicsoft
- 5100 Tennyson Parkway
- Suite 1200
- Plano, TX 75024
- USA
-
- Voice: <sip:[email protected]>
-
-
-
-
-
-
-
-
-
-
-
-Olson, et. al. Standards Track [Page 4]
-
-RFC 3266 Support for IPv6 in Session Description Protocol June 2002
-
-
-10. Full Copyright Statement
-
- Copyright (C) The Internet Society (2002). All Rights Reserved.
-
- This document and translations of it may be copied and furnished to
- others, and derivative works that comment on or otherwise explain it
- or assist in its implementation may be prepared, copied, published
- and distributed, in whole or in part, without restriction of any
- kind, provided that the above copyright notice and this paragraph are
- included on all such copies and derivative works. However, this
- document itself may not be modified in any way, such as by removing
- the copyright notice or references to the Internet Society or other
- Internet organizations, except as needed for the purpose of
- developing Internet standards in which case the procedures for
- copyrights defined in the Internet Standards process must be
- followed, or as required to translate it into languages other than
- English.
-
- The limited permissions granted above are perpetual and will not be
- revoked by the Internet Society or its successors or assigns.
-
- This document and the information contained herein is provided on an
- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-Acknowledgement
-
- Funding for the RFC Editor function is currently provided by the
- Internet Society.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Olson, et. al. Standards Track [Page 5]
-
diff --git a/lib/megaco/examples/meas/meas.sh.skel b/lib/megaco/examples/meas/meas.sh.skel
index 4bbc6a5f7e..76745ed8f4 100644
--- a/lib/megaco/examples/meas/meas.sh.skel
+++ b/lib/megaco/examples/meas/meas.sh.skel
@@ -1,20 +1,20 @@
#!/bin/sh
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2007-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2007-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -27,7 +27,7 @@ MEAS_HOME=$MEGACO_HOME/examples/meas
PATH=$ERL_HOME/bin:$PATH
# MEAS_TIME_TEST="-s megaco_codec_meas start time_test"
-MEAS_DEFAULT="-s megaco_codec_meas t"
+MEAS_DEFAULT="-s megaco_codec_meas start"
STOP="-s init stop"
ERL="erl \
diff --git a/lib/megaco/include/megaco.hrl b/lib/megaco/include/megaco.hrl
index 4045fa9461..87e830323f 100644
--- a/lib/megaco/include/megaco.hrl
+++ b/lib/megaco/include/megaco.hrl
@@ -1,19 +1,20 @@
-%% ``The contents of this file are subject to the Erlang Public License,
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
-%% retrieved via the world wide web at http://www.erlang.org/.
-%%
+%% 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 Utvecklings AB.
-%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings
-%% AB. All Rights Reserved.''
-%%
-%% $Id$
+%%
+%% %CopyrightEnd%
%%
%%----------------------------------------------------------------------
%% Purpose: Define common data structures and error codes
diff --git a/lib/megaco/src/app/megaco.appup.src b/lib/megaco/src/app/megaco.appup.src
index 2d5ee2ddbd..2c07002023 100644
--- a/lib/megaco/src/app/megaco.appup.src
+++ b/lib/megaco/src/app/megaco.appup.src
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -122,29 +122,39 @@
%% 3.13
%% |
%% v
-%% 3.13.0.1
+%% 3.13.1
%%
%%
{"%VSN%",
[
{"3.13",
[
+ {load_module, megaco_messenger, soft_purge, soft_purge, []},
+ {load_module, megaco_filter, soft_purge, soft_purge, []},
+ {update, megaco_flex_scanner_handler, {advanced, downgrade_to_pre_3_13_1},
+ soft_purge, soft_purge, []}
]
},
{"3.12",
[
+ {load_module, megaco_filter, soft_purge, soft_purge, []},
{load_module, megaco_udp, soft_purge, soft_purge, []},
{load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]},
- {update, megaco_monitor, soft, soft_purge, soft_purge, []}
+ {update, megaco_monitor, soft, soft_purge, soft_purge, []},
+ {update, megaco_flex_scanner_handler, {advanced, downgrade_to_pre_3_13_1},
+ soft_purge, soft_purge, []}
]
},
{"3.11.3",
[
+ {load_module, megaco_filter, soft_purge, soft_purge, []},
{load_module, megaco_udp, soft_purge, soft_purge, []},
{load_module, megaco_messenger, soft_purge, soft_purge,
[megaco_config, megaco_monitor]},
{update, megaco_monitor, soft, soft_purge, soft_purge, []},
{update, megaco_config, {advanced, upgrade_from_pre_3_12},
+ soft_purge, soft_purge, []},
+ {update, megaco_flex_scanner_handler, {advanced, downgrade_to_pre_3_13_1},
soft_purge, soft_purge, []}
]
}
@@ -152,22 +162,32 @@
[
{"3.13",
[
+ {load_module, megaco_messenger, soft_purge, soft_purge, []},
+ {load_module, megaco_filter, soft_purge, soft_purge, []},
+ {update, megaco_flex_scanner_handler, {advanced, upgrade_from_pre_3_13_1},
+ soft_purge, soft_purge, []}
]
},
{"3.12",
[
+ {load_module, megaco_filter, soft_purge, soft_purge, []},
{load_module, megaco_udp, soft_purge, soft_purge, []},
{load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]},
- {update, megaco_monitor, soft, soft_purge, soft_purge, []}
+ {update, megaco_monitor, soft, soft_purge, soft_purge, []},
+ {update, megaco_flex_scanner_handler, {advanced, upgrade_from_pre_3_13_1},
+ soft_purge, soft_purge, []}
]
},
{"3.11.3",
[
+ {load_module, megaco_filter, soft_purge, soft_purge, []},
{load_module, megaco_udp, soft_purge, soft_purge, []},
{load_module, megaco_messenger, soft_purge, soft_purge,
[megaco_config, megaco_monitor]},
{update, megaco_monitor, soft, soft_purge, soft_purge, []},
{update, megaco_config, {advanced, downgrade_to_pre_3_12},
+ soft_purge, soft_purge, []},
+ {update, megaco_flex_scanner_handler, {advanced, upgrade_from_pre_3_13_1},
soft_purge, soft_purge, []}
]
}
diff --git a/lib/megaco/src/engine/megaco_config.erl b/lib/megaco/src/engine/megaco_config.erl
index 2058c53973..1c7a141be7 100644
--- a/lib/megaco/src/engine/megaco_config.erl
+++ b/lib/megaco/src/engine/megaco_config.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -1432,7 +1432,7 @@ verify_val(Item, Val) ->
segment_send_timer -> verify_timer(Val);
max_pdu_size -> verify_int(Val) andalso (Val > 0);
request_keep_alive_timeout ->
- (verify_int(Val) andalso (Val >= 0)) orelse (Val =:= plain);
+ (verify_uint(Val) orelse (Val =:= plain));
_ -> false
end.
diff --git a/lib/megaco/src/engine/megaco_filter.erl b/lib/megaco/src/engine/megaco_filter.erl
index 23a91b1f1d..9df752789c 100644
--- a/lib/megaco/src/engine/megaco_filter.erl
+++ b/lib/megaco/src/engine/megaco_filter.erl
@@ -1,37 +1,83 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%
%%----------------------------------------------------------------------
-%% Purpose : megaco/H.248 customization of generic event tracer
+%% Purpose : Megaco/H.248 customization of the Event Tracer tool
%%----------------------------------------------------------------------
-module(megaco_filter).
--export([start/0, start/1, filter/1,
+-export([start/0, start/1, filter/1, raw_filter/1,
pretty_error/1, string_to_term/1]).
+
-include_lib("megaco/include/megaco.hrl").
-include_lib("megaco/include/megaco_message_v1.hrl").
-include_lib("megaco/src/app/megaco_internal.hrl").
-include_lib("et/include/et.hrl").
+%%----------------------------------------------------------------------
+%% BUGBUG: There are some opportunities for improvements:
+%%
+%% * This version of the module does only handle version 1 of the messages.
+%%
+%% * The record definition of megaco_transaction_reply is copied from
+%% megaco_message_internal.hrl as that header file contains some
+%% records that already are defined in megaco_message_{v1,v2,v3}.hrl.
+%% * The records megaco_udp and megaco_tcp are copied from the files
+%% megaco_udp.hrl and megaco_tcp.hrl respectively, as we cannot include
+%% both header files. They both defines the macros HEAP_SIZE and GC_MSG_LIMIT.
+
+%%-include("megaco_message_internal.hrl").
+-record('megaco_transaction_reply',
+ {
+ transactionId,
+ immAckRequired = asn1_NOVALUE,
+ transactionResult,
+ segmentNumber = asn1_NOVALUE,
+ segmentationComplete = asn1_NOVALUE
+ }).
+
+%% -include_lib("megaco/src/udp/megaco_udp.hrl").
+-record(megaco_udp,
+ {port,
+ options = [],
+ socket,
+ receive_handle,
+ module = megaco,
+ serialize = false % false: Spawn a new process for each message
+ }).
+
+%% -include_lib("megaco/src/tcp/megaco_tcp.hrl").
+-record(megaco_tcp,
+ {host,
+ port,
+ options = [],
+ socket,
+ proxy_pid,
+ receive_handle,
+ module = megaco,
+ serialize = false % false: Spawn a new process for each message
+ }).
+%%----------------------------------------------------------------------
+
start() ->
start([]).
@@ -47,11 +93,20 @@ start(ExtraOptions) ->
{title, "Megaco tracer - Erlang/OTP"} | ExtraOptions],
et_viewer:start(Options).
-filter(E) when is_record(E, event) ->
+filter(E) ->
+ case catch raw_filter(E) of
+ {'EXIT', Reason} = Error->
+ io:format("~p: ~p\n", [?MODULE, Error]),
+ exit(Reason);
+ E2 ->
+ E2
+ end.
+
+raw_filter(E) when is_record(E, event) ->
From = filter_actor(E#event.from),
To = filter_actor(E#event.to),
E2 = E#event{from = From, to = To},
- E3 = filter_contents(E#event.contents, E2, []),
+ E3 = filter_contents(E#event.contents, E2),
{true, E3}.
filter_actors(From, To, E)
@@ -101,6 +156,9 @@ filter_user_actor(Actor) ->
do_filter_actor(CH) when is_record(CH, megaco_conn_handle) ->
Mid = CH#megaco_conn_handle.local_mid,
do_filter_actor(Mid);
+do_filter_actor(RH) when is_record(RH, megaco_receive_handle) ->
+ Mid = RH#megaco_receive_handle.local_mid,
+ do_filter_actor(Mid);
do_filter_actor(Actor) ->
case Actor of
{ip4Address, {'IP4Address', [A1,A2,A3,A4], asn1_NOVALUE}} ->
@@ -130,86 +188,108 @@ do_filter_actor(Actor) ->
"UNKNOWN"
end.
-filter_contents([], E, Contents) ->
- E#event{contents = lists:flatten(lists:reverse(Contents))};
-filter_contents([H | T], E, Contents) ->
+
+filter_contents(Contents, E) ->
+ do_filter_contents(Contents, E, missing_conn_data, []).
+
+do_filter_contents([H | T], E, ConnData, Contents) ->
case H of
- {line, _Mod, _Line} ->
- filter_contents(T, E, Contents);
+ Udp when is_record(Udp, megaco_udp) ->
+ RH = Udp#megaco_udp.receive_handle,
+ Actor = filter_actor(RH),
+ E2 = E#event{from = Actor, to = Actor},
+ Pretty =
+ ["Port: ", integer_to_list(Udp#megaco_udp.port), "\n",
+ "Encoder: ", atom_to_list(RH#megaco_receive_handle.encoding_mod)],
+ do_filter_contents(T, E2, ConnData, [[Pretty, "\n"], Contents]);
+ Tcp when is_record(Tcp, megaco_tcp) ->
+ RH = Tcp#megaco_tcp.receive_handle,
+ Actor = filter_actor(RH),
+ E2 = E#event{from = Actor, to = Actor},
+ Pretty =
+ ["Port: ", integer_to_list(Tcp#megaco_tcp.port), "\n",
+ "Encoder: ", atom_to_list(RH#megaco_receive_handle.encoding_mod)],
+ do_filter_contents(T, E2, ConnData, [[Pretty, "\n"], Contents]);
CD when is_record(CD, conn_data) ->
CH = CD#conn_data.conn_handle,
From = CH#megaco_conn_handle.local_mid,
- To = CH#megaco_conn_handle.remote_mid,
+ To = CH#megaco_conn_handle.remote_mid,
E2 = filter_actors(From, To, E),
Serial = CD#conn_data.serial,
E3 = append_serial(Serial, E2),
- filter_contents(T, E3, Contents);
+ do_filter_contents(T, E3, CD, Contents);
CH when is_record(CH, megaco_conn_handle) ->
From = CH#megaco_conn_handle.local_mid,
- To = CH#megaco_conn_handle.remote_mid,
+ To = CH#megaco_conn_handle.remote_mid,
E2 = filter_actors(From, To, E),
- filter_contents(T, E2, Contents);
- {orig_conn_handle, _CH} ->
- filter_contents(T, E, Contents);
+ do_filter_contents(T, E2, ConnData, Contents);
RH when is_record(RH, megaco_receive_handle) ->
Actor = RH#megaco_receive_handle.local_mid,
E2 = filter_actors(Actor, Actor, E),
- filter_contents(T, E2, Contents);
- {pid, Pid} when is_pid(Pid) ->
- filter_contents(T, E, Contents);
- pending ->
- filter_contents(T, E, Contents);
- reply ->
- filter_contents(T, E, Contents);
+ do_filter_contents(T, E2, ConnData, Contents);
{error, Reason} ->
Pretty = pretty_error({error, Reason}),
E2 = prepend_error(E),
- filter_contents(T, E2, [[Pretty, "\n"], Contents]);
+ do_filter_contents(T, E2, ConnData, [[Pretty, "\n"], Contents]);
{'EXIT', Reason} ->
Pretty = pretty_error({'EXIT', Reason}),
E2 = prepend_error(E),
- filter_contents(T, E2, [[Pretty, "\n"], Contents]);
+ do_filter_contents(T, E2, ConnData, [[Pretty, "\n"], Contents]);
ED when is_record(ED, 'ErrorDescriptor') ->
Pretty = pretty_error(ED),
E2 = prepend_error(E),
- filter_contents(T, E2, [[Pretty, "\n"], Contents]);
+ do_filter_contents(T, E2, ConnData, [[Pretty, "\n"], Contents]);
Trans when is_record(Trans, 'TransactionRequest') ->
- Pretty = pretty({trans, {transactionRequest, Trans}}),
- filter_contents([], E, [[Pretty, "\n"], Contents]);
+ Pretty = pretty(ConnData, {trans, {transactionRequest, Trans}}),
+ do_filter_contents([], E, ConnData, [[Pretty, "\n"], Contents]);
+ {transactionRequest, Trans} when is_record(Trans, 'TransactionRequest') ->
+ Pretty = pretty(ConnData, {trans, {transactionRequest, Trans}}),
+ do_filter_contents([], E, ConnData, [[Pretty, "\n"], Contents]);
Trans when is_record(Trans, 'TransactionReply') ->
- Pretty = pretty({trans, {transactionReply, Trans}}),
- filter_contents([], E, [[Pretty, "\n"], Contents]);
+ Pretty = pretty(ConnData, {trans, {transactionReply, Trans}}),
+ do_filter_contents([], E, ConnData, [[Pretty, "\n"], Contents]);
+ Trans when is_record(Trans, megaco_transaction_reply) ->
+ %% BUGBUG: Version 1 special
+ TransV1 =
+ #'TransactionReply'{transactionId = Trans#megaco_transaction_reply.transactionId,
+ immAckRequired = Trans#megaco_transaction_reply.immAckRequired,
+ transactionResult = Trans#megaco_transaction_reply.transactionResult},
+ Pretty = pretty(ConnData, {trans, {transactionReply, TransV1}}),
+ do_filter_contents([], E, ConnData, [[Pretty, "\n"], Contents]);
Trans when is_record(Trans, 'TransactionPending') ->
- Pretty = pretty({trans, {transactionPending, Trans}}),
- filter_contents([], E, [[Pretty, "\n"], Contents]);
+ Pretty = pretty(ConnData, {trans, {transactionPending, Trans}}),
+ do_filter_contents([], E, ConnData, [[Pretty, "\n"], Contents]);
Trans when is_record(Trans, 'TransactionAck') ->
- Pretty = pretty({trans, {transactionResponseAck, [Trans]}}),
+ Pretty = pretty(ConnData, {trans, {transactionResponseAck, [Trans]}}),
case Trans#'TransactionAck'.lastAck of
asn1_NOVALUE ->
- filter_contents([], E, [[Pretty, "\n"], Contents]);
+ do_filter_contents([], E, ConnData, [[Pretty, "\n"], Contents]);
Last ->
Label = term_to_string(E#event.label),
E2 = E#event{label = Label ++ ".." ++ integer_to_list(Last)},
- filter_contents([], E2, [[Pretty, "\n"], Contents])
+ do_filter_contents([], E2, ConnData, [[Pretty, "\n"], Contents])
end;
{context_id, _ContextId} ->
- Pretty = pretty(H),
- filter_contents(T, E, [[Pretty, "\n"], Contents]);
+ Pretty = pretty(ConnData, H),
+ do_filter_contents(T, E, ConnData, [[Pretty, "\n"], Contents]);
{command_request, CmdReq} ->
- Pretty = pretty(CmdReq),
- filter_contents(T, E, [[Pretty, "\n"], Contents]);
+ Pretty = pretty(ConnData, CmdReq),
+ do_filter_contents(T, E, ConnData, [[Pretty, "\n"], Contents]);
{user_reply, {ok, ARS}} ->
- Pretty = [[pretty(AR), "\n"] || AR <- ARS],
- filter_contents(T, E, [["REPLY: \n", Pretty, "\n"], Contents]);
+ Pretty = [[pretty(ConnData, AR), "\n"] || AR <- ARS],
+ do_filter_contents(T, E, ConnData, [["USER REPLY OK: \n", Pretty, "\n"], Contents]);
{user_reply, Error} ->
Pretty = pretty_error(Error),
- filter_contents(T, E, [["REPLY: \n", Pretty, "\n"], Contents]);
+ do_filter_contents(T, E, ConnData, [["USER REPLY ERROR: \n", Pretty, "\n"], Contents]);
{actionReplies, ARS} ->
- Pretty = [[pretty(AR), "\n"] || AR <- ARS],
- filter_contents(T, E, [["REPLY: \n", Pretty, "\n"], Contents]);
+ Pretty = [[pretty(ConnData, AR), "\n"] || AR <- ARS],
+ do_filter_contents(T, E, ConnData, [["ACTION REPLIES: \n", Pretty, "\n"], Contents]);
MegaMsg when is_record(MegaMsg, 'MegacoMessage') ->
- Pretty = pretty(MegaMsg),
- filter_contents(T, E, [["MESSAGE: \n", Pretty, "\n"], Contents]);
+ Pretty = pretty(ConnData, MegaMsg),
+ do_filter_contents(T, E, ConnData, [Pretty, "\n", Contents]);
+ {message, MegaMsg} when is_record(MegaMsg, 'MegacoMessage') ->
+ Pretty = pretty(ConnData, MegaMsg),
+ do_filter_contents(T, E, ConnData, [Pretty, "\n", Contents]);
{bytes, Bin} when is_binary(Bin) ->
E2 =
case E#event.label of
@@ -223,15 +303,37 @@ filter_contents([H | T], E, Contents) ->
E
end,
CharList = erlang:binary_to_list(Bin),
- filter_contents(T, E2, [[CharList , "\n"], Contents]);
- [] ->
- filter_contents(T, E, Contents);
+ do_filter_contents(T, E2, ConnData, [[CharList , "\n"], Contents]);
+ List when is_list(List) ->
+ %% BUGBUG: Workaround as megaco_messenger puts nested lists in its traces
+ do_filter_contents(List ++ T, E, ConnData, Contents);
+ Int when is_integer(Int) ->
+ %% BUGBUG: Workaround as megaco_messenger puts nested lists in its traces
+ do_filter_contents(T, E, ConnData, Contents);
+ {line, _Mod, _Line} ->
+ do_filter_contents(T, E, ConnData, Contents);
+ {orig_conn_handle, _CH} ->
+ do_filter_contents(T, E, ConnData, Contents);
+ {pid, Pid} when is_pid(Pid) ->
+ do_filter_contents(T, E, ConnData, Contents);
+ pending ->
+ do_filter_contents(T, E, ConnData, Contents);
+ reply ->
+ do_filter_contents(T, E, ConnData, Contents);
{test_lib, _Mod, _Fun} ->
- filter_contents(T, E, Contents);
+ do_filter_contents(T, E, ConnData, Contents);
+ {trans_id, _TransId} ->
+ do_filter_contents(T, E, ConnData, Contents);
+ {send_func, _FunName} ->
+ do_filter_contents(T, E, ConnData, Contents);
+ Pid when is_pid(Pid) ->
+ do_filter_contents(T, E, ConnData, Contents);
Other ->
- Pretty = pretty(Other),
- filter_contents(T, E, [[Pretty, "\n"], Contents])
- end.
+ Pretty = pretty(ConnData, Other),
+ do_filter_contents(T, E, ConnData, [[Pretty, "\n"], Contents])
+ end;
+do_filter_contents([], E, _ConnData, Contents) ->
+ E#event{contents = lists:flatten(lists:reverse(Contents))}.
append_serial(Serial, E) when is_integer(Serial) ->
Label = term_to_string(E#event.label),
@@ -243,7 +345,7 @@ prepend_error(E) ->
Label = term_to_string(E#event.label),
E#event{label = "<ERROR> " ++ Label}.
-pretty({context_id, ContextId}) ->
+pretty(_ConnData, {context_id, ContextId}) ->
if
ContextId =:= ?megaco_null_context_id ->
["CONTEXT ID: -\n"];
@@ -254,61 +356,33 @@ pretty({context_id, ContextId}) ->
is_integer(ContextId) ->
["CONTEXT ID: ",integer_to_list(ContextId), "\n"]
end;
-pretty(MegaMsg) when is_record(MegaMsg, 'MegacoMessage') ->
- case catch megaco_pretty_text_encoder:encode_message([], MegaMsg) of
- {ok, Bin} ->
- term_to_string(Bin);
- _Bad ->
- term_to_string(MegaMsg)
- end;
-pretty(CmdReq) when is_record(CmdReq, 'CommandRequest') ->
- case catch megaco_pretty_text_encoder:encode_command_request(CmdReq) of
- {ok, IoList} ->
- IoList2 = lists:flatten(IoList),
- term_to_string(IoList2);
- _Bad ->
- term_to_string(CmdReq)
- end;
-pretty({complete_success, ContextId, RepList} = Res) ->
+pretty(_ConnData, MegaMsg) when is_record(MegaMsg, 'MegacoMessage') ->
+ {ok, Bin} = megaco_pretty_text_encoder:encode_message([], MegaMsg),
+ term_to_string(Bin);
+pretty(_ConnData, CmdReq) when is_record(CmdReq, 'CommandRequest') ->
+ {ok, IoList} = megaco_pretty_text_encoder:encode_command_request(CmdReq),
+ term_to_string(lists:flatten(IoList));
+pretty(_ConnData, {complete_success, ContextId, RepList}) ->
ActRep = #'ActionReply'{contextId = ContextId,
commandReply = RepList},
- case catch megaco_pretty_text_encoder:encode_action_reply(ActRep) of
- {ok, IoList} ->
- IoList2 = lists:flatten(IoList),
- term_to_string(IoList2);
- _Bad ->
- term_to_string(Res)
- end;
-pretty(AR) when is_record(AR, 'ActionReply') ->
- case catch megaco_pretty_text_encoder:encode_action_reply(AR) of
- {ok, IoList} ->
- IoList2 = lists:flatten(IoList),
- term_to_string(IoList2);
- _Bad ->
- term_to_string(AR)
- end;
-pretty({partial_failure, ContextId, RepList} = Res) ->
+ {ok, IoList} = megaco_pretty_text_encoder:encode_action_reply(ActRep),
+ term_to_string(lists:flatten(IoList));
+pretty(_ConnData, AR) when is_record(AR, 'ActionReply') ->
+ {ok, IoList} = megaco_pretty_text_encoder:encode_action_reply(AR),
+ term_to_string(lists:flatten(IoList));
+pretty(_ConnData, {partial_failure, ContextId, RepList}) ->
ActRep = #'ActionReply'{contextId = ContextId,
commandReply = RepList},
- case catch megaco_pretty_text_encoder:encode_action_reply(ActRep) of
- {ok, IoList} ->
- IoList2 = lists:flatten(IoList),
- term_to_string(IoList2);
- _Bad ->
- term_to_string(Res)
- end;
-pretty({trans, Trans}) ->
- case catch megaco_pretty_text_encoder:encode_transaction(Trans) of
+ {ok, IoList} = megaco_pretty_text_encoder:encode_action_reply(ActRep),
+ term_to_string(lists:flatten(IoList));
+pretty(_ConnData, {trans, Trans}) ->
+ case megaco_pretty_text_encoder:encode_transaction(Trans) of
{ok, Bin} when is_binary(Bin) ->
- IoList2 = lists:flatten(binary_to_list(Bin)),
- term_to_string(IoList2);
+ term_to_string(binary_to_list(Bin));
{ok, IoList} ->
- IoList2 = lists:flatten(IoList),
- term_to_string(IoList2);
- _Bad ->
- term_to_string(Trans)
+ term_to_string(lists:flatten(IoList))
end;
-pretty(Other) ->
+pretty(__ConnData, Other) ->
term_to_string(Other).
pretty_error({error, Reason}) ->
diff --git a/lib/megaco/src/engine/megaco_messenger.erl b/lib/megaco/src/engine/megaco_messenger.erl
index a9e4fd67b2..5756e8e896 100644
--- a/lib/megaco/src/engine/megaco_messenger.erl
+++ b/lib/megaco/src/engine/megaco_messenger.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -99,20 +99,22 @@
%% N.B. Update cancel/1 with '_' when a new field is added
-record(reply,
{
- trans_id,
- local_mid,
- state = prepare, % prepare | eval_request | waiting_for_ack | aborted
- pending_timer_ref,
- handler = undefined, % pid of the proc executing the callback func
- timer_ref,
- version,
- %% bytes: Sent reply data: not acknowledged
- bytes, % binary() | [{integer(), binary(), timer_ref()}]
- ack_action, % discard_ack | {handle_ack, Data}
- send_handle,
- %% segments: Not sent reply data (segments)
- segments = [] % [{integer(), binary()}]
- }).
+ trans_id,
+ local_mid,
+ state = prepare, % prepare | eval_request | waiting_for_ack | aborted
+ pending_timer_ref,
+ handler = undefined, % pid of the proc executing the callback func
+ timer_ref,
+ version,
+ %% bytes: Sent reply data: not acknowledged
+ bytes, % binary() | [{integer(), binary(), timer_ref()}]
+ ack_action, % discard_ack | {handle_ack, Data}
+ send_handle,
+ %% segments: Not sent reply data (segments)
+ segments = [], % [{integer(), binary()}]
+ user_mod,
+ user_args
+ }).
-record(trans_id,
{
@@ -1203,7 +1205,7 @@ prepare_request(ConnData, T, Rest, AckList, ReqList, Extra) ->
LocalMid = ConnHandle#megaco_conn_handle.local_mid,
TransId = to_remote_trans_id(ConnData),
?rt2("prepare request", [LocalMid, TransId]),
- case megaco_monitor:lookup_reply(TransId) of
+ case lookup_reply(ConnData, TransId) of
[] ->
?rt3("brand new request"),
@@ -1222,18 +1224,22 @@ prepare_request(ConnData, T, Rest, AckList, ReqList, Extra) ->
#conn_data{send_handle = SendHandle,
pending_timer = InitTimer,
- protocol_version = Version} = ConnData,
+ protocol_version = Version,
+ user_mod = UserMod,
+ user_args = UserArgs} = ConnData,
{WaitFor, CurrTimer} = megaco_timer:init(InitTimer),
M = ?MODULE,
F = pending_timeout,
- A = [ConnHandle, TransId, CurrTimer],
+ A = [ConnHandle, TransId, CurrTimer],
PendingRef = megaco_monitor:apply_after(M, F, A, WaitFor),
Rep = #reply{send_handle = SendHandle,
trans_id = TransId,
local_mid = LocalMid,
pending_timer_ref = PendingRef,
handler = self(),
- version = Version},
+ version = Version,
+ user_mod = UserMod,
+ user_args = UserArgs},
case megaco_monitor:insert_reply_new(Rep) of
true ->
prepare_normal_trans(ConnData, Rest, AckList,
@@ -1250,9 +1256,14 @@ prepare_request(ConnData, T, Rest, AckList, ReqList, Extra) ->
Extra)
end;
- [#reply{state = State,
+ %% We can ignore the Converted value here as we *know*
+ %% conn-data to be correct (not faked), so even if
+ %% the record was converted, it will now have correct
+ %% values for user_mod and user_args.
+ {_Converted,
+ #reply{state = State,
handler = Pid,
- pending_timer_ref = Ref} = Rep]
+ pending_timer_ref = Ref} = Rep}
when (State =:= prepare) orelse (State =:= eval_request) ->
?rt2("request resend", [State, Pid, Ref]),
@@ -1364,9 +1375,14 @@ prepare_request(ConnData, T, Rest, AckList, ReqList, Extra) ->
end;
- [#reply{state = waiting_for_ack,
+ %% We can ignore the Converted value here as we *know*
+ %% conn-data to be correct (not faked), so even if
+ %% the record was converted, it will now have correct
+ %% values for user_mod and user_args.
+ {_Converted,
+ #reply{state = waiting_for_ack,
bytes = Bin,
- version = Version} = Rep] ->
+ version = Version} = Rep} ->
?rt3("request resend when waiting for ack"),
%% We have already sent a reply, but the receiver
@@ -1384,7 +1400,13 @@ prepare_request(ConnData, T, Rest, AckList, ReqList, Extra) ->
end,
prepare_normal_trans(ConnData2, Rest, AckList, ReqList, Extra);
- [#reply{state = aborted} = Rep] ->
+
+ %% We can ignore the Converted value here as we *know*
+ %% conn-data to be correct (not faked), so even if
+ %% the record was converted, it will now have correct
+ %% values for user_mod and user_args.
+ {_Converted,
+ #reply{state = aborted} = Rep} ->
?rt3("request resend when already in aborted state"),
%% OTP-4956:
@@ -1424,15 +1446,15 @@ prepare_ack(ConnData, [], Rest, AckList, ReqList, Extra) ->
do_prepare_ack(ConnData, T, AckList) ->
TransId = to_remote_trans_id(ConnData),
- case megaco_monitor:lookup_reply(TransId) of
+ case lookup_reply(ConnData, TransId) of
[] ->
%% The reply has already been garbage collected. Ignore.
?report_trace(ConnData, "discard ack (no receiver)", [T]),
AckList;
- [Rep] when Rep#reply.state =:= waiting_for_ack ->
+ {_Converted, Rep} when Rep#reply.state =:= waiting_for_ack ->
%% Don't care about Msg and Rep version diff
[{ConnData, Rep, T} | AckList];
- [_Rep] ->
+ {_Converted, _Rep} ->
%% Protocol violation from the sender of this ack
?report_important(ConnData, "<ERROR> discard trans",
[T, {error, "got ack before reply was sent"}]),
@@ -1657,8 +1679,8 @@ handle_request(ConnData, TransId, T, Extra) ->
%% Furthermore, the reply timer has not been started,
%% so do the cleanup now
?rt1(ConnData, "pending limit already passed", [TransId]),
- case megaco_monitor:lookup_reply(TransId) of
- [Rep] ->
+ case lookup_reply(ConnData, TransId) of
+ {_Converted, Rep} ->
cancel_reply(ConnData, Rep, aborted);
_ ->
ok
@@ -1671,8 +1693,8 @@ do_handle_request(_, ignore, _ConnData, _TransId) ->
ignore;
do_handle_request(_, ignore_trans_request, ConnData, TransId) ->
?rt1(ConnData, "ignore trans request: don't reply", [TransId]),
- case megaco_monitor:lookup_reply(TransId) of
- [#reply{} = Rep] ->
+ case lookup_reply(ConnData, TransId) of
+ {_Converted, #reply{} = Rep} ->
cancel_reply(ConnData, Rep, ignore);
_ ->
ignore
@@ -1689,8 +1711,8 @@ do_handle_request({pending, RequestData}, _SendReply, _ConnData, _) ->
do_handle_request(AckAction, {ok, Bin}, ConnData, TransId)
when is_binary(Bin) ->
?rt1(ConnData, "handle request - ok", [AckAction, TransId]),
- case megaco_monitor:lookup_reply(TransId) of
- [#reply{pending_timer_ref = PendingRef} = Rep] ->
+ case lookup_reply(ConnData, TransId) of
+ {_Converted, #reply{pending_timer_ref = PendingRef} = Rep} ->
#conn_data{reply_timer = InitTimer,
conn_handle = ConnHandle} = ConnData,
@@ -1729,8 +1751,8 @@ do_handle_request(AckAction, {ok, {Sent, NotSent}}, ConnData, TransId)
?rt1(ConnData, "handle request - ok [segmented reply]",
[AckAction, TransId]),
- case megaco_monitor:lookup_reply(TransId) of
- [#reply{pending_timer_ref = PendingRef} = Rep] ->
+ case lookup_reply(ConnData, TransId) of
+ {_Converted, #reply{pending_timer_ref = PendingRef} = Rep} ->
%% d("do_handle_request -> found reply record:"
%% "~n Rep: ~p", [Rep]),
@@ -1772,8 +1794,8 @@ do_handle_request(AckAction, {ok, {Sent, NotSent}}, ConnData, TransId)
end;
do_handle_request(_, {error, aborted}, ConnData, TransId) ->
?report_trace(ConnData, "aborted during our absence", [TransId]),
- case megaco_monitor:lookup_reply(TransId) of
- [Rep] ->
+ case lookup_reply(ConnData, TransId) of
+ {_Converted, Rep} ->
cancel_reply(ConnData, Rep, aborted);
_ ->
ok
@@ -1781,8 +1803,8 @@ do_handle_request(_, {error, aborted}, ConnData, TransId) ->
ignore;
do_handle_request(AckAction, {error, Reason}, ConnData, TransId) ->
?report_trace(ConnData, "error", [TransId, Reason]),
- case megaco_monitor:lookup_reply(TransId) of
- [Rep] ->
+ case lookup_reply(ConnData, TransId) of
+ {_Converted, Rep} ->
Rep2 = Rep#reply{state = waiting_for_ack,
ack_action = AckAction},
cancel_reply(ConnData, Rep2, Reason);
@@ -2819,9 +2841,10 @@ handle_segment_reply(CD,
{segment_no, SN},
{segmentation_complete, SC}]),
TransId2 = to_remote_trans_id(CD#conn_data{serial = TransId}),
- case megaco_monitor:lookup_reply(TransId2) of
- [#reply{bytes = Sent,
- segments = []} = Rep] when is_list(Sent) ->
+ case lookup_reply(CD, TransId2) of
+ {_Converted,
+ #reply{bytes = Sent,
+ segments = []} = Rep} when is_list(Sent) ->
?rt2("no unsent segments", [Sent]),
handle_segment_reply_callback(CD, TransId, SN, SC, Extra),
case lists:keysearch(SN, 1, Sent) of
@@ -2845,8 +2868,9 @@ handle_segment_reply(CD,
ok
end;
- [#reply{bytes = Sent,
- segments = NotSent}] when is_list(Sent) andalso
+ {_Converted,
+ #reply{bytes = Sent,
+ segments = NotSent}} when is_list(Sent) andalso
is_list(NotSent) ->
?rt2("unsent segments", [Sent, NotSent]),
handle_segment_reply_callback(CD, TransId, SN, SC, Extra),
@@ -2883,7 +2907,8 @@ handle_segment_reply(CD,
ok
end;
- [#reply{state = State}] ->
+ {_Converted,
+ #reply{state = State}} ->
%% We received a segment reply for a segmented reply we have
%% not yet sent? This is either some sort of race condition
%% or the "the other side" is really confused.
@@ -3012,7 +3037,7 @@ handle_ack_callback(ConnData, AckStatus, {handle_ack, AckData}, T, Extra) ->
_ ->
[ConnHandle, Version, AckStatus, AckData, Extra | UserArgs]
end,
- Res = (catch apply(UserMod, handle_trans_ack, Args)),
+ Res = (catch handle_callback(ConnData, UserMod, handle_trans_ack, Args)),
?report_debug(ConnData, "return: trans ack", [T, AckData, {return, Res}]),
case Res of
ok ->
@@ -3024,6 +3049,14 @@ handle_ack_callback(ConnData, AckStatus, {handle_ack, AckData}, T, Extra) ->
Res.
+handle_callback(ConnData, undefined = _UserMod, Func, Args) ->
+ ?report_important(ConnData, "callback: unknown callback module",
+ [{func, Func}, {args, Args}]),
+ ok;
+handle_callback(_ConnData, UserMod, Func, Args) ->
+ (catch apply(UserMod, Func, Args)).
+
+
handle_message_error(ConnData, _Error, _Extra)
when ConnData#conn_data.monitor_ref == undefined_monitor_ref ->
%% May occur if another process already has setup a
@@ -4370,11 +4403,15 @@ receive_reply_remote(ConnData, UserReply, Extra) ->
return_unexpected_trans_reply(ConnData, TransId, UserReply, Extra)
end.
-cancel_reply(ConnData, #reply{state = waiting_for_ack} = Rep, Reason) ->
+cancel_reply(ConnData, #reply{state = waiting_for_ack,
+ user_mod = UserMod,
+ user_args = UserArgs} = Rep, Reason) ->
?report_trace(ignore, "cancel reply [waiting_for_ack]", [Rep]),
megaco_monitor:cancel_apply_after(Rep#reply.pending_timer_ref),
Serial = (Rep#reply.trans_id)#trans_id.serial,
- ConnData2 = ConnData#conn_data{serial = Serial},
+ ConnData2 = ConnData#conn_data{serial = Serial,
+ user_mod = UserMod,
+ user_args = UserArgs},
T = #'TransactionAck'{firstAck = Serial},
Extra = ?default_user_callback_extra,
handle_ack(ConnData2, {error, Reason}, Rep, T, Extra);
@@ -4558,16 +4595,30 @@ reply_timeout(ConnHandle, TransId, {_, timeout}) ->
reply_timeout(ConnHandle, TransId, Timer) ->
?report_trace(ConnHandle, "reply timeout", [Timer, TransId]),
- case megaco_monitor:lookup_reply(TransId) of
+ case lookup_reply(undefined, TransId) of
[] ->
reply_not_found_ignore;
- [#reply{state = waiting_for_ack,
- ack_action = {handle_ack, _}} = Rep] ->
+ {Converted,
+ #reply{state = waiting_for_ack,
+ ack_action = {handle_ack, _}} = Rep} ->
case megaco_config:lookup_local_conn(ConnHandle) of
[CD] when (CD#conn_data.cancel =:= true) ->
cancel_in_progress_ignore;
- [CD] ->
+ [CD] when (Converted =:= true) ->
+ incNumTimerRecovery(ConnHandle),
+ %% When we did the reply record lookup, we had no
+ %% conn_data record, and the reply record was
+ %% converted. This means that the reply record
+ %% has no valid info about user_mod or user_args.
+ %% Therefor, the user_mod and user_args of the
+ %% conn_data record is better then nothing.
+ #conn_data{user_mod = UserMod,
+ user_args = UserArgs} = CD,
+ Rep2 = Rep#reply{user_mod = UserMod,
+ user_args = UserArgs},
+ do_reply_timeout(ConnHandle, TransId, CD, Timer, Rep2);
+ [CD] when (Converted =:= false) ->
incNumTimerRecovery(ConnHandle),
do_reply_timeout(ConnHandle, TransId, CD, Timer, Rep);
[] ->
@@ -4576,10 +4627,25 @@ reply_timeout(ConnHandle, TransId, Timer) ->
do_reply_timeout(ConnHandle, TransId, CD, Timer, Rep)
end;
- [#reply{state = waiting_for_ack,
- bytes = Sent} = Rep] when is_list(Sent) ->
+ {Converted,
+ #reply{state = waiting_for_ack,
+ bytes = Sent} = Rep} when is_list(Sent) ->
case megaco_config:lookup_local_conn(ConnHandle) of
- [ConnData] ->
+ [ConnData] when (Converted =:= true) ->
+ incNumTimerRecovery(ConnHandle),
+ %% When we did the reply record lookup, we had no
+ %% conn_data record, and the reply record was
+ %% converted. This means that the reply record
+ %% has no valid info about user_mod or user_args.
+ %% Therefor, the user_mod and user_args of the
+ %% conn_data record is better then nothing.
+ #conn_data{user_mod = UserMod,
+ user_args = UserArgs} = ConnData,
+ Rep2 = Rep#reply{user_mod = UserMod,
+ user_args = UserArgs},
+ do_reply_timeout(ConnHandle, TransId, ConnData,
+ Timer, Rep2);
+ [ConnData] when (Converted =:= false) ->
incNumTimerRecovery(ConnHandle),
do_reply_timeout(ConnHandle, TransId, ConnData,
Timer, Rep);
@@ -4590,10 +4656,12 @@ reply_timeout(ConnHandle, TransId, Timer) ->
Timer, Rep)
end;
- [#reply{state = waiting_for_ack} = Rep] ->
+ {_Converted,
+ #reply{state = waiting_for_ack} = Rep} ->
do_reply_timeout(ConnHandle, TransId, Timer, Rep);
- [#reply{state = aborted} = Rep] ->
+ {_Converted,
+ #reply{state = aborted} = Rep} ->
do_reply_timeout(ConnHandle, TransId, Timer, Rep);
_ ->
@@ -4686,22 +4754,41 @@ handle_reply_timer_timeout(ConnHandle, TransId) ->
?report_trace(ConnHandle, "handle reply timeout", [timeout, TransId]),
incNumTimerRecovery(ConnHandle),
%% OTP-4378
- case megaco_monitor:lookup_reply(TransId) of
- [#reply{state = waiting_for_ack} = Rep] ->
+ case lookup_reply(undefined, TransId) of
+ {Converted,
+ #reply{state = waiting_for_ack} = Rep} ->
Serial = (Rep#reply.trans_id)#trans_id.serial,
- ConnData =
+ {Rep2, ConnData} =
case megaco_config:lookup_local_conn(ConnHandle) of
- [ConnData0] ->
- ConnData0;
- [] ->
- fake_conn_data(ConnHandle)
+ [ConnData0] when (Converted =:= false) ->
+ #reply{user_mod = UserMod,
+ user_args = UserArgs} = Rep,
+ {Rep,
+ ConnData0#conn_data{user_mod = UserMod,
+ user_args = UserArgs}};
+ [ConnData0] when (Converted =:= true) ->
+ {Rep#reply{user_mod = ConnData0#conn_data.user_mod,
+ user_args = ConnData0#conn_data.user_args},
+ ConnData0};
+ [] when (Converted =:= false) ->
+ ConnData0 = fake_conn_data(ConnHandle),
+ #reply{user_mod = UserMod,
+ user_args = UserArgs} = Rep,
+ {Rep,
+ ConnData0#conn_data{user_mod = UserMod,
+ user_args = UserArgs}};
+ [] when (Converted =:= true) ->
+ %% We have no valid info about user_mod and user_args
+ {Rep, fake_conn_data(ConnHandle)}
end,
ConnData2 = ConnData#conn_data{serial = Serial},
T = #'TransactionAck'{firstAck = Serial},
Extra = ?default_user_callback_extra,
- handle_ack(ConnData2, {error, timeout}, Rep, T, Extra);
- [#reply{pending_timer_ref = Ref, % aborted?
- bytes = SegSent}] -> % may be a binary
+ handle_ack(ConnData2, {error, timeout}, Rep2, T, Extra);
+
+ {_Converted,
+ #reply{pending_timer_ref = Ref, % aborted?
+ bytes = SegSent}} -> % may be a binary
megaco_monitor:cancel_apply_after(Ref),
cancel_segment_timers(SegSent),
megaco_monitor:delete_reply(TransId),
@@ -4803,9 +4890,10 @@ pending_timeout(ConnHandle, TransId, Timer) ->
handle_pending_timeout(CD, TransId, Timer) ->
?report_trace(CD, "handle pending timeout", []),
- case megaco_monitor:lookup_reply(TransId) of
- [#reply{state = State,
- handler = Pid} = Rep] when (State =:= prepare) orelse
+ case lookup_reply(CD, TransId) of
+ {_Converted,
+ #reply{state = State,
+ handler = Pid} = Rep} when (State =:= prepare) orelse
(State =:= eval_request) ->
#conn_data{sent_pending_limit = Limit,
@@ -4885,12 +4973,14 @@ handle_pending_timeout(CD, TransId, Timer) ->
[] ->
reply_not_found; % Trace ??
- [#reply{state = waiting_for_ack}] ->
+ {_Converted,
+ #reply{state = waiting_for_ack}} ->
%% The reply has already been sent
%% No need for any pending trans reply
reply_has_been_sent;
- [#reply{state = aborted} = Rep] ->
+ {_Converted,
+ #reply{state = aborted} = Rep} ->
%% glitch, but cleanup just the same
cancel_reply(CD, Rep, aborted),
reply_aborted_state
@@ -5096,7 +5186,65 @@ make_transaction_reply(_, TransId, IAR, TransRes) ->
%%-----------------------------------------------------------------
+%% This function is used as a wrapper for reply-record lookups.
+%% The intention is that during upgrade, this function
+%% can perform on-the-fly conversions of reply-records.
+lookup_reply(CD, TransId) ->
+ case megaco_monitor:lookup_reply(TransId) of
+ [#reply{} = Rep] ->
+ {false, Rep};
+
+ %% Old (pre-3.13.1) version of the record => Convert to new version
+ [{reply, TransId,
+ LocalMid, State, PendingTmrRef, Handler, TimerRef,
+ Version, Bytes, AckAction, SendHandle, Segments}]
+ when is_record(CD, conn_data) ->
+ #conn_data{user_mod = UserMod,
+ user_args = UserArgs} = CD,
+ Rep = #reply{trans_id = TransId,
+ local_mid = LocalMid,
+ state = State,
+ pending_timer_ref = PendingTmrRef,
+ handler = Handler,
+ timer_ref = TimerRef,
+ version = Version,
+ bytes = Bytes,
+ ack_action = AckAction,
+ send_handle = SendHandle,
+ segments = Segments,
+ user_mod = UserMod,
+ user_args = UserArgs},
+ {true, Rep};
+
+ %% Old (pre-3.13.1) version of the record => Convert to new version
+ [{reply, TransId,
+ LocalMid, State, PendingTmrRef, Handler, TimerRef,
+ Version, Bytes, AckAction, SendHandle, Segments}] ->
+ %% ConnData is not known here, so ignore for now
+ Rep = #reply{trans_id = TransId,
+ local_mid = LocalMid,
+ state = State,
+ pending_timer_ref = PendingTmrRef,
+ handler = Handler,
+ timer_ref = TimerRef,
+ version = Version,
+ bytes = Bytes,
+ ack_action = AckAction,
+ send_handle = SendHandle,
+ segments = Segments},
+ {true, Rep};
+
+ Else ->
+ Else
+ end.
+
+
+%%-----------------------------------------------------------------
+
%%-----------------------------------------------------------------
+%% info_msg(F, A) ->
+%% ?megaco_info(F, A).
+
warning_msg(F, A) ->
?megaco_warning(F, A).
@@ -5131,7 +5279,7 @@ error_msg(F, A) ->
%% Time in milli seconds
t() ->
- {A,B,C} = erlang:now(),
+ {A,B,C} = os:timestamp(),
A*1000000000+B*1000+(C div 1000).
@@ -5156,3 +5304,4 @@ incNum(Cnt) ->
Old
end.
+
diff --git a/lib/megaco/src/flex/Makefile.in b/lib/megaco/src/flex/Makefile.in
index 782d6a4807..6ce9b34617 100644
--- a/lib/megaco/src/flex/Makefile.in
+++ b/lib/megaco/src/flex/Makefile.in
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2001-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2001-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
include $(ERL_TOP)/make/target.mk
@@ -23,13 +23,30 @@ MEGACO_INCLUDEDIR = ../../include
include $(ERL_TOP)/make/$(TARGET)/otp.mk
-
# ----------------------------------------------------
# Application version
# ----------------------------------------------------
include ../../vsn.mk
VSN=$(MEGACO_VSN)
+# ----------------------------------------------------
+# Dynamic Erlang Driver
+# ----------------------------------------------------
+HAVE_USABLE_OTP_DED_MK = @HAVE_USABLE_OTP_DED_MK@
+
+ifeq ($(HAVE_USABLE_OTP_DED_MK),yes)
+# otp_ded.mk will be used on R13B04 and later
+include $(ERL_TOP)/make/$(TARGET)/otp_ded.mk
+else
+# megacos configure provide the info instead
+DED_CC = @CC@
+DED__NOWARN_NOTHR_CFLAGS = @DED_CFLAGS@
+DED_THR_DEFS = @DED_THR_DEFS@
+DED_LD = @DED_LD@
+DED_LDFLAGS = @DED_LDFLAGS@
+DED_INCLUDES = @DED_INCLUDES@
+DED_EXT = so
+endif
# ----------------------------------------------------
# The following variables differ on different systems, we set
@@ -39,16 +56,16 @@ VSN=$(MEGACO_VSN)
FLEX_VSN = $(shell flex --version)
-TMP_CFLAGS = @DED_CFLAGS@
+TMP_CFLAGS = $(DED__NOWARN_NOTHR_CFLAGS) @OTP_EXTRA_FLAGS@
ifeq ($(TYPE),valgrind)
CFLAGS = $(subst -O2, , $(TMP_CFLAGS)) -DVALGRIND
else
CFLAGS = $(TMP_CFLAGS)
endif
-CC = @CC@
-CFLAGS_MT = $(CFLAGS) -D_THREAD_SAFE -D_REENTRANT
-LD = @DED_LD@
-LDFLAGS = @DED_LDFLAGS@
+CC = $(DED_CC)
+CFLAGS_MT = $(CFLAGS) $(DED_THR_DEFS)
+LD = $(DED_LD)
+LDFLAGS = $(DED_LDFLAGS)
LEX = @LEX@
LEXLIB = @LEXLIB@
PERL = @PERL@
@@ -87,18 +104,13 @@ ENABLE_MEGACO_FLEX_SCANNER_LINENO = @ENABLE_MEGACO_FLEX_SCANNER_LINENO@
endif
endif
-
-SYSINCLUDE = -I$(ERL_TOP)/erts/emulator/beam \
- -I$(ERL_TOP)/erts/emulator/sys/$(ERLANG_OSTYPE)
ifeq ($(findstring vxworks,$(TARGET)),vxworks)
- SYSINCLUDE += -I$(ERL_TOP)/erts/etc/vxworks
+ DED_INCLUDES += -I$(ERL_TOP)/erts/etc/vxworks
endif
-DRIVER_INCLUDES = $(SYSINCLUDE)
-
PRIVDIR = ../../priv
LIBDIR = $(PRIVDIR)/lib/$(TARGET)
-
+OBJDIR = $(PRIVDIR)/obj/$(TARGET)
# ----------------------------------------------------
# Release directory specification
@@ -138,8 +150,8 @@ ifeq ($(findstring vxworks,$(TARGET)),vxworks)
FLEX_SCANNER_SO =
SOLIBS = $(FLEX_SCANNER_SO)
else
-FLEX_SCANNER_SO = $(LIBDIR)/$(STD_DRV).so
-FLEX_SCANNER_MT_SO = $(LIBDIR)/$(MT_DRV).so
+FLEX_SCANNER_SO = $(LIBDIR)/$(STD_DRV).$(DED_EXT)
+FLEX_SCANNER_MT_SO = $(LIBDIR)/$(MT_DRV).$(DED_EXT)
SOLIBS = $(FLEX_SCANNER_SO) $(FLEX_SCANNER_MT_SO)
endif
endif
@@ -175,7 +187,7 @@ else
CFLAGS += -DMFS_FLEX_DEBUG=0
endif
-CFLAGS += $(DRIVER_INCLUDES) $(DRV_FLAGS) -funroll-loops -Wall
+CFLAGS += $(DED_INCLUDES) -I$(ERL_TOP)/erts/$(TARGET) $(DRV_FLAGS) -funroll-loops -Wall
#ifneq ($(FLEX_VSN),)
#CFLAGS += -DFLEX_VERSION="$(FLEX_VSN)"
@@ -379,18 +391,30 @@ $(STD_DRV).c: $(STD_DRV).flex
$(MT_DRV).c: $(MT_DRV).flex
$(LEX) $(MT_LEX_FLAGS) -P$* -o$@ $<
-solibs: $(LIBDIR) $(SOLIBS)
+solibs: $(LIBDIR) $(OBJDIR) $(SOLIBS)
+
+$(OBJDIR)/$(STD_DRV).o: $(STD_DRV).c
+ @echo "compiling std driver:"
+ $(CC) -c $(STD_DRV_NAME) $(CFLAGS) -o $@ $<
+
+$(OBJDIR)/$(MT_DRV).o: $(MT_DRV).c
+ @echo "compiling multi-threaded driver:"
+ $(CC) -c $(MT_DRV_NAME) $(CFLAGS_MT) -o $@ $<
+
# No need to link with -lfl as we have also defined %option noyywrap -
# and having -lfl doesn't work under Darwin for some reason. - Sean
-$(LIBDIR)/$(STD_DRV).so: $(STD_DRV).c
- @echo "std driver:"
- $(CC) $(STD_DRV_NAME) $(CFLAGS) $(LDFLAGS) -o $(LIBDIR)/$(STD_DRV).so $<
+$(LIBDIR)/$(STD_DRV).$(DED_EXT): $(OBJDIR)/$(STD_DRV).o
+ @echo "linking std driver:"
+ $(LD) $(LDFLAGS) -o $@ $<
-$(LIBDIR)/$(MT_DRV).so: $(MT_DRV).c
- @echo "multi-threaded driver:"
- $(CC) $(MT_DRV_NAME) $(CFLAGS_MT) $(LDFLAGS) -o $(LIBDIR)/$(MT_DRV).so $<
+$(LIBDIR)/$(MT_DRV).$(DED_EXT): $(OBJDIR)/$(MT_DRV).o
+ @echo "linking multi-threaded driver:"
+ $(LD) $(LDFLAGS) -o $@ $<
$(LIBDIR):
-mkdir -p $(LIBDIR)
+$(OBJDIR):
+ -mkdir -p $(OBJDIR)
+
diff --git a/lib/megaco/src/flex/megaco_flex_scanner_drv.flex.src b/lib/megaco/src/flex/megaco_flex_scanner_drv.flex.src
index b96a69415d..9b4f717201 100644
--- a/lib/megaco/src/flex/megaco_flex_scanner_drv.flex.src
+++ b/lib/megaco/src/flex/megaco_flex_scanner_drv.flex.src
@@ -1,19 +1,19 @@
/*
* %CopyrightBegin%
- *
- * Copyright Ericsson AB 2001-2009. All Rights Reserved.
- *
+ *
+ * Copyright Ericsson AB 2001-2010. All Rights Reserved.
+ *
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
* compliance with the License. You should have received a copy of the
* Erlang Public License along with this software. If not, it can be
* retrieved online at http://www.erlang.org/.
- *
+ *
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
- *
+ *
* %CopyrightEnd%
*
* ----------------------------------------------------------------------
@@ -354,9 +354,6 @@ static ErlDrvEntry mfs_entry = {
MEGACO_DRIVER_FLAGS, /* driver_flags, used for port lock indication */
NULL, /* handle2, emulator internal use */
NULL /* process_exit, Called when a process monitor fires */
-#if defined(MEGACO_DRV_ENTRY_HAS_STOP_SELECT)
- ,NULL /* stop_select, Called to close an event object */
-#endif
};
diff --git a/lib/megaco/src/flex/megaco_flex_scanner_handler.erl b/lib/megaco/src/flex/megaco_flex_scanner_handler.erl
index d09e0c6fff..420202134e 100644
--- a/lib/megaco/src/flex/megaco_flex_scanner_handler.erl
+++ b/lib/megaco/src/flex/megaco_flex_scanner_handler.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -180,27 +180,28 @@ terminate(_Reason, _S) ->
%% Purpose: Called to change the internal state
%% Returns: {ok, NewState}
%%----------------------------------------------------------------------
-%% code_change({down, _Vsn}, #state{conf = Conf} = State, downgrade_to_pre_3_8) ->
-%% Port = downgrade_flex_scanner(Conf),
-%% {ok, State#state{conf = {flex, Port}}};
+
+code_change({down, _Vsn}, #state{conf = Conf} = State, downgrade_to_pre_3_13_1) ->
+ NewPorts = bump_flex_scanner(Conf),
+ {ok, State#state{conf = {flex, NewPorts}}};
+
+code_change(_Vsn, #state{conf = Conf} = State, upgrade_from_pre_3_13_1) ->
+ NewPorts = bump_flex_scanner(Conf),
+ {ok, State#state{conf = {flex, NewPorts}}};
code_change(_Vsn, State, _Extra) ->
{ok, State}.
-%% downgrade_flex_scanner({flex, Port}) when is_port(Port) ->
-%% Port;
-%% downgrade_flex_scanner({flex, [Port]}) when is_port(Port) ->
-%% Port;
-%% downgrade_flex_scanner({flex, Ports}) when is_list(Ports) ->
-%% megaco_flex_scanner:stop(Ports),
-%% case megaco_flex_scanner:start() of
-%% {ok, Port} ->
-%% Port;
-%% Error ->
-%% exit(Error)
-%% end;
-%% downgrade_flex_scanner(BadConfig) ->
-%% exit({invalid_config, BadConfig}).
+bump_flex_scanner({flex, Ports}) ->
+ megaco_flex_scanner:stop(Ports),
+ case start_flex_scanners() of
+ {ok, NewPorts} ->
+ NewPorts;
+ Error ->
+ exit(Error)
+ end;
+bump_flex_scanner(BadConfig) ->
+ exit({invalid_config, BadConfig}).
%%%----------------------------------------------------------------------
diff --git a/lib/megaco/test/Makefile b/lib/megaco/test/Makefile
index a6f50f87c4..682b83d368 100644
--- a/lib/megaco/test/Makefile
+++ b/lib/megaco/test/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1999-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1999-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
include $(ERL_TOP)/make/target.mk
@@ -52,13 +52,15 @@ endif
include modules.mk
+EBIN = .
+
HRL_FILES = megaco_test_lib.hrl
ERL_FILES = $(MODULES:%=%.erl)
-TARGET_FILES = $(MODULES:%=%.$(EMULATOR))
+SOURCE = $(HRL_FILES) $(ERL_FILES)
-COVER_SPEC_FILE = megaco.cover
+TARGET_FILES = $(MODULES:%=%.$(EMULATOR))
APP_CASES = app appup
@@ -71,6 +73,18 @@ OP_CASES = mess mib mreq pending trans actions load
ALL_CASES = $(APP_CASES) $(CODEC_CASES) $(MISC_CASES) $(OP_CASES)
+EMAKEFILE = Emakefile
+MAKE_EMAKE = $(wildcard $(ERL_TOP)/make/make_emakefile)
+
+ifeq ($(MAKE_EMAKE),)
+BUILDTARGET = $(TARGET_FILES)
+RELTEST_FILES = $(TEST_SPEC_FILE) $(COVER_SPEC_FILE) $(SOURCE)
+else
+BUILDTARGET = emakebuild
+RELTEST_FILES = $(EMAKEFILE) $(TEST_SPEC_FILE) $(COVER_SPEC_FILE) $(SOURCE)
+endif
+
+
# ----------------------------------------------------
# FLAGS
# ----------------------------------------------------
@@ -128,19 +142,153 @@ endif
# Targets
# ----------------------------------------------------
-tests debug opt: $(TARGET_FILES)
+tests debug opt: $(BUILDTARGET)
+
+targets: $(TARGET_FILES)
+
+.PHONY: emakebuild
+
+emakebuild: $(EMAKEFILE)
+
+$(EMAKEFILE):
+ $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) '*_SUITE_make' | grep -v Warning > $(EMAKEFILE)
+ $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) | grep -v Warning >> $(EMAKEFILE)
clean:
+ rm -f $(EMAKEFILE)
rm -f $(TARGET_FILES)
rm -f errs core *~
docs:
info:
+ @echo "MAKE_EMAKE = $(MAKE_EMAKE)"
+ @echo "EMAKEFILE = $(EMAKEFILE)"
+ @echo "BUILDTARGET = $(BUILDTARGET)"
+ @echo ""
@echo "ERL_COMPILE_FLAGS = $(ERL_COMPILE_FLAGS)"
@echo "ERL = $(ERL)"
@echo "MERL = $(MERL)"
@echo ""
+ @echo "ARGS = $(ARGS)"
+ @echo ""
+ @echo "HRL_FILES = $(HRL_FILES)"
+ @echo "ERL_FILES = $(ERL_FILES)"
+ @echo "TARGET_FILES = $(TARGET_FILES)"
+ @echo ""
+
+help:
+ @echo ""
+ @echo "This Makefile controls the test of the $(APPLICATION) application. "
+ @echo ""
+ @echo "There are two separate ways to perform the test of $(APPLICATION)."
+ @echo ""
+ @echo " a) Run the official OTP test-server (which we do not describe here)"
+ @echo ""
+ @echo " b) Run the test-server provided with this application. "
+ @echo " There are a number of targets to run the entire or parts"
+ @echo " of this applications ($(APPLICATION)) test-suite"
+ @echo ""
+ @echo "Targets:"
+ @echo ""
+ @echo " help"
+ @echo " Print this info"
+ @echo ""
+ @echo " info"
+ @echo " Prints various environment variables. "
+ @echo " May be useful when debugging the Makefile. "
+ @echo ""
+ @echo " tests | debug | opt "
+ @echo " Compile all test-code. "
+ @echo ""
+ @echo " clean "
+ @echo " Remove all targets. "
+ @echo ""
+ @echo " test"
+ @echo " Run the entire $(APPLICATION) test-suite. "
+ @echo ""
+ @echo " app"
+ @echo " Run the $(APPLICATION) application sub-test-suite. "
+ @echo ""
+ @echo " appup"
+ @echo " Run the $(APPLICATION) application upgrade (appup) sub-test-suite. "
+ @echo ""
+ @echo " conf"
+ @echo " Run the $(APPLICATION) config sub-test-suite. "
+ @echo " Checks various aspects of the megaco configuration. "
+ @echo ""
+ @echo " codec"
+ @echo " Run the $(APPLICATION) codec sub-test-suite(s). "
+ @echo ""
+ @echo " flex"
+ @echo " Run the $(APPLICATION) flex-scanner sub-test-suite. "
+ @echo " This sub-test-suite does not test the function of the scanner itself"
+ @echo " (that is done by the codec sub-test-suite(s)), instead, this"
+ @echo " sub-test-suite tests the *handling* of the flex-scanner linked-in driver."
+ @echo ""
+ @echo " dm"
+ @echo " Run the $(APPLICATION) digit-map sub-test-suite. "
+ @echo ""
+ @echo " tid"
+ @echo " Run the $(APPLICATION) binary term-id sub-test-suite. "
+ @echo ""
+ @echo " sdp"
+ @echo " Run the $(APPLICATION) SDP sub-test-suite. "
+ @echo ""
+ @echo " action"
+ @echo " Run the $(APPLICATION) actions sub-test-suite. "
+ @echo " Actions are building blocks of a $(APPLICATION) message. "
+ @echo " This sub-test-suite attempts to perform tests related to this, "
+ @echo " using all the supported codecs. "
+ @echo ""
+ @echo " mess"
+ @echo " Run the $(APPLICATION) message sub-test-suite"
+ @echo " This is basic message processing test-cases"
+ @echo ""
+ @echo " trans"
+ @echo " Run the $(APPLICATION) transaction sender sub-test-suite"
+ @echo " This is basic message processing for a megaco application "
+ @echo " configured to be using the transaction sender. "
+ @echo ""
+ @echo " mib"
+ @echo " Run the $(APPLICATION) $(APPLICATION)-mib sub-test-suite"
+ @echo " Tests related to the basic support for the $(APPLICATION) mib"
+ @echo " primarily counters"
+ @echo ""
+ @echo " mreq"
+ @echo " Run the $(APPLICATION) mreq sub-test-suite"
+ @echo " This is yet another sub-test-suite with message processing "
+ @echo " test-cases. "
+ @echo ""
+ @echo " pending"
+ @echo " Run the $(APPLICATION) pending-limit sub-test-suite"
+ @echo ""
+ @echo " udp"
+ @echo " Run the $(APPLICATION) UDP transport component sub-test-suite"
+ @echo ""
+ @echo " tcp"
+ @echo " Run the $(APPLICATION) TCP transport component sub-test-suite"
+ @echo ""
+ @echo " load"
+ @echo " Run the $(APPLICATION) load sub-test-suite"
+ @echo " This sub-test-suite performs load test test-cases using "
+ @echo " \"high\" message traffic. "
+ @echo ""
+ @echo " segment"
+ @echo " Run the $(APPLICATION) message segmentation sub-test-suite"
+ @echo " If using the UDP transport protocol, it is possible to send "
+ @echo " and receive segmented megaco replies (in version 3 of the protocol) "
+ @echo " This sub-test-suite tests this feature. "
+ @echo ""
+ @echo " timer"
+ @echo " Run the $(APPLICATION) timer sub-test-suite"
+ @echo " Basic test-suite for the megaco-timers"
+ @echo ""
+ @echo " ex"
+ @echo " Run the $(APPLICATION) example sub-test-suite"
+ @echo " The $(APPLICATION) application contains one example,"
+ @echo " this is a sub-test-suite based on the code,"
+ @echo ""
# ----------------------------------------------------
@@ -195,8 +343,6 @@ all: make
make: targets
-targets: $(TARGET_FILES)
-
test: make
$(MERL) $(ARGS) -sname megaco_test $(ERL_PATH) \
-s megaco_test_lib t $(SUITE) \
@@ -603,9 +749,10 @@ release_docs_spec:
release_tests_spec: tests
$(INSTALL_DIR) $(RELSYSDIR)
- $(INSTALL_DATA) $(TEST_SPEC_FILE) $(COVER_SPEC_FILE) \
- $(HRL_FILES) $(ERL_FILES) \
- $(RELSYSDIR)
- $(INSTALL_DATA) $(TARGET_FILES) $(RELSYSDIR)
+ $(INSTALL_DATA) $(RELTEST_FILES) $(RELSYSDIR)
+# $(INSTALL_DATA) $(TEST_SPEC_FILE) $(COVER_SPEC_FILE) \
+# $(HRL_FILES) $(ERL_FILES) \
+# $(RELSYSDIR)
+#
chmod -f -R u+w $(RELSYSDIR)
diff --git a/lib/megaco/test/modules.mk b/lib/megaco/test/modules.mk
index 0186a84c26..049d8babe2 100644
--- a/lib/megaco/test/modules.mk
+++ b/lib/megaco/test/modules.mk
@@ -1,24 +1,26 @@
#-*-makefile-*- ; force emacs to enter makefile-mode
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2001-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2001-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
TEST_SPEC_FILE = megaco.spec
+COVER_SPEC_FILE = megaco.cover
+
BEHAVIOUR_MODULES = \
megaco_test_generator
diff --git a/lib/megaco/vsn.mk b/lib/megaco/vsn.mk
index 1c637fe8aa..19eca6d309 100644
--- a/lib/megaco/vsn.mk
+++ b/lib/megaco/vsn.mk
@@ -1,27 +1,30 @@
#-*-makefile-*- ; force emacs to enter makefile-mode
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2001-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2001-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
-MEGACO_VSN = 3.13.0.1
+APPLICATION = megaco
+MEGACO_VSN = 3.14
PRE_VSN =
-APP_VSN = "megaco-$(MEGACO_VSN)$(PRE_VSN)"
+APP_VSN = "$(APPLICATION)-$(MEGACO_VSN)$(PRE_VSN)"
-TICKETS = OTP-8205 OTP-8239 OTP-8249
+TICKETS = OTP-8317 OTP-8323 OTP-8328 OTP-8362 OTP-8403
+
+TICKETS_3_13 = OTP-8205 OTP-8239 OTP-8249
TICKETS_3_12 = OTP-8183 OTP-8212
diff --git a/lib/mnesia/doc/src/mnesia.xml b/lib/mnesia/doc/src/mnesia.xml
index 3484cd104a..d76471d922 100644
--- a/lib/mnesia/doc/src/mnesia.xml
+++ b/lib/mnesia/doc/src/mnesia.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>1996</year><year>2009</year>
+ <year>1996</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>mnesia</title>
@@ -360,6 +360,9 @@ If a new item is inserted with the same key as
</p>
<list type="bulleted">
<item>
+ <p>mnesia:lock/2 (read_lock_table/1, write_lock_table/1)</p>
+ </item>
+ <item>
<p>mnesia:write/3 (write/1, s_write/1)</p>
</item>
<item>
@@ -396,9 +399,6 @@ If a new item is inserted with the same key as
<p>mnesia:index_read/3</p>
</item>
<item>
- <p>mnesia:lock/2 (read_lock_table/1, write_lock_table/1)</p>
- </item>
- <item>
<p>mnesia:table_info/2</p>
</item>
</list>
@@ -3045,6 +3045,17 @@ raise(Name, Amount) ->
</p>
</item>
<item>
+ <p><c>-mnesia send_compressed Level</c> specifies the level of
+ compression to be used when copying a table from the local node to
+ another one. The default level is 0.
+ </p>
+ <p><c>Level</c> must be an integer in the interval [0, 9], with 0
+ representing no compression and 9 representing maximum compression.
+ Before setting it to a non-zero value, make sure the remote nodes
+ understand this configuration.
+ </p>
+ </item>
+ <item>
<p><c>-mnesia schema_location Loc</c> controls where
Mnesia will look for its schema. The parameter
<c>Loc</c> may be one of the following atoms: </p>
diff --git a/lib/mnesia/src/mnesia.erl b/lib/mnesia/src/mnesia.erl
index 9a630f18eb..fb29007780 100644
--- a/lib/mnesia/src/mnesia.erl
+++ b/lib/mnesia/src/mnesia.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -2200,6 +2200,7 @@ system_info2(transaction_log_writes) -> mnesia_dumper:get_log_writes();
system_info2(core_dir) -> mnesia_monitor:get_env(core_dir);
system_info2(no_table_loaders) -> mnesia_monitor:get_env(no_table_loaders);
system_info2(dc_dump_limit) -> mnesia_monitor:get_env(dc_dump_limit);
+system_info2(send_compressed) -> mnesia_monitor:get_env(send_compressed);
system_info2(Item) -> exit({badarg, Item}).
@@ -2244,6 +2245,7 @@ system_info_items(yes) ->
core_dir,
no_table_loaders,
dc_dump_limit,
+ send_compressed,
version
];
system_info_items(no) ->
diff --git a/lib/mnesia/src/mnesia_loader.erl b/lib/mnesia/src/mnesia_loader.erl
index 77c317abc5..3de329503e 100644
--- a/lib/mnesia/src/mnesia_loader.erl
+++ b/lib/mnesia/src/mnesia_loader.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1998-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1998-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -438,6 +438,9 @@ make_table_fun(Pid, TabRec) ->
get_data(Pid, TabRec) ->
receive
+ {Pid, {more_z, CompressedRecs}} when is_binary(CompressedRecs) ->
+ Pid ! {TabRec, more},
+ {zlib_uncompress(CompressedRecs), make_table_fun(Pid,TabRec)};
{Pid, {more, Recs}} ->
Pid ! {TabRec, more},
{Recs, make_table_fun(Pid,TabRec)};
@@ -769,6 +772,27 @@ dets_bchunk(Tab, Chunk) -> %% Arrg
Else -> Else
end.
+zlib_compress(Data, Level) ->
+ BinData = term_to_binary(Data),
+ Z = zlib:open(),
+ zlib:deflateInit(Z, Level),
+ Bs = zlib:deflate(Z, BinData, finish),
+ zlib:deflateEnd(Z),
+ zlib:close(Z),
+ list_to_binary(Bs).
+
+zlib_uncompress(Data) when is_binary(Data) ->
+ binary_to_term(zlib:uncompress(Data)).
+
+compression_level() ->
+ NoCompression = 0,
+ case ?catch_val(send_compressed) of
+ {'EXIT', _} ->
+ mnesia_lib:set(send_compressed, NoCompression),
+ NoCompression;
+ Val -> Val
+ end.
+
send_packet(N, Pid, _Chunk, '$end_of_table', OldNode) ->
case OldNode of
true -> ignore; %% Old nodes can't handle the new no_more
@@ -779,8 +803,15 @@ send_packet(N, Pid, Chunk, {[], Cont}, OldNode) ->
send_packet(N, Pid, Chunk, Chunk(Cont), OldNode);
send_packet(N, Pid, Chunk, {Recs, Cont}, OldNode) when N < ?MAX_NOPACKETS ->
case OldNode of
- true -> Pid ! {self(), {more, [Recs]}}; %% Old need's wrapping list
- false -> Pid ! {self(), {more, Recs}}
+ true ->
+ Pid ! {self(), {more, [Recs]}}; %% Old need's wrapping list
+ false ->
+ case compression_level() of
+ 0 ->
+ Pid ! {self(), {more, Recs}};
+ Level ->
+ Pid ! {self(), {more_z, zlib_compress(Recs, Level)}}
+ end
end,
send_packet(N+1, Pid, Chunk, Chunk(Cont), OldNode);
send_packet(_N, _Pid, _Chunk, DataState, _OldNode) ->
diff --git a/lib/mnesia/src/mnesia_monitor.erl b/lib/mnesia/src/mnesia_monitor.erl
index 05ae943e3b..5df5df4969 100644
--- a/lib/mnesia/src/mnesia_monitor.erl
+++ b/lib/mnesia/src/mnesia_monitor.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -497,7 +497,7 @@ handle_cast({mnesia_down, mnesia_locker, Node}, State) ->
process_q(State3);
false ->
%% No pending remote monitors
- {noreply, State2}
+ process_q(State2)
end;
handle_cast({disconnect, Node}, State) ->
@@ -674,7 +674,8 @@ env() ->
core_dir,
pid_sort_order,
no_table_loaders,
- dc_dump_limit
+ dc_dump_limit,
+ send_compressed
].
default_env(access_module) ->
@@ -717,7 +718,9 @@ default_env(pid_sort_order) ->
default_env(no_table_loaders) ->
2;
default_env(dc_dump_limit) ->
- 4.
+ 4;
+default_env(send_compressed) ->
+ 0.
check_type(Env, Val) ->
case catch do_check_type(Env, Val) of
@@ -763,7 +766,8 @@ do_check_type(pid_sort_order, standard) -> standard;
do_check_type(pid_sort_order, "standard") -> standard;
do_check_type(pid_sort_order, _) -> false;
do_check_type(no_table_loaders, N) when is_integer(N), N > 0 -> N;
-do_check_type(dc_dump_limit,N) when is_number(N), N > 0 -> N.
+do_check_type(dc_dump_limit,N) when is_number(N), N > 0 -> N;
+do_check_type(send_compressed, L) when is_integer(L), L >= 0, L =< 9 -> L.
bool(true) -> true;
bool(false) -> false.
diff --git a/lib/mnesia/src/mnesia_tm.erl b/lib/mnesia/src/mnesia_tm.erl
index 3f3a10a9c1..d42109c3da 100644
--- a/lib/mnesia/src/mnesia_tm.erl
+++ b/lib/mnesia/src/mnesia_tm.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -1389,6 +1389,7 @@ multi_commit(sync_sym_trans, Tid, CR, Store) ->
{Outcome, []} = rec_all(WaitFor, Tid, do_commit, []),
?eval_debug_fun({?MODULE, multi_commit_sym_sync},
[{tid, Tid}, {outcome, Outcome}]),
+ [?ets_insert(Store, {waiting_for_commit_ack, Node}) || Node <- WaitFor],
rpc:abcast(DiscNs -- [node()], ?MODULE, {Tid, Outcome}),
rpc:abcast(RamNs -- [node()], ?MODULE, {Tid, Outcome}),
case Outcome of
diff --git a/lib/odbc/aclocal.m4 b/lib/odbc/aclocal.m4
new file mode 120000
index 0000000000..151fd5ea5a
--- /dev/null
+++ b/lib/odbc/aclocal.m4
@@ -0,0 +1 @@
+../../erts/aclocal.m4 \ No newline at end of file
diff --git a/lib/odbc/c_src/Makefile.in b/lib/odbc/c_src/Makefile.in
index 6a9a174417..ed3eeb1d42 100644
--- a/lib/odbc/c_src/Makefile.in
+++ b/lib/odbc/c_src/Makefile.in
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1999-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1999-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -78,11 +78,11 @@ ODBC_INCLUDE = @ODBC_INCLUDE@
# FLAGS
# ----------------------------------------------------
CC = @CC@
-CFLAGS = $(TYPEFLAGS) @CFLAGS@
+CFLAGS = $(TYPEFLAGS) @CFLAGS@ @THR_DEFS@ @DEFS@
EI_LDFLAGS = -L$(EI_ROOT)/obj$(TYPEMARKER)/$(TARGET)
-LD = @DED_LD@
+LD = @LD@
LDFLAGS = $(ODBC_LIB) $(EI_LDFLAGS)
-LIBS = @LIBS@ $(EI_LIB)
+LIBS = @LIBS@ @THR_LIBS@ $(EI_LIB)
INCLUDES = -I. $(ODBC_INCLUDE) $(EI_INCLUDE)
TARGET_FLAGS = @TARGET_FLAGS@
@@ -106,17 +106,17 @@ docs:
# ----------------------------------------------------
ifdef UNIX_TARGET
-$(UNIX_TARGET): $(BIN_DIR) $(OBJ_DIR)/odbcserver.o
+$(UNIX_TARGET): $(OBJ_DIR)/odbcserver.o
$(CC) $(CFLAGS) -o $@ $(OBJ_DIR)/odbcserver.o $(LDFLAGS) $(LIBS)
endif
ifdef WIN32_TARGET
-$(WIN32_TARGET): $(BIN_DIR) $(OBJ_DIR)/odbcserver.o
+$(WIN32_TARGET): $(OBJ_DIR)/odbcserver.o
$(LD) $(LDFLAGS) -o $@ $(OBJ_DIR)/odbcserver.o $(ENTRY_OBJ) \
$(LIBS) $(ENTRY_LDFLAGS)
endif
-$(OBJ_DIR)/odbcserver.o: $(OBJ_DIR) odbcserver.c
+$(OBJ_DIR)/odbcserver.o: odbcserver.c
$(CC) $(CFLAGS) $(INCLUDES) $(TARGET_FLAGS) -o $@ -c odbcserver.c
create_dirs:
diff --git a/lib/odbc/c_src/odbcserver.c b/lib/odbc/c_src/odbcserver.c
index 63177121bc..6a920e6c76 100644
--- a/lib/odbc/c_src/odbcserver.c
+++ b/lib/odbc/c_src/odbcserver.c
@@ -1,19 +1,19 @@
/*
* %CopyrightBegin%
- *
- * Copyright Ericsson AB 1999-2009. All Rights Reserved.
- *
+ *
+ * Copyright Ericsson AB 1999-2010. All Rights Reserved.
+ *
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
* compliance with the License. You should have received a copy of the
* Erlang Public License along with this software. If not, it can be
* retrieved online at http://www.erlang.org/.
- *
+ *
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
- *
+ *
* %CopyrightEnd%
*
@@ -749,11 +749,12 @@ static db_result_msg db_param_query(byte *buffer, db_state *state)
byte *sql;
db_result_msg msg;
int i, num_param_values, ver = 0,
- erl_type = 0, index = 0, size = 0, cols = 0;
+ erl_type = 0, index = 0, size = 0, cols = 0;
long long_num_param_values;
param_status param_status;
diagnos diagnos;
- param_array *params;
+ param_array *params;
+ SQLRETURN result;
if (associated_result_set(state)) {
clean_state(state);
@@ -784,10 +785,16 @@ static db_result_msg db_param_query(byte *buffer, db_state *state)
num_param_values, state);
if(params != NULL) {
- if(!sql_success(SQLExecDirect(statement_handle(state),
- sql, SQL_NTS))) {
- diagnos = get_diagnos(SQL_HANDLE_STMT, statement_handle(state));
- msg = encode_error_message(diagnos.error_msg);
+
+ result = SQLExecDirect(statement_handle(state), sql, SQL_NTS);
+ if (!sql_success(result) || result == SQL_NO_DATA) {
+ diagnos = get_diagnos(SQL_HANDLE_STMT, statement_handle(state));
+ }
+ /* SQL_NO_DATA and SQLSTATE 00000 indicate success for
+ updates/deletes that affect no rows */
+ if(!sql_success(result) &&
+ !(result == SQL_NO_DATA && !strcmp((char *)diagnos.sqlState, INFO))) {
+ msg = encode_error_message(diagnos.error_msg);
} else {
for (i = 0; i < param_status.params_processed; i++) {
switch (param_status.param_status_array[i]) {
@@ -2452,6 +2459,7 @@ static diagnos get_diagnos(SQLSMALLINT handleType, SQLHANDLE handle)
int acc_errmsg_size;
byte *current_errmsg_pos;
SQLCHAR current_sql_state[SQL_STATE_SIZE];
+ SQLRETURN result;
diagnos.error_msg[0] = 0;
@@ -2464,10 +2472,10 @@ static diagnos get_diagnos(SQLSMALLINT handleType, SQLHANDLE handle)
/* Foreach diagnostic record in the current set of diagnostic records
the error message is obtained */
for(record_nr = 1; ;record_nr++) {
- if(SQLGetDiagRec(handleType, handle, record_nr, current_sql_state,
+ result = SQLGetDiagRec(handleType, handle, record_nr, current_sql_state,
&nativeError, current_errmsg_pos,
- (SQLSMALLINT)errmsg_buffer_size, &errmsg_size)
- != SQL_SUCCESS) {
+ (SQLSMALLINT)errmsg_buffer_size, &errmsg_size);
+ if(result != SQL_SUCCESS && result != SQL_NO_DATA) {
break;
diff --git a/lib/odbc/configure.in b/lib/odbc/configure.in
index 77b576ee88..24e286c290 100644
--- a/lib/odbc/configure.in
+++ b/lib/odbc/configure.in
@@ -25,6 +25,15 @@ else
host_os=win32
fi
+if test "$with_odbc" = "no"; then
+
+ rm -f "$ERL_TOP/lib/odbc/SKIP"
+ echo "odbc disabled by user." > "$ERL_TOP/lib/odbc/SKIP"
+
+else dnl "$with_odbc" != "no"
+
+ERL_XCOMP_SYSROOT_INIT
+
dnl Checks for programs.
AC_PROG_CC
@@ -48,8 +57,11 @@ fi
AC_SUBST(MIXED_CYGWIN_VC)
AC_PROG_MAKE_SET
-AC_CHECK_PROGS(DED_LD, [ld.sh ld], '$(CC)')
-AC_SUBST(DED_LD)
+
+AC_CHECK_PROG(LD, ld.sh)
+AC_CHECK_TOOL(LD, ld, '$(CC)')
+
+AC_SUBST(LD)
# Sockets
#--------------------------------------------------------------------
@@ -83,50 +95,6 @@ AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main, [LIBS="$LIBS -lnsl"]))
dnl Checks for header files.
AC_HEADER_STDC
-case $have_pthread_lib-$host_os in
- yes-linux*)
- dnl NPTL test stolen from $ERL_TOP/erts/aclocal.m4
- AC_MSG_CHECKING(for Native POSIX Thread Library)
- case `getconf GNU_LIBPTHREAD_VERSION 2>/dev/null` in
- nptl*) nptl=yes;;
- NPTL*) nptl=yes;;
- *) nptl=no;;
- esac
- AC_MSG_RESULT($nptl)
- if test $nptl = yes; then
- need_nptl_incldir=no
- AC_CHECK_HEADER(nptl/pthread.h, need_nptl_incldir=yes)
- if test $need_nptl_incldir = yes; then
- # Ahh...
- nptl_path="$C_INCLUDE_PATH:$CPATH:/usr/local/include:/usr/include"
- nptl_ws_path=
- save_ifs="$IFS"; IFS=":"
- for dir in $nptl_path; do
- if test "x$dir" != "x"; then
- nptl_ws_path="$nptl_ws_path $dir"
- fi
- done
- IFS=$save_ifs
- nptl_incldir=
- for dir in $nptl_ws_path; do
- AC_CHECK_HEADER($dir/nptl/pthread.h,
- nptl_incldir=$dir/nptl)
- if test "x$nptl_incldir" != "x"; then
- CFLAGS="$CFLAGS -isystem $nptl_incldir"
- dnl CPPFLAGS is for configure internal use
- CPPFLAGS="$CPPFLAGS -isystem $nptl_incldir"
- break
- fi
- done
- if test "x$nptl_incldir" = "x"; then
- AC_MSG_ERROR(Failed to locate nptl system include directory)
- fi
- fi
- fi
- ;;
- *)
- ;;
-esac
AC_CHECK_HEADERS([fcntl.h netdb.h stdlib.h string.h sys/socket.h])
dnl Checks for typedefs, structures, and compiler characteristics.
@@ -137,20 +105,18 @@ dnl Checks for library functions.
AC_CHECK_FUNCS([memset socket])
# ODBC
-/bin/rm -f $ERL_TOP/lib/odbc/SKIP
+/bin/rm -f "$ERL_TOP/lib/odbc/SKIP"
-have_pthread_lib=no
-have_odbc_lib=no
-
+LM_CHECK_THR_LIB
+AC_SUBST(THR_DEFS)
+AC_SUBST(THR_LIBS)
+
+odbc_lib_link_success=no
AC_SUBST(TARGET_FLAGS)
case $host_os in
darwin*)
TARGET_FLAGS="-DUNIX"
- AC_CHECK_LIB(pthread, pthread_create,
- [AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have the pthread library (-lpthread).])
- LIBS="$LIBS -lpthread"
- have_pthread_lib=yes])
- if test ! -d "$with_odbc"; then
+ if test ! -d "$with_odbc" || test "$with_odbc" = "yes" ; then
ODBC_LIB= -L"/usr/lib"
ODBC_INCLUDE="-I/usr/lib/include"
else
@@ -158,7 +124,7 @@ AC_SUBST(TARGET_FLAGS)
ODBC_INCLUDE="-I$with_odbc/include"
fi
- AC_CHECK_LIB(iodbc, SQLAllocHandle,[ODBC_LIB="$ODBC_LIB -liodbc" odbc_lib_link_sucess=yes])
+ AC_CHECK_LIB(iodbc, SQLAllocHandle,[ODBC_LIB="$ODBC_LIB -liodbc"; odbc_lib_link_success=yes])
;;
win32|cygwin)
TARGET_FLAGS="-DWIN32"
@@ -170,48 +136,64 @@ AC_SUBST(TARGET_FLAGS)
ODBC_LIB=-L"$with_odbc/lib"
ODBC_INCLUDE="-I$with_odbc/include"
fi
- AC_CHECK_LIB(odbc32, main, [ODBC_LIB="$ODBC_LIB -lodbc32" odbc_lib_link_sucess=yes])
+ AC_CHECK_LIB(odbc32, main, [ODBC_LIB="$ODBC_LIB -lodbc32"; odbc_lib_link_success=yes])
;;
*)
- TARGET_FLAGS="-DUNIX"
- AC_CHECK_LIB(pthread, pthread_create,
- [AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have the pthread library (-lpthread).])
- LIBS="$LIBS -lpthread"
- have_pthread_lib=yes])
- if test ! -d "$with_odbc"; then
- AC_MSG_CHECKING([for odbc in standard locations])
- for dir in /usr/local/odbc /usr/local /usr/odbc \
- /usr /opt/local/pgm/odbc /usr/local/pgm/odbc
- do
- if test -f "$dir/include/sql.h"; then
- is_odbc_std_location=yes
- ODBC_LIB=-L"$dir/lib"
- ODBC_INCLUDE="-I$dir/include"
- break
- fi
- done
- if test "x$is_odbc_std_location" != "xyes"; then
- AC_MSG_RESULT(no)
- AC_MSG_WARN([No odbc library found skipping odbc])
- echo "No odbc library found" > $ERL_TOP/lib/odbc/SKIP
- else
- AC_MSG_RESULT($ODBC_LIB)
- AC_CHECK_LIB(odbc, SQLAllocHandle,[ODBC_LIB="$ODBC_LIB -lodbc" odbc_lib_link_sucess=yes])
- fi
- else
- ODBC_LIB=-L"$with_odbc/lib"
- ODBC_INCLUDE="-I$with_odbc/include"
- AC_CHECK_LIB(odbc, SQLAllocHandle,[ODBC_LIB="$ODBC_LIB -lodbc" odbc_lib_link_sucess=yes])
- fi
+ TARGET_FLAGS="-DUNIX"
+ case "$erl_xcomp_without_sysroot-$with_odbc" in
+ yes-yes | yes- )
+ msg="Dont know where to search for odbc (setting erl_xcomp_sysroot will help)"
+ AC_MSG_WARN([$msg])
+ echo "$msg" > "$ERL_TOP/lib/odbc/SKIP"
+ odbc_lib_link_success=wont_try
+ ;;
+ no- )
+ AC_CHECK_SIZEOF(void *)
+ AC_MSG_CHECKING([for odbc in standard locations])
+ for rdir in /usr/local/odbc /usr/local /usr/odbc \
+ /usr /opt/local/pgm/odbc /usr/local/pgm/odbc; do
+ test -f "$erl_xcomp_isysroot$rdir/include/sql.h" || continue
+ is_odbc_std_location=yes
+ libdir="$erl_xcomp_sysroot$rdir/lib"
+ if test "$ac_cv_sizeof_void_p" = "8"; then
+ dnl "/." in test is important (dir symlinks)
+ if test -d "${libdir}64/."; then
+ libdir="${libdir}64"
+ elif test -d "${libdir}/64/."; then
+ libdir="${libdir}/64"
+ fi
+ fi
+ ODBC_LIB="-L$libdir"
+ ODBC_INCLUDE="-I$erl_xcomp_isysroot$rdir/include"
+ break
+ done
+ if test "x$is_odbc_std_location" != "xyes"; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([No odbc library found skipping odbc])
+ echo "No odbc library found" > "$ERL_TOP/lib/odbc/SKIP"
+ else
+ AC_MSG_RESULT($ODBC_LIB)
+ AC_CHECK_LIB(odbc, SQLAllocHandle,[ODBC_LIB="$ODBC_LIB -lodbc"; odbc_lib_link_success=yes])
+ fi
+ ;;
+
+ no-*)
+ ODBC_LIB=-L"$with_odbc/lib"
+ ODBC_INCLUDE="-I$with_odbc/include"
+ AC_CHECK_LIB(odbc, SQLAllocHandle,[ODBC_LIB="$ODBC_LIB -lodbc"; odbc_lib_link_success=yes])
+ ;;
+ esac
;;
esac
-if test "x$odbc_lib_link_sucess" != "xyes"; then
+if test $odbc_lib_link_success = no; then
AC_MSG_WARN(["ODBC library - link check failed"])
echo "ODBC library - link check failed" > $ERL_TOP/lib/odbc/SKIP
fi
-
+
AC_SUBST(ODBC_LIB)
AC_SUBST(ODBC_INCLUDE)
+fi dnl "$with_odbc" != "no"
+
AC_OUTPUT(c_src/$host/Makefile:c_src/Makefile.in)
diff --git a/lib/orber/doc/src/CosNaming.xml b/lib/orber/doc/src/CosNaming.xml
index db087aedb1..e8c639b59a 100644
--- a/lib/orber/doc/src/CosNaming.xml
+++ b/lib/orber/doc/src/CosNaming.xml
@@ -4,23 +4,21 @@
<erlref>
<header>
<copyright>
- <year>1997</year>
- <year>2007</year>
- <holder>Ericsson AB, All Rights Reserved</holder>
+ <year>1997</year><year>2010</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/.
+ 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.
+ 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>
@@ -66,8 +64,6 @@ typedef sequence <Binding> BindingList;
<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/Makefile b/lib/orber/doc/src/Makefile
index c82db49c9b..b8e26d5ba3 100644
--- a/lib/orber/doc/src/Makefile
+++ b/lib/orber/doc/src/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1997-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1997-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
#
@@ -74,7 +74,6 @@ XML_CHAPTER_FILES = \
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 \
diff --git a/lib/orber/doc/src/ch_example.xml b/lib/orber/doc/src/ch_example.xml
deleted file mode 100644
index f2ccfcc7e1..0000000000
--- a/lib/orber/doc/src/ch_example.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<?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">
- 1> 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/example_part.xml b/lib/orber/doc/src/example_part.xml
index 2f549df888..9adb8fa7cf 100644
--- a/lib/orber/doc/src/example_part.xml
+++ b/lib/orber/doc/src/example_part.xml
@@ -4,23 +4,21 @@
<part>
<header>
<copyright>
- <year>2002</year>
- <year>2007</year>
- <holder>Ericsson AB, All Rights Reserved</holder>
+ <year>2002</year><year>2010</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/.
+ 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.
+ 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>
@@ -32,7 +30,6 @@
<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/make.dep b/lib/orber/doc/src/make.dep
index f19cc18c90..cf5aad747d 100644
--- a/lib/orber/doc/src/make.dep
+++ b/lib/orber/doc/src/make.dep
@@ -12,7 +12,7 @@
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_debugging.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 \
@@ -26,15 +26,8 @@ book.dvi: CosNaming.tex CosNaming_BindingIterator.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
diff --git a/lib/orber/doc/src/notes.xml b/lib/orber/doc/src/notes.xml
index 816ec77d61..c7a2dab617 100644
--- a/lib/orber/doc/src/notes.xml
+++ b/lib/orber/doc/src/notes.xml
@@ -44,6 +44,12 @@
<p>
Own Id: OTP-8374 Aux Id:</p>
</item>
+ <item>
+ <p>
+ Removed the usage of the codeinclude tag in the documentation.</p>
+ <p>
+ Own Id: OTP-8409 Aux Id:</p>
+ </item>
</list>
</section>
diff --git a/lib/orber/doc/src/part.xml b/lib/orber/doc/src/part.xml
index c23456deef..a131db0bad 100644
--- a/lib/orber/doc/src/part.xml
+++ b/lib/orber/doc/src/part.xml
@@ -4,7 +4,7 @@
<part xmlns:xi="http://www.w3.org/2001/XInclude">
<header>
<copyright>
- <year>1997</year><year>2009</year>
+ <year>1997</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Orber User's Guide</title>
@@ -39,7 +39,6 @@
<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"/>
diff --git a/lib/orber/vsn.mk b/lib/orber/vsn.mk
index 8bfa13eb03..b56172d7cf 100644
--- a/lib/orber/vsn.mk
+++ b/lib/orber/vsn.mk
@@ -3,7 +3,8 @@ ORBER_VSN = 3.6.15
TICKETS = OTP-8353 \
OTP-8354 \
- OTP-8374
+ OTP-8374 \
+ OTP-8409
TICKETS_3.6.14 = OTP-8201
diff --git a/lib/parsetools/test/Makefile b/lib/parsetools/test/Makefile
new file mode 100644
index 0000000000..19354b87b2
--- /dev/null
+++ b/lib/parsetools/test/Makefile
@@ -0,0 +1,78 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 2005-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
+
+MODULES = \
+ leex_SUITE \
+ yecc_SUITE
+
+ERL_FILES= $(MODULES:%=%.erl)
+
+TARGET_FILES= $(MODULES:%=$(EBIN)/%.$(EMULATOR))
+INSTALL_PROGS= $(TARGET_FILES)
+
+EMAKEFILE=Emakefile
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/parsetools_test
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+ERL_MAKE_FLAGS +=
+ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/test_server/include
+
+EBIN = .
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+.PHONY: make_emakefile
+
+make_emakefile:
+ $(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES)\
+ > $(EMAKEFILE)
+
+tests debug opt: make_emakefile
+ erl $(ERL_MAKE_FLAGS) -make
+
+clean:
+ rm -f $(EMAKEFILE)
+ rm -f $(TARGET_FILES)
+ rm -f core
+
+docs:
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_spec: opt
+
+release_tests_spec: make_emakefile
+ $(INSTALL_DIR) $(RELSYSDIR)
+ $(INSTALL_DATA) parsetools.spec $(EMAKEFILE) $(ERL_FILES) $(RELSYSDIR)
+ chmod -f -R u+w $(RELSYSDIR)
+ # @tar cf - *_SUITE_data | (cd $(RELSYSDIR); tar xf -)
+
+release_docs_spec:
diff --git a/lib/parsetools/test/leex_SUITE.erl b/lib/parsetools/test/leex_SUITE.erl
new file mode 100644
index 0000000000..069f780b5e
--- /dev/null
+++ b/lib/parsetools/test/leex_SUITE.erl
@@ -0,0 +1,909 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 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%
+%%
+-module(leex_SUITE).
+
+%-define(debug, true).
+
+-include_lib("stdlib/include/erl_compile.hrl").
+-include_lib("kernel/include/file.hrl").
+
+-ifdef(debug).
+-define(line, put(line, ?LINE), ).
+-define(config(X,Y), foo).
+-define(datadir, "leex_SUITE_data").
+-define(privdir, "leex_SUITE_priv").
+-define(t, test_server).
+-else.
+-include("test_server.hrl").
+-define(datadir, ?config(data_dir, Config)).
+-define(privdir, ?config(priv_dir, Config)).
+-endif.
+
+-export([all/1, init_per_testcase/2, fin_per_testcase/2]).
+
+-export([checks/1,
+ file/1, compile/1, syntax/1,
+ examples/1,
+ pt/1, man/1, ex/1, ex2/1, not_yet/1]).
+
+% Default timetrap timeout (set in init_per_testcase).
+-define(default_timeout, ?t:minutes(1)).
+
+init_per_testcase(_Case, Config) ->
+ ?line Dog = ?t:timetrap(?default_timeout),
+ [{watchdog, Dog} | Config].
+
+fin_per_testcase(_Case, Config) ->
+ Dog = ?config(watchdog, Config),
+ test_server:timetrap_cancel(Dog),
+ ok.
+
+all(suite) -> [checks, examples].
+
+checks(suite) ->
+ [file, compile, syntax].
+
+file(doc) ->
+ "Bad files and options.";
+file(suite) -> [];
+file(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Ret = [return, {report, false}],
+ ?line {error,[{_,[{none,leex,{file_error,_}}]}],[]} =
+ leex:file("not_a_file", Ret),
+ ?line {error,[{_,[{none,leex,{file_error,_}}]}],[]} =
+ leex:file("not_a_file", [{return,true}]),
+ ?line {error,[{_,[{none,leex,{file_error,_}}]}],[]} =
+ leex:file("not_a_file", [{report,false},return_errors]),
+ ?line error = leex:file("not_a_file"),
+ ?line error = leex:file("not_a_file", [{return,false},report]),
+ ?line error = leex:file("not_a_file", [return_warnings,{report,false}]),
+
+ Filename = filename:join(Dir, "file.xrl"),
+ file:delete(Filename),
+
+ ?line {'EXIT', {badarg, _}} = (catch leex:file({foo})),
+ ?line {'EXIT', {badarg, _}} =
+ (catch leex:file(Filename, {parserfile,{foo}})),
+ ?line {'EXIT', {badarg, _}} =
+ (catch leex:file(Filename, {includefile,{foo}})),
+
+ ?line {'EXIT', {badarg, _}} = (catch leex:file(Filename, no_option)),
+ ?line {'EXIT', {badarg, _}} =
+ (catch leex:file(Filename, [return | report])),
+ ?line {'EXIT', {badarg, _}} =
+ (catch leex:file(Filename, {return,foo})),
+ ?line {'EXIT', {badarg, _}} =
+ (catch leex:file(Filename, includefile)),
+
+ Mini = <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+ : {token,{word,TokenLine,TokenChars}}.\n"
+ "Erlang code.\n">>,
+ ?line ok = file:write_file(Filename, Mini),
+ ?line {error,[{_,[{none,leex,{file_error,_}}]}],[]} =
+ leex:file(Filename, [{scannerfile,"//"} | Ret]),
+ ?line {error,[{_,[{none,leex,{file_error,_}}]}],[]} =
+ leex:file(Filename, [{includefile,"//"} | Ret]),
+ ?line {error,[{_,[{none,leex,{file_error,_}}]}],[]} =
+ leex:file(Filename, [{includefile,"/ /"} | Ret]),
+
+ LeexPre = filename:join(Dir, "leexinc.hrl"),
+ ?line ok = file:write_file(LeexPre, <<"syntax error.\n">>),
+ PreErrors = run_test(Config, Mini, LeexPre),
+ ?line {errors,
+ [{1,_,["syntax error before: ","error"]},
+ {3,_,undefined_module}],
+ []} =
+ extract(LeexPre, PreErrors),
+ file:delete(LeexPre),
+
+ Ret2 = [return, report_errors, report_warnings, verbose],
+ Scannerfile = filename:join(Dir, "file.erl"),
+ ?line ok = file:write_file(Scannerfile, <<"nothing">>),
+ ?line unwritable(Scannerfile),
+ ?line {error,[{_,[{none,leex,{file_error,_}}]}],[]} =
+ leex:file(Filename, Ret2),
+ ?line writable(Scannerfile),
+ file:delete(Scannerfile),
+
+ Dotfile = filename:join(Dir, "file.dot"),
+ ?line ok = file:write_file(Dotfile, <<"nothing">>),
+ ?line unwritable(Dotfile),
+ ?line {error,[{_,[{none,leex,{file_error,_}}]}],[]} =
+ leex:file(Filename, [dfa_graph | Ret2]),
+ ?line writable(Dotfile),
+ file:delete(Dotfile),
+
+ file:delete(Filename),
+ ok.
+
+compile(doc) ->
+ "Check of compile/3.";
+compile(suite) -> [];
+compile(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Filename = filename:join(Dir, "file.xrl"),
+ Scannerfile = filename:join(Dir, "file.erl"),
+ Mini = <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+ : {token,{word,TokenLine,TokenChars}}.\n"
+ "Erlang code.\n">>,
+ ?line ok = file:write_file(Filename, Mini),
+ ?line error = leex:compile(Filename, "//", #options{}),
+ ?line ok = leex:compile(Filename, Scannerfile, #options{}),
+ file:delete(Scannerfile),
+ file:delete(Filename),
+ ok.
+
+syntax(doc) ->
+ "Syntax checks.";
+syntax(suite) -> [];
+syntax(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Filename = filename:join(Dir, "file.xrl"),
+ Ret = [return, {report, true}],
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "%% comment\n"
+ "Rules.\n"
+ "{L}+ : {token,{word,TokenLine,TokenChars}}.\n
+ ">>),
+ ?line {error,[{_,[{7,leex,missing_code}]}],[]} = leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+ : \n">>),
+ ?line {error,[{_,[{5,leex,missing_code}]}],[]} = leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "[] :">>),
+ ?line {error,[{_,[{4,leex,{regexp,_}}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+ : .\n"
+ "[] : ">>),
+ ?line {error,[{_,[{5,leex,{regexp,_}}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "[] : .\n">>),
+ ?line {error,[{_,[{4,leex,{regexp,_}}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+ ">>),
+ ?line {error,[{_,[{5,leex,bad_rule}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+ ; ">>),
+ ?line {error,[{_,[{4,leex,bad_rule}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "[] : '99\n">>),
+ ?line {error,[{_,[{4,erl_scan,_}]}],[]} = leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n">>),
+ ?line {error,[{_,[{3,leex,empty_rules}]}],[]} = leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "Erlang code.\n">>),
+ ?line {error,[{_,[{4,leex,empty_rules}]}],[]} = leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n">>),
+ ?line {error,[{_,[{2,leex,missing_rules}]}],[]} = leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Erlang code.\n">>),
+ ?line {error,[{_,[{3,leex,missing_rules}]}],[]} = leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"">>),
+ %% This is a weird line:
+ ?line {error,[{_,[{0,leex,missing_defs}]}],[]} = leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Rules.\n">>),
+ ?line {error,[{_,[{1,leex,missing_defs}]}],[]} = leex:file(Filename, Ret),
+
+ %% Check that correct line number is used in messages.
+ ErlFile = filename:join(Dir, "file.erl"),
+ Ret1 = [{scannerfile,ErlFile}|Ret],
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+ : {token,\n"
+ " {word,TokenLine,TokenChars,\n"
+ " DDDD}}.\n" % unbound
+ "Erlang code.\n"
+ "an error.\n">>), % syntax error
+ ?line {ok, _, []} = leex:file(Filename, Ret1),
+ ?line {error,
+ [{_,[{8,_,["syntax error before: ","error"]}]},
+ {_,[{6,_,{unbound_var,'DDDD'}}]}],
+ []} =
+ compile:file(ErlFile, [basic_validation, return]),
+
+ %% Ignored characters
+ ?line ok = file:write_file(Filename,
+ <<"Definitions. D = [0-9]\n"
+ "Rules. [a-z] : .\n"
+ "1 : skip_token.\n"
+ "Erlang code. f() -> a.\n">>),
+ ?line {ok,_,[{_,
+ [{1,leex,ignored_characters},
+ {2,leex,ignored_characters},
+ {4,leex,ignored_characters}]}]} =
+ leex:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+\\ : token.\n">>),
+ ?line {error,[{_,[{4,leex,{regexp,{unterminated,"\\"}}}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+\\x : token.\n">>),
+ ?line {error,[{_,[{4,leex,{regexp,{illegal_char,"\\x"}}}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+\\x{ : token.\n">>),
+ ?line {error,[{_,[{4,leex,{regexp,{unterminated,"\\x{"}}}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "[^ab : token.\n">>),
+ ?line {error,[{_,[{4,leex,{regexp,{unterminated,"["}}}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "(a : token.\n">>),
+ ?line {error,[{_,[{4,leex,{regexp,{unterminated,"("}}}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "[b-a] : token.\n">>),
+ ?line {error,[{_,[{4,leex,{regexp,{char_class,"b-a"}}}]}],[]} =
+ leex:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "\\x{333333333333333333333333} : token.\n">>),
+ ?line {error,[{_,[{4,leex,{regexp,
+ {illegal_char,
+ "\\x{333333333333333333333333}"}}}]}],[]} =
+ leex:file(Filename, Ret),
+ ok.
+
+examples(suite) ->
+ [pt,man,ex,ex2,not_yet].
+
+pt(doc) ->
+ "Pushing back characters.";
+pt(suite) -> [];
+pt(Config) when is_list(Config) ->
+ %% Needs more testing...
+ Ts = [{pt_1,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "L = [a-z]\n"
+
+ "Rules.\n"
+ "{L}+ : {token,{word,TokenLine,TokenChars}}.\n"
+ "abc{D}+ : {skip_token,\"sture\" ++ string:substr(TokenChars, 4)}.\n"
+ "{D}+ : {token,{integer,TokenLine,list_to_integer(TokenChars)}}.\n"
+ "\\s : .\n"
+ "\\r\\n : {end_token,{crlf,TokenLine}}.\n"
+
+ "Erlang code.\n"
+ "-export([t/0]).\n"
+ "t() ->
+ {ok,[{word,1,\"sture\"},{integer,1,123}],1} =
+ string(\"abc123\"), ok. ">>,
+ default,
+ ok}],
+
+ ?line run(Config, Ts),
+ ok.
+
+man(doc) ->
+ "Examples from the manpage.";
+man(suite) -> [];
+man(Config) when is_list(Config) ->
+ Ts = [{man_1,
+ <<"Definitions.\n"
+ "Rules.\n"
+ "[a-z][0-9a-zA-Z_]* :\n"
+ " {token,{atom,TokenLine,list_to_atom(TokenChars)}}.\n"
+ "[A-Z_][0-9a-zA-Z_]* :\n"
+ " {token,{var,TokenLine,list_to_atom(TokenChars)}}.\n"
+ "(\\+|-)?[0-9]+\\.[0-9]+((E|e)(\\+|-)?[0-9]+)? : \n"
+ " {token,{float,TokenLine,list_to_float(TokenChars)}}.\n"
+ "\\s : skip_token.\n"
+ "Erlang code.\n"
+ "-export([t/0]).\n"
+ "t() ->\n"
+ " {ok,[{float,1,3.14},{atom,1,atom},{var,1,'V314'}],1} =\n"
+ " string(\"3.14atom V314\"),\n"
+ " ok.\n">>,
+ default,
+ ok},
+
+ {man_2,
+ <<"Definitions.\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{D}+ :\n"
+ " {token,{integer,TokenLine,list_to_integer(TokenChars)}}.\n"
+ "{D}+\\.{D}+((E|e)(\\+|\\-)?{D}+)? :\n"
+ " {token,{float,TokenLine,list_to_float(TokenChars)}}.\n"
+ "\\s : skip_token.\n"
+ "Erlang code.\n"
+ "-export([t/0]).\n"
+ "t() ->\n"
+ " {ok,[{float,1,3.14},{integer,1,314}],1} = \n"
+ " string(\"3.14 314\"),\n"
+ " ok.\n">>,
+ default,
+ ok}],
+
+ ?line run(Config, Ts),
+ ok.
+
+ex(doc) ->
+ "Examples.";
+ex(suite) -> [];
+ex(Config) when is_list(Config) ->
+ Ts = [{ex_1,
+ <<"Definitions.\n"
+ "D = [0-543-705-982]\n"
+ "Rules.\n"
+ "{D}+ :\n"
+ " {token,{integer,TokenLine,list_to_integer(TokenChars)}}.\n"
+ "[^235]+ :\n"
+ " {token,{list_to_atom(TokenChars),TokenLine}}.\n"
+ "Erlang code.\n"
+ "-export([t/0]).\n"
+ "t() ->\n"
+ " {ok,[{integer,1,12},{' c\\na',1},{integer,2,34},{b789a,2}],2} =\n"
+ " string(\"12 c\\na34b789a\"),\n"
+ " ok.\n">>,
+ default,
+ ok},
+
+ {ex_2,
+ <<"Definitions.\n"
+ "L = [a-z]\n"
+ "D = [0-9]\n"
+ "Rules.\n"
+ "{L}+ : {token,chars}.\n"
+ "zyx{D}+ : {token,zyx}.\n"
+ "\\s : skip_token.\n"
+ "Erlang code.\n"
+ "-export([t/0]).\n"
+ "t() ->\n"
+ " {ok,[chars,zyx],1} = string(\"abcdef zyx123\"),\n"
+ " ok.\n">>,
+ default,
+ ok},
+
+ {ex_3,
+ <<"Definitions.\n"
+ "NL = [\\n]\n"
+ "Rules.\n"
+ "{NL}* : {token,newlines}.\n"
+ "Erlang code.\n"
+ "-export([t/0]).\n"
+ "t() ->\n"
+ " {ok,[],1} = string(\"\"), ok.\n">>, % string("a") would loop...
+ default,
+ ok},
+
+ {ex_4,
+ <<"Definitions.\n"
+ "SP1 = [\\n-\\s]\n"
+ "SP0 = [\\000-\\n]\n"
+ "Rules.\n"
+ "{SP0}+ : {token,{small,TokenChars}}.\n"
+ "{SP1}+ : {token,{big,TokenChars}}.\n"
+ "Erlang code.\n"
+ "-export([t/0]).\n"
+ "t() ->\n"
+ " string(\"\\x00\\n\\s\\n\\n\"),\n"
+ " ok.\n">>,
+ default,
+ ok},
+
+ {ex_5,
+ <<"Definitions.\n"
+ "L = [a-z]\n"
+ "W = [\\s\\b\\n\\r\\t\\e\\v\\d\\f]\n"
+ "Rules.\n"
+ "\\[{L}+(,{L}+)*\\] : {token,{list,TokenChars}}.\n"
+ "\"{L}+\" : {token,{string,TokenChars}}.\n"
+ "\\$. : {token,{char,TokenChars}}.\n"
+ "{W}+ : {token,{white,TokenChars}}.\n"
+ "ff\\f+ : {token,{form,TokenChars}}.\n"
+ "\\$\\^+\\\\+ : {token,{other,TokenChars}}.\n"
+ "Erlang code.\n"
+ "-export([t/0]).\n"
+ "t() ->\n"
+ " {ok,[{white,\"\\b\\f\"}],1} = string(\"\\b\\f\"),\n"
+ " {ok,[{form,\"ff\\f\"}],1} = string(\"ff\\f\"),\n"
+ " {ok,[{string,\"\\\"foo\\\"\"}],1} = string(\"\\\"foo\\\"\"),\n"
+ " {ok,[{char,\"$.\"}],1} = string(\"$\\.\"),\n"
+ " {ok,[{list,\"[a,b,c]\"}],1} = string(\"[a,b,c]\"),\n"
+ " {ok,[{other,\"$^\\\\\"}],1} = string(\"$^\\\\\"),\n"
+ " ok.\n">>,
+ default,
+ ok},
+
+ {ex_6,
+ <<"Definitions.\n"
+ "L = [a-z]\n"
+ "Rules.\n"
+ "L}+ : {token,{TokenChars,#r.f}}.\n"
+ "Erlang code.\n"
+ "-record(r, {f}).\n"
+ "-export([t/0]).\n"
+ "t() ->\n"
+ " string(\"abc\"),\n"
+ " ok.\n">>,
+ default,
+ ok},
+
+ {ex_7, %% Assumes regexp can handle \x
+ <<"Definitions.\n"
+ "H1 = \\x11\\x{ab}\n"
+ "H2 = [\\x{30}\\x{ac}]\n"
+ "Rules.\n"
+ "{H1}{H2}+ : {token,{hex,TokenChars}}.\n"
+ "Erlang code.\n"
+ "-export([t/0]).\n"
+ "t() ->\n"
+ " {ok,[{hex,[17,171,48,172]}],1} =\n"
+ " string(\"\\x{11}\\xab0\\xac\"),\n"
+ " ok.\n">>,
+ default,
+ ok}],
+
+ ?line run(Config, Ts),
+ ok.
+
+ex2(doc) ->
+ "More examples.";
+ex2(suite) -> [];
+ex2(Config) when is_list(Config) ->
+ Xrl =
+ <<"
+%%% File : erlang_scan.xrl
+%%% Author : Robert Virding
+%%% Purpose : Tkoen definitions for Erlang.
+
+Definitions.
+O = [0-7]
+D = [0-9]
+H = [0-9a-fA-F]
+U = [A-Z]
+L = [a-z]
+A = ({U}|{L}|{D}|_|@)
+WS = ([\\000-\\s]|%.*)
+
+Rules.
+{D}+\\.{D}+((E|e)(\\+|\\-)?{D}+)? :
+ {token,{float,TokenLine,list_to_float(TokenChars)}}.
+{D}+#{H}+ : base(TokenLine, TokenChars).
+{D}+ : {token,{integer,TokenLine,list_to_integer(TokenChars)}}.
+{L}{A}* : Atom = list_to_atom(TokenChars),
+ {token,case reserved_word(Atom) of
+ true -> {Atom,TokenLine};
+ false -> {atom,TokenLine,Atom}
+ end}.
+'(\\\\\\^.|\\\\.|[^'])*' :
+ %% Strip quotes.
+ S = lists:sublist(TokenChars, 2, TokenLen - 2),
+ case catch list_to_atom(string_gen(S)) of
+ {'EXIT',_} -> {error,\"illegal atom \" ++ TokenChars};
+ Atom -> {token,{atom,TokenLine,Atom}}
+ end.
+({U}|_){A}* : {token,{var,TokenLine,list_to_atom(TokenChars)}}.
+\"(\\\\\\^.|\\\\.|[^\"])*\" :
+ %% Strip quotes.
+ S = lists:sublist(TokenChars, 2, TokenLen - 2),
+ {token,{string,TokenLine,string_gen(S)}}.
+\\$(\\\\{O}{O}{O}|\\\\\\^.|\\\\.|.) :
+ {token,{char,TokenLine,cc_convert(TokenChars)}}.
+-> : {token,{'->',TokenLine}}.
+:- : {token,{':-',TokenLine}}.
+\\|\\| : {token,{'||',TokenLine}}.
+<- : {token,{'<-',TokenLine}}.
+\\+\\+ : {token,{'++',TokenLine}}.
+-- : {token,{'--',TokenLine}}.
+=/= : {token,{'=/=',TokenLine}}.
+== : {token,{'==',TokenLine}}.
+=:= : {token,{'=:=',TokenLine}}.
+/= : {token,{'/=',TokenLine}}.
+>= : {token,{'>=',TokenLine}}.
+=< : {token,{'=<',TokenLine}}.
+<= : {token,{'<=',TokenLine}}.
+<< : {token,{'<<',TokenLine}}.
+>> : {token,{'>>',TokenLine}}.
+:: : {token,{'::',TokenLine}}.
+[]()[}{|!?/;:,.*+#<>=-] :
+ {token,{list_to_atom(TokenChars),TokenLine}}.
+\\.{WS} : {end_token,{dot,TokenLine}}.
+{WS}+ : skip_token.
+
+Erlang code.
+
+-export([reserved_word/1]).
+
+%% reserved_word(Atom) -> Bool
+%% return 'true' if Atom is an Erlang reserved word, else 'false'.
+
+reserved_word('after') -> true;
+reserved_word('begin') -> true;
+reserved_word('case') -> true;
+reserved_word('try') -> true;
+reserved_word('cond') -> true;
+reserved_word('catch') -> true;
+reserved_word('andalso') -> true;
+reserved_word('orelse') -> true;
+reserved_word('end') -> true;
+reserved_word('fun') -> true;
+reserved_word('if') -> true;
+reserved_word('let') -> true;
+reserved_word('of') -> true;
+reserved_word('query') -> true;
+reserved_word('receive') -> true;
+reserved_word('when') -> true;
+reserved_word('bnot') -> true;
+reserved_word('not') -> true;
+reserved_word('div') -> true;
+reserved_word('rem') -> true;
+reserved_word('band') -> true;
+reserved_word('and') -> true;
+reserved_word('bor') -> true;
+reserved_word('bxor') -> true;
+reserved_word('bsl') -> true;
+reserved_word('bsr') -> true;
+reserved_word('or') -> true;
+reserved_word('xor') -> true;
+reserved_word('spec') -> true;
+reserved_word(_) -> false.
+
+base(L, Cs) ->
+ H = string:chr(Cs, $#),
+ case list_to_integer(string:substr(Cs, 1, H-1)) of
+ B when B > 16 -> {error,\"illegal base\"};
+ B ->
+ case base(string:substr(Cs, H+1), B, 0) of
+ error -> {error,\"illegal based number\"};
+ N -> {token,{integer,L,N}}
+ end
+ end.
+
+base([C|Cs], Base, SoFar) when C >= $0, C =< $9, C < Base + $0 ->
+ Next = SoFar * Base + (C - $0),
+ base(Cs, Base, Next);
+base([C|Cs], Base, SoFar) when C >= $a, C =< $f, C < Base + $a - 10 ->
+ Next = SoFar * Base + (C - $a + 10),
+ base(Cs, Base, Next);
+base([C|Cs], Base, SoFar) when C >= $A, C =< $F, C < Base + $A - 10 ->
+ Next = SoFar * Base + (C - $A + 10),
+ base(Cs, Base, Next);
+base([_|_], _, _) -> error; %Unknown character
+base([], _, N) -> N.
+
+cc_convert([$$,$\\\\|Cs]) ->
+ hd(string_escape(Cs));
+cc_convert([$$,C]) -> C.
+
+string_gen([$\\\\|Cs]) ->
+ string_escape(Cs);
+string_gen([C|Cs]) ->
+ [C|string_gen(Cs)];
+string_gen([]) -> [].
+
+string_escape([O1,O2,O3|S]) when
+ O1 >= $0, O1 =< $7, O2 >= $0, O2 =< $7, O3 >= $0, O3 =< $7 ->
+ [(O1*8 + O2)*8 + O3 - 73*$0|string_gen(S)];
+string_escape([$^,C|Cs]) ->
+ [C band 31|string_gen(Cs)];
+string_escape([C|Cs]) when C >= $\\000, C =< $\\s ->
+ string_gen(Cs);
+string_escape([C|Cs]) ->
+ [escape_char(C)|string_gen(Cs)].
+
+escape_char($n) -> $\\n; %\\n = LF
+escape_char($r) -> $\\r; %\\r = CR
+escape_char($t) -> $\\t; %\\t = TAB
+escape_char($v) -> $\\v; %\\v = VT
+escape_char($b) -> $\\b; %\\b = BS
+escape_char($f) -> $\\f; %\\f = FF
+escape_char($e) -> $\\e; %\\e = ESC
+escape_char($s) -> $\\s; %\\s = SPC
+escape_char($d) -> $\\d; %\\d = DEL
+escape_char(C) -> C.
+ ">>,
+ Dir = ?privdir,
+ XrlFile = filename:join(Dir, "erlang_scan.xrl"),
+ ?line ok = file:write_file(XrlFile, Xrl),
+ ErlFile = filename:join(Dir, "erlang_scan.erl"),
+ ?line {ok, _} = leex:file(XrlFile, []),
+ ?line {ok, _} = compile:file(ErlFile, [{outdir,Dir}]),
+ code:purge(erlang_scan),
+ AbsFile = filename:rootname(ErlFile, ".erl"),
+ code:load_abs(AbsFile, erlang_scan),
+
+ F = fun(Cont, Chars, Location) ->
+ erlang_scan:tokens(Cont, Chars, Location)
+ end,
+ F1 = fun(Cont, Chars, Location) ->
+ erlang_scan:token(Cont, Chars, Location)
+ end,
+ fun() ->
+ S = "ab cd. ",
+ {ok, Ts, 1} = scan_tokens_1(S, F, 1),
+ {ok, Ts, 1} = scan_token_1(S, F1, 1),
+ {ok, Ts, 1} = scan_tokens(S, F, 1),
+ {ok, Ts, 1} = erlang_scan:string(S, 1)
+ end(),
+ fun() ->
+ S = "'ab\n cd'. ",
+ {ok, Ts, 2} = scan_tokens_1(S, F, 1),
+ {ok, Ts, 2} = scan_token_1(S, F1, 1),
+ {ok, Ts, 2} = scan_tokens(S, F, 1),
+ {ok, Ts, 2} = erlang_scan:string(S, 1)
+ end(),
+ fun() ->
+ S = "99. ",
+ {ok, Ts, 1} = scan_tokens_1(S, F, 1),
+ {ok, Ts, 1} = scan_token_1(S, F1, 1),
+ {ok, Ts, 1} = scan_tokens(S, F, 1),
+ {ok, Ts, 1} = erlang_scan:string(S, 1)
+ end(),
+ {ok,[{integer,1,99},{dot,1}],1} = erlang_scan:string("99. "),
+ fun() ->
+ Atom = "'" ++ lists:duplicate(1000,$a) ++ "'",
+ S = Atom ++ ". ",
+ Reason = "illegal atom " ++ Atom,
+ Err = {error,{1,erlang_scan,{user,Reason}},1},
+ {done,Err,[]} = scan_tokens_1(S, F, 1),
+ {done,Err,[]} = scan_token_1(S, F1, 1),
+ {done,Err,[]} = scan_tokens(S, F, 1),
+ Err = erlang_scan:string(S, 1)
+ end(),
+ fun() ->
+ S = "\x{aaa}. ",
+ Err = {error,{1,erlang_scan,{illegal,[2730]}},1},
+ {done,Err,[]} = scan_tokens_1(S, F, 1),
+ {done,Err,[_]} = scan_token_1(S, F1, 1), % Note: Rest non-empty
+ {done,Err,[]} = scan_tokens(S, F, 1),
+ Err = erlang_scan:string(S, 1)
+ end(),
+ fun() ->
+ S = "\x{aaa} + 1. 34",
+ Err = {error,{1,erlang_scan,{illegal,[2730]}},1},
+ {done,Err,[]} = scan_tokens_1(S, F, 1),
+ {done,Err,[_]} = scan_token_1(S, F1, 1), % Note: Rest non-empty
+ {done,Err,"34"} = scan_tokens(S, F, 1),
+ Err = erlang_scan:string(S, 1)
+ end(),
+ fun() ->
+ S = "\x{aaa} \x{bbb}. 34",
+ Err = {error,{1,erlang_scan,{illegal,[2730]}},1},
+ {done,Err,[]} = scan_tokens_1(S, F, 1),
+ {done,Err,[_]} = scan_token_1(S, F1, 1), % Note: Rest non-empty
+ {done,Err,"34"} = scan_tokens(S, F, 1),
+ Err = erlang_scan:string(S, 1)
+ end(),
+ fun() ->
+ S = "\x{aaa} 18#34. 34",
+ Err = {error,{1,erlang_scan,{illegal,[2730]}},1},
+ {done,Err,[]} = scan_tokens_1(S, F, 1),
+ {done,Err,[_]} = scan_token_1(S, F1, 1), % Note: Rest non-empty
+ {done,Err,"34"} = scan_tokens(S, F, 1),
+ Err = erlang_scan:string(S, 1)
+ end(),
+ fun() ->
+ S = "\x{aaa}"++eof,
+ Err = {error,{1,erlang_scan,{illegal,[2730]}},1},
+ {done,Err,eof} = scan_tokens_1(S, F, 1),
+ {done,Err,[_]} = scan_token_1(S, F1, 1), % Note: Rest non-empty
+ {done,Err,eof} = scan_tokens(S, F, 1),
+ Err = erlang_scan:string(S, 1)
+ end(),
+ ok.
+
+scan_tokens(String, Fun, Location) ->
+ scan_tokens(String, Fun, Location, []).
+
+scan_tokens(String, Fun, Location, Rs) ->
+ case Fun([], String, Location) of
+ {done, {error,_,_}, _} = Error ->
+ Error;
+ {done, {ok,Ts,End}, ""} ->
+ {ok, lists:append(lists:reverse([Ts|Rs])), End};
+ {done, {ok,Ts,End}, Rest} ->
+ scan_tokens(Rest, Fun, End, [Ts|Rs])
+ end.
+
+scan_tokens_1(String, Fun, Location) ->
+ scan_tokens_1({more, []}, String, Fun, Location, []).
+
+scan_tokens_1({done, {error, _, _}, _}=Error, _Cs, _Fun, _Location, _Rs) ->
+ Error;
+scan_tokens_1({done, {ok,Ts,End}, ""}, "", _Fun, _Location, Rs) ->
+ {ok,lists:append(lists:reverse([Ts|Rs])),End};
+scan_tokens_1({done, {ok,Ts,End}, Rest}, Cs, Fun, _Location, Rs) ->
+ scan_tokens_1({more,[]}, Rest++Cs, Fun, End, [Ts|Rs]);
+scan_tokens_1({more, Cont}, [C | Cs], Fun, Loc, Rs) ->
+ R = Fun(Cont, [C], Loc),
+ scan_tokens_1(R, Cs, Fun, Loc, Rs);
+scan_tokens_1({more, Cont}, eof, Fun, Loc, Rs) ->
+ R = Fun(Cont, eof, Loc),
+ scan_tokens_1(R, eof, Fun, Loc, Rs).
+
+scan_token_1(String, Fun, Location) ->
+ scan_token_1({more, []}, String, Fun, Location, []).
+
+scan_token_1({done, {error, _, _}, _}=Error, _Cs, _Fun, _Location, _Rs) ->
+ Error;
+scan_token_1({done, {ok,Ts,End}, ""}, "", _Fun, _Location, Rs) ->
+ {ok,lists:reverse([Ts|Rs]),End};
+scan_token_1({done, {ok,Ts,End}, Rest}, Cs, Fun, _Location, Rs) ->
+ scan_token_1({more,[]}, Rest++Cs, Fun, End, [Ts|Rs]);
+scan_token_1({more, Cont}, [C | Cs], Fun, Loc, Rs) ->
+ R = Fun(Cont, [C], Loc),
+ scan_token_1(R, Cs, Fun, Loc, Rs).
+
+%% End of ex2
+
+not_yet(doc) ->
+ "Not yet implemented.";
+not_yet(suite) -> [];
+not_yet(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Filename = filename:join(Dir, "file.xrl"),
+ Ret = [return, {report, true}],
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "Rules.\n"
+ "$ : .\n"
+ "Erlang code.\n">>),
+ ?line {error,[{_,[{3,leex,{regexp,_}}]}],[]} =
+ leex:file(Filename, Ret),
+ ?line ok = file:write_file(Filename,
+ <<"Definitions.\n"
+ "Rules.\n"
+ "^ : .\n"
+ "Erlang code.\n">>),
+ ?line {error,[{_,[{3,leex,{regexp,_}}]}],[]} =
+ leex:file(Filename, Ret),
+
+ ok.
+
+unwritable(Fname) ->
+ {ok, Info} = file:read_file_info(Fname),
+ Mode = Info#file_info.mode - 8#00200,
+ ok = file:write_file_info(Fname, Info#file_info{mode = Mode}).
+
+writable(Fname) ->
+ {ok, Info} = file:read_file_info(Fname),
+ Mode = Info#file_info.mode bor 8#00200,
+ ok = file:write_file_info(Fname, Info#file_info{mode = Mode}).
+
+run(Config, Tests) ->
+ F = fun({N,P,Pre,E}) ->
+ case catch run_test(Config, P, Pre) of
+ E ->
+ ok;
+ Bad ->
+ ?t:format("~nTest ~p failed. Expected~n ~p~n"
+ "but got~n ~p~n", [N, E, Bad]),
+ fail()
+ end
+ end,
+ lists:foreach(F, Tests).
+
+run_test(Config, Def, Pre) ->
+ %% io:format("testing ~s~n", [binary_to_list(Def)]),
+ DefFile = 'leex_test.xrl',
+ Filename = 'leex_test.erl',
+ DataDir = ?privdir,
+ XrlFile = filename:join(DataDir, DefFile),
+ ErlFile = filename:join(DataDir, Filename),
+ Opts = [return, warn_unused_vars,{outdir,DataDir}],
+ ok = file:write_file(XrlFile, Def),
+ LOpts = [return, {report, false} |
+ case Pre of
+ default ->
+ [];
+ _ ->
+ [{includefile,Pre}]
+ end],
+ XOpts = [verbose, dfa_graph], % just to get some code coverage...
+ LRet = leex:file(XrlFile, XOpts ++ LOpts),
+ case LRet of
+ {ok, _Outfile, _LWs} ->
+ CRet = compile:file(ErlFile, Opts),
+ case CRet of
+ {ok, _M, _Ws} ->
+ AbsFile = filename:rootname(ErlFile, ".erl"),
+ Mod = leex_test,
+ code:purge(Mod),
+ code:load_abs(AbsFile, Mod),
+ Mod:t();
+ %% warnings(ErlFile, Ws);
+ {error, [{ErlFile,Es}], []} -> {error, Es, []};
+ {error, [{ErlFile,Es}], [{ErlFile,Ws}]} -> {error, Es, Ws};
+ Error -> Error
+ end;
+ {error, [{XrlFile,LEs}], []} -> {error, LEs, []};
+ {error, [{XrlFile,LEs}], [{XrlFile,LWs}]} -> {error, LEs, LWs};
+ LError -> LError
+ end.
+
+extract(File, {error, Es, Ws}) ->
+ {errors, extract(File, Es), extract(File, Ws)};
+extract(File, Ts) ->
+ lists:append([T || {F, T} <- Ts, F =:= File]).
+
+fail() ->
+ ?t:fail().
diff --git a/lib/parsetools/test/parsetools.spec b/lib/parsetools/test/parsetools.spec
new file mode 100644
index 0000000000..5b34633378
--- /dev/null
+++ b/lib/parsetools/test/parsetools.spec
@@ -0,0 +1 @@
+{topcase, {dir, "../parsetools_test"}}.
diff --git a/lib/parsetools/test/yecc_SUITE.erl b/lib/parsetools/test/yecc_SUITE.erl
new file mode 100644
index 0000000000..b5da414f7b
--- /dev/null
+++ b/lib/parsetools/test/yecc_SUITE.erl
@@ -0,0 +1,1795 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+-module(yecc_SUITE).
+
+%-define(debug, true).
+
+-include_lib("stdlib/include/erl_compile.hrl").
+
+-ifdef(debug).
+-define(line, put(line, ?LINE), ).
+-define(config(X,Y), foo).
+-define(datadir, "yecc_SUITE_data").
+-define(privdir, "yecc_SUITE_priv").
+-define(t, test_server).
+-else.
+-include("test_server.hrl").
+-define(datadir, ?config(data_dir, Config)).
+-define(privdir, ?config(priv_dir, Config)).
+-endif.
+
+-export([all/1, init_per_testcase/2, fin_per_testcase/2]).
+
+-export([app_test/1,
+ checks/1,
+ file/1, syntax/1, compile/1, rules/1, expect/1,
+ conflicts/1,
+ examples/1,
+ empty/1, prec/1, yeccpre/1, lalr/1, old_yecc/1,
+ other_examples/1,
+ bugs/1,
+ otp_5369/1, otp_6362/1, otp_7945/1,
+ improvements/1,
+ otp_7292/1, otp_7969/1]).
+
+% Default timetrap timeout (set in init_per_testcase).
+-define(default_timeout, ?t:minutes(1)).
+
+init_per_testcase(_Case, Config) ->
+ ?line Dog = ?t:timetrap(?default_timeout),
+ [{watchdog, Dog} | Config].
+
+fin_per_testcase(_Case, Config) ->
+ Dog = ?config(watchdog, Config),
+ test_server:timetrap_cancel(Dog),
+ ok.
+
+all(suite) -> [app_test, checks, examples, bugs, improvements].
+
+app_test(doc) ->
+ ["Tests the applications consistency."];
+app_test(suite) ->
+ [];
+app_test(Config) when is_list(Config) ->
+ ?line ok=?t:app_test(parsetools),
+ ok.
+
+checks(suite) ->
+ [file, syntax, compile, rules, expect, conflicts].
+
+file(doc) ->
+ "Bad files and options.";
+file(suite) -> [];
+file(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Ret = [return, {report, false}],
+ ?line {error,[{_,[{none,yecc,{file_error,_}}]}],[]} =
+ yecc:file("not_a_file", Ret),
+ ?line {error,[{_,[{none,yecc,{file_error,_}}]}],[]} =
+ yecc:file("not_a_file", [{return,true}]),
+ ?line {error,[{_,[{none,yecc,{file_error,_}}]}],[]} =
+ yecc:file("not_a_file", [{report,false},return_errors]),
+ ?line error = yecc:file("not_a_file"),
+ ?line error = yecc:file("not_a_file", [{return,false},report]),
+ ?line error = yecc:file("not_a_file", [return_warnings,{report,false}]),
+ Filename = filename:join(Dir, "file.yrl"),
+ file:delete(Filename),
+
+ ?line {'EXIT', {badarg, _}} = (catch yecc:file({foo})),
+ ?line {'EXIT', {badarg, _}} =
+ (catch yecc:file(Filename, {parserfile,{foo}})),
+ ?line {'EXIT', {badarg, _}} =
+ (catch yecc:file(Filename, {includefile,{foo}})),
+
+ ?line {'EXIT', {badarg, _}} = (catch yecc:file(Filename, no_option)),
+ ?line {'EXIT', {badarg, _}} =
+ (catch yecc:file(Filename, [return | report])),
+ ?line {'EXIT', {badarg, _}} =
+ (catch yecc:file(Filename, {return,foo})),
+ ?line {'EXIT', {badarg, _}} =
+ (catch yecc:file(Filename, includefile)),
+
+ Mini = <<"Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ nt -> t.">>,
+ ?line ok = file:write_file(Filename, Mini),
+ ?line {error,[{_,[{none,yecc,{file_error,_}}]}],[]} =
+ yecc:file(Filename, [{parserfile,"//"} | Ret]),
+
+ ?line {error,[{_,[{none,yecc,{file_error,_}}]}],[]} =
+ yecc:file(Filename, [{includefile,"//"} | Ret]),
+ ?line {error,[{_,[{none,yecc,{file_error,_}}]}],[]} =
+ yecc:file(Filename, [{includefile,"/ /"} | Ret]),
+
+ YeccPre = filename:join(Dir, "yeccpre.hrl"),
+ ?line ok = file:write_file(YeccPre, <<"syntax error. ">>),
+ PreErrors1 = run_test(Config, Mini, YeccPre),
+ ?line {errors,[_],[]} = extract(YeccPre, PreErrors1),
+ ?line ok = file:write_file(YeccPre, my_yeccpre()),
+ ?line {'EXIT', {undef,_}} = (catch run_test(Config, Mini, YeccPre)),
+
+ MiniCode = <<"
+ Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ nt -> t.
+ Erlang code.
+ ">>,
+ ?line {'EXIT', {undef,_}} = (catch run_test(Config, MiniCode, YeccPre)),
+
+ file:delete(YeccPre),
+ file:delete(Filename),
+
+ ok.
+
+syntax(doc) ->
+ "Syntax checks.";
+syntax(suite) -> [];
+syntax(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ %% Report errors. Very simple test of format_error/1.
+ Ret = [return, {report, true}],
+ Filename = filename:join(Dir, "file.yrl"),
+ Parserfile1 = filename:join(Dir, "a file"),
+
+ ?line ok = file:write_file(Filename, <<"">>),
+ ?line {error,[{_,[{none,yecc,no_grammar_rules},
+ {none,yecc,nonterminals_missing},
+ {none,yecc,rootsymbol_missing},
+ {none,yecc,terminals_missing}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename, <<"Nonterminals">>),
+ ?line {error,[{_,[{_,yecc,{error,yeccparser,_}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename, <<"Nonterminals nt.">>),
+ ?line {error,[{_,[{none,yecc,no_grammar_rules},
+ {none,yecc,rootsymbol_missing},
+ {none,yecc,terminals_missing}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename, <<"Nonterminals nt. Terminals t.">>),
+ ?line {error,[{_,[{none,yecc,no_grammar_rules},
+ {none,yecc,rootsymbol_missing}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Nonterminals and terminals not disjoint.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt 't t'. Terminals t 't t'. Rootsymbol nt.">>),
+ ?line {error,[{_,[{1,yecc,{symbol_terminal_and_nonterminal,'t t'}},
+ {none,yecc,no_grammar_rules}]}],
+ []} = yecc:file(Filename, Ret),
+
+ %% Rootsymbol is not a nonterminal.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t.
+ Rootsymbol t. nt -> t.">>),
+ ?line {error,[{_,[{2,yecc,{bad_rootsymbol,t}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Rootsymbol is not a nonterminal.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t.
+ Rootsymbol t. nt -> t.">>),
+ ?line {error,[{_,[{2,yecc,{bad_rootsymbol,t}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Endsymbol is a nonterminal.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol nt.
+ Endsymbol nt.
+ nt -> t.">>),
+ ?line {error,[{_,[{2,yecc,{endsymbol_is_nonterminal,nt}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Endsymbol is a terminal.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol nt.
+ Endsymbol t.
+ nt -> t.">>),
+ ?line {error,[{_,[{2,yecc,{endsymbol_is_terminal,t}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% No grammar rules.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol nt. Endsymbol e.">>),
+ ?line {error,[{_,[{none,yecc,no_grammar_rules}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Bad declaration.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol nt. Endsymbol e.
+ nt -> t. e e.">>),
+ ?line {ok,_,[{_,[{2,yecc,bad_declaration}]}]} =
+ yecc:file(Filename, Ret),
+
+ %% Bad declaration.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t.
+ Rootsymbol nt nt. Rootsymbol nt. Endsymbol e.
+ nt -> t.">>),
+ ?line {ok,_,[{_,[{2,yecc,bad_declaration}]}]} =
+ yecc:file(Filename, Ret),
+
+ %% Syntax error found by yeccparser.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol nt. Endsymbol e.
+ a - a.">>),
+ ?line {error,[{_,[{2,yecc,{error,_yeccparser,_}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Syntax error: unknown nonterminal.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol nt. Endsymbol e.
+ 'unknown ' -> t.">>),
+ ?line {error,[{_,[{2,yecc,{undefined_nonterminal,'unknown '}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Undefined rhs symbols. Note quotes in output.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals Nonterminals nt.
+ Terminals t Terminals.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> Nonterminals.
+ Nonterminals -> Terminals receive foo 45
+ '17' 'a b'.">>),
+ ?line {error,[{_,[{6,yecc,{undefined_symbol,45}},
+ {6,yecc,{undefined_symbol,foo}},
+ {6,yecc,{undefined_symbol,'receive'}},
+ {7,yecc,{undefined_symbol,'17'}},
+ {7,yecc,{undefined_symbol,'a b'}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% '$empty' used early, before Terminals. OK.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt.
+ nt -> '$empty'.
+ Terminals t.
+ Rootsymbol nt.
+ Endsymbol e.">>),
+ ?line {ok,_,[{_,[{3,yecc,{unused_terminal,t}}]}]} =
+ yecc:file(Filename, Ret),
+
+ %% Illegal use of '$empty'.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt nt2.
+ Terminals t.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> t.
+ nt2 -> t '$empty'.">>),
+ ?line {error,[{_,[{6,yecc,illegal_empty}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ ParserFile3 = [{parserfile, Parserfile1}],
+
+ %% Bad Erlang expression in action. Changed in OTP-7224.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> t : a bad code.">>),
+ ?line {ok, _, []} = yecc:file(Filename, ParserFile3 ++ Ret),
+
+ SzYeccPre = yeccpre_size(),
+ %% Note: checking the line numbers. Changes when yeccpre.hrl changes.
+ fun() ->
+ ?line {error,[{_,[{5,_,["syntax error before: ","bad"]}]},
+ {_,[{L1,_,{undefined_function,{yeccpars2_2_,1}}},
+ {L2,_,{bad_inline,{yeccpars2_2_,1}}}]}],
+ []} = compile:file(Parserfile1, [basic_validation,return]),
+ ?line L1 = 24 + SzYeccPre,
+ ?line L2 = 31 + SzYeccPre
+ end(),
+
+ %% Bad macro in action. OTP-7224.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> t : ?F(3).">>),
+ ?line {ok, _, []} = yecc:file(Filename, ParserFile3 ++ Ret),
+ %% Note: checking the line numbers. Changes when yeccpre.hrl changes.
+ fun() ->
+ ?line {error,[{_,[{5,_,{undefined,'F',1}}]},
+ {_,[{L1,_,{undefined_function,{yeccpars2_2_,1}}},
+ {L2,_,{bad_inline,{yeccpars2_2_,1}}}]}],
+ []} = compile:file(Parserfile1, [basic_validation,return]),
+ ?line L1 = 24 + SzYeccPre,
+ ?line L2 = 31 + SzYeccPre
+ end(),
+
+ %% Check line numbers. OTP-7224.
+ ?line ok = file:write_file(Filename,
+ <<"Terminals t.
+ Nonterminals nt.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> t : ?F(3).
+ Erlang code.
+ -define(F(X), X).
+ t() ->
+ bad().">>),
+ ?line {ok, _, []} = yecc:file(Filename, ParserFile3 ++ Ret),
+ ?line {error,[{_,[{9,_,{undefined_function,{bad,0}}}]}],
+ [{_,[{8,_,{unused_function,{t,0}}}]}]}
+ = compile:file(Parserfile1, [basic_validation, return]),
+
+ %% Terminals defined before nonterminals. (One of many checks...)
+ %% Used to give an error message, but now allowed.
+ ?line ok = file:write_file(Filename,
+ <<"Terminals t.
+ Nonterminals nt.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> t.
+ Erlang code.">>),
+ ?line {ok, _, []} = yecc:file(Filename, Ret),
+
+ %% Precedence with swapped arguments. Bad declaration.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> t.
+ Right t.
+ Left nt 100.">>),
+ ?line {ok,_,[{_,[{6,yecc,bad_declaration},{7,yecc,bad_declaration}]}]} =
+ yecc:file(Filename, Ret),
+
+ %% Precedence with unknown operator.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> t.
+ Unary 100 '-'.">>),
+ ?line {error,[{_,[{6,yecc,{precedence_op_is_unknown,'-'}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Precedence with endsymbol operator.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> t.
+ Unary 100 e.">>),
+ ?line {error,[{_,[{6,yecc,{precedence_op_is_endsymbol,e}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Duplicated precedence.
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals nt.
+ Terminals t '+'.
+ Rootsymbol nt.
+ nt -> t '+' nt.
+ Left 100 '+'.
+ Right 200 t.
+ Left 200 '+'.
+ Left 200 '+'.
+ Right 200 t.">>),
+ ?line {error,[{_,[{8,yecc,{duplicate_precedence,'+'}},
+ {9,yecc,{duplicate_precedence,'+'}},
+ {10,yecc,{duplicate_precedence,t}}]}],
+ []} = yecc:file(Filename, Ret),
+
+ %% Duplicated nonterminal.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals 'n t' 'n t'. Terminals t.
+ Rootsymbol 'n t'. 'n t' -> t.">>),
+ ?line {ok, _, [{_,[{1,yecc,{duplicate_nonterminal,'n t'}}]}]} =
+ yecc:file(Filename, Ret),
+ ?line {ok, _, [{_,[{1,yecc,{duplicate_nonterminal,'n t'}}]}]} =
+ yecc:file(Filename, [return_warnings, {report, false}]),
+ ?line {ok, _} = yecc:file(Filename),
+ ?line {ok, _} =
+ yecc:file(Filename, [{report,false}, {return_warnings,false}]),
+
+ %% Duplicated terminal.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals 't t' 't t'.
+ Rootsymbol nt. nt -> 't t'.">>),
+ ?line {ok, _, [{_,[{1,yecc,{duplicate_terminal,'t t'}}]}]} =
+ yecc:file(Filename, Ret),
+
+ %% Two Nonterminals declarations.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t.
+ Nonterminals nt2.
+ Rootsymbol nt2. nt -> t. nt2 -> nt.">>),
+ ?line {error,[{_,[{2,yecc,{duplicate_declaration,'Nonterminals'}}]}],
+ []} = yecc:file(Filename, Ret),
+
+ %% Three Terminals declarations.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t.
+ Terminals t1.
+ Terminals t1.
+ Rootsymbol nt. nt -> t t1.">>),
+ ?line {error,[{_,[{2,yecc,{duplicate_declaration,'Terminals'}},
+ {3,yecc,{duplicate_declaration,'Terminals'}}]}],
+ []} = yecc:file(Filename, Ret),
+
+ %% Two root symbols.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol t.
+ Rootsymbol nt. nt -> t.">>),
+ ?line {error,[{_,[{2,yecc,{duplicate_declaration,'Rootsymbol'}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Two end symbols.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol t.
+ Endsymbol e.
+ Endsymbol e. nt -> t.">>),
+ ?line {error,[{_,[{3,yecc,{duplicate_declaration,'Endsymbol'}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Two end symbols.
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol t.
+ Expect 1.
+ Expect 0.
+ Endsymbol e. nt -> t.">>),
+ ?line {error,[{_,[{3,yecc,{duplicate_declaration,'Expect'}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Some words should not be used.
+ ?line ok = file:write_file(Filename, <<"
+ Terminals '$empty' '$end'.
+ Nonterminals '$undefined'.
+ Rootsymbol '$undefined'.
+ Endsymbol '$end'.
+ '$undefined' -> '$empty'.
+ ">>),
+ ?line {error,[{_,[{2,yecc,{reserved,'$empty'}},
+ {2,yecc,{reserved,'$end'}},
+ {3,yecc,{reserved,'$undefined'}},
+ {5,yecc,{endsymbol_is_terminal,'$end'}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Undefined pseudo variable.
+ ?line ok = file:write_file(Filename,<<"
+ Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ nt -> t : '$2'.
+ ">>),
+ ?line {error,[{_,[{5,yecc,{undefined_pseudo_variable,'$2'}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Space in module name.
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals list.
+ Terminals element.
+ Rootsymbol list.
+
+ list -> element : {single, '$1'}.
+ list -> list element : {pair, '$1', '$2'}.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ L = [{element, 1}, {element, 2}, {element, 3}],
+ {ok,_} = parse(L),
+ ok.
+ ">>),
+
+ Parserfile2 = filename:join(Dir, "a \"file\""),
+ %% The parser (yeccgramm.yrl) allows many symbol names...
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals Nonterminals Rootsymbol ':' '->'.
+ Terminals Terminals.
+ Rootsymbol Rootsymbol.
+ Endsymbol e.
+ Rootsymbol -> Nonterminals ':' '->'.
+ Nonterminals -> Terminals.
+ ':' -> '->'.
+ '->' -> Terminals.
+ ">>),
+ ?line {ok, _} = yecc:file(Filename, [{parserfile, Parserfile1}]),
+ ?line {ok, _} = yecc:file(Filename, [{parserfile, Parserfile1},time]),
+ ?line {ok,[]} = compile:file(Parserfile1, [basic_validation]),
+
+ Quotes = <<"
+ Nonterminals
+ tail try 17 42 Unused ' unused ' '42' 'fnutt\\'' receive.
+
+ Terminals
+ ']' '|' ',' '\"hi\"' 'there\\'' 'you\\'' ACCEPT.
+
+ Rootsymbol 17.
+
+ Endsymbol '$end'.
+
+ 17 -> try : '$1':more([\"hi \\\" there\", '.', 3.14, % $3 , % '$1' is a module
+ -104, ' ', ' a', '->', $a, $\t]), '$1'.
+
+ try -> tail 'you\\'' 'fnutt\\''.
+
+ 'fnutt\\'' -> 'you\\'' ACCEPT.
+
+ '42' -> tail.
+
+ tail -> ']' :
+ (fun(Strange) -> foo end)(apa).
+ tail -> '|' try ']' :
+ (fun(Strange) -> foo;
+ (_) -> 'when' % warning
+ end)('ap a', foo),
+ %% This line intentionally left blank.
+ R = #rec{},
+ A = R#rec.a,
+ <<\"hi\">> = <<\"hi\">>,
+ there.
+ tail -> ',' try tail : {cons,line('$2'),'$2','$3'}.
+
+
+ Erlang code.
+
+ -export([t/0]).
+
+ -record(rec, {a}).
+
+ just(Some, Code) ->
+ true.
+
+ more(Code) ->
+ io:format(\"~p~n\", [Code]), true.
+
+ line(_) ->
+ 17.
+
+ t() ->
+ ok. % compiled successfully...
+
+ ">>,
+
+ ?line ok = file:write_file(Filename, Quotes),
+ ?line {ok,_,[{_,
+ [{3,yecc,{unused_nonterminal,42}},
+ {3,yecc,{unused_nonterminal,' unused '}},
+ {3,yecc,{unused_nonterminal,'42'}},
+ {3,yecc,{unused_nonterminal,'Unused'}},
+ {3,yecc,{unused_nonterminal,'receive'}},
+ {6,yecc,{unused_terminal,'"hi"'}},
+ {6,yecc,{unused_terminal,'there\''}}]}]} =
+ yecc:file(Filename, Ret),
+
+ Ts = [{quotes, Quotes, default, ok}],
+ ?line run(Config, Ts),
+
+ %% Non-terminal has no rules, but is unused.
+ ?line ok = file:write_file(Filename,<<"
+ Nonterminals nt bad.
+ Terminals t.
+ Rootsymbol nt.
+
+ nt -> t : something.
+ ">>),
+ ?line {ok,_,[{_,[{2,yecc,{unused_nonterminal,bad}}]}]} =
+ yecc:file(Filename, Ret),
+
+ %% Non-terminal has no rules and is used.
+ ?line ok = file:write_file(Filename,<<"
+ Nonterminals nt bad.
+ Terminals t.
+ Rootsymbol nt.
+
+ nt -> t bad : something.
+ ">>),
+ ?line {error,[{_,[{2,yecc,{missing_syntax_rule,bad}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% Warning in Erlang code. With and without file attributes.
+ ?line ok = file:write_file(Filename,<<"
+ Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+
+ nt -> t : t(17).
+
+ Erlang code.
+
+ t(A) ->
+ b.
+ ">>),
+ ?line {ok, _, []} =
+ yecc:file(Filename, [file_attributes | Ret]),
+ Opts = [basic_validation, return],
+ Erlfile = filename:join(Dir, "file.erl"),
+ ?line {ok,[],[{_,[{10,_,_}]}]} = compile:file(Erlfile, Opts),
+ ?line {ok, _, []} =
+ yecc:file(Filename, [{file_attributes,false} | Ret]),
+ ?line {ok,[],[{_,[{4,_,_}]}]} = compile:file(Erlfile, Opts),
+
+ file:delete(Parserfile1 ++ ".erl"),
+ file:delete(Parserfile2 ++ ".erl"),
+ file:delete(Filename),
+
+ ok.
+
+compile(doc) ->
+ "Check of compile/3.";
+compile(suite) -> [];
+compile(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Filename = filename:join(Dir, "file.yrl"),
+ Parserfile = filename:join(Dir, "file.erl"),
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ nt -> t.">>),
+ ?line error = yecc:compile(Filename, "//", #options{}),
+ ?line ok = yecc:compile(Filename, Parserfile, #options{}),
+ file:delete(Parserfile),
+ file:delete(Filename),
+ ok.
+
+rules(doc) ->
+ "Check of rules.";
+rules(suite) -> [];
+rules(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Ret = [return, {report, false}],
+ Filename = filename:join(Dir, "file.yrl"),
+
+ ?line ok = file:write_file(Filename,
+ <<"Nonterminals nt. Terminals t. Rootsymbol nt.
+ nt -> t. nt -> t.">>),
+ ?line {error,[{_,[{none,yecc,{conflict,_}}]}],
+ [{_,[{none,yecc,{conflicts,0,1}}]}]} =
+ yecc:file(Filename, [return, report]),
+
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals A B E.
+ Terminals c d f x y.
+ Rootsymbol A.
+
+ A -> B c d.
+ A -> E c f.
+ B -> x y.
+ E -> x y.
+ ">>),
+ ?line {error,[{_,[{none,yecc,{conflict,_}}]}],
+ [{_,[{none,yecc,{conflicts,0,1}}]}]} =
+ yecc:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename,<<"
+ Terminals t.
+ Nonterminals nt.
+ Rootsymbol nt.
+ nt -> '$empty' : '$1'.
+ nt -> t.
+ ">>),
+ ?line {error,[{_,[{5,yecc,{undefined_pseudo_variable,'$1'}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename,<<"
+ Terminals t.
+ Nonterminals nt.
+ Rootsymbol nt.
+ nt -> '$empty' : '$0'.
+ nt -> t.
+ ">>),
+ ?line {error,[{_,[{5,yecc,{undefined_pseudo_variable,'$0'}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ file:delete(Filename),
+
+ %% No precedences.
+ Ts = [{rules_1,<<"
+ Nonterminals exp.
+ Terminals number '*' '+' '(' ')'.
+ Rootsymbol exp.
+
+ exp -> exp '+' exp : {plus,'$1','$3'}.
+ exp -> exp '*' exp : {times,'$1','$3'}.
+ exp -> number : element(2, '$1').
+ exp -> '(' exp ')' : '$2'.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ {ok, {times, 1, {plus, 3, 5}}} =
+ parse([{number,1}, {'*',2}, {number,3},
+ {'+',4}, {number,5}]),
+ ok.
+ ">>,
+ default,
+ ok}],
+ ?line run(Config, Ts),
+ ok.
+
+examples(suite) ->
+ [empty, prec, yeccpre, lalr, old_yecc, other_examples].
+
+expect(doc) ->
+ "Check of expect.";
+expect(suite) -> [];
+expect(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Ret = [return, {report, true}],
+ Filename = filename:join(Dir, "file.yrl"),
+
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals e.
+ Terminals i t else.
+ Rootsymbol e.
+ Expect a.
+
+ e -> i e t e.
+ e -> i e t e else e.
+ ">>),
+ ?line {error,[{_,[{5,yecc,{bad_expect,a}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals e.
+ Terminals i t else.
+ Rootsymbol e.
+ Expect 1.
+
+ e -> i e t e.
+ e -> i e t e else e.
+ ">>),
+ ?line {ok, _, []} = yecc:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals e.
+ Terminals i t else.
+ Rootsymbol e.
+ Expect 2.
+
+ e -> i e t e.
+ e -> i e t e else e.
+ ">>),
+ ?line {ok, _, [{_,[{none,yecc,{conflicts,1,0}}]}]} =
+ yecc:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals e.
+ Terminals i t else.
+ Rootsymbol e.
+ Expect -2.
+
+ e -> i e t e.
+ e -> i e t e else e.
+ ">>),
+ ?line {error,[{_,[{5,yecc,{error,_yeccparser,_}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ %% States N. An undocumented declaration used for testing.
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ States 100.
+ nt -> t.">>),
+ ?line {ok,_,[{_, [{none,yecc,{n_states,100,3}}]}]} =
+ yecc:file(Filename, Ret),
+
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ States bad.
+ nt -> t.">>),
+ ?line {error,[{_,[{5,yecc,{bad_states,bad}}]}],[]} =
+ yecc:file(Filename, Ret),
+
+ file:delete(Filename),
+ ok.
+
+conflicts(doc) ->
+ "Shift/reduce and reduce/reduce conflicts.";
+conflicts(suite) -> [];
+conflicts(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Ret = [return, {report, true}],
+ Filename = filename:join(Dir, "file.yrl"),
+
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals S List Tuple Elements Element.
+ Terminals '{' '}' '[' ']' ',' nil e.
+ Rootsymbol S.
+
+ S -> '$empty' : empty.
+ S -> List : '$1'.
+
+ List -> '$empty' : [].
+ List -> nil : [].
+ List -> '[' Tuple ']' : {list, '$2'}.
+
+ Tuple -> '$empty' : {}.
+ Tuple -> '{' '}' : {}.
+ Tuple -> '{' Elements '}' : {tuple, '$2'}.
+
+ Elements -> '$empty' : none.
+ Elements -> Elements ',' Element : {elements, '$3', '$1'}.
+ Elements -> Element : '$1'.
+
+ Element -> List : '$1'.
+ Element -> Tuple : '$1'.
+ Element -> e : '$1'.
+ ">>),
+ ?line {error,[{_,_}],[{_,[{none,yecc,{conflicts,1,5}}]}]} =
+ yecc:file(Filename, Ret),
+
+ %% Can easily be resolved (but don't do it!).
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals S List Tuple Elements Element.
+ Terminals '{' '}' '[' ']' ',' nil e.
+ Rootsymbol S.
+
+ Right 100 List.
+
+ S -> '$empty' : empty.
+ S -> List : '$1'.
+
+ List -> '$empty' : [].
+ List -> nil : [].
+ List -> '[' Tuple ']' : {list, '$2'}.
+
+ Tuple -> '$empty' : {}.
+ Tuple -> '{' '}' : {}.
+ Tuple -> '{' Elements '}' : {tuple, '$2'}.
+
+ Elements -> '$empty' : none.
+ Elements -> Elements ',' Element : {elements, '$3', '$1'}.
+ Elements -> Element : '$1'.
+
+ Element -> List : '$1'.
+ Element -> Tuple : '$1'.
+ Element -> e : '$1'.
+ ">>),
+ ?line {ok, _, []} =
+ yecc:file(Filename, Ret),
+
+ file:delete(Filename),
+ ok.
+
+empty(doc) ->
+ "'$empty'.";
+empty(suite) -> [];
+empty(Config) when is_list(Config) ->
+ Ts = [{empty_1, <<"
+ Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> '$empty': nothing.
+ nt -> t : something.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ {ok, nothing} = parse([{e,2}]),
+ {ok, something} = parse([{t,1},{e,2}]),
+ ok.">>,
+ default,
+ ok},
+ {empty_2, <<"
+ %% There used to be a bug when it came to the left
+ %% corners. In this example rule 2 is a prefix of rule 1
+ %% such that the rule 2 generates $empty but rule 1 does
+ %% not. The old buggy code seemingly worked well too.
+ Nonterminals top A B C D.
+ Terminals t.
+ Rootsymbol top.
+
+ top -> A B C D : {'$1','$2','$3','$4'}.
+ top -> A B C : {'$1','$2','$3'}.
+
+ A -> '$empty' : e.
+ B -> '$empty' : e.
+ C -> '$empty' : e.
+
+ D -> t : t.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ {ok,{e,e,e,t}} = parse([{t, 1}]),
+ {ok,{e,e,e}} = parse([]),
+ ok.
+ ">>,
+ default,
+ ok}],
+ ?line run(Config, Ts),
+ ok.
+
+prec(doc) ->
+ "Precedence.";
+prec(suite) -> [];
+prec(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Ret = [return, {report, false}],
+ Filename = filename:join(Dir, "file.yrl"),
+
+ %% Don't know what 'Unary' actually means, but this is how it has
+ %% always worked...
+ ?line ok = file:write_file(Filename, <<"
+ Nonterminals E.
+ Terminals '*' '+' '=' integer.
+ Rootsymbol E.
+
+ E -> E '=' E : {op, '=', '$1', '$3'}.
+ E -> E '*' E : {op, '*', '$1', '$3'}.
+ E -> E '+' E : {op, '+', '$1', '$3'}.
+ E -> integer : '$1'.
+
+ Unary 100 '='.
+ Left 200 '+'.
+ Left 400 '*'.
+ ">>),
+ ?line {error,[{_,[{none,yecc,{conflict,_}}]}],
+ [{_,[{none,yecc,{conflicts,1,0}}]}]} =
+ yecc:file(Filename, Ret),
+
+ Ts = [{prec_1, <<"
+ Nonterminals E Expr Uminus.
+ Terminals '=' '+' '*' '-' '(' ')' integer var dot.
+ Rootsymbol Expr.
+
+ Expr -> E dot : '$1'.
+ E -> var '=' E : {match, line_of('$1'), '$1', '$3'}.
+ E -> E '+' E : {op, line_of('$1'), '+', '$1', '$3'}.
+ E -> E '-' E : {op, line_of('$1'), '-', '$1', '$3'}.
+ E -> E '*' E : {op, line_of('$1'), '*', '$1', '$3'}.
+ E -> Uminus : '$1'.
+ E -> '(' E ')' : '$2'.
+ E -> integer : '$1'.
+
+ Uminus -> '-' E : {op, line_of('$1'), '-', '$2'}.
+
+ Right 200 '='.
+ Left 300 '+'.
+ Left 300 '-'.
+ Left 400 '*'.
+ Unary 500 Uminus.
+
+ Erlang code.
+
+ -export([t/0, t/1]).
+
+ line_of(Token) ->
+ element(2, Token).
+
+ t() ->
+ {ok, -56} = t(\"A = (4 + 3) * - 8. \"),
+ {ok, 28} = t(\"A = 4 + B=3 * 8. \"),
+ {ok, 28} = t(\"4 - 3 * - 8. \"),
+ {ok, -20} = t(\"4 - 3 * 8. \"),
+ {ok, 2} = t(\"1 - - 1.\"),
+ ok.
+
+ t(S) ->
+ case erl_scan:string(S) of
+ {ok, Tokens, _Line} ->
+ case parse(Tokens) of
+ {ok, Expr} ->
+ case catch erl_eval:expr(Expr, []) of
+ {value, Value, _Bs} ->
+ {ok, Value};
+ {'EXIT', Reason} ->
+ {error, Reason}
+ end;
+ Error ->
+ Error
+ end;
+ Error ->
+ Error
+ end.
+ ">>,
+ default,
+ ok},
+
+ {prec_2, <<"
+ Nonterminals E uminus.
+ Terminals '*' '-' integer.
+ Rootsymbol E.
+
+ E -> E '-' E : {op, '-', '$1', '$3'}.
+ E -> E '*' E : {op, '*', '$1', '$3'}.
+ E -> uminus: '$1'.
+ E -> integer : '$1'.
+
+ uminus -> '-' E : {op, '-', '$2'}.
+
+ Left 200 '-'.
+ Left 400 '*'.
+ Unary 500 uminus.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ %% This used to be parsed -(4 * 3), but that has been corrected:
+ {ok,{op,'*',{op,'-',{integer,1,4}},{integer,3,12}}} =
+ parse([{'-',0},{integer,1,4},{'*',2},{integer,3,12}]),
+
+ {ok,{op,'-',{op,'-',{integer,1,4}},{integer,3,12}}} =
+ parse([{'-',0},{integer,1,4},{'-',2},{integer,3,12}]),
+ {ok,{op,'*',{op,'-',{op,'-',{integer,2,4}}},{integer,4,12}}} =
+ parse([{'-',0},{'-',1},{integer,2,4},{'*',3},{integer,4,12}]),
+ {ok,{op,'-',{integer,1,4},{op,'-',{integer,4,12}}}} =
+ parse([{integer,1,4},{'-',2},{'-',3},{integer,4,12}]),
+ ok.
+ ">>,
+ default,
+ ok},
+ {prec_3, <<"
+ Nonterminals nt.
+ Terminals '(' ')' t op.
+ Rootsymbol nt.
+
+ Nonassoc 100 op.
+
+ nt -> nt op nt : {'$2', '$1', '$3'}.
+ nt -> '(' nt ')' : '$2'.
+ nt -> t : '$1'.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ {error,{4,yecc_test,[\"syntax error before: \",\"op\"]}} =
+ parse([{t,1},{op,2},{t,3},{op,4},{t,5}]),
+ {ok,{{op,2},{t,1},{{op,5},{t,4},{t,6}}}} =
+ parse([{t,1},{op,2},{'(',3},{t,4},{op,5},{t,6},{')',7}]),
+ ok.
+ ">>,
+ default,
+ ok},
+
+ {prec_4, <<"
+ Nonterminals E.
+ Terminals '-' '+' '=' id.
+ Rootsymbol E.
+
+ E -> E '=' E : {op, '=', '$1', '$3'}.
+ E -> E '+' E : {op, '+', '$1', '$3'}.
+ E -> '-' E : {op, '-', '$2'}.
+ E -> id : '$1'.
+
+ Nonassoc 100 '='.
+ Right 200 '+' '-'.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ {ok,{op,'=',{id,1},{op,'-',{op,'+',{id,4},{id,6}}}}} =
+ parse([{id,1},{'=',2},{'-',3},{id,4},{'+',5},{id,6}]),
+ ok.
+
+ ">>,
+ default,
+ ok}],
+
+ ?line run(Config, Ts),
+ ok.
+
+yeccpre(doc) ->
+ "Errors etc. in actions, handled by yeccpre. parse_and_scan.";
+yeccpre(suite) -> [];
+yeccpre(Config) when is_list(Config) ->
+ Ts = [{error_1, <<"
+ Nonterminals list.
+ Terminals element e.
+ Rootsymbol list.
+
+ list -> element : {single, '$1'}.
+ list -> list element : throw(error).
+ list -> e : return_error(element(2, '$1'), bad_element).
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ error = (catch parse([{element,1},{element,2}])),
+ {error, {2, _, Mess}} = parse([{element,1},{e,2}]),
+ ok.
+ ">>,
+ default,
+ ok},
+
+ {error_2, <<"
+ Nonterminals list.
+ Terminals element.
+ Rootsymbol list.
+
+ list -> element.
+
+ Erlang code.
+
+ -export([t/0, scan/1]).
+
+ scan(How) ->
+ case How of
+ thrown -> throw(thrown);
+ error -> erlang:error(error);
+ exit -> exit(exit)
+ end.
+
+ t() ->
+ try parse_and_scan({yecc_test, scan, [thrown]})
+ catch throw: thrown ->
+ ok
+ end,
+ try parse_and_scan({yecc_test, scan, [error]})
+ catch error: error ->
+ ok
+ end,
+ try parse_and_scan({{yecc_test, scan}, [exit]})
+ catch exit: exit ->
+ ok
+ end,
+ try parse_and_scan({fun scan/1, [thrown]})
+ catch throw: thrown ->
+ ok
+ end,
+ ok.
+ ">>,
+ default,
+ ok}],
+
+ ?line run(Config, Ts),
+ ok.
+
+lalr(doc) ->
+ "Examples of grammars that are LALR(1) but not SLR(1).";
+lalr(suite) -> [];
+lalr(Config) when is_list(Config) ->
+ Ts = [{lalr_1, <<"
+ %% http://inst.cs.berkeley.edu/~cs164/lectures/slide14a.pdf
+ %% http://pages.cpsc.ucalgary.ca/~robin/class/411/LR.1.html
+ %% b d . c. Shift or reduce?
+ Nonterminals S A.
+ Terminals a b c d.
+ Rootsymbol S.
+ S -> A a : {r1,'$1','$2'}.
+ S -> b A c : {r2,'$1','$2','$3'}.
+ S -> d c : {r3,'$1','$2'}.
+ S -> b d a : {r4,'$1','$2','$3'}.
+
+ A -> d : {r5,'$1'}.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ %% Reduce!
+ {ok,{r2,{b,1},{r5,{d,2}},{c,3}}} = parse([{b,1},{d,2},{c,3}]),
+ ok.
+ ">>,
+ default,
+ ok},
+ {lalr_2, <<"
+ %% http://www.cs.pitt.edu/~mock/cs2210/lectures/lecture5.pdf
+ Nonterminals S L R.
+ Terminals '*' id '='.
+ Rootsymbol S.
+ S -> L '=' R : {r1,'$1','$3'}.
+ S -> R : {r2,'$1'}.
+
+ L -> '*' R : {r3,'$2'}.
+ L -> id : {r4,'$1'}.
+
+ R -> L : {r5,'$1'}.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ {ok,{r1,{r3,{r5,{r4,{id,1}}}},{r5,{r4,{id,3}}}}} =
+ parse([{'*',0},{id,1},{'=',2},{id,3}]),
+ ok.
+ ">>,
+ default,
+ ok}],
+ ?line run(Config, Ts),
+ ok.
+
+old_yecc(doc) ->
+ "The old interface yecc:yecc/2,3,4.";
+old_yecc(suite) -> [];
+old_yecc(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Filename = filename:join(Dir, "file.yrl"),
+ Parserfile = filename:join(Dir, "file.erl"),
+ Mini = <<"Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ nt -> t.">>,
+ ?line ok = file:write_file(Filename, Mini),
+ ?line {_, _} = yecc:yecc(Filename, Parserfile),
+ ?line {_, _} = yecc:yecc(Filename, Parserfile, true),
+ ?line {_, _} = yecc:yecc(Filename, Parserfile, true),
+ TE = process_flag(trap_exit, true),
+ ?line {'EXIT', error} =
+ (catch yecc:yecc(Filename, Parserfile, false, Parserfile)),
+ _ = process_flag(trap_exit, TE),
+ ok.
+
+other_examples(doc) ->
+ "Misc examples.";
+other_examples(suite) -> [];
+other_examples(Config) when is_list(Config) ->
+ Ts = [{empty, <<"
+ %% G1 from the 1974 article.
+
+ Nonterminals LIST ELEMENT.
+ Terminals ',' a b.
+ Rootsymbol LIST.
+
+ LIST -> LIST ',' ELEMENT : {'$1', '$3'}.
+ LIST -> ELEMENT : '$1'.
+
+ ELEMENT -> a : '$1'.
+ ELEMENT -> b : '$1'.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ L = [{a, 1}, {',', 2}, {b, 3}],
+ {ok,{{a,1},{b,3}}} = parse(L),
+ ok.
+ ">>,
+ default,
+ ok}],
+ ?line run(Config, Ts),
+ ok.
+
+bugs(suite) ->
+ [otp_5369, otp_6362, otp_7945].
+
+otp_5369(doc) ->
+ "OTP-5369. A bug in parse_and_scan reported on erlang questions.";
+otp_5369(suite) -> [];
+otp_5369(Config) when is_list(Config) ->
+ Ts = [{otp_5369,<<"
+ Nonterminals list.
+ Terminals element.
+ Rootsymbol list.
+
+ list -> element : {single, '$1'}.
+ list -> list element : {pair, '$1', '$2'}.
+
+ Erlang code.
+
+ -export([t/0, scan/1]).
+
+ scan(Lexer) ->
+ Lexer ! {scan, self()},
+ receive
+ {ok, Lexer, [Token], Position} ->
+ {ok, [Token], Position};
+ {eof, Lexer, Position} ->
+ {eof, Position}
+ end.
+
+ make_scanner(L) ->
+ spawn_link(fun() ->
+ loop(L)
+ end).
+
+ loop([]) ->
+ receive
+ {scan, Pid} ->
+ Pid ! {eof, self(), 1000}
+ end;
+ loop([Token = {_, P}|T]) ->
+ receive
+ {scan, Pid} ->
+ Pid ! {ok, self(), [Token], P},
+ loop(T)
+ end.
+
+ t(L) ->
+ case parse_and_scan({yecc_test, scan, [make_scanner(L)]}) of
+ {ok, _Result} ->
+ ok;
+ {error, {_LineNumber, Module, Message}} ->
+ _M = apply(Module, format_error, [Message]),
+ not_ok
+ end.
+
+ t() ->
+ not_ok = t([]), %% This test has been added afterwards.
+ %% OTP-5369 did not fix this bug!
+ L = [{element, 1},
+ {element, 2},
+ {element, 3}],
+ t(L).
+ ">>,
+ default,
+ ok}],
+ ?line run(Config, Ts),
+ ok.
+
+otp_6362(doc) ->
+ "OTP-6362. A precedence declaration bug reported on erlang questions.";
+otp_6362(suite) -> [];
+otp_6362(Config) when is_list(Config) ->
+ Ts = [{otp_6362_1,<<"
+ Nonterminals cmp compare expr.
+ Terminals 'string' '>' '='.
+ Rootsymbol compare.
+ Nonassoc 250 cmp.
+ compare -> expr cmp expr : {cmp, '$2', '$1', '$3'}.
+ compare -> expr : {cmp, '==', '$1', {string, \"TRUE\"}}.
+ cmp -> '>' '=' : '>='.
+ cmp -> '>' : '>'.
+ expr -> 'string' : '$1'.
+
+ Erlang code.
+
+ -export([t/0]).
+
+ t() ->
+ {ok,{cmp,'>',{string,1},{string,3}}} =
+ parse([{string,1}, {'>', 2}, {string,3}]),
+ ok.
+ ">>,
+ default,
+ ok}],
+ ?line run(Config, Ts),
+
+ Dir = ?privdir,
+ %% Report errors. Very simple test of format_error/1.
+ Ret = [return, {report, true}],
+ Filename = filename:join(Dir, "file.yrl"),
+
+ %% An error introduced due to this ticket. Terminals can be
+ %% assigned conflicting precedences, which cannot be resolved.
+ ?line ok = file:write_file(Filename,<<"
+ Nonterminals cmp compare expr fopp.
+ Terminals string '>' '='.
+ Rootsymbol compare.
+ Nonassoc 250 cmp.
+ Left 300 '>'.
+
+ compare -> expr cmp expr : {cmp, '$2', '$1', '$3'}.
+ compare -> expr fopp expr : {cmp, '$2', '$1', '$3'}.
+ compare -> expr '=' expr : '$1'.
+ compare -> expr : {cmp, '==', '$1', {string, foo}}.
+ cmp -> '>' '=' : '>='.
+ cmp -> '>' : '>'.
+ expr -> string : '$1'.
+
+ fopp -> '>' '=' : '>='.
+ fopp -> '>' : '>'.">>),
+
+ Ret = [return, {report, true}],
+ ?line {error,[{_,[{none,yecc,{conflict,_}}]}],[]} =
+ yecc:file(Filename, Ret),
+ file:delete(Filename),
+ ok.
+
+my_yeccpre() ->
+ %% Version 1.1.
+ <<"parse(Tokens) ->
+ yeccpars0(Tokens, false).
+
+ parse_and_scan({F, A}) -> % Fun or {M, F}
+ yeccpars0([], {F, A});
+ parse_and_scan({M, F, A}) ->
+ yeccpars0([], {{M, F}, A}).
+
+ format_error(Message) ->
+ case io_lib:deep_char_list(Message) of
+ true ->
+ Message;
+ _ ->
+ io_lib:write(Message)
+ end.
+
+ % To be used in grammar files to throw an error message to the parser
+ % toplevel. Doesn't have to be exported!
+ -compile({nowarn_unused_function,{return_error,2}}).
+ return_error(Line, Message) ->
+ throw({error, {Line, yecc_test, Message}}).
+
+ yeccpars0(Tokens, MFA) ->
+ try yeccpars1(Tokens, MFA, 0, [], [])
+ catch
+ throw: {error, {_Line, yecc_test, _M}} = Error ->
+ Error % probably from return_error/1
+ end.
+
+ % Don't change yeccpars1/6 too much, it is called recursively by yeccpars2/8!
+ yeccpars1([Token | Tokens], Tokenizer, State, States, Vstack) ->
+ yeccpars2(State, element(1, Token), States, Vstack, Token, Tokens,
+ Tokenizer);
+ yeccpars1([], {F, A}, State, States, Vstack) ->
+ case apply(F, A) of
+ {ok, Tokens, _Endline} ->
+ yeccpars1(Tokens, {F, A}, State, States, Vstack);
+ {eof, _Endline} ->
+ yeccpars1([], false, State, States, Vstack);
+ {error, Descriptor, _Endline} ->
+ {error, Descriptor}
+ end;
+ yeccpars1([], false, State, States, Vstack) ->
+ yeccpars2(State, '$end', States, Vstack, {'$end', 999999}, [], false).
+
+ % For internal use only.
+ yeccerror(Token) ->
+ {error,
+ {element(2, Token), yecc_test,
+ [\"syntax error before: \", yecctoken2string(Token)]}}.
+
+ yecctoken2string({atom, _, A}) -> io_lib:write(A);
+ yecctoken2string({integer,_,N}) -> io_lib:write(N);
+ yecctoken2string({float,_,F}) -> io_lib:write(F);
+ yecctoken2string({char,_,C}) -> io_lib:write_char(C);
+ yecctoken2string({var,_,V}) -> io_lib:format('~s', [V]);
+ yecctoken2string({string,_,S}) -> io_lib:write_string(S);
+ yecctoken2string({reserved_symbol, _, A}) -> io_lib:format('~w', [A]);
+ yecctoken2string({_Cat, _, Val}) -> io_lib:format('~w', [Val]);
+ yecctoken2string({'dot', _}) -> io_lib:format('~w', ['.']);
+ yecctoken2string({'$end', _}) ->
+ [];
+ yecctoken2string({Other, _}) when is_atom(Other) ->
+ io_lib:format('~w', [Other]);
+ yecctoken2string(Other) ->
+ io_lib:write(Other).
+">>.
+
+otp_7945(doc) ->
+ "OTP-7945. A bug introduced in R13A.";
+otp_7945(suite) -> [];
+otp_7945(Config) when is_list(Config) ->
+ ?line {error,_} = erl_parse:parse([{atom,3,foo},{'.',2,9,9}]),
+ ok.
+
+improvements(suite) ->
+ [otp_7292, otp_7969].
+
+otp_7292(doc) ->
+ "OTP-7292. Header declarations for edoc.";
+otp_7292(suite) -> [];
+otp_7292(Config) when is_list(Config) ->
+ Dir = ?privdir,
+ Filename = filename:join(Dir, "file.yrl"),
+ Parserfile1 = filename:join(Dir, "a file"),
+
+ Contents = <<"Nonterminals nt.
+ Terminals t.
+ Rootsymbol nt.
+ Endsymbol e.
+ nt -> t : a bad code.
+
+ Header \"%% copyright bla bla bla\"
+ \"%% @private\" \"%% foo\"
+ \"%% @author X.Y.\".
+
+ Erlang code.
+
+ %% @private
+ %% etc.
+
+ foo() ->
+ bar. ">>,
+
+ %% Check that correct line number is used in messages.
+ ?line ok = file:write_file(Filename, Contents),
+ ParserFile3 = [{parserfile, Parserfile1}],
+ Ret = [return, {report, true}],
+ ?line {ok, _, []} = yecc:file(Filename, ParserFile3 ++ Ret),
+
+ %% Note: checking the line numbers. Changes when yeccpre.hrl changes.
+ fun() ->
+ SzYeccPre = yeccpre_size(),
+ ?line {error,
+ [{_,[{5,_,["syntax error before: ","bad"]}]},
+ {_,[{L1,_,{undefined_function,{yeccpars2_2_,1}}},
+ {L2,_,{bad_inline,{yeccpars2_2_,1}}}]}],
+ [{_,[{16,_,{unused_function,{foo,0}}}]}]} =
+ compile:file(Parserfile1, [basic_validation, return]),
+ ?line L1 = 34 + SzYeccPre,
+ ?line L2 = 41 + SzYeccPre
+ end(),
+
+ YeccPre = filename:join(Dir, "yeccpre.hrl"),
+ ?line ok = file:write_file(YeccPre,
+ [<<"-export([parse/1, parse_and_scan/1, format_error/1]).\n">>,
+ yeccpre_v1_2()]),
+ Inc = [{includefile,YeccPre}],
+ ?line {ok, _, []} = yecc:file(Filename, ParserFile3 ++ Inc ++ Ret),
+ fun() ->
+ SzYeccPre = yeccpre_size(YeccPre),
+ ?line {error,
+ [{_,[{5,_,["syntax error before: ","bad"]}]},
+ {_,[{L1,_,{undefined_function,{yeccpars2_2_,1}}},
+ {L2,_,{bad_inline,{yeccpars2_2_,1}}}]}],
+ [{_,[{16,_,{unused_function,{foo,0}}}]}]} =
+ compile:file(Parserfile1, [basic_validation, return]),
+ ?line L1 = 33 + SzYeccPre,
+ ?line L2 = 40 + SzYeccPre
+ end(),
+
+ file:delete(YeccPre),
+ file:delete(Parserfile1 ++ ".erl"),
+ file:delete(Filename),
+
+ ok.
+
+yeccpre_v1_2() ->
+ <<"
+parse(Tokens) ->
+ yeccpars0(Tokens, false).
+
+parse_and_scan({F, A}) -> % Fun or {M, F}
+ yeccpars0([], {F, A});
+parse_and_scan({M, F, A}) ->
+ yeccpars0([], {{M, F}, A}).
+
+format_error(Message) ->
+ case io_lib:deep_char_list(Message) of
+ true ->
+ Message;
+ _ ->
+ io_lib:write(Message)
+ end.
+
+-define(CODE_VERSION, \"1.2\").
+
+yeccpars0(Tokens, MFA) ->
+ try yeccpars1(Tokens, MFA, 0, [], [])
+ catch
+ error: Error ->
+ Stacktrace = erlang:get_stacktrace(),
+ try yecc_error_type(Error, Stacktrace) of
+ {syntax_error, Token} ->
+ yeccerror(Token);
+ {missing_in_goto_table=Tag, State} ->
+ Desc = {State, Tag},
+ erlang:raise(error, {yecc_bug, ?CODE_VERSION, Desc},
+ Stacktrace);
+ {missing_in_goto_table=Tag, Symbol, State} ->
+ Desc = {Symbol, State, Tag},
+ erlang:raise(error, {yecc_bug, ?CODE_VERSION, Desc},
+ Stacktrace)
+ catch _:_ -> erlang:raise(error, Error, Stacktrace)
+ end;
+ throw: {error, {_Line, ?MODULE, _M}} = Error ->
+ Error % probably from return_error/2
+ end.
+
+yecc_error_type(function_clause, [{?MODULE,F,[_,_,_,_,Token,_,_]} | _]) ->
+ \"yeccpars2\" ++ _ = atom_to_list(F),
+ {syntax_error, Token};
+yecc_error_type({case_clause,{State}}, [{?MODULE,yeccpars2,_}|_]) ->
+ %% Inlined goto-function
+ {missing_in_goto_table, State};
+yecc_error_type(function_clause, [{?MODULE,F,[State]}|_]) ->
+ \"yeccgoto_\" ++ SymbolL = atom_to_list(F),
+ {ok,[{atom,_,Symbol}]} = erl_scan:string(SymbolL),
+ {missing_in_goto_table, Symbol, State}.
+
+yeccpars1([Token | Tokens], Tokenizer, State, States, Vstack) ->
+ yeccpars2(State, element(1, Token), States, Vstack, Token, Tokens,
+ Tokenizer);
+yeccpars1([], {F, A}, State, States, Vstack) ->
+ case apply(F, A) of
+ {ok, Tokens, _Endline} ->
+ yeccpars1(Tokens, {F, A}, State, States, Vstack);
+ {eof, _Endline} ->
+ yeccpars1([], false, State, States, Vstack);
+ {error, Descriptor, _Endline} ->
+ {error, Descriptor}
+ end;
+yeccpars1([], false, State, States, Vstack) ->
+ yeccpars2(State, '$end', States, Vstack, {'$end', 999999}, [], false).
+
+yeccpars1(State1, State, States, Vstack, Stack1, [Token | Tokens],
+ Tokenizer) ->
+ yeccpars2(State, element(1, Token), [State1 | States],
+ [Stack1 | Vstack], Token, Tokens, Tokenizer);
+yeccpars1(State1, State, States, Vstack, Stack1, [], {F, A}) ->
+ case apply(F, A) of
+ {ok, Tokens, _Endline} ->
+ yeccpars1(State1, State, States, Vstack, Stack1, Tokens, {F, A});
+ {eof, _Endline} ->
+ yeccpars1(State1, State, States, Vstack, Stack1, [], false);
+ {error, Descriptor, _Endline} ->
+ {error, Descriptor}
+ end;
+yeccpars1(State1, State, States, Vstack, Stack1, [], false) ->
+ yeccpars2(State, '$end', [State1 | States], [Stack1 | Vstack],
+ {'$end', 999999}, [], false).
+
+yeccerror(Token) ->
+ {error,
+ {element(2, Token), ?MODULE,
+ [\"syntax error before: \", yecctoken2string(Token)]}}.
+
+yecctoken2string({atom, _, A}) -> io_lib:write(A);
+yecctoken2string({integer,_,N}) -> io_lib:write(N);
+yecctoken2string({float,_,F}) -> io_lib:write(F);
+yecctoken2string({char,_,C}) -> io_lib:write_char(C);
+yecctoken2string({var,_,V}) -> io_lib:format('~s', [V]);
+yecctoken2string({string,_,S}) -> io_lib:write_string(S);
+yecctoken2string({reserved_symbol, _, A}) -> io_lib:format('~w', [A]);
+yecctoken2string({_Cat, _, Val}) -> io_lib:format('~w', [Val]);
+yecctoken2string({'dot', _}) -> io_lib:format('~w', ['.']);
+yecctoken2string({'$end', _}) ->
+ [];
+yecctoken2string({Other, _}) when is_atom(Other) ->
+ io_lib:format('~w', [Other]);
+yecctoken2string(Other) ->
+ io_lib:write(Other).
+">>.
+
+run(Config, Tests) ->
+ F = fun({N,P,Pre,E}) ->
+ case catch run_test(Config, P, Pre) of
+ E ->
+ ok;
+ Bad ->
+ ?t:format("~nTest ~p failed. Expected~n ~p~n"
+ "but got~n ~p~n", [N, E, Bad]),
+ fail()
+ end
+ end,
+ lists:foreach(F, Tests).
+
+otp_7969(doc) ->
+ "OTP-7969. Interface to the I/O protocol..";
+otp_7969(suite) -> [];
+otp_7969(Config) when is_list(Config) ->
+ ?line {ok,Ts1,_} =
+ erl_scan:string("'foo\nbar'", {1,1}, [text]),
+ ?line {error,{2,_,["syntax error before: ",[]]}} = erl_parse:parse(Ts1),
+
+ ?line {ok,Ts1_1,_} = erl_scan:string("'foo\nbar'", 1, [text]),
+ ?line {error,{2,_,["syntax error before: ",[]]}} = erl_parse:parse(Ts1_1),
+
+ ?line {ok,Ts2,_EndLocation} =
+ erl_scan:string("'foo\nbar'", {1,1}, []),
+ %% Can't do better than report possibly wrong line:
+ ?line {error,{1,_,["syntax error before: ",[]]}} = erl_parse:parse(Ts2),
+
+ ?line {ok, Ts11, _}=R1 = erl_scan:string("f() -> a."),
+ ?line F1 = fun() -> {ok,Ts11 ++ [{'$end',2}],2} end,
+ ?line{ok,{function,1,f,0,[{clause,1,[],[],[{atom,1,a}]}]}} =
+ erl_parse:parse_and_scan({F1, []}),
+ ?line F2 = fun() -> erl_scan:string("f() -> ,") end,
+ ?line {error,{1,erl_parse,_}} = erl_parse:parse_and_scan({F2, []}),
+ ?line F3 = fun() -> case erase(foo) of
+ bar ->
+ {ok,[{'$end',2}],3};
+ undefined ->
+ put(foo,bar), R1
+ end
+ end,
+ ?line {ok,{function,1,f,0,[{clause,1,[],[],[{atom,1,a}]}]}} =
+ erl_parse:parse_and_scan({F3,[]}),
+ F4 = fun() -> {error, {1, ?MODULE, bad}, 2} end,
+ ?line {error, {1,?MODULE,bad}} = erl_parse:parse_and_scan({F4, []}),
+ F5 = fun() -> {eof, 3} end,
+ ?line {error,{3,erl_parse,_}} = erl_parse:parse_and_scan({F5, []}),
+ ?line {error,{999999,erl_parse,_}} = erl_parse:parse([]),
+ ?line {ok, Ts21, EL} = erl_scan:string("f() -> a; g() -> b. ", {1,1}),
+ ?line F6 = fun() -> {ok, Ts21, EL} end,
+ ?line {error,{{1,11},erl_parse,_}} = erl_parse:parse_and_scan({F6, []}),
+ ok.
+
+yeccpre_size() ->
+ yeccpre_size(default_yeccpre()).
+
+yeccpre_size(File) ->
+ n_lines(File).
+
+default_yeccpre() ->
+ filename:join([code:lib_dir(parsetools),"include","yeccpre.hrl"]).
+
+n_lines(File) ->
+ {ok, Bin} = file:read_file(File),
+ length([C || C=$\n <- binary_to_list(Bin)]).
+
+run_test(Config, Def, Pre) ->
+ %% io:format("testing ~s~n", [binary_to_list(Def)]),
+ DefFile = 'yecc_test.yrl',
+ Filename = 'yecc_test.erl',
+ DataDir = ?privdir,
+ YrlFile = filename:join(DataDir, DefFile),
+ ErlFile = filename:join(DataDir, Filename),
+ Opts = [return, warn_unused_vars,{outdir,DataDir}],
+ ok = file:write_file(YrlFile, Def),
+ YOpts = [return, {report, false} |
+ case Pre of
+ default ->
+ [];
+ _ ->
+ [{includefile,Pre}]
+ end],
+ P0 = pps(),
+ YRet = yecc:file(YrlFile, [verbose | YOpts]),
+ case {pps(), YRet} of
+ {P0, {ok, _Outfile, _YWs}} ->
+ case compile:file(ErlFile, Opts) of
+ {ok, _M, _Ws} ->
+ AbsFile = filename:rootname(ErlFile, ".erl"),
+ Mod = yecc_test,
+ code:purge(Mod),
+ code:load_abs(AbsFile, Mod),
+ Mod:t();
+ %% warnings(ErlFile, Ws);
+ {error, [{ErlFile,Es}], []} -> {error, Es, []};
+ {error, [{ErlFile,Es}], [{ErlFile,Ws}]} -> {error, Es, Ws};
+ Error -> Error
+ end;
+ {P0, {error, [{YrlFile,YEs}], []}} -> {error, YEs, []};
+ {P0, {error, [{YrlFile,YEs}], [{YrlFile,YWs}]}} -> {error, YEs, YWs};
+ {P0, YError} -> YError;
+ {P, _} ->
+ io:format("failure, got ~p~n, expected ~p\n", [P, P0]),
+ fail()
+ end.
+
+extract(File, {error, Es, Ws}) ->
+ {errors, extract(File, Es), extract(File, Ws)};
+extract(File, Ts) ->
+ lists:append([T || {F, T} <- Ts, F =:= File]).
+
+pps() ->
+ {port_list(), process_list()}.
+
+port_list() ->
+ [{P,safe_second_element(erlang:port_info(P, name))} || P <- erlang:ports()].
+
+process_list() ->
+ [{P,process_info(P, registered_name),
+ safe_second_element(process_info(P, initial_call))} ||
+ P <- processes(), is_process_alive(P)].
+
+safe_second_element({_,Info}) -> Info;
+safe_second_element(Other) -> Other.
+
+fail() ->
+ ?t:fail().
diff --git a/lib/parsetools/vsn.mk b/lib/parsetools/vsn.mk
index e3db40c193..b1354e89d8 100644
--- a/lib/parsetools/vsn.mk
+++ b/lib/parsetools/vsn.mk
@@ -1 +1 @@
-PARSETOOLS_VSN = 2.0.1
+PARSETOOLS_VSN = 2.0.2
diff --git a/lib/percept/src/egd_render.erl b/lib/percept/src/egd_render.erl
index cea9d2d926..4a0247dd33 100644
--- a/lib/percept/src/egd_render.erl
+++ b/lib/percept/src/egd_render.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -179,7 +179,7 @@ color(Trans,Layers,Type,OldC) ->
color([],_) -> {0.0,0.0,0.0,0.0};
color([{_,C}|_],opaque) -> C;
-color(Layers,alpha) -> color1({0,0,0,0},Layers).
+color(Layers,alpha) -> color1({0.0,0.0,0.0,0.0},Layers).
color1(Color,[]) -> Color;
color1(Color,[{_,C}|Layers]) -> color1(alpha_blend(Color,C),Layers).
diff --git a/lib/percept/test/egd_SUITE.erl b/lib/percept/test/egd_SUITE.erl
index a2595400dd..fde02b47d5 100644
--- a/lib/percept/test/egd_SUITE.erl
+++ b/lib/percept/test/egd_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2007-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2007-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -143,6 +143,8 @@ image_shape(Config) when is_list(Config) ->
?line ok = bitmap_point_has_color(Bitmap, {W,H}, Pt2, Fgc),
?line ok = bitmap_point_has_color(Bitmap, {W,H}, Pt1, Fgc),
+ ?line <<_/binary>> = egd:render(Im, raw_bitmap, [{render_engine, alpha}]),
+
?line ok = egd:destroy(Im),
erase(image_size),
ok.
@@ -177,6 +179,8 @@ image_primitives(Config) when is_list(Config) ->
?line ok = bitmap_point_has_color(Bitmap, {W,H}, Pt2, Fgc),
?line ok = bitmap_point_has_color(Bitmap, {W,H}, Pt1, Fgc),
+ ?line <<_/binary>> = egd_render:binary(Im2, alpha),
+
erase(image_size),
ok.
diff --git a/lib/percept/vsn.mk b/lib/percept/vsn.mk
index ef5a20f028..443d25c78f 100644
--- a/lib/percept/vsn.mk
+++ b/lib/percept/vsn.mk
@@ -1 +1 @@
-PERCEPT_VSN = 0.8.3
+PERCEPT_VSN = 0.8.4
diff --git a/lib/reltool/doc/src/Makefile b/lib/reltool/doc/src/Makefile
index 2c634bdf6c..8bc1488f77 100644
--- a/lib/reltool/doc/src/Makefile
+++ b/lib/reltool/doc/src/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2009-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
include $(ERL_TOP)/make/target.mk
@@ -39,6 +39,10 @@ include files.mk
# ----------------------------------------------------
+XML_FILES = \
+ $(BOOK_FILES) $(XML_APPLICATION_FILES) $(XML_REF3_FILES) \
+ $(XML_PART_FILES) $(XML_CHAPTER_FILES)
+
HTML_FILES = $(XML_APPLICATION_FILES:%.xml=$(HTMLDIR)/%.html) \
$(XML_PART_FILES:%.xml=$(HTMLDIR)/%.html)
@@ -46,10 +50,6 @@ INFO_FILE = ../../info
MAN3_FILES = $(XML_REF3_FILES:%.xml=$(MAN3DIR)/%.3)
-XML_FILES = \
- $(BOOK_FILES) $(XML_CHAPTER_FILES) \
- $(XML_PART_FILES) $(XML_REF3_FILES) $(XML_APPLICATION_FILES)
-
HTML_REF_MAN_FILE = $(HTMLDIR)/index.html
TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf
@@ -72,15 +72,20 @@ $(TOP_PDF_FILE): $(XML_FILES)
pdf: $(TOP_PDF_FILE)
-html: gifs $(HTML_REF_MAN_FILE)
+html:images $(HTML_REF_MAN_FILE)
man: $(MAN3_FILES)
-gifs: $(GIF_FILES:%=$(HTMLDIR)/%)
+images: $(IMAGE_FILES:%=$(HTMLDIR)/%)
debug opt:
clean clean_docs:
+ for file in $(XML_FILES); do \
+ if [ -f $$file\src ]; then \
+ rm -f $$file; \
+ fi \
+ done
rm -rf $(HTMLDIR)/*
rm -f $(MAN3DIR)/*
rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo)
@@ -95,8 +100,7 @@ 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) $(HTMLDIR)/* $(RELSYSDIR)/doc/html
$(INSTALL_DATA) $(INFO_FILE) $(RELSYSDIR)
$(INSTALL_DIR) $(RELEASE_PATH)/man/man3
$(INSTALL_DATA) $(MAN3DIR)/* $(RELEASE_PATH)/man/man3
diff --git a/lib/reltool/doc/src/book.gif b/lib/reltool/doc/src/book.gif
deleted file mode 100644
index 94b3868792..0000000000
--- a/lib/reltool/doc/src/book.gif
+++ /dev/null
Binary files differ
diff --git a/lib/reltool/doc/src/fascicules.xml b/lib/reltool/doc/src/fascicules.xml
deleted file mode 100644
index a57808974e..0000000000
--- a/lib/reltool/doc/src/fascicules.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?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/reltool/doc/src/files.mk b/lib/reltool/doc/src/files.mk
index b2dc06411d..07b52f4934 100644
--- a/lib/reltool/doc/src/files.mk
+++ b/lib/reltool/doc/src/files.mk
@@ -1,20 +1,20 @@
#-*-makefile-*- ; force emacs to enter makefile-mode
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2009-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
XML_APPLICATION_FILES = \
@@ -24,8 +24,7 @@ XML_REF3_FILES = \
reltool.xml
XML_PART_FILES = \
- part.xml \
- part_notes.xml
+ part.xml
XML_CHAPTER_FILES = \
reltool_intro.xml \
@@ -35,11 +34,5 @@ XML_CHAPTER_FILES = \
BOOK_FILES = book.xml
-GIF_FILES = \
- book.gif \
- note.gif \
- notes.gif \
- ref_man.gif \
- user_guide.gif \
- warning.gif
+IMAGE_FILES =
diff --git a/lib/reltool/doc/src/note.gif b/lib/reltool/doc/src/note.gif
deleted file mode 100644
index 6fffe30419..0000000000
--- a/lib/reltool/doc/src/note.gif
+++ /dev/null
Binary files differ
diff --git a/lib/reltool/doc/src/notes.gif b/lib/reltool/doc/src/notes.gif
deleted file mode 100644
index e000cca26a..0000000000
--- a/lib/reltool/doc/src/notes.gif
+++ /dev/null
Binary files differ
diff --git a/lib/reltool/doc/src/part_notes.xml b/lib/reltool/doc/src/part_notes.xml
deleted file mode 100644
index 5a2aeecce6..0000000000
--- a/lib/reltool/doc/src/part_notes.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="latin1" ?>
-<!DOCTYPE part SYSTEM "part.dtd">
-
-<part xmlns:xi="http://www.w3.org/2001/XInclude">
- <header>
- <copyright>
- <year>2009</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.
-
- The Initial Developer of the Original Code is Ericsson AB.
- </legalnotice>
-
- <title>Reltool Release Notes</title>
- <prepared>H&aring;kan Mattsson</prepared>
- <docno></docno>
- <date></date>
- <rev>%VSN%</rev>
- </header>
- <description>
- <p><c>Reltool</c> is a release management tool. It analyses a given
- Erlang/OTP installation and determines various dependencies
- between applications. The <c>graphical</c> frontend depicts the
- dependencies and enables interactive customization of a
- target system. The backend provides a <c>batch</c> interface
- for generation of customized target systems.</p>
- </description>
- <xi:include href="notes.xml"/>
-</part>
diff --git a/lib/reltool/doc/src/ref_man.gif b/lib/reltool/doc/src/ref_man.gif
deleted file mode 100644
index b13c4efd53..0000000000
--- a/lib/reltool/doc/src/ref_man.gif
+++ /dev/null
Binary files differ
diff --git a/lib/reltool/doc/src/reltool_examples.xml b/lib/reltool/doc/src/reltool_examples.xml
index 3d087862e6..d6db246f6c 100644
--- a/lib/reltool/doc/src/reltool_examples.xml
+++ b/lib/reltool/doc/src/reltool_examples.xml
@@ -45,7 +45,8 @@
its server can be obtained with <c>reltool:get_server/1</c></p>
<pre>
-Erlang R13B02 (erts-5.7.3) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]
+Erlang R13B02 (erts-5.7.3) [source] [64-bit] [smp:4:4] [rq:4]
+ [async-threads:0] [kernel-poll:false]
Eshell V5.7.3 (abort with ^G)
1&gt; {ok, Win} = reltool:start([]).
@@ -72,10 +73,13 @@ ok
<title>Inspecting the configuration</title>
<pre>
-Erlang R13B02 (erts-5.7.3) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]
+Erlang R13B02 (erts-5.7.3) [source] [64-bit] [smp:4:4] [rq:4]
+ [async-threads:0] [kernel-poll:false]
Eshell V5.7.3 (abort with ^G)
-1&gt; Config = {sys, [{escript, "examples/display_args", [{incl_cond, include}]},
+1&gt; Config = {sys, [{escript,
+ "examples/display_args",
+ [{incl_cond, include}]},
{app, inets, [{incl_cond, include}]},
{app, mnesia, [{incl_cond, exclude}]},
{app, ssl, [{incl_cond, exclude}]},
@@ -244,7 +248,8 @@ Eshell V5.7.3 (abort with ^G)
<title>Generate release and script files</title>
<pre>
5&gt; {ok, Server} = reltool:start_server([{config, {sys, [{boot_rel, "NAME"},
- {rel, "NAME", "VSN", [kernel, stdlib, sasl]}]}}]).
+ {rel, "NAME", "VSN",
+ [kernel, stdlib, sasl]}]}}]).
{ok,&lt;0.1288.0&gt;}
6&gt; reltool:get_config(Server).
{ok,{sys,[{boot_rel,"NAME"},
@@ -297,10 +302,13 @@ ok
<section>
<title>Create a target system</title>
<pre>
-Erlang R13B02 (erts-5.7.3) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]
+Erlang R13B02 (erts-5.7.3) [source] [64-bit] [smp:4:4] [rq:4]
+ [async-threads:0] [kernel-poll:false]
Eshell V5.7.3 (abort with ^G)
-1&gt; Config = {sys, [{escript, "examples/display_args", [{incl_cond, include}]},
+1&gt; Config = {sys, [{escript,
+ "examples/display_args",
+ [{incl_cond, include}]},
{app, inets, [{incl_cond, include}]},
{app, mnesia, [{incl_cond, exclude}]},
{app, ssl, [{incl_cond, exclude}]},
@@ -320,11 +328,11 @@ Eshell V5.7.3 (abort with ^G)
[{write_file,"start_erl.data","5.7.3 1.0"},
{create_dir,"1.0",
[{write_file,"start_clean.rel",
- [37,37,32,114,101,108,32,103,101,110,101,114,97,116|...]},
+ [37,37,32,114,101,108,32,103,101,110,101|...]},
{write_file,"start_clean.script",
- [37,37,32,115,99,114,105,112,116,32,103,101,110|...]},
+ [37,37,32,115,99,114,105,112,116,32|...]},
{write_file,"start_clean.boot",
- &lt;&lt;131,104,3,100,0,6,115,99,114,105,112,116,...&gt;&gt;},
+ &lt;&lt;131,104,3,100,0,6,115,99,114,...&gt;&gt;},
{write_file,"start_sasl.rel",
[37,37,32,114,101,108,32,103,101,110,101|...]},
{write_file,"start_sasl.script",
@@ -409,11 +417,13 @@ Eshell V5.7.3 (abort with ^G)
{copy_file,...},
{...}|...]},
{create_dir,"src",
- [{copy_file,[...]},{copy_file,...},{...}|...]}]}]},
+ [{copy_file,[...]},
+ {copy_file,...},{...}|...]}]}]},
{archive,"crypto-1.6.1.ez",[],
[{create_dir,"crypto-1.6.1",
[{create_dir,"ebin",
- [{copy_file,[...]},{copy_file,...},{...}|...]},
+ [{copy_file,[...]},
+ {copy_file,...},{...}|...]},
{create_dir,"src",[{copy_file,...},{...}|...]}]}]},
{create_dir,"crypto-1.6.1",
[{create_dir,"priv",
diff --git a/lib/reltool/doc/src/user_guide.gif b/lib/reltool/doc/src/user_guide.gif
deleted file mode 100644
index e6275a803d..0000000000
--- a/lib/reltool/doc/src/user_guide.gif
+++ /dev/null
Binary files differ
diff --git a/lib/reltool/doc/src/warning.gif b/lib/reltool/doc/src/warning.gif
deleted file mode 100644
index 96af52360e..0000000000
--- a/lib/reltool/doc/src/warning.gif
+++ /dev/null
Binary files differ
diff --git a/lib/reltool/src/reltool_target.erl b/lib/reltool/src/reltool_target.erl
index 895fc6702b..6d85a98d9f 100644
--- a/lib/reltool/src/reltool_target.erl
+++ b/lib/reltool/src/reltool_target.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
-module(reltool_target).
@@ -966,9 +966,9 @@ do_eval_spec({create_dir, Dir, Files}, OrigSourceDir, SourceDir, TargetDir) ->
TargetDir2 = filename:join([TargetDir, Dir]),
reltool_utils:create_dir(TargetDir2),
do_eval_spec(Files, OrigSourceDir, SourceDir2, TargetDir2);
-do_eval_spec({create_dir, NewDir, OldDir, Files}, OrigSourceDir, _SourceDir, TargetDir) ->
+do_eval_spec({create_dir, Dir, OldDir, Files}, OrigSourceDir, _SourceDir, TargetDir) ->
SourceDir2 = filename:join([OrigSourceDir, OldDir]),
- TargetDir2 = filename:join([TargetDir, NewDir]),
+ TargetDir2 = filename:join([TargetDir, Dir]),
reltool_utils:create_dir(TargetDir2),
do_eval_spec(Files, SourceDir2, SourceDir2, TargetDir2);
do_eval_spec({archive, Archive, Options, Files}, OrigSourceDir, SourceDir, TargetDir) ->
@@ -992,9 +992,9 @@ do_eval_spec({copy_file, File}, _OrigSourceDir, SourceDir, TargetDir) ->
SourceFile = filename:join([SourceDir, File]),
TargetFile = filename:join([TargetDir, File]),
reltool_utils:copy_file(SourceFile, TargetFile);
-do_eval_spec({copy_file, NewFile, OldFile}, OrigSourceDir, _SourceDir, TargetDir) ->
+do_eval_spec({copy_file, File, OldFile}, OrigSourceDir, _SourceDir, TargetDir) ->
SourceFile = filename:join([OrigSourceDir, OldFile]),
- TargetFile = filename:join([TargetDir, NewFile]),
+ TargetFile = filename:join([TargetDir, File]),
reltool_utils:copy_file(SourceFile, TargetFile);
do_eval_spec({write_file, File, IoList}, _OrigSourceDir, _SourceDir, TargetDir) ->
TargetFile = filename:join([TargetDir, File]),
@@ -1014,8 +1014,8 @@ cleanup_spec({create_dir, Dir, Files}, TargetDir) ->
TargetDir2 = filename:join([TargetDir, Dir]),
cleanup_spec(Files, TargetDir2),
file:del_dir(TargetDir2);
-cleanup_spec({create_dir, NewDir, _OldDir, Files}, TargetDir) ->
- TargetDir2 = filename:join([TargetDir, NewDir]),
+cleanup_spec({create_dir, Dir, _OldDir, Files}, TargetDir) ->
+ TargetDir2 = filename:join([TargetDir, Dir]),
cleanup_spec(Files, TargetDir2),
file:del_dir(TargetDir2);
cleanup_spec({archive, Archive, _Options, Files}, TargetDir) ->
@@ -1125,6 +1125,8 @@ match(String, [#regexp{source = _, compiled = MP} | Regexps]) ->
end.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Old style installation
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
install(RelName, TargetDir) ->
try
@@ -1220,7 +1222,6 @@ subst_var([C| Rest], Vars, Result, VarAcc) ->
subst_var(Rest, Vars, Result, [C| VarAcc]);
subst_var([], Vars, Result, VarAcc) ->
subst([], Vars, [VarAcc ++ [$% | Result]]).
-
start_scripts() ->
["erl", "start", "start_erl"].
diff --git a/lib/runtime_tools/c_src/Makefile.in b/lib/runtime_tools/c_src/Makefile.in
index 05b5598e51..840de39f07 100644
--- a/lib/runtime_tools/c_src/Makefile.in
+++ b/lib/runtime_tools/c_src/Makefile.in
@@ -1,23 +1,24 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1999-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1999-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
include $(ERL_TOP)/make/target.mk
include $(ERL_TOP)/make/$(TARGET)/otp.mk
+include $(ERL_TOP)/make/$(TARGET)/otp_ded.mk
# ----------------------------------------------------
# Application version
@@ -30,20 +31,14 @@ VSN=$(RUNTIME_TOOLS_VSN)
# reasonable defaults, if something different is needed it should
# be set for that system only.
# ----------------------------------------------------
-CC = @CC@
-CFLAGS = @DED_CFLAGS@
-LD = @DED_LD@
+CC = $(DED_CC)
+CFLAGS = $(DED_CFLAGS)
+LD = $(DED_LD)
SHELL = /bin/sh
-LIBS = @LIBS@
-LDFLAGS += @DED_LDFLAGS@
-ERLANG_OSTYPE = @ERLANG_OSTYPE@
-
-SYSINCLUDE = -I$(ERL_TOP)/erts/emulator/beam \
- -I$(ERL_TOP)/erts/emulator/sys/$(ERLANG_OSTYPE) \
- -I$(ERL_TOP)/erts/include/internal \
- -I$(ERL_TOP)/erts/include/internal/$(ERLANG_OSTYPE) \
- -I$(ERL_TOP)/erts/include \
- -I$(ERL_TOP)/erts/include/$(ERLANG_OSTYPE)
+LIBS = $(DED_LIBS)
+LDFLAGS += $(DED_LDFLAGS)
+
+SYSINCLUDE = $(DED_SYS_INCLUDE)
ifeq ($(findstring vxworks,$(TARGET)),vxworks)
SYSINCLUDE += -I$(ERL_TOP)/erts/etc/vxworks
endif
diff --git a/lib/runtime_tools/vsn.mk b/lib/runtime_tools/vsn.mk
index 591f3e1ac4..4bbdef19de 100644
--- a/lib/runtime_tools/vsn.mk
+++ b/lib/runtime_tools/vsn.mk
@@ -1 +1 @@
-RUNTIME_TOOLS_VSN = 1.8.2
+RUNTIME_TOOLS_VSN = 1.8.3
diff --git a/lib/snmp/doc/src/notes.xml b/lib/snmp/doc/src/notes.xml
index 96a444227d..8939fbd6df 100644
--- a/lib/snmp/doc/src/notes.xml
+++ b/lib/snmp/doc/src/notes.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>1996</year><year>2009</year>
+ <year>1996</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>SNMP Release Notes</title>
@@ -33,6 +33,72 @@
</header>
<section>
+ <title>SNMP Development Toolkit 4.16</title>
+ <p>Version 4.16 supports code replacement in runtime from/to
+ version 4.15, 4.14 and 4.13.5.</p>
+
+ <section>
+ <title>Improvements and new features</title>
+ <!--
+ <p>-</p>
+ -->
+ <list type="bulleted">
+ <item>
+ <p>[agent|manager] Entries in the audit trail log can now be
+ augmented by a sequence number. </p>
+ <p>This is enabled by the <c>seqno</c> option, which is part of the
+ <seealso marker="snmp_config#audit_trail_log">Audit Trail Log</seealso>
+ config option. </p>
+ <p>See the
+ <seealso marker="snmp_app#configuration_params">reference manual</seealso>
+ or the
+ <seealso marker="snmp_config#configuration_params">Configuring the application</seealso>
+ chapter of the User's Guide for further info. </p>
+
+ <p>Own Id: OTP-8395</p>
+ </item>
+
+ </list>
+
+ </section>
+
+ <section>
+ <title>Reported Fixed Bugs and Malfunctions</title>
+ <!--
+ <p>-</p>
+ -->
+
+ <list type="bulleted">
+ <item>
+ <p>[manager] Registration of agents using the config file,
+ <seealso marker="snmp_manager_config_files#agents">agents.conf</seealso>,
+ does not work. This has now been corrected. </p>
+ <p>Per Hedeland</p>
+ <p>Own Id: OTP-8442</p>
+ </item>
+
+ <item>
+ <p>The config utility
+ (<seealso marker="snmp#config">snmp:config/0</seealso>)
+ generated a default notify.conf
+ with a bad name for the starndard trap entry (was "stadard trap",
+ but should have been "standard trap"). This has been corrected. </p>
+ <p>Kenji Rikitake</p>
+ <p>Own Id: OTP-8433</p>
+ </item>
+
+ </list>
+
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <p>-</p>
+ </section>
+ </section> <!-- 4.16 -->
+
+
+ <section>
<title>SNMP Development Toolkit 4.15</title>
<p>Version 4.15 supports code replacement in runtime from/to
diff --git a/lib/snmp/doc/src/snmp_app.xml b/lib/snmp/doc/src/snmp_app.xml
index 460f0b8018..e5a725d720 100644
--- a/lib/snmp/doc/src/snmp_app.xml
+++ b/lib/snmp/doc/src/snmp_app.xml
@@ -4,7 +4,7 @@
<appref>
<header>
<copyright>
- <year>1997</year><year>2009</year>
+ <year>1997</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>snmp</title>
@@ -78,11 +78,11 @@
].
</pre>
+ <!-- The info below is also found in the snmp_config.xml file -->
+
<p>Each snmp component has it's own set of configuration parameters,
even though some of the types are common to both components. </p>
- <!-- Also in snmp_config.xml -->
-
<pre>
snmp_components_config() -> [snmp_component_config()]
snmp_component_config() -> {agent, agent_options()} | {manager, manager_options()}
@@ -642,10 +642,13 @@
process performs a GC to remove the expired note's. Time in
milli-seconds.</p>
<p>Default is <c>30000</c>.</p>
+
+ <marker id="audit_trail_log"></marker>
</item>
+
<tag><c><![CDATA[audit_trail_log() = [audit_trail_log_opt()] <optional>]]></c></tag>
<item>
- <p><c>audit_trail_log_opt() = {type, atl_type()} | {dir, atl_dir()} | {size, atl_size()} | {repair, atl_repair()}</c></p>
+ <p><c>audit_trail_log_opt() = {type, atl_type()} | {dir, atl_dir()} | {size, atl_size()} | {repair, atl_repair()} | {seqno, atl_seqno()}</c></p>
<p>If present, this option specifies the options for the
audit trail logging. The <c>disk_log</c> module is used
to maintain a wrap log. If present, the <c>dir</c> and
@@ -696,6 +699,13 @@
analysis.</p>
<p>Default is <c>true</c>.</p>
</item>
+ <tag><c><![CDATA[atl_seqno() = true | false <optional>]]></c></tag>
+ <item>
+ <p>Specifies if the audit trail log entries will be (sequence)
+ numbered or not. The range of the sequence numbers are according
+ to RFC 5424, i.e. 1 through 2147483647. </p>
+ <p>Default is <c>false</c>.</p>
+ </item>
</taglist>
</section>
diff --git a/lib/snmp/doc/src/snmp_config.xml b/lib/snmp/doc/src/snmp_config.xml
index 073cdde308..6fc9cc49f2 100644
--- a/lib/snmp/doc/src/snmp_config.xml
+++ b/lib/snmp/doc/src/snmp_config.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>1997</year><year>2009</year>
+ <year>1997</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Running the application</title>
@@ -73,13 +73,13 @@
</item>
</list>
+ <!-- The info below is also found in the snmp_app.xml file -->
+
<p>The agent and manager uses (application) configuration parameters to
find out where these directories are located. The parameters should be
defined in an Erlang system configuration file. The following
configuration parameters are defined for the SNMP application:</p>
- <!-- Also in snmp_app.xml -->
-
<pre>
agent_options() = [agent_option()]
agent_option() = {restart_type, restart_type()} |
@@ -649,11 +649,13 @@
process performs a GC to remove the expired note's. Time in
milli-seconds.</p>
<p>Default is <c>30000</c>.</p>
+
+ <marker id="audit_trail_log"></marker>
</item>
<tag><c><![CDATA[audit_trail_log() [audit_trail_log_opt()] <optional>]]></c></tag>
<item>
- <p><c>audit_trail_log_opt() = {type, atl_type()} | {dir, atl_dir()} | {size, atl_size()} | {repair, atl_repair()}</c></p>
+ <p><c>audit_trail_log_opt() = {type, atl_type()} | {dir, atl_dir()} | {size, atl_size()} | {repair, atl_repair()} | {seqno, atl_seqno()}</c></p>
<p>If present, this option specifies the options for the
<em>audit trail logging</em>. The <c>disk_log</c> module is used
to maintain a wrap log. If present, the <c>dir</c> and
@@ -708,6 +710,13 @@
analysis.</p>
<p>Default is <c>true</c>.</p>
</item>
+ <tag><c><![CDATA[atl_seqno() = true | false <optional>]]></c></tag>
+ <item>
+ <p>Specifies if the audit trail log entries will be (sequence)
+ numbered or not. The range of the sequence numbers are according
+ to RFC 5424, i.e. 1 through 2147483647. </p>
+ <p>Default is <c>false</c>.</p>
+ </item>
</taglist>
</section>
diff --git a/lib/snmp/doc/src/snmpa_conf.xml b/lib/snmp/doc/src/snmpa_conf.xml
index f383394b7a..d873574c6e 100644
--- a/lib/snmp/doc/src/snmpa_conf.xml
+++ b/lib/snmp/doc/src/snmpa_conf.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2006</year><year>2009</year>
+ <year>2006</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>snmpa_conf</title>
diff --git a/lib/snmp/src/agent/snmpa.erl b/lib/snmp/src/agent/snmpa.erl
index 79493bd892..a113bba3a7 100644
--- a/lib/snmp/src/agent/snmpa.erl
+++ b/lib/snmp/src/agent/snmpa.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(snmpa).
@@ -83,6 +83,7 @@
%% Audit Trail Log functions
-export([log_to_txt/2, log_to_txt/3, log_to_txt/4,
log_to_txt/5, log_to_txt/6, log_to_txt/7,
+ log_info/0,
change_log_size/1,
get_log_type/0, get_log_type/1,
change_log_type/1, change_log_type/2,
@@ -535,6 +536,7 @@ get_agent_caps() ->
%%%-----------------------------------------------------------------
%%% Audit Trail Log functions
%%%-----------------------------------------------------------------
+
log_to_txt(LogDir, Mibs) ->
OutFile = "snmpa_log.txt",
LogName = ?audit_trail_log_name,
@@ -555,6 +557,11 @@ log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Start, Stop) ->
snmp:log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Start, Stop).
+log_info() ->
+ LogName = ?audit_trail_log_name,
+ snmp_log:info(LogName).
+
+
change_log_size(NewSize) ->
LogName = ?audit_trail_log_name, % The old (agent) default
snmp:change_log_size(LogName, NewSize).
diff --git a/lib/snmp/src/agent/snmpa_agent.erl b/lib/snmp/src/agent/snmpa_agent.erl
index 508a1da514..fb04fca632 100644
--- a/lib/snmp/src/agent/snmpa_agent.erl
+++ b/lib/snmp/src/agent/snmpa_agent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(snmpa_agent).
@@ -58,6 +58,7 @@
-export([get_log_type/1, set_log_type/2]).
-export([get_request_limit/1, set_request_limit/2]).
-export([invalidate_ca_cache/0]).
+-export([increment_counter/3]).
-export([restart_worker/1, restart_set_worker/1]).
%% Internal exports
@@ -259,6 +260,29 @@ update_mibs_cache_age(Agent, Age) ->
call(Agent, {mibs_cache_request, {update_age, Age}}).
+increment_counter(Counter, Initial, Max) ->
+ %% This is to make sure no one else increments our counter
+ Key = {Counter, self()},
+
+ %% Counter data
+ Position = 2,
+ Increment = 1,
+ Threshold = Max,
+ SetValue = Initial,
+ UpdateOp = {Position, Increment, Threshold, SetValue},
+
+ %% And now for the actual increment
+ Tab = snmp_agent_table,
+ case (catch ets:update_counter(Tab, Key, UpdateOp)) of
+ {'EXIT', {badarg, _}} ->
+ %% Oups, first time
+ ets:insert(Tab, {Key, Initial}),
+ Initial;
+ Next when is_integer(Next) ->
+ Next
+ end.
+
+
init([Prio, Parent, Ref, Options]) ->
?d("init -> entry with"
"~n Prio: ~p"
@@ -1223,79 +1247,23 @@ handle_mibs_cache_request(MibServer, Req) ->
%% Downgrade
%%
-code_change({down, _Vsn}, S, downgrade_to_pre_4_13) ->
- S1 = workers_restart(S),
- case S1#state.disco of
- undefined ->
- ok;
- #disco{from = From,
- sender = Sender,
- stage = Stage} ->
- gen_server:reply(From, {error, {upgrade, Stage, Sender}}),
- exit(Sender, kill)
- end,
- S2 = {state,
- S1#state.type,
- S1#state.parent,
- S1#state.worker,
- S1#state.worker_state,
- S1#state.set_worker,
- S1#state.multi_threaded,
- S1#state.ref,
- S1#state.vsns,
- S1#state.nfilters,
- S1#state.note_store,
- S1#state.mib_server,
- S1#state.net_if,
- S1#state.net_if_mod,
- S1#state.backup,
- S1#state.disco},
- {ok, S2};
+%% code_change({down, _Vsn}, S, downgrade_to_pre_4_13) ->
+%% {ok, S2};
%% Upgrade
%%
-code_change(_Vsn, S, upgrade_from_pre_4_13) ->
- {state,
- Type,
- Parent,
- Worker,
- WorkerState,
- SetWorker,
- MultiThreaded,
- Ref,
- Vsns,
- NFilters = [],
- NoteStore,
- MibServer, %% Currently unused
- NetIf, %% Currently unused
- NetIfMod,
- Backup} = S,
- S1 = #state{type = Type,
- parent = Parent,
- worker = Worker,
- worker_state = WorkerState,
- set_worker = SetWorker,
- multi_threaded = MultiThreaded,
- ref = Ref,
- vsns = Vsns,
- nfilters = NFilters,
- note_store = NoteStore,
- mib_server = MibServer,
- net_if = NetIf,
- net_if_mod = NetIfMod,
- backup = Backup},
- S2 = workers_restart(S1),
- {ok, S2};
+%% code_change(_Vsn, S, upgrade_from_pre_4_13) ->
+%% {ok, S2};
code_change(_Vsn, S, _Extra) ->
{ok, S}.
-workers_restart(#state{worker = W, set_worker = SW} = S) ->
- Worker = worker_restart(W),
- SetWorker = set_worker_restart(SW),
- S#state{worker = Worker,
- set_worker = SetWorker}.
+%% workers_restart(#state{worker = W, set_worker = SW} = S) ->
+%% Worker = worker_restart(W),
+%% SetWorker = set_worker_restart(SW),
+%% S#state{worker = Worker,
+%% set_worker = SetWorker}.
%%-----------------------------------------------------------------
@@ -1321,8 +1289,8 @@ set_worker_start() ->
worker_start(Dict) ->
proc_lib:spawn_link(?MODULE, worker, [self(), Dict]).
-worker_stop(Pid) ->
- worker_stop(Pid, infinity).
+%% worker_stop(Pid) ->
+%% worker_stop(Pid, infinity).
worker_stop(Pid, Timeout) when is_pid(Pid) ->
Pid ! terminate,
@@ -1336,17 +1304,17 @@ worker_stop(Pid, Timeout) when is_pid(Pid) ->
worker_stop(_, _) ->
ok.
-set_worker_restart(Pid) ->
- worker_restart(Pid, [{master, self()} | get()]).
+%% set_worker_restart(Pid) ->
+%% worker_restart(Pid, [{master, self()} | get()]).
-worker_restart(Pid) ->
- worker_restart(Pid, get()).
+%% worker_restart(Pid) ->
+%% worker_restart(Pid, get()).
-worker_restart(Pid, Dict) when is_pid(Pid) ->
- worker_stop(Pid),
- worker_start(Dict);
-worker_restart(Any, _Dict) ->
- Any.
+%% worker_restart(Pid, Dict) when is_pid(Pid) ->
+%% worker_stop(Pid),
+%% worker_start(Dict);
+%% worker_restart(Any, _Dict) ->
+%% Any.
%%-----------------------------------------------------------------
diff --git a/lib/snmp/src/agent/snmpa_net_if.erl b/lib/snmp/src/agent/snmpa_net_if.erl
index d703e5ac55..3a91cf4033 100644
--- a/lib/snmp/src/agent/snmpa_net_if.erl
+++ b/lib/snmp/src/agent/snmpa_net_if.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(snmpa_net_if).
@@ -55,6 +55,9 @@
-define(DEFAULT_FILTER_MODULE, snmpa_net_if_filter).
-define(DEFAULT_FILTER_OPTS, [{module, ?DEFAULT_FILTER_MODULE}]).
+-define(ATL_SEQNO_INITIAL, 1).
+-define(ATL_SEQNO_MAX, 2147483647).
+
%%%-----------------------------------------------------------------
%%% This module implements the default Network Interface part
@@ -194,24 +197,43 @@ do_init(Prio, NoteStore, MasterAgent, Parent, Opts) ->
{error, {udp_open, UDPPort, Reason}}
end.
+
create_log() ->
case ets:lookup(snmp_agent_table, audit_trail_log) of
[] ->
{undefined, []};
[{audit_trail_log, AtlOpts}] ->
- ?vtrace("AtlOpts: ~p",[AtlOpts]),
+ ?vtrace("AtlOpts: ~p", [AtlOpts]),
Type = get_atl_type(AtlOpts),
Dir = get_atl_dir(AtlOpts),
Size = get_atl_size(AtlOpts),
Repair = get_atl_repair(AtlOpts),
Name = ?audit_trail_log_name,
File = filename:absname(?audit_trail_log_file, Dir),
- case snmp_log:create(Name, File, Size, Repair, true) of
- {ok, Log} ->
- ?vdebug("log created: ~w",[Log]),
- {Log, Type};
- {error, Reason} ->
- throw({error, {create_log, Reason}})
+ case get_atl_seqno(AtlOpts) of
+ true ->
+ Initial = ?ATL_SEQNO_INITIAL,
+ Max = ?ATL_SEQNO_MAX,
+ Module = snmpa_agent,
+ Function = increment_counter,
+ Args = [atl_seqno, Initial, Max],
+ SeqNoGen = {Module, Function, Args},
+ case snmp_log:create(Name, File,
+ SeqNoGen, Size, Repair, true) of
+ {ok, Log} ->
+ ?vdebug("log created: ~w", [Log]),
+ {Log, Type};
+ {error, Reason} ->
+ throw({error, {create_log, Reason}})
+ end;
+ _ ->
+ case snmp_log:create(Name, File, Size, Repair, true) of
+ {ok, Log} ->
+ ?vdebug("log created: ~w", [Log]),
+ {Log, Type};
+ {error, Reason} ->
+ throw({error, {create_log, Reason}})
+ end
end
end.
@@ -918,61 +940,29 @@ system_continue(_Parent, _Dbg, S) ->
loop(S).
system_terminate(Reason, _Parent, _Dbg, #state{log = Log}) ->
+ ?vlog("system-terminate -> entry with"
+ "~n Reason: ~p", [Reason]),
do_close_log(Log),
exit(Reason).
-system_code_change(OldState, _Module, _OldVsn, upgrade_from_pre_4_10) ->
- {state,
- parent = Parent,
- note_store = NS,
- master_agent = MA,
- usock = Sock,
- usock_opts = SockOpts,
- mpd_state = MpdState,
- log = Log,
- reqs = Reqs,
- debug = Dbg,
- limit = Limit,
- rcnt = RCNT} = OldState,
- NewState = #state{parent = Parent,
- note_store = NS,
- master_agent = MA,
- usock = Sock,
- usock_opts = SockOpts,
- mpd_state = MpdState,
- log = Log,
- reqs = Reqs,
- debug = Dbg,
- limit = Limit,
- rcnt = RCNT,
- filter = create_filter(?DEFAULT_FILTER_OPTS)},
+system_code_change(OldState, _Module, _OldVsn, downgrade_to_pre_4_16) ->
+ {OldLog, Type} = OldState#state.log,
+ NewLog = snmp_log:downgrade(OldLog),
+ NewState = OldState#state{log = {NewLog, Type}},
{ok, NewState};
-system_code_change(OldState, _Module, _OldVsn, downgrade_to_pre_4_10) ->
- #state{parent = Parent,
- note_store = NS,
- master_agent = MA,
- usock = Sock,
- usock_opts = SockOpts,
- mpd_state = MpdState,
- log = Log,
- reqs = Reqs,
- debug = Dbg,
- limit = Limit,
- rcnt = RCNT} = OldState,
- NewState =
- {state,
- parent = Parent,
- note_store = NS,
- master_agent = MA,
- usock = Sock,
- usock_opts = SockOpts,
- mpd_state = MpdState,
- log = Log,
- reqs = Reqs,
- debug = Dbg,
- limit = Limit,
- rcnt = RCNT},
+
+system_code_change(OldState, _Module, _OldVsn, upgrade_from_pre_4_16) ->
+ Initial = ?ATL_SEQNO_INITIAL,
+ Max = ?ATL_SEQNO_MAX,
+ Module = snmpa_agent,
+ Function = increment_counter,
+ Args = [atl_seqno, Initial, Max],
+ SeqNoGen = {Module, Function, Args},
+ {OldLog, Type} = OldState#state.log,
+ NewLog = snmp_log:upgrade(OldLog, SeqNoGen),
+ NewState = OldState#state{log = {NewLog, Type}},
{ok, NewState};
+
system_code_change(S, _Module, _OldVsn, _Extra) ->
{ok, S}.
@@ -1111,6 +1101,9 @@ get_atl_size(Opts) ->
get_atl_repair(Opts) ->
snmp_misc:get_option(repair, Opts, true).
+get_atl_seqno(Opts) ->
+ snmp_misc:get_option(seqno, Opts, false).
+
get_verbosity(Opts) ->
snmp_misc:get_option(verbosity, Opts, ?default_verbosity).
diff --git a/lib/snmp/src/agent/snmpa_usm.erl b/lib/snmp/src/agent/snmpa_usm.erl
index a8c395534f..12a6b996ff 100644
--- a/lib/snmp/src/agent/snmpa_usm.erl
+++ b/lib/snmp/src/agent/snmpa_usm.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(snmpa_usm).
@@ -396,7 +396,9 @@ try_decrypt(?usmDESPrivProtocol,
case (catch des_decrypt(PrivKey, UsmSecParams, EncryptedPDU)) of
{ok, DecryptedData} ->
DecryptedData;
- _ ->
+ Error ->
+ ?vlog("try_decrypt -> failed DES decrypt"
+ "~n Error: ~p", [Error]),
error(usmStatsDecryptionErrors,
?usmStatsDecryptionErrors_instance, % OTP-5464
SecName)
@@ -406,7 +408,9 @@ try_decrypt(?usmAesCfb128Protocol,
case (catch aes_decrypt(PrivKey, UsmSecParams, EncryptedPDU)) of
{ok, DecryptedData} ->
DecryptedData;
- _ ->
+ Error ->
+ ?vlog("try_decrypt -> failed AES decrypt"
+ "~n Error: ~p", [Error]),
error(usmStatsDecryptionErrors,
?usmStatsDecryptionErrors_instance, % OTP-5464
SecName)
diff --git a/lib/snmp/src/app/snmp.appup.src b/lib/snmp/src/app/snmp.appup.src
index 0b8f0bbddd..511c0eb48b 100644
--- a/lib/snmp/src/app/snmp.appup.src
+++ b/lib/snmp/src/app/snmp.appup.src
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -24,23 +24,44 @@
[
{"4.15",
[
+ {load_module, snmpa, soft_purge, soft_purge, [snmp_log]},
+ {load_module, snmp_config, soft_purge, soft_purge, []},
+ {load_module, snmp_log, soft_purge, soft_purge, []},
+ {update, snmpa_net_if, {advanced, upgrade_from_pre_4_16},
+ soft_purge, soft_purge, [snmpa_agent, snmp_log]},
+ {update, snmpa_agent, soft, soft_purge, soft_purge, []},
+
+ {update, snmpm_config, soft, soft_purge, soft_purge, []}
]
},
{"4.14",
[
+ {load_module, snmpa, soft_purge, soft_purge, [snmp_log]},
+ {load_module, snmp_config, soft_purge, soft_purge, []},
+ {load_module, snmp_log, soft_purge, soft_purge, []},
+ {update, snmpa_net_if, {advanced, upgrade_from_pre_4_16},
+ soft_purge, soft_purge, [snmpa_agent, snmp_log]},
+ {update, snmpa_agent, soft, soft_purge, soft_purge, []},
+
{load_module, snmpm_user, soft_purge, soft_purge, []},
{load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]},
+ {update, snmpm_config, soft, soft_purge, soft_purge, []},
{update, snmpm_server, soft, soft_purge, soft_purge,
[snmpm_user_default]}
]
},
{"4.13.5",
[
- {load_module, snmpm_user, soft_purge, soft_purge, []},
- {load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]},
{load_module, snmpa_mib_data, soft_purge, soft_purge, []},
+ {load_module, snmpa, soft_purge, soft_purge, [snmp_log]},
+ {load_module, snmp_config, soft_purge, soft_purge, []},
+ {load_module, snmp_log, soft_purge, soft_purge, []},
+ {update, snmpa_net_if, {advanced, upgrade_from_pre_4_16},
+ soft_purge, soft_purge, [snmpa_agent, snmp_log]},
{update, snmpa_agent, soft, soft_purge, soft_purge, []},
- {update, snmpa_net_if, soft, soft_purge, soft_purge, []},
+
+ {load_module, snmpm_user, soft_purge, soft_purge, []},
+ {load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]},
{update, snmpm_config, soft, soft_purge, soft_purge, []},
{update, snmpm_server, soft, soft_purge, soft_purge, [snmpm_user_default]},
{add_module, snmpm_net_if_filter},
@@ -54,22 +75,44 @@
[
{"4.15",
[
+ {load_module, snmpa, soft_purge, soft_purge, [snmp_log]},
+ {load_module, snmp_config, soft_purge, soft_purge, []},
+ {load_module, snmp_log, soft_purge, soft_purge, []},
+ {update, snmpa_net_if, {advanced, downgrade_to_pre_4_16},
+ soft_purge, soft_purge, [snmpa_agent, snmp_log]},
+ {update, snmpa_agent, soft, soft_purge, soft_purge, []},
+
+ {update, snmpm_config, soft, soft_purge, soft_purge, []}
]
},
{"4.14",
[
+ {load_module, snmpa, soft_purge, soft_purge, [snmp_log]},
+ {load_module, snmp_config, soft_purge, soft_purge, []},
+ {load_module, snmp_log, soft_purge, soft_purge, []},
+ {update, snmpa_net_if, {advanced, downgrade_to_pre_4_16},
+ soft_purge, soft_purge, [snmpa_agent, snmp_log]},
+ {update, snmpa_agent, soft, soft_purge, soft_purge, []},
+
{load_module, snmpm_user, soft_purge, soft_purge, []},
{load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]},
- {update, snmpm_server, soft, soft_purge, soft_purge, [snmpm_user_default]}
+ {update, snmpm_config, soft, soft_purge, soft_purge, []},
+ {update, snmpm_server, soft, soft_purge, soft_purge,
+ [snmpm_user_default]}
]
},
{"4.13.5",
[
- {load_module, snmpm_user, soft_purge, soft_purge, []},
- {load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]},
{load_module, snmpa_mib_data, soft_purge, soft_purge, []},
+ {load_module, snmp_config, soft_purge, soft_purge, []},
+ {load_module, snmpa, soft_purge, soft_purge, [snmp_log]},
+ {load_module, snmp_log, soft_purge, soft_purge, []},
+ {update, snmpa_net_if, {advanced, downgrade_to_pre_4_16},
+ soft_purge, soft_purge, [snmpa_agent, snmp_log]},
{update, snmpa_agent, soft, soft_purge, soft_purge, []},
- {update, snmpa_net_if, soft, soft_purge, soft_purge, []},
+
+ {load_module, snmpm_user, soft_purge, soft_purge, []},
+ {load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]},
{update, snmpm_config, soft, soft_purge, soft_purge, []},
{update, snmpm_server, soft, soft_purge, soft_purge, [snmpm_user_default]},
{remove, {snmpm_net_if_filter, soft_purge, brutal_purge}},
diff --git a/lib/snmp/src/manager/snmpm_config.erl b/lib/snmp/src/manager/snmpm_config.erl
index 1a5400bf8e..b976e8f568 100644
--- a/lib/snmp/src/manager/snmpm_config.erl
+++ b/lib/snmp/src/manager/snmpm_config.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%% -------------------------------------------------------------------------
@@ -63,6 +63,7 @@
cre_counter/2,
incr_counter/2,
+ increment_counter/3, increment_counter/4,
cre_stats_counter/2,
maybe_cre_stats_counter/2,
@@ -792,6 +793,34 @@ incr_counter(Counter, Incr, Wrap) ->
end.
+%% <ATL Sequence Number>
+increment_counter(Counter, Initial, Max) ->
+ Increment = 1,
+ increment_counter(Counter, Initial, Increment, Max).
+
+increment_counter(Counter, Initial, Increment, Max) ->
+ %% This is to make sure no one else increments our counter
+ Key = {Counter, self()},
+
+ %% Counter data
+ Position = 2,
+ Threshold = Max,
+ SetValue = Initial,
+ UpdateOp = {Position, Increment, Threshold, SetValue},
+
+ %% And now for the actual increment
+ Tab = snmpm_counter_table,
+ case (catch ets:update_counter(Tab, Key, UpdateOp)) of
+ {'EXIT', {badarg, _}} ->
+ %% Oups, first time
+ ets:insert(Tab, {Key, Initial}),
+ Initial;
+ Next when is_integer(Next) ->
+ Next
+ end.
+%% </ATL Sequence Number>
+
+
maybe_cre_stats_counter(Counter, Initial) ->
case ets:lookup(snmpm_stats_table, Counter) of
[_] ->
@@ -1013,14 +1042,16 @@ do_init(Opts) ->
AuditTrailLogOpts ->
?vtrace("ATL options: ~p", [AuditTrailLogOpts]),
ets:insert(snmpm_config_table, {audit_trail_log, true}),
- LogDir = get_atl_dir(AuditTrailLogOpts),
- LogType = get_atl_type(AuditTrailLogOpts),
- LogSize = get_atl_size(AuditTrailLogOpts),
- LogRep = get_atl_repair(AuditTrailLogOpts),
+ LogDir = get_atl_dir(AuditTrailLogOpts),
+ LogType = get_atl_type(AuditTrailLogOpts),
+ LogSize = get_atl_size(AuditTrailLogOpts),
+ LogRep = get_atl_repair(AuditTrailLogOpts),
+ LogSeqNo = get_atl_seqno(AuditTrailLogOpts),
ets:insert(snmpm_config_table, {audit_trail_log_dir, LogDir}),
ets:insert(snmpm_config_table, {audit_trail_log_type, LogType}),
ets:insert(snmpm_config_table, {audit_trail_log_size, LogSize}),
- ets:insert(snmpm_config_table, {audit_trail_log_repair, LogRep})
+ ets:insert(snmpm_config_table, {audit_trail_log_repair, LogRep}),
+ ets:insert(snmpm_config_table, {audit_trail_log_seqno, LogSeqNo})
end,
%% -- System default agent config --
@@ -1398,6 +1429,9 @@ verify_audit_trail_log_opts([{size, Size}|Opts]) ->
verify_audit_trail_log_opts([{repair, Repair}|Opts]) ->
verify_log_repair(Repair),
verify_audit_trail_log_opts(Opts);
+verify_audit_trail_log_opts([{seqno, SeqNo}|Opts]) ->
+ verify_log_seqno(SeqNo),
+ verify_audit_trail_log_opts(Opts);
verify_audit_trail_log_opts([Opt|_Opts]) ->
error({invalid_audit_trail_log_option, Opt}).
@@ -1440,6 +1474,11 @@ verify_log_repair(truncate) -> ok;
verify_log_repair(Repair) ->
error({invalid_audit_trail_log_repair, Repair}).
+verify_log_seqno(true) -> ok;
+verify_log_seqno(false) -> ok;
+verify_log_seqno(SeqNo) ->
+ error({invalid_audit_trail_log_seqno, SeqNo}).
+
verify_module(_, Mod) when is_atom(Mod) ->
ok;
@@ -1618,7 +1657,8 @@ verify_agent({UserId,
{ok, Addr} ->
snmp_conf:check_integer(Port, {gt, 0}),
Conf =
- [{address, Addr},
+ [{reg_type, target_name},
+ {address, Addr},
{port, Port},
{community, Comm},
{engine_id, EngineId},
@@ -3040,6 +3080,9 @@ get_atl_size(Opts) ->
get_atl_repair(Opts) ->
get_opt(repair, Opts, truncate).
+get_atl_seqno(Opts) ->
+ get_opt(seqno, Opts, false).
+
%%----------------------------------------------------------------------
diff --git a/lib/snmp/src/manager/snmpm_net_if.erl b/lib/snmp/src/manager/snmpm_net_if.erl
index 14d39933dc..ad39157721 100644
--- a/lib/snmp/src/manager/snmpm_net_if.erl
+++ b/lib/snmp/src/manager/snmpm_net_if.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -81,6 +81,9 @@
-define(IRGC_TIMEOUT, timer:minutes(5)).
+-define(ATL_SEQNO_INITIAL, 1).
+-define(ATL_SEQNO_MAX, 2147483647).
+
%%%-------------------------------------------------------------------
%%% API
@@ -297,11 +300,29 @@ do_init_log(true) ->
{ok, Repair} = snmpm_config:system_info(audit_trail_log_repair),
Name = ?audit_trail_log_name,
File = filename:absname(?audit_trail_log_file, Dir),
- case snmp_log:create(Name, File, Size, Repair, true) of
- {ok, Log} ->
- {Log, Type};
- {error, Reason} ->
- throw({error, {failed_create_audit_log, Reason}})
+ case snmpm_config:system_info(audit_trail_log_seqno) of
+ {ok, true} ->
+ Initial = ?ATL_SEQNO_INITIAL,
+ Max = ?ATL_SEQNO_MAX,
+ Module = snmpm_config,
+ Function = increment_counter,
+ Args = [atl_seqno, Initial, Max],
+ SeqNoGen = {Module, Function, Args},
+ case snmp_log:create(Name, File,
+ SeqNoGen, Size, Repair, true) of
+ {ok, Log} ->
+ ?vdebug("log created: ~w", [Log]),
+ {Log, Type};
+ {error, Reason} ->
+ throw({error, {failed_create_audit_log, Reason}})
+ end;
+ _ ->
+ case snmp_log:create(Name, File, Size, Repair, true) of
+ {ok, Log} ->
+ {Log, Type};
+ {error, Reason} ->
+ throw({error, {failed_create_audit_log, Reason}})
+ end
end.
@@ -441,32 +462,19 @@ do_close_log(_) ->
%% Returns: {ok, NewState}
%%----------------------------------------------------------------------
-code_change({down, _Vsn}, OldState, downgrade_to_pre45) ->
+code_change({down, _Vsn}, OldState, downgrade_to_pre_4_16) ->
?d("code_change(down) -> entry", []),
- #state{server = Server,
- note_store = NoteStore,
- sock = Sock,
- mpd_state = MpdState,
- log = Log,
- irgc = IrGcRef} = OldState,
- irgc_stop(IrGcRef),
- (catch ets:delete(snmpm_inform_request_table)),
- State = {state, Server, NoteStore, Sock, MpdState, Log},
+ {OldLog, Type} = OldState#state.log,
+ NewLog = snmp_log:downgrade(OldLog),
+ State = OldState#state{log = {NewLog, Type}},
{ok, State};
% upgrade
-code_change(_Vsn, OldState, upgrade_from_pre45) ->
+code_change(_Vsn, OldState, upgrade_from_pre_4_16) ->
?d("code_change(up) -> entry", []),
- {state, Server, NoteStore, Sock, MpdState, Log} = OldState,
- State = #state{server = Server,
- note_store = NoteStore,
- sock = Sock,
- mpd_state = MpdState,
- log = Log,
- irb = auto,
- irgc = undefined},
- ets:new(snmpm_inform_request_table,
- [set, protected, named_table, {keypos, 1}]),
+ {OldLog, Type} = OldState#state.log,
+ NewLog = snmp_log:upgrade(OldLog),
+ State = OldState#state{log = {NewLog, Type}},
{ok, State};
code_change(_Vsn, State, _Extra) ->
diff --git a/lib/snmp/src/misc/snmp_config.erl b/lib/snmp/src/misc/snmp_config.erl
index ad41eaf160..c066680160 100644
--- a/lib/snmp/src/misc/snmp_config.erl
+++ b/lib/snmp/src/misc/snmp_config.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -327,10 +327,15 @@ config_agent_sys() ->
ATLRepair = ask("23f. Audit trail log repair "
"(true/false/truncate/snmp_repair)?", "true",
fun verify_atl_repair/1),
+ ATLSeqNo = ask("23g. Audit trail log "
+ "sequence-numbering (true/false)?",
+ "false",
+ fun verify_atl_seqno/1),
[{audit_trail_log, [{type, ATLType},
{dir, ATLDir},
{size, ATLSize},
- {repair, ATLRepair}]}];
+ {repair, ATLRepair},
+ {seqno, ATLSeqNo}]}];
no ->
[]
end,
@@ -400,8 +405,39 @@ config_agent_sys() ->
NetIf = [{module, NetIfMod},
{verbosity, NetIfVerb},
{options, NetIfOpts}],
+ TermDiscoEnable = ask("26a. Allow terminating discovery "
+ "(true/false)?", "true",
+ fun verify_bool/1),
+ TermDiscoConf =
+ case TermDiscoEnable of
+ true ->
+ TermDiscoStage2 =
+ ask("26b. Second stage behaviour "
+ "(discovery/plain)?", "discovery",
+ fun verify_term_disco_behaviour/1),
+ TermDiscoTrigger =
+ ask("26c. Trigger username "
+ "(default/a string)?", "default",
+ fun verify_term_disco_trigger_username/1),
+ [{enable, TermDiscoEnable},
+ {stage2, TermDiscoStage2},
+ {trigger_username, TermDiscoTrigger}];
+ false ->
+ [{enable, TermDiscoEnable},
+ {stage2, discovery},
+ {trigger_username, ""}]
+ end,
+ OrigDiscoEnable = ask("27a. Allow originating discovery "
+ "(true/false)?", "true",
+ fun verify_bool/1),
+ OrigDiscoConf =
+ [{enable, OrigDiscoEnable}],
+ DiscoveryConfig =
+ [{terminating, TermDiscoConf},
+ {originating, OrigDiscoConf}],
[{agent_type, master},
{agent_verbosity, MasterAgentVerb},
+ {discovery, DiscoveryConfig},
{config, [{dir, ConfigDir},
{force_load, ForceLoad},
{verbosity, ConfigVerb}]},
@@ -644,23 +680,31 @@ config_manager_sys() ->
"(y/n)?",
"n", fun verify_yes_or_no/1) of
yes ->
- ATLDir = ask("19b. Where to store the "
+ ATLType = ask("19b. Audit trail log type "
+ "(write/read_write)?",
+ "read_write", fun verify_atl_type/1),
+ ATLDir = ask("19c. Where to store the "
"audit trail log?",
DefDir, fun verify_dir/1),
- ATLMaxFiles = ask("19c. Max number of files?",
+ ATLMaxFiles = ask("19d. Max number of files?",
"10",
fun verify_pos_integer/1),
- ATLMaxBytes = ask("19d. Max size (in bytes) "
+ ATLMaxBytes = ask("19e. Max size (in bytes) "
"of each file?",
"10240",
fun verify_pos_integer/1),
ATLSize = {ATLMaxBytes, ATLMaxFiles},
- ATLRepair = ask("19e. Audit trail log repair "
+ ATLRepair = ask("19f. Audit trail log repair "
"(true/false/truncate/snmp_repair)?", "true",
fun verify_atl_repair/1),
- [{audit_trail_log, [{dir, ATLDir},
+ ATLSeqNo = ask("19g. Audit trail log sequence-numbering "
+ "(true/false)?", "false",
+ fun verify_atl_seqno/1),
+ [{audit_trail_log, [{type, ATLType},
+ {dir, ATLDir},
{size, ATLSize},
- {repair, ATLRepair}]}];
+ {repair, ATLRepair},
+ {seqno, ATLSeqNo}]}];
no ->
[]
end,
@@ -1180,6 +1224,13 @@ verify_atl_repair("snmp_repair") ->
verify_atl_repair(R) ->
{error, "invalid audit trail log repair: " ++ R}.
+verify_atl_seqno("true") ->
+ {ok, true};
+verify_atl_seqno("false") ->
+ {ok, false};
+verify_atl_seqno(SN) ->
+ {error, "invalid audit trail log seqno: " ++ SN}.
+
verify_pos_integer(I0) ->
case (catch list_to_integer(I0)) of
@@ -1237,6 +1288,18 @@ verify_irb_user(TO) ->
end.
+verify_term_disco_behaviour("discovery") ->
+ {ok, discovery};
+verify_term_disco_behaviour("plain") ->
+ {ok, plain};
+verify_term_disco_behaviour(B) ->
+ {error, "invalid terminating discovery behaviour: " ++ B}.
+
+verify_term_disco_trigger_username("default") ->
+ {ok, ""};
+verify_term_disco_trigger_username(Trigger) ->
+ {ok, Trigger}.
+
verify_user_id(UserId) when is_list(UserId) ->
case (catch list_to_atom(UserId)) of
@@ -1743,7 +1806,7 @@ write_agent_snmp_notify_conf(Dir, NotifyType) ->
"%% {\"standard inform\", \"std_inform\", inform}.\n"
"%%\n\n",
Hdr = header() ++ Comment,
- Conf = [{"stadard_trap", "std_trap", NotifyType}],
+ Conf = [{"standard trap", "std_trap", NotifyType}],
write_agent_notify_config(Dir, Hdr, Conf).
write_agent_notify_config(Dir, Hdr, Conf) ->
@@ -2096,6 +2159,10 @@ write_sys_config_file_agent_opt(Fid, {audit_trail_log, Opts}) ->
ok = io:format(Fid, " {audit_trail_log, [", []),
write_sys_config_file_agent_atl_opts(Fid, Opts),
ok = io:format(Fid, "}", []);
+write_sys_config_file_agent_opt(Fid, {discovery, Opts}) ->
+ ok = io:format(Fid, " {discovery, [", []),
+ write_sys_config_file_agent_disco_opts(Fid, Opts),
+ ok = io:format(Fid, "}", []);
write_sys_config_file_agent_opt(Fid, {net_if, Opts}) ->
ok = io:format(Fid, " {net_if, ~w}", [Opts]);
write_sys_config_file_agent_opt(Fid, {mib_server, Opts}) ->
@@ -2139,7 +2206,58 @@ write_sys_config_file_agent_atl_opt(Fid, {type, Type}) ->
write_sys_config_file_agent_atl_opt(Fid, {size, Size}) ->
ok = io:format(Fid, "{size, ~w}", [Size]);
write_sys_config_file_agent_atl_opt(Fid, {repair, Rep}) ->
- ok = io:format(Fid, "{repair, ~w}", [Rep]).
+ ok = io:format(Fid, "{repair, ~w}", [Rep]);
+write_sys_config_file_agent_atl_opt(Fid, {seqno, SeqNo}) ->
+ ok = io:format(Fid, "{seqno, ~w}", [SeqNo]).
+
+
+%% These options are allways there
+write_sys_config_file_agent_disco_opts(Fid, [Opt]) ->
+ write_sys_config_file_agent_disco_opt(Fid, Opt),
+ ok = io:format(Fid, "]", []),
+ ok;
+write_sys_config_file_agent_disco_opts(Fid, [Opt|Opts]) ->
+ write_sys_config_file_agent_disco_opt(Fid, Opt),
+ ok = io:format(Fid, ", ", []),
+ write_sys_config_file_agent_disco_opts(Fid, Opts).
+
+write_sys_config_file_agent_disco_opt(Fid, {terminating, Opts}) ->
+ ok = io:format(Fid, "{terminating, [", []),
+ write_sys_config_file_agent_term_disco_opts(Fid, Opts),
+ ok = io:format(Fid, "}", []);
+write_sys_config_file_agent_disco_opt(Fid, {originating, Opts}) ->
+ ok = io:format(Fid, "{originating, [", []),
+ write_sys_config_file_agent_orig_disco_opts(Fid, Opts),
+ ok = io:format(Fid, "}", []).
+
+write_sys_config_file_agent_term_disco_opts(Fid, [Opt]) ->
+ write_sys_config_file_agent_term_disco_opt(Fid, Opt),
+ ok = io:format(Fid, "]", []),
+ ok;
+write_sys_config_file_agent_term_disco_opts(Fid, [Opt|Opts]) ->
+ write_sys_config_file_agent_term_disco_opt(Fid, Opt),
+ ok = io:format(Fid, ", ", []),
+ write_sys_config_file_agent_term_disco_opts(Fid, Opts).
+
+write_sys_config_file_agent_term_disco_opt(Fid, {enable, Enable}) ->
+ ok = io:format(Fid, "{enable, ~w}", [Enable]);
+write_sys_config_file_agent_term_disco_opt(Fid, {stage2, Stage2}) ->
+ ok = io:format(Fid, "{stage2, ~w}", [Stage2]);
+write_sys_config_file_agent_term_disco_opt(Fid, {trigger_username, Trigger}) ->
+ ok = io:format(Fid, "{trigger_username, \"~s\"}", [Trigger]).
+
+write_sys_config_file_agent_orig_disco_opts(Fid, [Opt]) ->
+ write_sys_config_file_agent_orig_disco_opt(Fid, Opt),
+ ok = io:format(Fid, "]", []),
+ ok;
+write_sys_config_file_agent_orig_disco_opts(Fid, [Opt|Opts]) ->
+ write_sys_config_file_agent_orig_disco_opt(Fid, Opt),
+ ok = io:format(Fid, ", ", []),
+ write_sys_config_file_agent_orig_disco_opts(Fid, Opts).
+
+write_sys_config_file_agent_orig_disco_opt(Fid, {enable, Enable}) ->
+ ok = io:format(Fid, "{enable, ~w}", [Enable]).
+
write_sys_config_file_manager_opts(Fid, [Opt]) ->
diff --git a/lib/snmp/src/misc/snmp_log.erl b/lib/snmp/src/misc/snmp_log.erl
index c3932ccc08..f9aa911817 100644
--- a/lib/snmp/src/misc/snmp_log.erl
+++ b/lib/snmp/src/misc/snmp_log.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -21,12 +21,19 @@
-export([
- create/4, create/5,
+ create/4, create/5, create/6,
change_size/2, close/1, sync/1, info/1,
log/4,
log_to_txt/5, log_to_txt/6, log_to_txt/7,
log_to_io/4, log_to_io/5, log_to_io/6
]).
+-export([
+ upgrade/1, upgrade/2,
+ downgrade/1
+ ]).
+-export([
+ validate/1, validate/2
+ ]).
-define(SNMP_USE_V3, true).
@@ -38,45 +45,105 @@
-define(LOG_FORMAT, internal).
-define(LOG_TYPE, wrap).
+-record(snmp_log, {id, seqno}).
+
%% --------------------------------------------------------------------
%% Exported functions
%% --------------------------------------------------------------------
+upgrade(Log) when is_record(Log, snmp_log) ->
+ Log;
+upgrade(Log) ->
+ upgrade(Log, disabled).
+
+upgrade(Log, _SeqNoGen) when is_record(Log, snmp_log) ->
+ Log;
+upgrade(Log, {M, F, A} = SeqNoGen)
+ when (is_atom(M) andalso is_atom(F) andalso is_list(A)) ->
+ #snmp_log{id = Log, seqno = SeqNoGen};
+upgrade(Log, SeqNoGen)
+ when is_function(SeqNoGen, 0) ->
+ #snmp_log{id = Log, seqno = SeqNoGen};
+upgrade(Log, disabled = SeqNoGen) ->
+ #snmp_log{id = Log, seqno = SeqNoGen}.
+
+downgrade(#snmp_log{id = Log}) ->
+ Log;
+downgrade(Log) ->
+ Log.
+
%% -- create ---
create(Name, File, Size, Repair) ->
- create(Name, File, Size, Repair, false).
-
-create(Name, File, Size, Repair, Notify) ->
+ create(Name, File, disabled, Size, Repair, false).
+
+create(Name, File, Size, Repair, Notify)
+ when (((Repair =:= true) orelse
+ (Repair =:= false) orelse
+ (Repair =:= truncate) orelse
+ (Repair =:= snmp_repair)) andalso
+ ((Notify =:= true) orelse
+ (Notify =:= false))) ->
+ create(Name, File, disabled, Size, Repair, Notify);
+create(Name, File, SeqNoGen, Size, Repair) ->
+ create(Name, File, SeqNoGen, Size, Repair, false).
+
+create(Name, File, SeqNoGen, Size, Repair, Notify)
+ when (((Repair =:= true) orelse
+ (Repair =:= false) orelse
+ (Repair =:= truncate) orelse
+ (Repair =:= snmp_repair)) andalso
+ ((Notify =:= true) orelse
+ (Notify =:= false))) ->
?vtrace("create -> entry with"
- "~n Name: ~p"
- "~n File: ~p"
- "~n Size: ~p"
- "~n Repair: ~p"
- "~n Notify: ~p", [Name, File, Size, Repair, Notify]),
- log_open(Name, File, Size, Repair, Notify).
+ "~n Name: ~p"
+ "~n File: ~p"
+ "~n SeqNoGen: ~p"
+ "~n Size: ~p"
+ "~n Repair: ~p"
+ "~n Notify: ~p", [Name, File, SeqNoGen, Size, Repair, Notify]),
+ log_open(Name, File, SeqNoGen, Size, Repair, Notify);
+create(Name, File, SeqNoGen, Size, Repair, Notify) ->
+ {error, {bad_args, Name, File, SeqNoGen, Size, Repair, Notify}}.
+
%% -- close ---
-close(Log) ->
+close(#snmp_log{id = Log}) ->
?vtrace("close -> entry with"
"~n Log: ~p", [Log]),
+ do_close(Log);
+close(Log) ->
+ do_close(Log).
+
+do_close(Log) ->
disk_log:close(Log).
%% -- close ---
+sync(#snmp_log{id = Log}) ->
+ do_sync(Log);
sync(Log) ->
+ do_sync(Log).
+
+do_sync(Log) ->
?vtrace("sync -> entry with"
"~n Log: ~p", [Log]),
disk_log:sync(Log).
+
%% -- info ---
+info(#snmp_log{id = Log}) ->
+ do_info(Log);
info(Log) ->
+ do_info(Log).
+
+do_info(Log) ->
case disk_log:info(Log) of
Info when is_list(Info) ->
Items = [no_current_bytes, no_current_items,
@@ -97,6 +164,138 @@ info_filter([Item|Items], Info, Acc) ->
end.
+%% -- validate --
+
+%% This function is used to "validate" a log.
+%% At present this means making sure all entries
+%% are in the proper order, and if sequence numbering
+%% is used that no entries are missing.
+%% It is intended to be used for testing.
+
+validate(Log) ->
+ validate(Log, false).
+
+validate(#snmp_log{id = Log}, SeqNoReq) ->
+ validate(Log, SeqNoReq);
+validate(Log, SeqNoReq)
+ when ((SeqNoReq =:= true) orelse (SeqNoReq =:= false)) ->
+ Validator =
+ fun({Timestamp, SeqNo, _Packet, _Addr, _Port}, {PrevTS, PrevSN}) ->
+ ?vtrace("validating log entry when"
+ "~n Timestamp: ~p"
+ "~n SeqNo: ~p"
+ "~n PrevTS: ~p"
+ "~n PrevSN: ~p",
+ [Timestamp, SeqNo, PrevTS, PrevSN]),
+ validate_timestamp(PrevTS, Timestamp),
+ validate_seqno(PrevSN, SeqNo),
+ {Timestamp, SeqNo};
+
+ ({Timestamp, _Packet, _Addr, _Port}, {PrevTS, _PrevSN}) when SeqNoReq =:= true ->
+ ?vtrace("validating log entry when"
+ "~n Timestamp: ~p"
+ "~n PrevTS: ~p",
+ [Timestamp, PrevTS]),
+ throw({error, {missing_seqno, Timestamp}});
+
+ ({Timestamp, _Packet, _Addr, _Port}, {PrevTS, PrevSN}) ->
+ ?vtrace("validating log entry when"
+ "~n Timestamp: ~p"
+ "~n PrevTS: ~p",
+ [Timestamp, PrevTS]),
+ validate_timestamp(PrevTS, Timestamp),
+ {Timestamp, PrevSN};
+
+ (E, Acc) ->
+ ?vtrace("validating bad log entry when"
+ "~n E: ~p"
+ "~n Acc: ~p",
+ [E, Acc]),
+ throw({error, {bad_entry, E, Acc}})
+ end,
+ try
+ begin
+ validate_loop(disk_log:chunk(Log, start),
+ Log, Validator, first, first)
+ end
+ catch
+ throw:Error ->
+ Error
+ end.
+
+%% We shall check that TS2 >= TS1
+validate_timestamp(first, _TS2) ->
+ ok;
+validate_timestamp({LT1, UT1} = TS1, {LT2, UT2} = TS2) ->
+ LT1_Secs = calendar:datetime_to_gregorian_seconds(LT1),
+ UT1_Secs = calendar:datetime_to_gregorian_seconds(UT1),
+ LT2_Secs = calendar:datetime_to_gregorian_seconds(LT2),
+ UT2_Secs = calendar:datetime_to_gregorian_seconds(UT2),
+ case ((LT2_Secs >= LT1_Secs) andalso (UT2_Secs >= UT1_Secs)) of
+ true ->
+ ok;
+ false ->
+ throw({error, {invalid_timestamp, TS1, TS2}})
+ end;
+validate_timestamp(TS1, TS2) ->
+ throw({error, {bad_timestamp, TS1, TS2}}).
+
+
+%% The usual case when SN2 = SN1 + 1
+validate_seqno(first, SN2)
+ when is_integer(SN2) >= 1 ->
+ ok;
+
+%% The usual case when SN2 = SN1 + 1
+validate_seqno(SN1, SN2)
+ when is_integer(SN1) andalso is_integer(SN2) andalso
+ (SN2 =:= (SN1 + 1)) andalso (SN1 >= 1) ->
+ ok;
+
+%% The case when we have a wrap
+validate_seqno(SN1, SN2)
+ when is_integer(SN1) andalso is_integer(SN2) andalso
+ (SN2 < SN1) andalso (SN2 >= 1) ->
+ ok;
+
+%% And everything else must be an error...
+validate_seqno(SN1, SN2) ->
+ throw({error, {bad_seqno, SN1, SN2}}).
+
+validate_loop(eof, _Log, _Validatior, _PrevTS, _PrevSN) ->
+ ok;
+validate_loop({error, _} = Error, _Log, _Validator, _PrevTS, _PrevSN) ->
+ Error;
+validate_loop({corrupt_log_file, _} = Reason,
+ _Log, _Validator, _PrevTS, _PrevSN) ->
+ {error, Reason};
+validate_loop({Cont, Terms}, Log, Validator, PrevTS, PrevSN) ->
+ ?vtrace("validate_loop -> entry with"
+ "~n Terms: ~p"
+ "~n PrevTS: ~p"
+ "~n PrevSN: ~p", [Terms, PrevTS, PrevSN]),
+ {NextTS, NextSN} = lists:foldl(Validator, {PrevTS, PrevSN}, Terms),
+ ?vtrace("validate_loop -> "
+ "~n NextTS: ~p"
+ "~n NextSN: ~p", [NextTS, NextSN]),
+ validate_loop(disk_log:chunk(Log, Cont), Log, Validator, NextTS, NextSN);
+validate_loop({Cont, Terms, BadBytes}, Log, Validator, PrevTS, PrevSN) ->
+ ?vtrace("validate_loop -> entry with"
+ "~n Terms: ~p"
+ "~n BadBytes: ~p"
+ "~n PrevTS: ~p"
+ "~n PrevSN: ~p", [Terms, BadBytes, PrevTS, PrevSN]),
+ error_logger:error_msg("Skipping ~w bytes while validating ~p~n~n",
+ [BadBytes, Log]),
+ {NextTS, NextSN} = lists:foldl(Validator, {PrevTS, PrevSN}, Terms),
+ ?vtrace("validate_loop -> "
+ "~n NextTS: ~p"
+ "~n NextSN: ~p", [NextTS, NextSN]),
+ validate_loop(disk_log:chunk(Log, Cont), Log, Validator, NextTS, NextSN);
+validate_loop(Error, _Log, _Write, _PrevTS, _PrevSN) ->
+ Error.
+
+
%% -- log ---
%%-----------------------------------------------------------------
@@ -109,19 +308,53 @@ info_filter([Item|Items], Info, Acc) ->
%%-----------------------------------------------------------------
-log(Log, Packet, Addr, Port) ->
+log(#snmp_log{id = Log, seqno = SeqNo}, Packet, Addr, Port) ->
?vtrace("log -> entry with"
"~n Log: ~p"
"~n Addr: ~p"
"~n Port: ~p", [Log, Addr, Port]),
- Entry = {timestamp(), Packet, Addr, Port},
- disk_log:alog(Log, Entry).
+ Entry = make_entry(SeqNo, Packet, Addr, Port),
+%% io:format("log -> "
+%% "~n Entry: ~p"
+%% "~n Info: ~p"
+%% "~n", [Entry, disk_log:info(Log)]),
+ Res = disk_log:alog(Log, Entry),
+%% io:format("log -> "
+%% "~n Res: ~p"
+%% "~n Info: ~p"
+%% "~n", [Res, disk_log:info(Log)]),
+ %% disk_log:sync(Log),
+ Res.
+
+
+
+make_entry(SeqNoGen, Packet, Addr, Port) ->
+ try next_seqno(SeqNoGen) of
+ disabled ->
+ {timestamp(), Packet, Addr, Port};
+ {ok, NextSeqNo} ->
+ {timestamp(), NextSeqNo, Packet, Addr, Port}
+ catch
+ _:_ ->
+ {timestamp(), Packet, Addr, Port}
+ end.
+next_seqno({M, F, A}) ->
+ {ok, apply(M, F, A)};
+next_seqno(F) when is_function(F) ->
+ {ok, F()};
+next_seqno(_) ->
+ disabled.
%% -- change_size ---
+change_size(#snmp_log{id = Log}, NewSize) ->
+ do_change_size(Log, NewSize);
change_size(Log, NewSize) ->
+ do_change_size(Log, NewSize).
+
+do_change_size(Log, NewSize) ->
?vtrace("change_size -> entry with"
"~n Log: ~p"
"~n NewSize: ~p", [Log, NewSize]),
@@ -171,6 +404,23 @@ log_to_io(Log, FileName, Dir, Mibs, Start, Stop)
log_convert(Log, File, Converter).
+%% -- log_to_plain ---
+
+%% log_to_plain(Log, FileName, Dir) ->
+%% log_to_plain(Log, FileName, Dir, null, null).
+
+%% log_to_plain(Log, FileName, Dir, Start) ->
+%% log_to_plain(Log, FileName, Dir, Start, null).
+
+%% log_to_plain(Log, FileName, Dir, Start, Stop)
+%% when is_list(Mibs) ->
+%% File = filename:join(Dir, FileName),
+%% Converter = fun(L) ->
+%% do_log_to_plain(L, Start, Stop)
+%% end,
+%% log_convert(Log, File, Converter).
+
+
%% --------------------------------------------------------------------
%% Internal functions
%% --------------------------------------------------------------------
@@ -178,7 +428,12 @@ log_to_io(Log, FileName, Dir, Mibs, Start, Stop)
%% -- log_convert ---
+log_convert(#snmp_log{id = Log}, File, Converter) ->
+ do_log_convert(Log, File, Converter);
log_convert(Log, File, Converter) ->
+ do_log_convert(Log, File, Converter).
+
+do_log_convert(Log, File, Converter) ->
%% First check if the caller process has already opened the
%% log, because if we close an already open log we will cause
%% a runtime error.
@@ -274,86 +529,151 @@ loop({Cont, Terms, BadBytes}, Log, Write) ->
loop(Error, _Log, _Write) ->
Error.
-format_msg({TimeStamp, {V3Hdr, ScopedPdu}, {Addr, Port}},
- Mib, Start, Stop) ->
- format_msg({TimeStamp, {V3Hdr, ScopedPdu}, Addr, Port},
- Mib, Start, Stop);
-format_msg({TimeStamp, {V3Hdr, ScopedPdu}, Addr, Port},
- Mib, Start, Stop) ->
-% io:format("format_msg -> entry with"
-% "~n TimeStamp: ~p"
-% "~n Start: ~p"
-% "~n Stop: ~p", [TimeStamp, Start, Stop]),
- case timestamp_filter(TimeStamp, Start, Stop) of
- true ->
- case (catch snmp_pdus:dec_scoped_pdu(ScopedPdu)) of
- ScopedPDU when is_record(ScopedPDU, scopedPdu) ->
- Msg = #message{version = 'version-3',
- vsn_hdr = V3Hdr,
- data = ScopedPDU},
- f(ts2str(TimeStamp), Msg, Addr, Port, Mib);
- {'EXIT', Reason} ->
- format_tab("** error in log file at ~s from ~p:~w ~p\n\n",
- [ts2str(TimeStamp), ip(Addr), Port, Reason])
- end;
- false ->
- ignore
- end;
-format_msg({TimeStamp, Packet, {Addr, Port}}, Mib, Start, Stop) ->
- format_msg({TimeStamp, Packet, Addr, Port}, Mib, Start, Stop);
-format_msg({TimeStamp, Packet, Addr, Port}, Mib, Start, Stop) ->
+
+format_msg(Entry, Mib, Start, Stop) ->
+ TimeStamp = element(1, Entry),
case timestamp_filter(TimeStamp, Start, Stop) of
true ->
- case (catch snmp_pdus:dec_message(binary_to_list(Packet))) of
- Msg when is_record(Msg, message) ->
- f(ts2str(TimeStamp), Msg, Addr, Port, Mib);
- {'EXIT', Reason} ->
- format_tab("** error in log file ~p\n\n", [Reason])
- end;
- false ->
- ignore
- end;
-format_msg(_, _Mib, _Start, _Stop) ->
+ do_format_msg(Entry, Mib);
+ false ->
+ ignore
+ end.
+
+%% This is an old-style entry, that never had the sequence-number
+do_format_msg({Timestamp, Packet, {Addr, Port}}, Mib) ->
+ do_format_msg(Timestamp, Packet, Addr, Port, Mib);
+
+%% This is the format without sequence-number
+do_format_msg({Timestamp, Packet, Addr, Port}, Mib) ->
+ do_format_msg(Timestamp, Packet, Addr, Port, Mib);
+
+%% This is the format with sequence-number
+do_format_msg({Timestamp, SeqNo, Packet, Addr, Port}, Mib) ->
+ do_format_msg(Timestamp, SeqNo, Packet, Addr, Port, Mib);
+
+%% This is crap...
+do_format_msg(_, _) ->
format_tab("** unknown entry in log file\n\n", []).
-f(TimeStamp, #message{version = Vsn, vsn_hdr = VsnHdr, data = Data},
+do_format_msg(TimeStamp, {V3Hdr, ScopedPdu}, Addr, Port, Mib) ->
+ case (catch snmp_pdus:dec_scoped_pdu(ScopedPdu)) of
+ ScopedPDU when is_record(ScopedPDU, scopedPdu) ->
+ Msg = #message{version = 'version-3',
+ vsn_hdr = V3Hdr,
+ data = ScopedPDU},
+ f(ts2str(TimeStamp), "", Msg, Addr, Port, Mib);
+ {'EXIT', Reason} ->
+ format_tab("** error in log file at ~s from ~p:~w ~p\n\n",
+ [ts2str(TimeStamp), ip(Addr), Port, Reason])
+ end;
+do_format_msg(TimeStamp, Packet, Addr, Port, Mib) ->
+ case (catch snmp_pdus:dec_message(binary_to_list(Packet))) of
+ Msg when is_record(Msg, message) ->
+ f(ts2str(TimeStamp), "", Msg, Addr, Port, Mib);
+ {'EXIT', Reason} ->
+ format_tab("** error in log file ~p\n\n", [Reason])
+ end.
+
+do_format_msg(TimeStamp, SeqNo, {V3Hdr, ScopedPdu}, Addr, Port, Mib) ->
+ case (catch snmp_pdus:dec_scoped_pdu(ScopedPdu)) of
+ ScopedPDU when is_record(ScopedPDU, scopedPdu) ->
+ Msg = #message{version = 'version-3',
+ vsn_hdr = V3Hdr,
+ data = ScopedPDU},
+ f(ts2str(TimeStamp), sn2str(SeqNo), Msg, Addr, Port, Mib);
+ {'EXIT', Reason} ->
+ format_tab("** error in log file at ~s from ~p:~w ~p\n\n",
+ [ts2str(TimeStamp), sn2str(SeqNo),
+ ip(Addr), Port, Reason])
+ end;
+do_format_msg(TimeStamp, SeqNo, Packet, Addr, Port, Mib) ->
+ case (catch snmp_pdus:dec_message(binary_to_list(Packet))) of
+ Msg when is_record(Msg, message) ->
+ f(ts2str(TimeStamp), sn2str(SeqNo), Msg, Addr, Port, Mib);
+ {'EXIT', Reason} ->
+ format_tab("** error in log file ~s from ~p:~w ~p\n\n",
+ [ts2str(TimeStamp), sn2str(SeqNo),
+ ip(Addr), Port, Reason])
+ end.
+
+
+%% format_msg({TimeStamp, {V3Hdr, ScopedPdu}, {Addr, Port}},
+%% Mib, Start, Stop) ->
+%% format_msg({TimeStamp, {V3Hdr, ScopedPdu}, Addr, Port},
+%% Mib, Start, Stop);
+%% format_msg({TimeStamp, {V3Hdr, ScopedPdu}, Addr, Port},
+%% Mib, Start, Stop) ->
+%% case timestamp_filter(TimeStamp, Start, Stop) of
+%% true ->
+%% case (catch snmp_pdus:dec_scoped_pdu(ScopedPdu)) of
+%% ScopedPDU when record(ScopedPDU, scopedPdu) ->
+%% Msg = #message{version = 'version-3',
+%% vsn_hdr = V3Hdr,
+%% data = ScopedPDU},
+%% f(ts2str(TimeStamp), Msg, Addr, Port, Mib);
+%% {'EXIT', Reason} ->
+%% format_tab("** error in log file at ~s from ~p:~w ~p\n\n",
+%% [ts2str(TimeStamp), ip(Addr), Port, Reason])
+%% end;
+%% false ->
+%% ignore
+%% end;
+%% format_msg({TimeStamp, Packet, {Addr, Port}}, Mib, Start, Stop) ->
+%% format_msg({TimeStamp, Packet, Addr, Port}, Mib, Start, Stop);
+%% format_msg({TimeStamp, Packet, Addr, Port}, Mib, Start, Stop) ->
+%% case timestamp_filter(TimeStamp, Start, Stop) of
+%% true ->
+%% case (catch snmp_pdus:dec_message(binary_to_list(Packet))) of
+%% Msg when record(Msg, message) ->
+%% f(ts2str(TimeStamp), Msg, Addr, Port, Mib);
+%% {'EXIT', Reason} ->
+%% format_tab("** error in log file ~p\n\n", [Reason])
+%% end;
+%% false ->
+%% ignore
+%% end;
+%% format_msg(_, _Mib, _Start, _Stop) ->
+%% format_tab("** unknown entry in log file\n\n", []).
+
+f(TimeStamp, SeqNo,
+ #message{version = Vsn, vsn_hdr = VsnHdr, data = Data},
Addr, Port, Mib) ->
Str = format_pdu(Data, Mib),
HdrStr = format_header(Vsn, VsnHdr),
case get_type(Data) of
trappdu ->
- f_trap(TimeStamp, Vsn, HdrStr, Str, Addr, Port);
+ f_trap(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port);
'snmpv2-trap' ->
- f_trap(TimeStamp, Vsn, HdrStr, Str, Addr, Port);
+ f_trap(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port);
'inform-request' ->
- f_inform(TimeStamp, Vsn, HdrStr, Str, Addr, Port);
+ f_inform(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port);
'get-response' ->
- f_response(TimeStamp, Vsn, HdrStr, Str, Addr, Port);
+ f_response(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port);
report ->
- f_report(TimeStamp, Vsn, HdrStr, Str, Addr, Port);
+ f_report(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port);
_ ->
- f_request(TimeStamp, Vsn, HdrStr, Str, Addr, Port)
+ f_request(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port)
end.
-f_request(TimeStamp, Vsn, HdrStr, Str, Addr, Port) ->
- format_tab("request ~s:~w - ~s [~s] ~w\n~s",
- [ip(Addr), Port, HdrStr, TimeStamp, Vsn, Str]).
+f_request(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port) ->
+ format_tab("request ~s:~w - ~s [~s]~s ~w\n~s",
+ [ip(Addr), Port, HdrStr, TimeStamp, SeqNo, Vsn, Str]).
-f_response(TimeStamp, Vsn, HdrStr, Str, Addr, Port) ->
- format_tab("response ~s:~w - ~s [~s] ~w\n~s",
- [ip(Addr), Port, HdrStr, TimeStamp, Vsn, Str]).
+f_response(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port) ->
+ format_tab("response ~s:~w - ~s [~s]~s ~w\n~s",
+ [ip(Addr), Port, HdrStr, TimeStamp, SeqNo, Vsn, Str]).
-f_report(TimeStamp, Vsn, HdrStr, Str, Addr, Port) ->
- format_tab("report ~s:~w - ~s [~s] ~w\n~s",
- [ip(Addr), Port, HdrStr, TimeStamp, Vsn, Str]).
+f_report(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port) ->
+ format_tab("report ~s:~w - ~s [~s]~s ~w\n~s",
+ [ip(Addr), Port, HdrStr, TimeStamp, SeqNo, Vsn, Str]).
-f_trap(TimeStamp, Vsn, HdrStr, Str, Addr, Port) ->
- format_tab("trap ~s:~w - ~s [~s] ~w\n~s",
- [ip(Addr), Port, HdrStr, TimeStamp, Vsn, Str]).
+f_trap(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port) ->
+ format_tab("trap ~s:~w - ~s [~s]~s ~w\n~s",
+ [ip(Addr), Port, HdrStr, TimeStamp, SeqNo, Vsn, Str]).
-f_inform(TimeStamp, Vsn, HdrStr, Str, Addr, Port) ->
- format_tab("inform ~s:~w - ~s [~s] ~w\n~s",
- [ip(Addr), Port, HdrStr, TimeStamp, Vsn, Str]).
+f_inform(TimeStamp, SeqNo, Vsn, HdrStr, Str, Addr, Port) ->
+ format_tab("inform ~s:~w - ~s [~s]~s ~w\n~s",
+ [ip(Addr), Port, HdrStr, TimeStamp, SeqNo, Vsn, Str]).
%% Convert a timestamp 2-tupple to a printable string
@@ -363,6 +683,13 @@ ts2str({Local,Universal}) ->
ts2str(_) ->
"".
+%% Convert a sequence number integer to a printable string
+%%
+sn2str(SeqNo) when is_integer(SeqNo) ->
+ " [" ++ integer_to_list(SeqNo) ++ "]";
+sn2str(_) ->
+ "".
+
%% Convert a datetime 2-tupple to a printable string
%%
dat2str({{Y,M,D},{H,Min,S}}) ->
@@ -457,19 +784,31 @@ ip({A,B,C,D}) ->
%% Various utility functions
%% -------------------------------------------------------------------
-log_open(Name, File, Size, Repair, Notify) ->
+log_open(Name, File, {M, F, A} = SeqNoGen, Size, Repair, Notify)
+ when (is_atom(M) andalso is_atom(F) andalso is_list(A)) ->
+ log_open2(Name, File, SeqNoGen, Size, Repair, Notify);
+log_open(Name, File, SeqNoGen, Size, Repair, Notify)
+ when is_function(SeqNoGen, 0) ->
+ log_open2(Name, File, SeqNoGen, Size, Repair, Notify);
+log_open(Name, File, disabled = SeqNoGen, Size, Repair, Notify) ->
+ log_open2(Name, File, SeqNoGen, Size, Repair, Notify);
+log_open(_, _File, BadSeqNoGen, _Size, _Repair, _Notify) ->
+ {error, {bad_seqno, BadSeqNoGen}}.
+
+log_open2(Name, File, SeqNoGen, Size, Repair, Notify) ->
case do_log_open(Name, File, Size, Repair, Notify) of
{ok, Log} ->
- {ok, Log};
+ {ok, #snmp_log{id = Log, seqno = SeqNoGen}};
{repaired, Log, Rec, Bad} ->
?vlog("log_open -> repaired: "
"~n Rec: ~p"
"~n Bad: ~p", [Rec, Bad]),
- {ok, Log};
+ {ok, #snmp_log{id = Log, seqno = SeqNoGen}};
Error ->
Error
end.
+
%% We need to make sure we do not end up in an infinit loop
%% Take the number of files of the wrap log and add 2 (for
%% the index and size files).
diff --git a/lib/snmp/src/misc/snmp_usm.erl b/lib/snmp/src/misc/snmp_usm.erl
index 6d216e65d6..19be564a8e 100644
--- a/lib/snmp/src/misc/snmp_usm.erl
+++ b/lib/snmp/src/misc/snmp_usm.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -206,6 +206,10 @@ des_encrypt(PrivKey, Data, SaltFun) ->
des_decrypt(PrivKey, MsgPrivParams, EncData)
when length(MsgPrivParams) =:= 8 ->
+ ?vtrace("des_decrypt -> entry with"
+ "~n PrivKey: ~p"
+ "~n MsgPrivParams: ~p"
+ "~n EncData: ~p", [PrivKey, MsgPrivParams, EncData]),
[A,B,C,D,E,F,G,H | PreIV] = PrivKey,
DesKey = [A,B,C,D,E,F,G,H],
Salt = MsgPrivParams,
@@ -213,7 +217,15 @@ des_decrypt(PrivKey, MsgPrivParams, EncData)
%% Whatabout errors here??? E.g. not a mulitple of 8!
Data = binary_to_list(crypto:des_cbc_decrypt(DesKey, IV, EncData)),
Data2 = snmp_pdus:strip_encrypted_scoped_pdu_data(Data),
- {ok, Data2}.
+ {ok, Data2};
+des_decrypt(PrivKey, BadMsgPrivParams, EncData) ->
+ ?vtrace("des_decrypt -> entry with when bad MsgPrivParams"
+ "~n PrivKey: ~p"
+ "~n BadMsgPrivParams: ~p"
+ "~n EncData: ~p",
+ [PrivKey, BadMsgPrivParams, EncData]),
+ throw({error, {bad_msgPrivParams, PrivKey, BadMsgPrivParams, EncData}}).
+
aes_encrypt(PrivKey, Data, SaltFun) ->
AesKey = PrivKey,
@@ -225,7 +237,7 @@ aes_encrypt(PrivKey, Data, SaltFun) ->
{ok, binary_to_list(EncData), Salt}.
aes_decrypt(PrivKey, MsgPrivParams, EncData, EngineBoots, EngineTime)
- when length(MsgPrivParams) == 8 ->
+ when length(MsgPrivParams) =:= 8 ->
AesKey = PrivKey,
Salt = MsgPrivParams,
IV = [?i32(EngineBoots), ?i32(EngineTime) | Salt],
diff --git a/lib/snmp/test/snmp_agent_test.erl b/lib/snmp/test/snmp_agent_test.erl
index 53b35058e1..af0581150a 100644
--- a/lib/snmp/test/snmp_agent_test.erl
+++ b/lib/snmp/test/snmp_agent_test.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2003-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -32,6 +32,8 @@
-include("snmp_test_lib.hrl").
-define(SNMP_USE_V3, true).
-include_lib("snmp/include/snmp_types.hrl").
+-include_lib("snmp/src/agent/snmpa_atl.hrl").
+
%% -include_lib("snmp/include/SNMP-COMMUNITY-MIB.hrl").
%% -include_lib("snmp/include/SNMP-VIEW-BASED-ACM-MIB.hrl").
%% -include_lib("snmp/include/SNMP-USER-BASED-SM-MIB.hrl").
@@ -84,16 +86,18 @@
all(suite) ->
- {req,
- [
- mnesia,
- distribution,
- {local_slave_nodes, 2},
- {time, 360}
- ],
- [{conf, init_all, cases(), finish_all}]}.
+ Reqs = [mnesia, distribution, {local_slave_nodes, 2}, {time, 360}],
+ Conf1 = [{conf, init_all, cases(), finish_all}],
+ Conf2 = [tickets2],
+ {req, Reqs, Conf1 ++ Conf2}.
+init_per_testcase(otp8395 = Case, Config) when is_list(Config) ->
+ ?DBG("init_per_testcase -> entry with"
+ "~n Case: ~p"
+ "~n Config: ~p", [Case, Config]),
+ Config2 = init_per_testcase2(Case, init_suite(Config)),
+ otp8395({init, Config2});
init_per_testcase(otp_7157_test = _Case, Config) when is_list(Config) ->
?DBG("init_per_testcase -> entry with"
"~n Case: ~p"
@@ -119,6 +123,8 @@ init_per_testcase(_Case, Config) when is_list(Config) ->
Dog = ?WD_START(?MINS(6)),
[{watchdog, Dog}|Config].
+fin_per_testcase(otp8395, Config) when is_list(Config) ->
+ otp8395({fin, Config});
fin_per_testcase(_Case, Config) when is_list(Config) ->
?DBG("fin_per_testcase -> entry with"
"~n Case: ~p"
@@ -127,6 +133,97 @@ fin_per_testcase(_Case, Config) when is_list(Config) ->
?WD_STOP(Dog),
Config.
+
+init_suite(Config) ->
+ ?DBG("init_suite -> entry with"
+ "~n Config: ~p", [Config]),
+
+ %% Suite root dir for test suite
+ PrivDir = ?config(priv_dir, Config),
+
+ %% Create top-directory for this sub-suite
+ SuiteTopDir = filename:join([PrivDir, ?MODULE]),
+ case file:make_dir(SuiteTopDir) of
+ ok ->
+ ok;
+ {error, eexist} ->
+ %% This can happen since this is not really a
+ %% suite-init function.
+ ok;
+ {error, Reason} ->
+ ?FAIL({failed_creating_suite_top_dir, SuiteTopDir, Reason})
+ end,
+
+
+ %% --
+ %% Fix config (data-dir is not correct):
+ %%
+
+ Config1 = fix_data_dir(Config),
+ %% Config1 = Config,
+
+ %% Mib-dirs
+ MibDir = ?config(data_dir, Config1),
+ StdMibDir = filename:join([code:priv_dir(snmp), "mibs"]),
+
+ Config2 = [{suite_top_dir, SuiteTopDir},
+ {mib_dir, MibDir},
+ {std_mib_dir, StdMibDir} | Config1],
+
+ ?DBG("init_suite -> done when"
+ "~n Config2: ~p", [Config2]),
+ Config2.
+
+%% end_per_suite(Config) ->
+end_suite(Config) ->
+ Config.
+
+fix_data_dir(Config) ->
+ DataDir0 = ?config(data_dir, Config),
+ DataDir1 = filename:split(filename:absname(DataDir0)),
+ [_|DataDir2] = lists:reverse(DataDir1),
+ DataDir = filename:join(lists:reverse(DataDir2) ++ [?snmp_test_data]),
+ Config1 = lists:keydelete(data_dir, 1, Config),
+ [{data_dir, DataDir} | Config1].
+
+
+init_per_testcase2(Case, Config) ->
+ SuiteToDir = ?config(suite_top_dir, Config),
+
+ %% Create top-directory for this test-case
+ CaseTopDir = filename:join([SuiteToDir, Case]),
+ ok = file:make_dir(CaseTopDir),
+
+ %% Create agent top-dir(s)
+ AgentTopDir = filename:join([CaseTopDir, agent]),
+ ok = file:make_dir(AgentTopDir),
+ AgentConfDir = filename:join([AgentTopDir, config]),
+ ok = file:make_dir(AgentConfDir),
+ AgentDbDir = filename:join([AgentTopDir, db]),
+ ok = file:make_dir(AgentDbDir),
+ AgentLogDir = filename:join([AgentTopDir, log]),
+ ok = file:make_dir(AgentLogDir),
+
+ %% Create sub-agent top-dir(s)
+ SubAgentTopDir = filename:join([CaseTopDir, sub_agent]),
+ ok = file:make_dir(SubAgentTopDir),
+
+ %% Create manager top-dir(s)
+ ManagerTopDir = filename:join([CaseTopDir, manager]),
+ ok = file:make_dir(ManagerTopDir),
+
+ [{case_top_dir, CaseTopDir},
+ {agent_top_dir, AgentTopDir},
+ {agent_conf_dir, AgentConfDir},
+ {agent_db_dir, AgentDbDir},
+ {agent_log_dir, AgentLogDir},
+ {sub_agent_top_dir, SubAgentTopDir},
+ {manager_top_dir, ManagerTopDir} | Config].
+
+fin_per_testcase2(_Case, Config) ->
+ Config.
+
+
cases() ->
case ?OSTYPE() of
vxworks ->
@@ -138,7 +235,7 @@ cases() ->
test_v1_v2,
test_multi_threaded,
mib_storage,
- tickets
+ tickets1
];
_Else ->
[
@@ -149,7 +246,7 @@ cases() ->
test_v3,
test_multi_threaded,
mib_storage,
- tickets
+ tickets1
]
end.
@@ -5071,12 +5168,20 @@ reported_bugs_3(suite) ->
%% These are (ticket) test cases where the initiation has to be done
%% individually.
-tickets(suite) ->
+tickets1(suite) ->
[
otp_4394,
otp_7157
].
+
+tickets2(suite) ->
+ [
+ otp8395
+ ].
+
+
+
%%-----------------------------------------------------------------
%% Ticket: OTP-1128
%% Slogan: Bug in handling of createAndWait set-requests.
@@ -5624,10 +5729,9 @@ otp_4394_test1() ->
otp_7157(suite) ->
- {req, [], {conf,
- init_otp_7157,
- [otp_7157_test],
- finish_otp_7157}}.
+ Reqs = [],
+ Conf = [{conf, init_otp_7157, [otp_7157_test], finish_otp_7157}],
+ {req, Reqs, Conf}.
init_otp_7157(Config) when is_list(Config) ->
%% <CONDITIONAL-SKIP>
@@ -5691,6 +5795,337 @@ otp_7157_test1(MA) ->
%%-----------------------------------------------------------------
+%% Extra test cases
+%% These cases are started in the new way
+%%-----------------------------------------------------------------
+
+otp8395({init, Config}) when is_list(Config) ->
+ ?DBG("otp8395(init) -> entry with"
+ "~n Config: ~p", [Config]),
+
+ %% --
+ %% Start nodes
+ %%
+
+ {ok, AgentNode} = start_node(agent),
+ %% {ok, SubAgentNode} = start_node(sub_agent),
+ {ok, ManagerNode} = start_node(manager),
+
+ %% --
+ %% Mnesia init
+ %%
+
+ AgentDbDir = ?config(agent_db_dir, Config),
+ AgentMnesiaDir = filename:join([AgentDbDir, "mnesia"]),
+ mnesia_init(AgentNode, AgentMnesiaDir),
+
+%% SubAgentDir = ?config(sub_agent_dir, Config),
+%% SubAgentMnesiaDir = filename:join([SubAgentDir, "mnesia"]),
+%% mnesia_init(SubAgentNode, SubAgentMnesiaDir),
+
+ %% ok = mnesia_create_schema(AgentNode, [AgentNode, SubAgentNode]),
+ %% ok = mnesia:create_schema([AgentNode, SubAgentNode]),
+ mnesia_create_schema(AgentNode, [AgentNode]),
+
+ mnesia_start(AgentNode),
+ %% mnesia_start(SubAgentNode),
+
+ %% --
+ %% Host & IP
+ %%
+
+ AgentHost = ?HOSTNAME(AgentNode),
+ %% SubAgentHost = ?HPSTNAME(SubAgentNode),
+ ManagerHost = ?HOSTNAME(ManagerNode),
+
+ Host = snmp_test_lib:hostname(),
+ Ip = ?LOCALHOST(),
+ {ok, AgentIP0} = snmp_misc:ip(AgentHost),
+ AgentIP = tuple_to_list(AgentIP0),
+ %% {ok, SubAgentIP0} = snmp_misc:ip(SubAgentHost),
+ %% SubAgentIP = tuple_to_list(SubAgentIP0),
+ {ok, ManagerIP0} = snmp_misc:ip(ManagerHost),
+ ManagerIP = tuple_to_list(ManagerIP0),
+
+
+ %% --
+ %% Write agent config
+ %%
+
+ Vsns = [v1],
+ AgentConfDir = ?config(agent_conf_dir, Config),
+ ManagerConfDir = ?config(manager_top_dir, Config),
+ snmp_agent_test_lib:config(Vsns,
+ ManagerConfDir, AgentConfDir,
+ ManagerIP, AgentIP),
+
+
+ %% --
+ %% Start the agent
+ %%
+
+ Config2 = start_agent([{host, Host},
+ {ip, Ip},
+ {agent_node, AgentNode},
+ {agent_host, AgentHost},
+ {agent_ip, AgentIP},
+ %% {sub_agent_node, SubAgentNode},
+ %% {sub_agent_host, SubAgentHost},
+ %% {sub_agent_ip, SubAgentIP},
+ {manager_node, ManagerNode},
+ {manager_host, ManagerHost},
+ {manager_ip, ManagerIP}|Config]),
+
+ %% --
+ %% Create watchdog
+ %%
+
+ Dog = ?WD_START(?MINS(1)),
+
+ [{watchdog, Dog} | Config2];
+
+otp8395({fin, Config}) when is_list(Config) ->
+ ?DBG("otp8395(fin) -> entry with"
+ "~n Config: ~p", [Config]),
+
+ AgentNode = ?config(agent_node, Config),
+ ManagerNode = ?config(manager_node, Config),
+
+ %% -
+ %% Stop agent (this is the nice way to do it,
+ %% so logs and files can be closed in the proper way).
+ %%
+
+ AgentSup = ?config(agent_sup, Config),
+ ?DBG("otp8395(fin) -> stop (stand-alone) agent: ~p", [AgentSup]),
+ stop_stdalone_agent(AgentSup),
+
+ %% -
+ %% Stop mnesia
+ %%
+ ?DBG("otp8395(fin) -> stop mnesia", []),
+ mnesia_stop(AgentNode),
+
+
+ %% -
+ %% Stop the agent node
+ %%
+
+ ?DBG("otp8395(fin) -> stop agent node", []),
+ stop_node(AgentNode),
+
+
+%% SubAgentNode = ?config(sub_agent_node, Config),
+%% stop_node(SubAgentNode),
+
+
+ %% -
+ %% Stop the manager node
+ %%
+
+ ?DBG("otp8395(fin) -> stop manager node", []),
+ stop_node(ManagerNode),
+
+ Dog = ?config(watchdog, Config),
+ ?WD_STOP(Dog),
+ lists:keydelete(watchdog, 1, Config);
+
+otp8395(doc) ->
+ "OTP-8395 - ATL with sequence numbering. ";
+
+otp8395(Config) when is_list(Config) ->
+ ?DBG("otp8395 -> entry with"
+ "~n Config: ~p", [Config]),
+
+ ?SLEEP(1000),
+
+ %% This is just to dirty trick for the ***old*** test-code
+ put(mgr_node, ?config(manager_node, Config)),
+ put(mgr_dir, ?config(manager_top_dir, Config)),
+ put(mib_dir, ?config(mib_dir, Config)),
+ put(vsn, v1),
+ put(master_host, ?config(agent_host, Config)),
+ try_test(simple_standard_test),
+
+ ?SLEEP(1000),
+ AgentNode = ?config(agent_node, Config),
+ AgentLogDir = ?config(agent_log_dir, Config),
+ OutFile = filename:join([AgentLogDir, "otp8395.txt"]),
+ {ok, LogInfo} = rpc:call(AgentNode, snmpa, log_info, []),
+ ?DBG("otp8395 -> LogInfo: ~p", [LogInfo]),
+
+%% SyncRes = rpc:call(AgentNode, snmp, log_sync, [?audit_trail_log_name]),
+%% ?DBG("otp8395 -> SyncRes: ~p", [SyncRes]),
+
+ ok = agent_log_validation(AgentNode),
+ LTTRes =
+ rpc:call(AgentNode, snmpa, log_to_txt, [AgentLogDir, [], OutFile]),
+ ?DBG("otp8395 -> LTTRes: ~p", [LTTRes]),
+
+ ?SLEEP(1000),
+ ?DBG("otp8395 -> done", []),
+ ok.
+
+
+agent_log_validation(Node) ->
+ rpc:call(Node, ?MODULE, agent_log_validation, []).
+
+agent_log_validation() ->
+ put(sname, otp8308),
+ put(verbosity, trace),
+ snmp_log:validate(?audit_trail_log_name, true).
+
+mnesia_init(Node, Dir) ->
+ rpc:call(Node, ?MODULE, mnesia_init, [Dir]).
+
+mnesia_init(Dir) ->
+ ok = application:load(mnesia),
+ application_controller:set_env(mnesia, dir, Dir).
+
+mnesia_create_schema(Node, Nodes) ->
+ rpc:call(Node, mnesia, create_schema, [Nodes]).
+
+mnesia_start(Node) ->
+ rpc:call(Node, application, start, [mnesia]).
+
+mnesia_start() ->
+ application:start(mnesia).
+
+mnesia_stop(Node) ->
+ rpc:call(Node, application, stop, [mnesia]).
+
+mnesia_stop() ->
+ application:start(mnesia).
+
+
+start_agent(Config) ->
+ start_agent(Config, []).
+
+start_agent(Config, Opts) ->
+
+ %% Directories
+ ConfDir = ?config(agent_conf_dir, Config),
+ DbDir = ?config(agent_db_dir, Config),
+ LogDir = ?config(agent_log_dir, Config),
+
+ Vsns = [v1],
+
+ AgentConfig = process_agent_options(ConfDir, DbDir, LogDir, Vsns, Opts),
+
+ %% Nodes
+ AgentNode = ?config(agent_node, Config),
+ %% ManagerNode = ?config(manager_node, Config),
+
+ process_flag(trap_exit,true),
+
+ AgentTopSup = start_stdalone_agent(AgentNode, AgentConfig),
+
+ [{agent_sup, AgentTopSup} | Config].
+
+
+process_agent_options(ConfDir, DbDir, LogDir, Vsns, Opts) ->
+ Defaults =
+ [{agent_type, master},
+ {agent_verbosity, trace},
+ {priority, normal},
+ {versions, Vsns},
+ {db_dir, DbDir},
+ {mib_storage, ets},
+ {local_db, [{repair, true},
+ {auto_save, 5000},
+ {verbosity, log}]},
+ {error_report_module, snmpa_error_logger},
+ {config, [{dir, ConfDir},
+ {force_load, true},
+ {verbosity, trace}]},
+ {multi_threaded, true},
+ {mib_server, [{mibentry_override, false},
+ {trapentry_override, false},
+ {verbosity, info}]},
+ {target_cache, [{verbosity,info}]},
+ {symbolic_store, [{verbosity,log}]},
+ {note_store, [{timeout,30000}, {verbosity,log}]},
+ {net_if, [{module, snmpa_net_if},
+ {verbosity, trace},
+ {options, [{bind_to, false},
+ {no_reuse, false},
+ {req_limit, infinity}]}]},
+ {audit_trail_log, [{type, read_write},
+ {dir, LogDir},
+ {size, {10240,20}},
+ {repair, true},
+ {seqno, true}]}],
+
+ process_options(Defaults, Opts).
+
+process_options(Defaults, _Opts) ->
+ %% process_options(Defaults, Opts, []).
+ Defaults.
+
+%% process_options([], _Opts, Acc) ->
+%% lists:reverse(Acc);
+%% process_options([{Key, DefaultValue}|Defaults], Opts, Acc) ->
+%% case lists:keysearch(Key, 1, Opts) of
+%% {value, {Key, Value}} when is_list->
+
+
+snmp_app_env_init(Node, Entity, Conf) ->
+ rpc:call(Node, snmp_app_env_init, [Entity, Conf]).
+
+snmp_app_env_init(Entity, Conf) ->
+ application:unload(snmp),
+ application:load(snmp),
+ application:set_env(snmp, Entity, Conf).
+
+start_stdalone_agent(Node, Config) ->
+ rpc:call(Node, ?MODULE, start_stdalone_agent, [Config]).
+
+start_stdalone_agent(Config) ->
+ case snmpa_supervisor:start_link(normal, Config) of
+ {ok, AgentTopSup} ->
+ unlink(AgentTopSup),
+ AgentTopSup;
+ {error, {already_started, AgentTopSup}} ->
+ AgentTopSup
+ end.
+
+stop_stdalone_agent(Pid) when (node(Pid) =/= node()) ->
+ MRef = erlang:monitor(process, Pid),
+ rpc:call(node(Pid), ?MODULE, stop_stdalone_agent, [Pid]),
+ receive
+ {'DOWN', MRef, process, Pid, Info} ->
+ ?DBG("received expected DOWN message "
+ "regarding snmp agent supervisor: "
+ "~n Info: ~p", [Info]),
+ ok
+ after 5000 ->
+ ?DBG("no DOWN message "
+ "regarding snmp agent supervisor within time", []),
+ ok
+ end;
+stop_stdalone_agent(Pid) ->
+ ?DBG("attempting to terminate agent top-supervisor: ~p", [Pid]),
+ nkill(Pid, kill).
+
+
+nkill(Pid, Reason) ->
+ nkill(Pid, Reason, 10).
+
+nkill(Pid, Reason, N) when N > 0 ->
+ case (catch erlang:process_info(Pid)) of
+ Info when is_list(Info) ->
+ ?DBG("Info for process to kill: "
+ "~n Info: ~p", [Info]),
+ exit(Pid, Reason),
+ ?SLEEP(1000),
+ nkill(Pid, Reason, N-1);
+ _ ->
+ ?DBG("No process info => already dead?", []),
+ ok
+ end.
+
+
+%%-----------------------------------------------------------------
%% Slogan: info test
%%-----------------------------------------------------------------
diff --git a/lib/snmp/test/snmp_log_test.erl b/lib/snmp/test/snmp_log_test.erl
index b4694fd9ab..91bdc3e849 100644
--- a/lib/snmp/test/snmp_log_test.erl
+++ b/lib/snmp/test/snmp_log_test.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2003-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -45,20 +45,30 @@
all/1,
open_and_close/1,
open_write_and_close/1,
+ open_write_and_close1/1,
+ open_write_and_close2/1,
+ open_write_and_close3/1,
+ open_write_and_close4/1,
+ log_to_io/1,
log_to_io1/1,
log_to_io2/1,
+ log_to_txt/1,
log_to_txt1/1,
- log_to_txt2/1
+ log_to_txt2/1,
+ log_to_txt3/1
]).
+
%%----------------------------------------------------------------------
%% Internal exports
%%----------------------------------------------------------------------
-export([
log_writer_main/5,
- log_reader_main/1
+ log_reader_main/1,
+ next_seqno/2
]).
+
%%----------------------------------------------------------------------
%% Macros
%%----------------------------------------------------------------------
@@ -102,10 +112,32 @@ all(suite) ->
[
open_and_close,
open_write_and_close,
+ log_to_io,
+ log_to_txt
+ ].
+
+
+open_write_and_close(suite) ->
+ [
+ open_write_and_close1,
+ open_write_and_close2,
+ open_write_and_close3,
+ open_write_and_close4
+ ].
+
+
+log_to_io(suite) ->
+ [
log_to_io1,
- log_to_io2,
+ log_to_io2
+ ].
+
+
+log_to_txt(suite) ->
+ [
log_to_txt1,
- log_to_txt2
+ log_to_txt2,
+ log_to_txt3
].
@@ -132,24 +164,129 @@ open_and_close(Config) when is_list(Config) ->
%%======================================================================
-open_write_and_close(suite) -> [];
-open_write_and_close(Config) when is_list(Config) ->
- p(open_write_and_close),
- put(sname,open_write_and_close),
+open_write_and_close1(suite) ->
+ [];
+open_write_and_close1(doc) ->
+ "Open a plain (no sequence-numbering) log file";
+open_write_and_close1(Config) when is_list(Config) ->
+ p(open_write_and_close1),
+ put(sname,open_write_and_close1),
+ put(verbosity,trace),
+ ?DBG("open_write_and_close1 -> start", []),
+
+ SeqNoGen = none,
+ ?line ok = open_write_and_close(SeqNoGen, Config),
+
+ ?DBG("open_write_and_close1 -> done", []),
+ ok.
+
+
+%%======================================================================
+
+open_write_and_close2(suite) ->
+ [];
+open_write_and_close2(doc) ->
+ "Open a log file with sequence-numbering explicitly disabled";
+open_write_and_close2(Config) when is_list(Config) ->
+ p(open_write_and_close2),
+ put(sname,open_write_and_close2),
+ put(verbosity,trace),
+ ?DBG("open_write_and_close2 -> start", []),
+
+ SeqNoGen = disabled,
+ ?line ok = open_write_and_close(SeqNoGen, Config),
+
+ ?DBG("open_write_and_close2 -> done", []),
+ ok.
+
+
+%%======================================================================
+
+open_write_and_close3(suite) ->
+ [];
+open_write_and_close3(doc) ->
+ "Open a log file with sequence-numbering using MFA";
+open_write_and_close3(Config) when is_list(Config) ->
+ p(open_write_and_close3),
+ put(sname,open_write_and_close3),
+ put(verbosity,trace),
+ ?DBG("open_write_and_close2 -> start", []),
+
+ seqno_init(),
+ SeqNoGen = {?MODULE, next_seqno, [10, 100]},
+ ?line ok = open_write_and_close(SeqNoGen, Config),
+ seqno_finish(),
+
+ ?DBG("open_write_and_close2 -> done", []),
+ ok.
+
+
+%%======================================================================
+
+open_write_and_close4(suite) ->
+ [];
+open_write_and_close4(doc) ->
+ "Open a log file with sequence-numbering using fun";
+open_write_and_close4(Config) when is_list(Config) ->
+ p(open_write_and_close4),
+ put(sname,open_write_and_close4),
put(verbosity,trace),
- ?DBG("open_write_and_close -> start", []),
+ ?DBG("open_write_and_close2 -> start", []),
+
+ seqno_init(),
+ SeqNoGen = fun() -> next_seqno(10, 100) end,
+ ?line ok = open_write_and_close(SeqNoGen, Config),
+ seqno_finish(),
+
+ ?DBG("open_write_and_close2 -> done", []),
+ ok.
+
+
+%%======================================================================
+
+seqno_init() ->
+ ets:new(snmp_log_test_seqno_tab, [named_table, set, protected]).
+
+seqno_finish() ->
+ ets:delete(snmp_log_test_seqno_tab).
+
+next_seqno(Initial, Max) ->
+ Key = seqno,
+ Position = 2,
+ Increment = 1,
+ Threshold = Max,
+ SetValue = Initial,
+ UpdateOp = {Position, Increment, Threshold, SetValue},
+ Tab = snmp_log_test_seqno_tab,
+ case (catch ets:update_counter(Tab, Key, UpdateOp)) of
+ {'EXIT', {badarg, _}} ->
+ ets:insert(Tab, {seqno, Initial}),
+ Initial;
+ Next when is_integer(Next) ->
+ Next
+ end.
+
+open_write_and_close(SeqNoGen, Config) ->
+ ?DBG("open_write_and_close1 -> start", []),
Dir = ?config(log_dir, Config),
Name = "snmp_test",
File = join(Dir, "snmp_test.log"),
Size = {1024, 10},
Repair = true,
?DBG("open_write_and_close -> create log", []),
- ?line {ok, Log} = snmp_log:create(Name, File, Size, Repair),
+
+ ?line {ok, Log} =
+ case SeqNoGen of
+ none ->
+ snmp_log:create(Name, File, Size, Repair);
+ _ ->
+ snmp_log:create(Name, File, SeqNoGen, Size, Repair)
+ end,
Vsn = 'version-2',
Community = "all-rights",
- ?DBG("open_write_and_close -> create messages to log", []),
+ ?DBG("open_write_and_close1 -> create messages to log", []),
%% A request
?line Req = get_next_request(Vsn, Community, [1,1], 1, 235779012),
@@ -162,7 +299,7 @@ open_write_and_close(Config) when is_list(Config) ->
Msgs = lists:flatten(lists:duplicate(1002,[Req,Rep])),
%% And now log them:
- ?DBG("open_write_and_close -> log ~p messages, ~p bytes",
+ ?DBG("open_write_and_close1 -> log ~p messages, ~p bytes",
[length(Msgs), size(list_to_binary(Msgs))]),
Addr = ?LOCALHOST(),
Port = 162,
@@ -172,11 +309,11 @@ open_write_and_close(Config) when is_list(Config) ->
lists:foreach(Logger, Msgs),
check_notify(),
- ?DBG("open_write_and_close -> display info", []),
+ ?DBG("open_write_and_close1 -> display info", []),
?line {ok, Info} = snmp_log:info(Log),
display_info(Info),
- ?DBG("open_write_and_close -> close log", []),
+ ?DBG("open_write_and_close1 -> close log", []),
?line ok = snmp_log:close(Log),
?DBG("open_write_and_close -> done", []),
@@ -308,18 +445,58 @@ log_to_txt1(Config) when is_list(Config) ->
put(sname,l2t1),
put(verbosity,trace),
?DBG("log_to_txt1 -> start", []),
+
+ Name = "snmp_test_l2t1",
+ SeqNoGen = disabled,
+ ?line ok = log_to_txt(Name, SeqNoGen, Config),
+
+ ?DBG("log_to_txt1 -> done", []),
+ ok.
+
+
+
+%%======================================================================
+
+log_to_txt2(suite) -> [];
+log_to_txt2(Config) when is_list(Config) ->
+ p(log_to_txt2),
+ put(sname,l2t2),
+ put(verbosity,trace),
+ ?DBG("log_to_txt2 -> start", []),
+
+ Name = "snmp_test_l2t2",
+ seqno_init(),
+ SeqNoGen = {?MODULE, next_seqno, [1, 100]},
+ ?line ok = log_to_txt(Name, SeqNoGen, Config),
+ seqno_finish(),
+
+ ?DBG("log_to_txt2 -> done", []),
+ ok.
+
+
+
+%%======================================================================
+
+log_to_txt(Name, SeqNoGen, Config) when is_list(Config) ->
+ ?DBG("log_to_txt -> entry", []),
Dir = ?config(log_dir, Config),
- Name = "snmp_test_l2t1",
- File = join(Dir, "snmp_test_l2t1.log"),
+ File = join(Dir, Name ++ ".log"),
Size = {10240, 10},
Repair = true,
- ?DBG("log_to_txt1 -> create log", []),
- ?line {ok, Log} = snmp_log:create(Name, File, Size, Repair),
- ?DBG("log_to_txt1 -> create messages to log", []),
+ ?DBG("log_to_txt -> create log", []),
+ ?line {ok, Log} =
+ case SeqNoGen of
+ none ->
+ snmp_log:create(Name, File, Size, Repair);
+ _ ->
+ snmp_log:create(Name, File, SeqNoGen, Size, Repair)
+ end,
+
+ ?DBG("log_to_txt -> create messages to log", []),
Msgs = messages(),
- ?DBG("log_to_txt1 -> create logger funs", []),
+ ?DBG("log_to_txt -> create logger funs", []),
Addr = ?LOCALHOST(),
Port = 162,
Logger = fun(Packet) ->
@@ -332,42 +509,42 @@ log_to_txt1(Config) when is_list(Config) ->
end,
To = lists:duplicate(20, 5000),
- ?DBG("log_to_txt1 -> log the messages", []),
+ ?DBG("log_to_txt -> log the messages", []),
Start = calendar:local_time(),
lists:foreach(BatchLogger, To),
Stop = calendar:local_time(),
- ?DBG("log_to_txt1 -> display info", []),
+ ?DBG("log_to_txt -> display info", []),
?line {ok, Info} = snmp_log:info(Log),
display_info(Info),
Out1 = join(Dir, "snmp_text-1.txt"),
- ?DBG("log_to_txt1 -> do the convert to a text file when"
+ ?DBG("log_to_txt -> do the convert to a text file when"
"~n Out1: ~p", [Out1]),
?line ok = snmp:log_to_txt(Dir, [], Out1, Log, File),
?line {ok, #file_info{size = Size1}} = file:read_file_info(Out1),
- ?DBG("log_to_txt1 -> text file size: ~p", [Size1]),
+ ?DBG("log_to_txt -> text file size: ~p", [Size1]),
validate_size(Size1),
Out2 = join(Dir, "snmp_text-2.txt"),
- ?DBG("log_to_txt1 -> do the convert to a text file when"
+ ?DBG("log_to_txt -> do the convert to a text file when"
"~n Start: ~p"
"~n Stop: ~p"
"~n Out2: ~p", [Start, Stop, Out2]),
?line ok = snmp:log_to_txt(Dir, [], Out2, Log, File, Start, Stop),
?line {ok, #file_info{size = Size2}} = file:read_file_info(Out2),
- ?DBG("log_to_txt1 -> text file size: ~p", [Size2]),
+ ?DBG("log_to_txt -> text file size: ~p", [Size2]),
validate_size(Size2, {le, Size1}),
%% Calculate new start / stop times...
GStart = calendar:datetime_to_gregorian_seconds(Start),
- ?DBG("log_to_txt1 -> GStart: ~p", [GStart]),
+ ?DBG("log_to_txt -> GStart: ~p", [GStart]),
GStop = calendar:datetime_to_gregorian_seconds(Stop),
- ?DBG("log_to_txt1 -> GStop: ~p", [GStop]),
+ ?DBG("log_to_txt -> GStop: ~p", [GStop]),
Diff4 = (GStop - GStart) div 4,
- ?DBG("log_to_txt1 -> Diff4: ~p", [Diff4]),
+ ?DBG("log_to_txt -> Diff4: ~p", [Diff4]),
GStart2 = GStart + Diff4,
GStop2 = GStop - Diff4,
if
@@ -381,20 +558,20 @@ log_to_txt1(Config) when is_list(Config) ->
Stop2 = calendar:gregorian_seconds_to_datetime(GStop2),
Out3 = join(Dir, "snmp_text-3.txt"),
- ?DBG("log_to_txt1 -> do the convert to a text file when"
+ ?DBG("log_to_txt -> do the convert to a text file when"
"~n Start2: ~p"
"~n Stop2: ~p"
"~n Out3: ~p", [Start2, Stop2, Out3]),
?line ok = snmp:log_to_txt(Dir, [], Out3, Log, File, Start2, Stop2),
?line {ok, #file_info{size = Size3}} = file:read_file_info(Out3),
- ?DBG("log_to_txt1 -> text file size: ~p", [Size3]),
+ ?DBG("log_to_txt -> text file size: ~p", [Size3]),
validate_size(Size3, {l, Size1}),
- ?DBG("log_to_txt1 -> close log", []),
+ ?DBG("log_to_txt -> close log", []),
?line ok = snmp_log:close(Log),
- ?DBG("log_to_txt1 -> done", []),
+ ?DBG("log_to_txt -> done", []),
ok.
@@ -405,19 +582,21 @@ log_to_txt1(Config) when is_list(Config) ->
%%
%% Test: ts:run(snmp, snmp_log_test, log_to_txt2, [batch]).
-log_to_txt2(suite) -> [];
-log_to_txt2(doc) -> "Log to txt file from a different process than which "
- "opened and wrote the log";
-log_to_txt2(Config) when is_list(Config) ->
+log_to_txt3(suite) ->
+ [];
+log_to_txt3(doc) ->
+ "Log to txt file from a different process than which "
+ "opened and wrote the log";
+log_to_txt3(Config) when is_list(Config) ->
process_flag(trap_exit, true),
- p(log_to_txt2),
- put(sname,l2t2),
+ p(log_to_txt3),
+ put(sname,l2t3),
put(verbosity,trace),
- ?DBG("log_to_txt2 -> start", []),
+ ?DBG("log_to_txt3 -> start", []),
Dir = ?config(log_dir, Config),
- Name = "snmp_test_l2t2",
- LogFile = join(Dir, "snmp_test_l2t2.log"),
- TxtFile = join(Dir, "snmp_test_l2t2.txt"),
+ Name = "snmp_test_l2t3",
+ LogFile = join(Dir, "snmp_test_l2t3.log"),
+ TxtFile = join(Dir, "snmp_test_l2t3.txt"),
Meg = 1024*1024,
Size = {10*Meg, 10},
Repair = true,
@@ -425,22 +604,22 @@ log_to_txt2(Config) when is_list(Config) ->
StdMibDir = filename:join(code:priv_dir(snmp), "mibs") ++ "/",
Mibs = [join(StdMibDir, "SNMPv2-MIB")],
- ?DBG("log_to_txt2 -> create log writer process", []),
+ ?DBG("log_to_txt3 -> create log writer process", []),
?line {ok, Log, Logger} = log_writer_start(Name, LogFile, Size, Repair),
- ?DBG("log_to_txt2 -> create log reader process", []),
+ ?DBG("log_to_txt3 -> create log reader process", []),
?line {ok, Reader} = log_reader_start(),
- ?DBG("log_to_txt2 -> wait some time", []),
+ ?DBG("log_to_txt3 -> wait some time", []),
?SLEEP(5000),
- ?DBG("log_to_txt2 -> display log info", []),
+ ?DBG("log_to_txt3 -> display log info", []),
?line log_writer_info(Logger),
- ?DBG("log_to_txt2 -> instruct the log writer to sleep some", []),
+ ?DBG("log_to_txt3 -> instruct the log writer to sleep some", []),
?line ok = log_writer_sleep(Logger, 5000),
- ?DBG("log_to_txt2 -> instruct the log reader to log to txt", []),
+ ?DBG("log_to_txt3 -> instruct the log reader to log to txt", []),
Res =
log_reader_log_to(Reader,
fun() ->
@@ -457,25 +636,25 @@ log_to_txt2(Config) when is_list(Config) ->
case Res of
{ok, Info} ->
- ?DBG("log_to_txt2 -> ~n Info: ~p", [Info]),
+ ?DBG("log_to_txt3 -> ~n Info: ~p", [Info]),
?line {ok, #file_info{size = FileSize}} =
file:read_file_info(TxtFile),
- ?DBG("log_to_txt2 -> text file size: ~p", [FileSize]),
+ ?DBG("log_to_txt3 -> text file size: ~p", [FileSize]),
validate_size(FileSize);
{Error, Info} ->
- ?DBG("log_to_txt2 -> log to txt failed: "
+ ?DBG("log_to_txt3 -> log to txt failed: "
"~n Error: ~p"
"~n Info: ~p", [Error, Info]),
?line ?FAIL({log_lo_txt_failed, Error, Info})
end,
- ?DBG("log_to_txt2 -> instruct the log writer to stop", []),
+ ?DBG("log_to_txt3 -> instruct the log writer to stop", []),
?line log_writer_stop(Logger),
- ?DBG("log_to_txt2 -> instruct the log reader to stop", []),
+ ?DBG("log_to_txt3 -> instruct the log reader to stop", []),
?line log_reader_stop(Reader),
- ?DBG("log_to_txt2 -> done", []),
+ ?DBG("log_to_txt3 -> done", []),
ok.
diff --git a/lib/snmp/test/snmp_manager_config_test.erl b/lib/snmp/test/snmp_manager_config_test.erl
index 51325996e6..fcb3d7e30c 100644
--- a/lib/snmp/test/snmp_manager_config_test.erl
+++ b/lib/snmp/test/snmp_manager_config_test.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -86,7 +86,12 @@
stats_create_and_increment/1,
tickets/1,
- otp_7219/1
+ otp_7219/1,
+ otp_8395/1,
+ otp_8395_1/1,
+ otp_8395_2/1,
+ otp_8395_3/1,
+ otp_8395_4/1
]).
@@ -2295,7 +2300,8 @@ loop(N, _, F) when (N > 0) andalso is_function(F) ->
tickets(suite) ->
[
- otp_7219
+ otp_7219,
+ otp_8395
].
@@ -2347,6 +2353,170 @@ otp_7219(Config) when is_list(Config) ->
ok.
+
+otp_8395(suite) ->
+ [
+ otp_8395_1,
+ otp_8395_2,
+ otp_8395_3,
+ otp_8395_4
+ ].
+
+otp_8395_1(suite) -> [];
+otp_8395_1(doc) ->
+ "OTP-8395(1)";
+otp_8395_1(Conf) when is_list(Conf) ->
+ put(tname, otp_8395_1),
+ p("start"),
+ process_flag(trap_exit, true),
+ otp8395(Conf, false, ok),
+ ok.
+
+otp_8395_2(suite) -> [];
+otp_8395_2(doc) ->
+ "OTP-8395(2)";
+otp_8395_2(Conf) when is_list(Conf) ->
+ put(tname, otp_8395_2),
+ p("start"),
+ process_flag(trap_exit, true),
+ otp8395(Conf, true, ok),
+ ok.
+
+otp_8395_3(suite) -> [];
+otp_8395_3(doc) ->
+ "OTP-8395(3)";
+otp_8395_3(Conf) when is_list(Conf) ->
+ put(tname, otp_8395_3),
+ p("start"),
+ process_flag(trap_exit, true),
+ otp8395(Conf, gurka, error),
+ ok.
+
+otp8395(Conf, SeqNoVal, Expect) ->
+ ConfDir = ?config(manager_conf_dir, Conf),
+ DbDir = ?config(manager_db_dir, Conf),
+ LogDir = ?config(manager_log_dir, Conf),
+ StdMibDir = filename:join(code:priv_dir(snmp), "mibs") ++ "/",
+
+ write_manager_conf(ConfDir),
+
+ %% Third set of options (no versions):
+ p("all options"),
+ NetIfOpts = [{module, snmpm_net_if},
+ {verbosity, trace},
+ {options, [{recbuf, 30000},
+ {bind_to, false},
+ {no_reuse, false}]}],
+ ServerOpts = [{timeout, 10000}, {verbosity, trace}],
+ NoteStoreOpts = [{timeout, 20000}, {verbosity, trace}],
+ ConfigOpts = [{dir, ConfDir}, {verbosity, trace}, {db_dir, DbDir}],
+ Mibs = [join(StdMibDir, "SNMP-NOTIFICATION-MIB"),
+ join(StdMibDir, "SNMP-USER-BASED-SM-MIB")],
+ Prio = normal,
+ ATL = [{type, read_write},
+ {dir, LogDir},
+ {size, {10,10240}},
+ {repair, true},
+ {seqno, SeqNoVal}],
+ Vsns = [v1,v2,v3],
+ Opts = [{config, ConfigOpts},
+ {net_if, NetIfOpts},
+ {server, ServerOpts},
+ {note_store, NoteStoreOpts},
+ {audit_trail_log, ATL},
+ {priority, Prio},
+ {mibs, Mibs},
+ {versions, Vsns}],
+
+ case config_start(Opts) of
+ {ok, _Pid} when (Expect =:= ok) ->
+ ?line ok = config_stop(),
+ ok;
+ {ok, _Pid} when (Expect =/= ok) ->
+ config_stop(),
+ exit({unexpected_started_config, SeqNoVal});
+ _Error when (Expect =/= ok) ->
+ ok;
+ Error when (Expect =:= ok) ->
+ exit({unexpected_failed_starting_config, SeqNoVal, Error})
+ end,
+ p("done"),
+ ok.
+
+
+otp_8395_4(suite) -> [];
+otp_8395_4(doc) ->
+ "OTP-8395(4)";
+otp_8395_4(Conf) when is_list(Conf) ->
+ put(tname, otp_8395_4),
+ p("start"),
+ process_flag(trap_exit, true),
+
+ snmp:print_version_info(),
+
+ ConfDir = ?config(manager_conf_dir, Conf),
+ DbDir = ?config(manager_db_dir, Conf),
+ LogDir = ?config(manager_log_dir, Conf),
+ StdMibDir = filename:join(code:priv_dir(snmp), "mibs") ++ "/",
+
+ write_manager_conf(ConfDir),
+
+ %% Third set of options (no versions):
+ p("all options"),
+ NetIfOpts = [{module, snmpm_net_if},
+ {verbosity, trace},
+ {options, [{recbuf, 30000},
+ {bind_to, false},
+ {no_reuse, false}]}],
+ ServerOpts = [{timeout, 10000}, {verbosity, trace}],
+ NoteStoreOpts = [{timeout, 20000}, {verbosity, trace}],
+ ConfigOpts = [{dir, ConfDir}, {verbosity, trace}, {db_dir, DbDir}],
+ Mibs = [join(StdMibDir, "SNMP-NOTIFICATION-MIB"),
+ join(StdMibDir, "SNMP-USER-BASED-SM-MIB")],
+ Prio = normal,
+ ATL = [{type, read_write},
+ {dir, LogDir},
+ {size, {10,10240}},
+ {repair, true},
+ {seqno, true}],
+ Vsns = [v1,v2,v3],
+ Opts = [{config, ConfigOpts},
+ {net_if, NetIfOpts},
+ {server, ServerOpts},
+ {note_store, NoteStoreOpts},
+ {audit_trail_log, ATL},
+ {priority, Prio},
+ {mibs, Mibs},
+ {versions, Vsns}],
+
+ ?line {ok, _Pid} = config_start(Opts),
+
+ Counter = otp_8395_4,
+ Initial = 10,
+ Increment = 2,
+ Max = 20,
+
+ %% At this call the counter does *not* exist. The call creates
+ %% it with the initial value!
+
+ Val1 = Initial,
+ Val1 = otp8395_incr_counter(Counter, Initial, Increment, Max),
+
+ %% Now it exist, make sure another call does the expected increment
+
+ Val2 = Initial + Increment,
+ Val2 = otp8395_incr_counter(Counter, Initial, Increment, Max),
+
+ ?line ok = config_stop(),
+
+ p("done"),
+ ok.
+
+
+otp8395_incr_counter(Counter, Initial, Increment, Max) ->
+ snmpm_config:increment_counter(Counter, Initial, Increment, Max).
+
+
%%======================================================================
%% Internal functions
%%======================================================================
diff --git a/lib/snmp/test/snmp_manager_test.erl b/lib/snmp/test/snmp_manager_test.erl
index 31cc095349..518b8b34de 100644
--- a/lib/snmp/test/snmp_manager_test.erl
+++ b/lib/snmp/test/snmp_manager_test.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2003-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -111,7 +111,9 @@
tickets/1,
otp8015/1,
- otp8015_1/1
+ otp8015_1/1,
+ otp8395/1,
+ otp8395_1/1
]).
@@ -240,18 +242,22 @@ init_per_testcase3(Case, Config) ->
simple_async_set2,
simple_sync_get_bulk2,
simple_async_get_bulk2,
- misc_async2
+ misc_async2,
+ otp8395_1
],
- Cases = [
- trap1,
- trap2,
- inform1,
- inform2,
- inform3,
- inform4,
- inform_swarm,
- report
- ] ++ OldApiCases ++ NewApiCases,
+ Cases =
+ [
+ trap1,
+ trap2,
+ inform1,
+ inform2,
+ inform3,
+ inform4,
+ inform_swarm,
+ report
+ ] ++
+ OldApiCases ++
+ NewApiCases,
case lists:member(Case, Cases) of
true ->
NoAutoInformCases = [inform1, inform2, inform3, inform_swarm],
@@ -265,6 +271,8 @@ init_per_testcase3(Case, Config) ->
{agent_verbosity, info},
{agent_net_if_verbosity, info}],
Verb ++ Config;
+ Case =:= otp8395_1 ->
+ [{manager_atl_seqno, true} | Config];
true ->
Config
end,
@@ -315,18 +323,22 @@ fin_per_testcase2(Case, Config) ->
simple_async_set2,
simple_sync_get_bulk2,
simple_async_get_bulk2,
- misc_async2
+ misc_async2,
+ otp8395_1
],
- Cases = [
- trap1,
- trap2,
- inform1,
- inform2,
- inform3,
- inform4,
- inform_swarm,
- report
- ] ++ OldApiCases ++ NewApiCases,
+ Cases =
+ [
+ trap1,
+ trap2,
+ inform1,
+ inform2,
+ inform3,
+ inform4,
+ inform_swarm,
+ report
+ ] ++
+ OldApiCases ++
+ NewApiCases,
case lists:member(Case, Cases) of
true ->
Conf1 = case lists:member(Case, NewApiCases) of
@@ -446,7 +458,8 @@ event_tests(suite) ->
tickets(suite) ->
[
- otp8015
+ otp8015,
+ otp8395
].
otp8015(suite) ->
@@ -454,6 +467,11 @@ otp8015(suite) ->
otp8015_1
].
+otp8395(suite) ->
+ [
+ otp8395_1
+ ].
+
%%======================================================================
%% Test functions
@@ -1372,6 +1390,9 @@ simple_sync_get2(suite) -> [];
simple_sync_get2(Config) when is_list(Config) ->
process_flag(trap_exit, true),
put(tname, ssg2),
+ do_simple_get(Config).
+
+do_simple_get(Config) ->
p("starting with Config: ~p~n", [Config]),
Node = ?config(manager_node, Config),
@@ -1386,7 +1407,7 @@ simple_sync_get2(Config) when is_list(Config) ->
Oids2 = [[sysObjectID, 0], [sysDescr, 0], [sysUpTime, 0]],
?line ok = do_simple_get(Node, TargetName, Oids2),
ok.
-
+
do_simple_get(Node, TargetName, Oids) ->
?line {ok, Reply, Rem} = mgr_user_sync_get(Node, TargetName, Oids),
@@ -4438,6 +4459,16 @@ otp8015_1(Config) when is_list(Config) ->
%%======================================================================
+
+otp8395_1(doc) -> ["OTP-8395:1 - simple get with ATL sequence numbering."];
+otp8395_1(suite) -> [];
+otp8395_1(Config) when is_list(Config) ->
+ process_flag(trap_exit, true),
+ put(tname, otp8395_1),
+ do_simple_get(Config).
+
+
+%%======================================================================
%% async snmp utility functions
%%======================================================================
@@ -5063,12 +5094,15 @@ start_manager(Node, Vsns, Conf0, Opts) ->
ServerVerbosity = get_opt(manager_server_verbosity, Conf0, trace),
NetIfVerbosity = get_opt(manager_net_if_verbosity, Conf0, trace),
+ AtlSeqNo = get_opt(manager_atl_seqno, Conf0, false),
+
Env = [{versions, Vsns},
{inform_request_behaviour, IRB},
{audit_trail_log, [{type, read_write},
{dir, AtlDir},
{size, {10240, 10}},
- {repair, true}]},
+ {repair, true},
+ {seqno, AtlSeqNo}]},
{config, [{dir, ConfDir},
{db_dir, DbDir},
{verbosity, ConfigVerbosity}]},
diff --git a/lib/snmp/test/snmp_test_mgr.erl b/lib/snmp/test/snmp_test_mgr.erl
index 085dc8600f..84bdc6b04f 100644
--- a/lib/snmp/test/snmp_test_mgr.erl
+++ b/lib/snmp/test/snmp_test_mgr.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
diff --git a/lib/snmp/vsn.mk b/lib/snmp/vsn.mk
index 9931bb90f4..c4550d9b44 100644
--- a/lib/snmp/vsn.mk
+++ b/lib/snmp/vsn.mk
@@ -1,27 +1,32 @@
#-*-makefile-*- ; force emacs to enter makefile-mode
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1997-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1997-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
-SNMP_VSN = 4.15.0.1
+SNMP_VSN = 4.16
PRE_VSN =
APP_VSN = "snmp-$(SNMP_VSN)$(PRE_VSN)"
-TICKETS = OTP-8229 OTP-8249
+TICKETS = \
+ OTP-8395 \
+ OTP-8433 \
+ OTP-8442
+
+TICKETS_4_15 = OTP-8229 OTP-8249
TICKETS_4_14 = OTP-8223 OTP-8228 OTP-8237
diff --git a/lib/ssh/doc/src/Makefile b/lib/ssh/doc/src/Makefile
index e02f04e7ad..c4d8d9901c 100644
--- a/lib/ssh/doc/src/Makefile
+++ b/lib/ssh/doc/src/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2004-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2004-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -58,6 +58,9 @@ XML_CHAPTER_FILES = notes.xml
BOOK_FILES = book.xml
+XML_FILES = $(BOOK_FILES) $(XML_APPLICATION_FILES) $(XML_REF3_FILES) \
+ $(XML_PART_FILES) $(XML_CHAPTER_FILES)
+
# ----------------------------------------------------
HTML_FILES = $(XML_APPLICATION_FILES:%.xml=$(HTMLDIR)/%.html) \
diff --git a/lib/ssh/doc/src/notes.xml b/lib/ssh/doc/src/notes.xml
index ef49bb8b3d..9597137cdf 100644
--- a/lib/ssh/doc/src/notes.xml
+++ b/lib/ssh/doc/src/notes.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>2004</year><year>2009</year>
+ <year>2004</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>SSH Release Notes</title>
@@ -31,6 +31,17 @@
<section><title>Ssh 1.1.8</title>
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ In some cases SSH ceased to collect more data from the transport layer.</p>
+ <p>
+ Own Id: OTP-8401 Aux Id: seq11479</p>
+ </item>
+ </list>
+ </section>
+
<section><title>Improvements and New Features</title>
<list>
<item>
diff --git a/lib/ssh/src/ssh.appup.src b/lib/ssh/src/ssh.appup.src
index 3bf772b42b..5329373862 100644
--- a/lib/ssh/src/ssh.appup.src
+++ b/lib/ssh/src/ssh.appup.src
@@ -1,24 +1,25 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
{"%VSN%",
[
+ {"1.1.7", [{load_module, ssh_connection_handler, soft_purge, soft_purge, []}]},
{"1.1.6", [{restart_application, ssh}]},
{"1.1.5", [{restart_application, ssh}]},
{"1.1.4", [{restart_application, ssh}]},
@@ -26,6 +27,7 @@
{"1.1.2", [{restart_application, ssh}]}
],
[
+ {"1.1.7", [{load_module, ssh_connection_handler, soft_purge, soft_purge, []}]},
{"1.1.6", [{restart_application, ssh}]},
{"1.1.5", [{restart_application, ssh}]},
{"1.1.4", [{restart_application, ssh}]},
diff --git a/lib/ssh/src/ssh_connection_handler.erl b/lib/ssh/src/ssh_connection_handler.erl
index 5240b4b4c5..822ef8f8f9 100644
--- a/lib/ssh/src/ssh_connection_handler.erl
+++ b/lib/ssh/src/ssh_connection_handler.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%
@@ -530,6 +530,7 @@ handle_info({Protocol, Socket, Data}, Statename,
case size(EncData0) + size(Data) >= max(8, BlockSize) of
true ->
{Ssh, SshPacketLen, DecData, EncData} =
+
ssh_transport:decrypt_first_block(<<EncData0/binary,
Data/binary>>, Ssh0),
case SshPacketLen > ?SSH_MAX_PACKET_SIZE of
@@ -737,7 +738,8 @@ next_packet(#state{decoded_data_buffer = <<>>,
State) when Buff =/= <<>> andalso size(Buff) >= 8 ->
%% More data from the next packet has been received
%% Fake a socket-recive message so that the data will be processed
- self() ! {Protocol, Socket, <<>>} ,
+ inet:setopts(Socket, [{active, once}]),
+ self() ! {Protocol, Socket, <<>>},
State;
next_packet(#state{socket = Socket} = State) ->
diff --git a/lib/ssh/vsn.mk b/lib/ssh/vsn.mk
index 2b9df4ae60..bc7bceeb24 100644
--- a/lib/ssh/vsn.mk
+++ b/lib/ssh/vsn.mk
@@ -3,7 +3,8 @@
SSH_VSN = 1.1.8
APP_VSN = "ssh-$(SSH_VSN)"
-TICKETS = OTP-8356
+TICKETS = OTP-8356 \
+ OTP-8401
TICKETS_1.1.7 = OTP-8121 \
OTP-8277 \
diff --git a/lib/ssl/c_src/Makefile.in b/lib/ssl/c_src/Makefile.in
index bd1b2f9375..49a209f2eb 100644
--- a/lib/ssl/c_src/Makefile.in
+++ b/lib/ssl/c_src/Makefile.in
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1999-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1999-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -106,6 +106,7 @@ SSL_MAKEFILE =
endif
CC_R_FLAG=@CFLAG_RUNTIME_LIBRARY_PATH@
+
ifeq ($(findstring @,$(CC_R_FLAG)),@)
# Old erts configure used which hasn't replaced @CFLAG_RUNTIME_LIBRARY_PATH@;
# we try our best here instead...
@@ -127,6 +128,12 @@ else
CC_R_OPT = $(CC_R_FLAG)$(SSL_LIBDIR)
endif
+SSL_CC_RUNTIME_LIBRARY_PATH=@SSL_CC_RUNTIME_LIBRARY_PATH@
+# Sigh...
+ifeq ($(findstring @,$(SSL_CC_RUNTIME_LIBRARY_PATH)),@)
+SSL_CC_RUNTIME_LIBRARY_PATH = $(CC_R_OPT)
+endif
+
SSL_LINK_LIB=-L$(SSL_LIBDIR) -lssl -lcrypto
else
# not dynamic crypto lib (default from R11B-5)
@@ -134,6 +141,7 @@ NEED_KERBEROS=@SSL_LINK_WITH_KERBEROS@
NEED_ZLIB=@SSL_LINK_WITH_ZLIB@
SSL_MAKEFILE =
CC_R_OPT =
+SSL_CC_RUNTIME_LIBRARY_PATH=
SSL_LINK_LIB = $(SSL_LIBDIR)/libssl.a $(SSL_LIBDIR)/libcrypto.a
ifeq ($(NEED_KERBEROS),yes)
SSL_LINK_LIB += @STATIC_KERBEROS_LIBS@
@@ -163,11 +171,11 @@ $(OBJDIR)/%$(obj): %.c
# Unix
$(BINDIR)/ssl_esock: $(OBJS)
- $(CC) $(CC_R_OPT) $(PLAIN_CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(SSL_LINK_LIB)
+ $(CC) $(PLAIN_CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(SSL_CC_RUNTIME_LIBRARY_PATH) $(SSL_LINK_LIB)
# Win32/Cygwin
$(BINDIR)/ssl_esock.exe: $(OBJS)
- $(LD) -L$(SSL_LIBDIR) -o $@ $^ -lwsock32 -llibeay32 -lssleay32
+ $(LD) $(SSL_CC_RUNTIME_LIBRARY_PATH) -L$(SSL_LIBDIR) -o $@ $^ -lwsock32 -llibeay32 -lssleay32
# Unix only, and only when linking statically
$(SSL_MAKEFILE):
diff --git a/lib/ssl/doc/src/new_ssl.xml b/lib/ssl/doc/src/new_ssl.xml
index a11919eb51..b642280096 100644
--- a/lib/ssl/doc/src/new_ssl.xml
+++ b/lib/ssl/doc/src/new_ssl.xml
@@ -60,10 +60,9 @@
very crippled as the control of the ssl-socket was deep
down in openssl making it hard if not impossible to
support all inet options, ipv6 and upgrade of a tcp
- connection to a ssl connection. The alfa version has a
+ connection to a ssl connection. This version has a
few limitations that will be removed before the ssl-4.0
- release. Main differences and limitations in the alfa are
- listed below.</p>
+ release. Main differences and limitations are listed below.</p>
<list type="bulleted">
<item>New ssl requires the crypto
diff --git a/lib/ssl/src/ssl.erl b/lib/ssl/src/ssl.erl
index 1222fe97fd..de74c91505 100644
--- a/lib/ssl/src/ssl.erl
+++ b/lib/ssl/src/ssl.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -129,7 +129,8 @@ listen(Port, Options0) ->
%% so that new and old ssl can be run by the same
%% code, however the option will be ignored by old ssl
%% that hardcodes reuseaddr to true in its portprogram.
- Options = proplists:delete(reuseaddr, Options0),
+ Options1 = proplists:delete(reuseaddr, Options0),
+ Options = proplists:delete(ssl_imp, Options1),
old_listen(Port, Options);
Value ->
{error, {eoptions, {ssl_imp, Value}}}
@@ -366,8 +367,10 @@ getopts(#sslsocket{} = Socket, Options) ->
%%
%% Description:
%%--------------------------------------------------------------------
-setopts(#sslsocket{fd = new_ssl, pid = Pid}, Options) when is_pid(Pid) ->
- ssl_connection:set_opts(Pid, Options);
+setopts(#sslsocket{fd = new_ssl, pid = Pid}, Opts0) when is_pid(Pid) ->
+ Opts = proplists:expand([{binary, [{mode, binary}]},
+ {list, [{mode, list}]}], Opts0),
+ ssl_connection:set_opts(Pid, Opts);
setopts(#sslsocket{fd = new_ssl, pid = {ListenSocket, _}}, OptTags) ->
inet:setopts(ListenSocket, OptTags);
setopts(#sslsocket{} = Socket, Options) ->
diff --git a/lib/ssl/src/ssl_broker.erl b/lib/ssl/src/ssl_broker.erl
index 178fb5fcb9..7ef88baf2b 100644
--- a/lib/ssl/src/ssl_broker.erl
+++ b/lib/ssl/src/ssl_broker.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -333,9 +333,9 @@ init([Client, Type]) ->
debug1(Debug, Type, "in start, client = ~w", [Client]),
{ok, #st{brokertype = Type, server = Server, client = Client,
collector = Client, debug = Debug}};
- true ->
- {stop, no_ssl_server}
- end.
+ true ->
+ {stop, no_ssl_server}
+ end.
%%
diff --git a/lib/ssl/src/ssl_certificate_db.erl b/lib/ssl/src/ssl_certificate_db.erl
index decc6c9fea..adae92530a 100644
--- a/lib/ssl/src/ssl_certificate_db.erl
+++ b/lib/ssl/src/ssl_certificate_db.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2007-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2007-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -27,7 +27,7 @@
-export([create/0, remove/1, add_trusted_certs/3,
remove_trusted_certs/2, lookup_trusted_cert/3, issuer_candidate/1,
- cache_pem_file/3]).
+ lookup_cached_certs/1, cache_pem_file/3]).
%%====================================================================
%% Internal application API
@@ -74,6 +74,9 @@ lookup_trusted_cert(Ref, SerialNumber, Issuer) ->
{ok, Certs}
end.
+lookup_cached_certs(File) ->
+ ets:lookup(certificate_db_name(), {file, File}).
+
%%--------------------------------------------------------------------
%% Function: add_trusted_certs(Pid, File, Db) -> {ok, Ref}
%% Pid = pid()
@@ -90,7 +93,7 @@ add_trusted_certs(Pid, File, [CertsDb, FileToRefDb, PidToFileDb]) ->
undefined ->
NewRef = make_ref(),
add_certs_from_file(File, NewRef, CertsDb),
- insert(File, NewRef, 1, FileToRefDb),
+ insert(File, NewRef, 1, FileToRefDb),
NewRef;
[OldRef] ->
ref_count(File,FileToRefDb,1),
@@ -104,14 +107,11 @@ add_trusted_certs(Pid, File, [CertsDb, FileToRefDb, PidToFileDb]) ->
%%
%% Description: Cache file as binary in DB
%%--------------------------------------------------------------------
-cache_pem_file(Pid, File, [_CertsDb, FileToRefDb, PidToFileDb]) ->
- try ref_count(File, FileToRefDb,1)
- catch _:_ ->
- {ok, Content} = public_key:pem_to_der(File),
- insert(File,Content,1,FileToRefDb)
- end,
+cache_pem_file(Pid, File, [CertsDb, _FileToRefDb, PidToFileDb]) ->
+ Res = {ok, Content} = public_key:pem_to_der(File),
+ insert({file, File}, Content, CertsDb),
insert(Pid, File, PidToFileDb),
- {ok, FileToRefDb}.
+ Res.
%%--------------------------------------------------------------------
%% Function: remove_trusted_certs(Pid, Db) -> _
@@ -123,15 +123,16 @@ remove_trusted_certs(Pid, [CertsDb, FileToRefDb, PidToFileDb]) ->
Files = lookup(Pid, PidToFileDb),
delete(Pid, PidToFileDb),
Clear = fun(File) ->
- case ref_count(File, FileToRefDb, -1) of
- 0 ->
- case lookup(File, FileToRefDb) of
- [Ref] when is_reference(Ref) ->
- remove_certs(Ref, CertsDb);
- _ -> ok
- end,
- delete(File, FileToRefDb);
- _ ->
+ delete({file,File}, CertsDb),
+ try
+ 0 = ref_count(File, FileToRefDb, -1),
+ case lookup(File, FileToRefDb) of
+ [Ref] when is_reference(Ref) ->
+ remove_certs(Ref, CertsDb);
+ _ -> ok
+ end,
+ delete(File, FileToRefDb)
+ catch _:_ ->
ok
end
end,
@@ -168,6 +169,8 @@ issuer_candidate(PrevCandidateKey) ->
case ets:next(Db, PrevCandidateKey) of
'$end_of_table' ->
no_more_candidates;
+ {file, _} = Key ->
+ issuer_candidate(Key);
Key ->
[Cert] = lookup(Key, Db),
{Key, Cert}
@@ -189,7 +192,7 @@ ref_count(Key, Db,N) ->
ets:update_counter(Db,Key,N).
delete(Key, Db) ->
- true = ets:delete(Db, Key).
+ _ = ets:delete(Db, Key).
lookup(Key, Db) ->
case ets:lookup(Db, Key) of
diff --git a/lib/ssl/src/ssl_connection.erl b/lib/ssl/src/ssl_connection.erl
index d9377fe3d6..bbffa1e564 100644
--- a/lib/ssl/src/ssl_connection.erl
+++ b/lib/ssl/src/ssl_connection.erl
@@ -610,7 +610,7 @@ connection(hello, State = #state{host = Host, port = Port,
%% gen_fsm:sync_send_event/2,3, the instance of this function with the same
%% name as the current state name StateName is called to handle the event.
%%--------------------------------------------------------------------
-connection({application_data, Data}, _From,
+connection({application_data, Data0}, _From,
State = #state{socket = Socket,
negotiated_version = Version,
transport_cb = Transport,
@@ -618,10 +618,16 @@ connection({application_data, Data}, _From,
%% We should look into having a worker process to do this to
%% parallize send and receive decoding and not block the receiver
%% if sending is overloading the socket.
- {Msgs, ConnectionStates1} = encode_data(Data, Version, ConnectionStates0),
- Result = Transport:send(Socket, Msgs),
- {reply, Result,
- connection, State#state{connection_states = ConnectionStates1}}.
+ try
+ Data = encode_packet(Data0, State#state.socket_options),
+ {Msgs, ConnectionStates1} = encode_data(Data, Version, ConnectionStates0),
+ Result = Transport:send(Socket, Msgs),
+ {reply, Result,
+ connection, State#state{connection_states = ConnectionStates1}}
+
+ catch throw:Error ->
+ {reply, Error, connection, State}
+ end.
%%--------------------------------------------------------------------
%% Function:
@@ -972,8 +978,14 @@ init_certificates(#ssl_options{cacertfile = CACertFile,
case ssl_manager:connection_init(CACertFile, Role) of
{ok, CertDbRef, CacheRef} ->
init_certificates(CertDbRef, CacheRef, CertFile, Role);
+ {error, {badmatch, _Error}} ->
+ Report = io_lib:format("SSL: Error ~p Initializing: ~p ~n",
+ [_Error, CACertFile]),
+ error_logger:error_report(Report),
+ throw(ecacertfile);
{error, _Error} ->
- Report = io_lib:format("SSL: Error ~p ~n",[_Error]),
+ Report = io_lib:format("SSL: Error ~p Initializing: ~p ~n",
+ [_Error, CACertFile]),
error_logger:error_report(Report),
throw(ecacertfile)
end.
@@ -990,12 +1002,18 @@ init_certificates(CertDbRef, CacheRef, CertFile, server) ->
try
[OwnCert] = ssl_certificate:file_to_certificats(CertFile),
{ok, CertDbRef, CacheRef, OwnCert}
- catch _E:_R ->
- Report = io_lib:format("SSL: ~p: ~p:~p ~p~n",
- [?LINE, _E,_R, erlang:get_stacktrace()]),
- error_logger:error_report(Report),
- throw(ecertfile)
- end.
+ catch
+ _E:{badmatch, _R={error,_}} ->
+ Report = io_lib:format("SSL: ~p: ~p:~p ~s~n ~p~n",
+ [?LINE, _E,_R, CertFile, erlang:get_stacktrace()]),
+ error_logger:error_report(Report),
+ throw(ecertfile);
+ _E:_R ->
+ Report = io_lib:format("SSL: ~p: ~p:~p ~s~n ~p~n",
+ [?LINE, _E,_R, CertFile, erlang:get_stacktrace()]),
+ error_logger:error_report(Report),
+ throw(ecertfile)
+ end.
init_private_key(undefined, "", _Password, client) ->
undefined;
@@ -1006,9 +1024,15 @@ init_private_key(undefined, KeyFile, Password, _) ->
PKey =:= rsa_private_key orelse PKey =:= dsa_private_key],
{ok, Decoded} = public_key:decode_private_key(Der,Password),
Decoded
- catch _E:_R ->
- Report = io_lib:format("SSL: ~p: ~p:~p ~p~n",
- [?LINE, _E,_R, erlang:get_stacktrace()]),
+ catch
+ _E:{badmatch, _R={error,_}} ->
+ Report = io_lib:format("SSL: ~p: ~p:~p ~s~n ~p~n",
+ [?LINE, _E,_R, KeyFile, erlang:get_stacktrace()]),
+ error_logger:error_report(Report),
+ throw(ekeyfile);
+ _E:_R ->
+ Report = io_lib:format("SSL: ~p: ~p:~p ~s~n ~p~n",
+ [?LINE, _E,_R, KeyFile, erlang:get_stacktrace()]),
error_logger:error_report(Report),
throw(ekeyfile)
end;
@@ -1037,8 +1061,7 @@ send_all_state_event(FsmPid, Event) ->
gen_fsm:send_all_state_event(FsmPid, Event).
sync_send_all_state_event(FsmPid, Event) ->
- sync_send_all_state_event(FsmPid, Event, ?DEFAULT_TIMEOUT
-).
+ sync_send_all_state_event(FsmPid, Event, ?DEFAULT_TIMEOUT).
sync_send_all_state_event(FsmPid, Event, Timeout) ->
try gen_fsm:sync_send_all_state_event(FsmPid, Event, Timeout)
@@ -1404,6 +1427,23 @@ encode_handshake(HandshakeRec, SigAlg, Version, ConnectionStates0, Hashes0) ->
ssl_record:encode_handshake(Frag, Version, ConnectionStates0),
{E, ConnectionStates1, Hashes1}.
+encode_packet(Data, #socket_options{packet=Packet}) ->
+ case Packet of
+ 0 -> Data;
+ 1 -> encode_size_packet(Data, 8, (1 bsl 8) - 1);
+ 2 -> encode_size_packet(Data, 16, (1 bsl 16) - 1);
+ 4 -> encode_size_packet(Data, 32, (1 bsl 32) - 1);
+ _ ->
+ throw({error, {badarg, {eoptions, {packet, Packet}}}})
+ end.
+
+encode_size_packet(Bin, Size, Max) ->
+ Len = byte_size(Bin),
+ case Len > Max of
+ true -> throw({error, {badarg, {packet_to_large, Len, Max}}});
+ false -> <<Len:Size, Bin/binary>>
+ end.
+
encode_data(Data, Version, ConnectionStates) ->
ssl_record:encode_data(Data, Version, ConnectionStates).
diff --git a/lib/ssl/src/ssl_manager.erl b/lib/ssl/src/ssl_manager.erl
index 6b83c2ea46..0151426d43 100644
--- a/lib/ssl/src/ssl_manager.erl
+++ b/lib/ssl/src/ssl_manager.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2007-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2007-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -74,13 +74,11 @@ connection_init(TrustedcertsFile, Role) ->
call({connection_init, TrustedcertsFile, Role}).
cache_pem_file(File) ->
- case ets:lookup(ssl_file_to_ref,File) of
- [{_,_,Content}] ->
+ case ssl_certificate_db:lookup_cached_certs(File) of
+ [{_,Content}] ->
{ok, Content};
[] ->
- {ok, Db} = call({cache_pem, File}),
- [{_,_,Content}] = ets:lookup(Db,File),
- {ok, Content}
+ call({cache_pem, File})
end.
%%--------------------------------------------------------------------
@@ -170,13 +168,14 @@ handle_call({{connection_init, TrustedcertsFile, _Role}, Pid}, _From,
session_cache = Cache} = State) ->
erlang:monitor(process, Pid),
Result =
- case (catch ssl_certificate_db:add_trusted_certs(Pid,
- TrustedcertsFile,
- Db)) of
- {ok, Ref} ->
- {ok, Ref, Cache};
- Error ->
- {error, Error}
+ try
+ {ok, Ref} = ssl_certificate_db:add_trusted_certs(Pid, TrustedcertsFile, Db),
+ {ok, Ref, Cache}
+ catch
+ _:{badmatch, Error} ->
+ {error, Error};
+ _E:_R ->
+ {error, {_R,erlang:get_stacktrace()}}
end,
{reply, Result, State};
@@ -198,7 +197,9 @@ handle_call({{cache_pem, File},Pid}, _, State = #state{certificate_db = Db}) ->
try ssl_certificate_db:cache_pem_file(Pid,File,Db) of
Result ->
{reply, Result, State}
- catch _:Reason ->
+ catch _:{badmatch, Reason} ->
+ {reply, Reason, State};
+ _:Reason ->
{reply, {error, Reason}, State}
end;
diff --git a/lib/ssl/test/old_ssl_active_SUITE.erl b/lib/ssl/test/old_ssl_active_SUITE.erl
index fc44fa23dd..010596f351 100644
--- a/lib/ssl/test/old_ssl_active_SUITE.erl
+++ b/lib/ssl/test/old_ssl_active_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -145,16 +145,16 @@ sinit_return_chkclose(Config) when list(Config) ->
?line {ok, Host} = inet:gethostname(),
LCmds = [{sockopts, [{backlog, NConns}]},
- {sslopts, SsslOpts},
+ {sslopts, [{ssl_imp, old}|SsslOpts]},
{listen, LPort},
wait_sync,
lclose],
ACmds = [{timeout, Timeout},
accept,
- {send, DataSize}, {recv, DataSize},
+ {send, DataSize}, {recv, DataSize},
await_close],
CCmds = [{timeout, Timeout},
- {sslopts, CsslOpts},
+ {sslopts, [{ssl_imp, old}|CsslOpts]},
{connect, {Host, LPort}},
{recv, DataSize}, {send, DataSize},
close],
diff --git a/lib/ssl/test/ssl_basic_SUITE.erl b/lib/ssl/test/ssl_basic_SUITE.erl
index 2b247532ee..22a0fb1ee1 100644
--- a/lib/ssl/test/ssl_basic_SUITE.erl
+++ b/lib/ssl/test/ssl_basic_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2007-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2007-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -458,7 +458,7 @@ connect_dist(Config) when is_list(Config) ->
connect_dist_s(S) ->
Msg = term_to_binary({erlang,term}),
- ok = ssl:send(S, <<(size(Msg)):32, Msg/binary>>).
+ ok = ssl:send(S, Msg).
connect_dist_c(S) ->
Test = binary_to_list(term_to_binary({erlang,term})),
diff --git a/lib/ssl/test/ssl_packet_SUITE.erl b/lib/ssl/test/ssl_packet_SUITE.erl
index c59a5c9256..3f8a560be9 100644
--- a/lib/ssl/test/ssl_packet_SUITE.erl
+++ b/lib/ssl/test/ssl_packet_SUITE.erl
@@ -117,8 +117,8 @@ end_per_testcase(_TestCase, Config) ->
%%--------------------------------------------------------------------
all(doc) ->
["Test that erlang:decode_packet/3 seems to be handled correctly."
- "We only use the most basic packet types in our tests as testing of"
- "the packet types are for inet to verify"
+ "We only use the most basic packet types in our tests as testing of"
+ "the packet types are for inet to verify"
];
all(suite) ->
@@ -140,6 +140,7 @@ all(suite) ->
packet_raw_active_some_big, packet_0_active_some_big,
packet_1_active_some_big, packet_2_active_some_big,
packet_4_active_some_big,
+ packet_send_to_large,
packet_wait_passive, packet_wait_active,
packet_baddata_passive, packet_baddata_active,
packet_size_passive, packet_size_active
@@ -157,25 +158,25 @@ packet_raw_passive_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, raw}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_raw, [Data, ?MANY]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_raw, [Data, ?MANY]}},
{options,
[{active, false},
{packet, raw} |
- ClientOpts]}]),
-
+ ClientOpts]}]),
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -191,25 +192,25 @@ packet_raw_passive_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_raw, [Data, ?SOME]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_raw, [Data, ?SOME]}},
{options,
[{active, false},
{packet, raw} |
- ClientOpts]}]),
-
+ ClientOpts]}]),
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -224,24 +225,24 @@ packet_0_passive_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 0}, equivalent to packet raw.",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_raw, [Data, ?MANY]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_raw, [Data, ?MANY]}},
{options, [{active, false},
{packet, 0} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -256,24 +257,24 @@ packet_0_passive_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_raw, [Data, ?SOME]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_raw, [Data, ?SOME]}},
{options, [{active, false},
{packet, 0} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -288,25 +289,25 @@ packet_1_passive_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 1}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_1 ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?MANY]}},
+ {options, [{packet, 1}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_recv_packet,
- [Data, ?MANY]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_recv_packet,
+ [Data, ?MANY]}},
{options, [{active, false},
{packet, 1} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -321,25 +322,25 @@ packet_1_passive_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(255, "1")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_1 ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?SOME]}},
+ {options, [{packet, 1}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_recv_packet,
- [Data, ?SOME]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_recv_packet,
+ [Data, ?SOME]}},
{options, [{active, false},
{packet, 1} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -354,25 +355,25 @@ packet_2_passive_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 2}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_2 ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?MANY]}},
+ {options, [{packet, 2}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_recv_packet,
- [Data, ?MANY]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_recv_packet,
+ [Data, ?MANY]}},
{options, [{active, false},
{packet, 2} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -387,28 +388,28 @@ packet_2_passive_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_2 ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?SOME]}},
+ {options, [{packet, 2}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_recv_packet,
- [Data, ?SOME]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_recv_packet,
+ [Data, ?SOME]}},
{options, [{active, false},
{packet, 2} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
-
+
%%--------------------------------------------------------------------
packet_4_passive_many_small(doc) ->
["Test packet option {packet, 4} in passive mode"];
@@ -420,26 +421,26 @@ packet_4_passive_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 4}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
{mfa,
- {?MODULE, send_4 ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {?MODULE, send, [Data, ?MANY]}},
+ {options, [{packet, 4}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_recv_packet,
- [Data, ?MANY]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_recv_packet,
+ [Data, ?MANY]}},
{options, [{active, false},
{packet, 4} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -454,25 +455,25 @@ packet_4_passive_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_4 ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?SOME]}},
+ {options, [{packet, 4}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, passive_recv_packet,
- [Data, ?SOME]}},
+ {from, self()},
+ {mfa, {?MODULE, passive_recv_packet,
+ [Data, ?SOME]}},
{options, [{active, false},
{packet, 4} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -485,27 +486,27 @@ packet_raw_active_once_many_small(suite) ->
[];
packet_raw_active_once_many_small(Config) when is_list(Config) ->
- ClientOpts = ?config(client_opts, Config),
+ ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, raw}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, active_once_raw, [Data, ?MANY]}},
+ {from, self()},
+ {mfa, {?MODULE, active_once_raw, [Data, ?MANY]}},
{options, [{active, once},
{packet, raw} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -517,27 +518,27 @@ packet_raw_active_once_some_big(suite) ->
[];
packet_raw_active_once_some_big(Config) when is_list(Config) ->
- ClientOpts = ?config(client_opts, Config),
+ ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, active_once_raw, [Data, ?SOME]}},
+ {from, self()},
+ {mfa, {?MODULE, active_once_raw, [Data, ?SOME]}},
{options, [{active, once},
{packet, raw} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -552,13 +553,13 @@ packet_0_active_once_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 0}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
@@ -569,9 +570,9 @@ packet_0_active_once_many_small(Config) when is_list(Config) ->
{options, [{active, once},
{packet, 0} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -587,14 +588,14 @@ packet_0_active_once_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
{mfa, {?MODULE, send_raw ,
[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
@@ -605,9 +606,9 @@ packet_0_active_once_some_big(Config) when is_list(Config) ->
{options, [{active, once},
{packet, 0} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -622,13 +623,13 @@ packet_1_active_once_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 1}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_1 ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?MANY]}},
+ {options, [{packet, 1}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
@@ -640,9 +641,9 @@ packet_1_active_once_many_small(Config) when is_list(Config) ->
{options, [{active, once},
{packet, 1} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -657,17 +658,17 @@ packet_1_active_once_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(255, "1")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_1 ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?SOME]}},
+ {options, [{packet, 1}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_once_packet,
@@ -675,9 +676,9 @@ packet_1_active_once_some_big(Config) when is_list(Config) ->
{options, [{active, once},
{packet, 1} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -692,17 +693,17 @@ packet_2_active_once_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 2}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_2 ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?MANY]}},
+ {options, [{packet, 2}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_once_packet,
@@ -710,9 +711,9 @@ packet_2_active_once_many_small(Config) when is_list(Config) ->
{options, [{active, once},
{packet, 2} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -728,17 +729,17 @@ packet_2_active_once_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_2 ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?SOME]}},
+ {options, [{packet, 2}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_once_packet,
@@ -746,9 +747,9 @@ packet_2_active_once_some_big(Config) when is_list(Config) ->
{options, [{active, once},
{packet, 2} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -763,17 +764,17 @@ packet_4_active_once_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 4}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_4 ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?MANY]}},
+ {options, [{packet, 4}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_once_packet,
@@ -781,9 +782,9 @@ packet_4_active_once_many_small(Config) when is_list(Config) ->
{options, [{active, once},
{packet, 4} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -798,17 +799,17 @@ packet_4_active_once_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_4 ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?SOME]}},
+ {options, [{packet, 4}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_once_packet,
@@ -816,9 +817,9 @@ packet_4_active_once_some_big(Config) when is_list(Config) ->
{options, [{active, once},
{packet, 4} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -830,28 +831,28 @@ packet_raw_active_many_small(suite) ->
[];
packet_raw_active_many_small(Config) when is_list(Config) ->
- ClientOpts = ?config(client_opts, Config),
+ ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, raw}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, active_raw,
- [Data, ?MANY]}},
+ {from, self()},
+ {mfa, {?MODULE, active_raw,
+ [Data, ?MANY]}},
{options, [{active, true},
{packet, raw} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -867,24 +868,24 @@ packet_raw_active_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
- {mfa, {?MODULE, active_raw, [Data, ?SOME]}},
+ {from, self()},
+ {mfa, {?MODULE, active_raw, [Data, ?SOME]}},
{options, [{active, true},
{packet, raw} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -899,13 +900,13 @@ packet_0_active_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 0}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?MANY]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
@@ -916,9 +917,9 @@ packet_0_active_many_small(Config) when is_list(Config) ->
{options, [{active, true},
{packet, 0} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -933,13 +934,13 @@ packet_0_active_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send_raw ,[Data, ?SOME]}},
+ {options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
@@ -950,9 +951,9 @@ packet_0_active_some_big(Config) when is_list(Config) ->
{options, [{active, true},
{packet, 0} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -968,26 +969,26 @@ packet_1_active_many_small(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 1}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_1 ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?MANY]}},
+ {options, [{packet, 1}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_packet, [Data, ?MANY]}},
{options, [{active, true},
{packet, 1} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -1002,26 +1003,26 @@ packet_1_active_some_big(Config) when is_list(Config) ->
ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(255, "1")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_1 ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?SOME]}},
+ {options, [{packet, 1}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_packet, [Data, ?SOME]}},
{options, [{active, true},
{packet, 1} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -1033,29 +1034,29 @@ packet_2_active_many_small(suite) ->
[];
packet_2_active_many_small(Config) when is_list(Config) ->
- ClientOpts = ?config(client_opts, Config),
+ ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 2}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_2 ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?MANY]}},
+ {options, [{packet, 2}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_packet, [Data, ?MANY]}},
{options, [{active, true},
{packet, 2} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -1067,29 +1068,29 @@ packet_2_active_some_big(suite) ->
[];
packet_2_active_some_big(Config) when is_list(Config) ->
- ClientOpts = ?config(client_opts, Config),
+ ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_2 ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?SOME]}},
+ {options, [{packet, 2}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_packet, [Data, ?SOME]}},
{options, [{active, true},
{packet, 2} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -1101,29 +1102,29 @@ packet_4_active_many_small(suite) ->
[];
packet_4_active_many_small(Config) when is_list(Config) ->
- ClientOpts = ?config(client_opts, Config),
+ ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = "Packet option is {packet, 4}",
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_4 ,[Data, ?MANY]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?MANY]}},
+ {options, [{packet, 4}|ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_packet, [Data, ?MANY]}},
{options, [{active, true},
{packet, 4} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
@@ -1136,33 +1137,64 @@ packet_4_active_some_big(suite) ->
[];
packet_4_active_some_big(Config) when is_list(Config) ->
- ClientOpts = ?config(client_opts, Config),
+ ClientOpts = ?config(client_opts, Config),
ServerOpts = ?config(server_opts, Config),
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
-
+
Data = lists:append(lists:duplicate(100, "1234567890")),
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
- {mfa, {?MODULE, send_4 ,[Data, ?SOME]}},
- {options, ServerOpts}]),
+ {mfa, {?MODULE, send, [Data, ?SOME]}},
+ {options, [{packet, 4} | ServerOpts]}]),
Port = ssl_test_lib:inet_port(Server),
Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
{host, Hostname},
- {from, self()},
+ {from, self()},
{mfa,
{?MODULE,
active_packet, [Data, ?SOME]}},
{options, [{active, true},
{packet, 4} |
ClientOpts]}]),
-
+
ssl_test_lib:check_result(Client, ok),
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
+%%--------------------------------------------------------------------
+packet_send_to_large(doc) ->
+ ["Test setting the packet option {packet, 2} on the send side"];
+
+packet_send_to_large(suite) -> [];
+
+packet_send_to_large(Config) when is_list(Config) ->
+ ClientOpts = ?config(client_opts, Config),
+ ServerOpts = ?config(server_opts, Config),
+ {ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
+
+ Data = lists:append(lists:duplicate(30, "1234567890")),
+
+ Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
+ {from, self()},
+ {mfa, {?MODULE, send, [Data, 1]}},
+ {options, [{packet, 1}| ServerOpts]}]),
+ Port = ssl_test_lib:inet_port(Server),
+ Client = ssl_test_lib:start_client([{node, ServerNode}, {port, Port},
+ {host, Hostname},
+ {from, self()},
+ {mfa, {?MODULE, active_packet, [Data, 1]}},
+ {options, [{active, true} | ClientOpts]}]),
+
+ ssl_test_lib:check_result(Server, {error, {badarg, {packet_to_large, 300, 255}}}),
+
+ ssl_test_lib:close(Server),
+ ssl_test_lib:close(Client).
+
+
+
%%--------------------------------------------------------------------
@@ -1263,7 +1295,7 @@ packet_baddata_active(Config) when is_list(Config) ->
test_server:fail({unexpected, Unexpected})
end,
-
+
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
%%--------------------------------------------------------------------
@@ -1293,7 +1325,7 @@ packet_baddata_passive(Config) when is_list(Config) ->
{options, [{active, false},
{packet, cdr} |
ClientOpts]}]),
-
+
receive
{Client, {other, {error, {invalid_packet, _}},{error,closed}, 1}} -> ok;
Unexpected ->
@@ -1314,7 +1346,7 @@ packet_size_active(Config) when is_list(Config) ->
{ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
Data = list_to_binary(lists:duplicate(100, "1234567890")),
-
+
Server = ssl_test_lib:start_server([{node, ClientNode}, {port, 0},
{from, self()},
{mfa, {?MODULE, send_incomplete ,[Data, 1]}},
@@ -1393,27 +1425,16 @@ passive_recv_packet(Socket, Data, N) ->
Other ->
{other, Other, ssl:session_info(Socket), N}
end.
-
-send_1(_,_, 0) ->
- no_result_msg;
-send_1(Socket, Data, N) ->
- Length = length(Data),
- ssl:send(Socket, [?byte(Length), Data]),
- send_1(Socket, Data, N-1).
-
-send_2(_,_, 0) ->
- no_result_msg;
-send_2(Socket, Data, N) ->
- Length = length(Data),
- ssl:send(Socket, [?uint16(Length), Data]),
- send_2(Socket, Data, N-1).
-send_4(_,_, 0) ->
+send(_,_, 0) ->
no_result_msg;
-send_4(Socket, Data, N) ->
- Length = length(Data),
- ssl:send(Socket, [?uint32(Length), Data]),
- send_4(Socket, Data, N-1).
+send(Socket, Data, N) ->
+ case ssl:send(Socket, [Data]) of
+ ok ->
+ send(Socket, Data, N-1);
+ Other ->
+ Other
+ end.
send_incomplete(Socket, Data, N) ->
send_incomplete(Socket, Data, N, <<>>).
@@ -1446,7 +1467,7 @@ active_once_raw(Socket, Data, N, Acc) ->
active_once_raw(Socket, Data, N, NewAcc)
end
end.
-
+
active_once_packet(_,_, 0) ->
ok;
active_once_packet(Socket, Data, N) ->
diff --git a/lib/stdlib/doc/src/epp.xml b/lib/stdlib/doc/src/epp.xml
index 455d9dc124..e6b48b270a 100644
--- a/lib/stdlib/doc/src/epp.xml
+++ b/lib/stdlib/doc/src/epp.xml
@@ -4,23 +4,21 @@
<erlref>
<header>
<copyright>
- <year>1996</year>
- <year>2007</year>
- <holder>Ericsson AB, All Rights Reserved</holder>
+ <year>1996</year><year>2010</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/.
+ 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.
+ 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>epp</title>
@@ -112,7 +110,7 @@
<p>A string which describes the error is obtained with the following call:
</p>
<code type="none">
-apply(Module, format_error, ErrorDescriptor) </code>
+ Module:format_error(ErrorDescriptor) </code>
</section>
<section>
diff --git a/lib/stdlib/doc/src/erl_lint.xml b/lib/stdlib/doc/src/erl_lint.xml
index e339f484cc..6a7d37765c 100644
--- a/lib/stdlib/doc/src/erl_lint.xml
+++ b/lib/stdlib/doc/src/erl_lint.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>1996</year><year>2009</year>
+ <year>1996</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>erl_lint</title>
@@ -147,7 +147,7 @@
<p>A string which describes the error is obtained with the following call:
</p>
<code type="none">
-apply(Module, format_error, ErrorDescriptor) </code>
+ Module:format_error(ErrorDescriptor) </code>
</section>
<section>
diff --git a/lib/stdlib/doc/src/erl_parse.xml b/lib/stdlib/doc/src/erl_parse.xml
index 739fde7a40..ae8a8afd5c 100644
--- a/lib/stdlib/doc/src/erl_parse.xml
+++ b/lib/stdlib/doc/src/erl_parse.xml
@@ -4,23 +4,21 @@
<erlref>
<header>
<copyright>
- <year>1996</year>
- <year>2007</year>
- <holder>Ericsson AB, All Rights Reserved</holder>
+ <year>1996</year><year>2010</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/.
+ 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.
+ 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>erl_parse</title>
@@ -188,7 +186,7 @@
<p>A string which describes the error is obtained with the following call:
</p>
<code type="none">
-apply(Module, format_error, ErrorDescriptor) </code>
+ Module:format_error(ErrorDescriptor) </code>
</section>
<section>
diff --git a/lib/stdlib/doc/src/file_sorter.xml b/lib/stdlib/doc/src/file_sorter.xml
index b3f4da294c..ccb32659a0 100644
--- a/lib/stdlib/doc/src/file_sorter.xml
+++ b/lib/stdlib/doc/src/file_sorter.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2001</year><year>2009</year>
+ <year>2001</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>file_sorter</title>
@@ -83,13 +83,15 @@
An ordering function is antisymmetric, transitive and total.
<c>Fun(A,&nbsp;B)</c> should return <c>true</c> if <c>A</c>
comes before <c>B</c> in the ordering, <c>false</c> otherwise.
+ An example of a typical ordering function is less than or equal
+ to, <c>=&lt;/2</c>.
Using an ordering function will slow down the sort
considerably. The <c>keysort</c>, <c>keymerge</c> and
<c>keycheck</c> functions do not accept ordering functions.
</item>
<item><c>{unique, bool()}</c>. When sorting or merging files,
- only the first of a sequence of terms that compare equal is
- output if this option is set to <c>true</c>. The default
+ only the first of a sequence of terms that compare equal (<c>==</c>)
+ is output if this option is set to <c>true</c>. The default
value is <c>false</c> which implies that all terms that
compare equal are output. When checking files for
sortedness, a check that no pair of consecutive terms
@@ -301,7 +303,7 @@ Value = Term</pre>
<desc>
<p>Sorts tuples on files. The sort is performed on the
element(s) mentioned in <c>KeyPos</c>. If two tuples
- compare equal on one element, next element according to
+ compare equal (<c>==</c>) on one element, next element according to
<c>KeyPos</c> is compared. The sort is stable.
</p>
<p><c>keysort(N, FileName)</c> is equivalent to
diff --git a/lib/stdlib/doc/src/gb_sets.xml b/lib/stdlib/doc/src/gb_sets.xml
index accec623b9..60d8bcbfa3 100644
--- a/lib/stdlib/doc/src/gb_sets.xml
+++ b/lib/stdlib/doc/src/gb_sets.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2001</year><year>2009</year>
+ <year>2001</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>gb_sets</title>
@@ -34,6 +34,8 @@
General Balanced Trees. This can be much more efficient than
using ordered lists, for larger sets, but depends on the
application.</p>
+ <p>This module considers two elements as different if and only if
+ they do not compare equal (<c>==</c>).</p>
</description>
<section>
diff --git a/lib/stdlib/doc/src/gb_trees.xml b/lib/stdlib/doc/src/gb_trees.xml
index 2bf18138c0..94f40c28bd 100644
--- a/lib/stdlib/doc/src/gb_trees.xml
+++ b/lib/stdlib/doc/src/gb_trees.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2001</year><year>2009</year>
+ <year>2001</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>gb_trees</title>
@@ -34,6 +34,8 @@
Balanced Trees. These have no storage overhead compared to
unbalanced binary trees, and their performance is in general
better than AVL trees.</p>
+ <p>This module considers two keys as different if and only if
+ they do not compare equal (<c>==</c>).</p>
</description>
<section>
diff --git a/lib/stdlib/doc/src/io.xml b/lib/stdlib/doc/src/io.xml
index 6f9d979c9a..efbb1fc078 100644
--- a/lib/stdlib/doc/src/io.xml
+++ b/lib/stdlib/doc/src/io.xml
@@ -1021,7 +1021,7 @@ Error: error 11</pre>
<p>A string which describes the error is obtained with the following
call:</p>
<code type="none">
-apply(Module, format_error, ErrorDescriptor)</code>
+Module:format_error(ErrorDescriptor)</code>
</section>
</erlref>
diff --git a/lib/stdlib/doc/src/lists.xml b/lib/stdlib/doc/src/lists.xml
index 39fc05420d..855a7e0244 100644
--- a/lib/stdlib/doc/src/lists.xml
+++ b/lib/stdlib/doc/src/lists.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>1996</year><year>2009</year>
+ <year>1996</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>lists</title>
@@ -30,15 +30,16 @@
<module>lists</module>
<modulesummary>List Processing Functions</modulesummary>
<description>
- <p>This module contains functions for list processing. The functions
- are organized in two groups: those in the first group perform a
- particular operation on one or more lists, whereas those in the
- second group are higher-order functions, using a fun as argument
- to perform an operation on one list.</p>
+ <p>This module contains functions for list processing.</p>
+
<p>Unless otherwise stated, all functions assume that position
numbering starts at 1. That is, the first element of a list is at
position 1.</p>
+ <p>Two terms <c>T1</c> and <c>T2</c> compare equal if
+ <c>T1&nbsp;==&nbsp;T2</c> evaluates to <c>true</c>. They match
+ if <c>T1&nbsp;=:=&nbsp;T2</c> evaluates to <c>true</c>.</p>
+
<p>Whenever an <marker
id="ordering_function"></marker><em>ordering function</em>
<c>F</c> is expected as argument, it is assumed that the
diff --git a/lib/stdlib/doc/src/proplists.xml b/lib/stdlib/doc/src/proplists.xml
index a218dcf1fe..9f1c5b24ad 100644
--- a/lib/stdlib/doc/src/proplists.xml
+++ b/lib/stdlib/doc/src/proplists.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2002</year><year>2009</year>
+ <year>2002</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>proplists</title>
@@ -44,6 +44,9 @@
such as options passed to a function where a user may specify options
overriding the default settings, object properties, annotations,
etc.</p>
+ <p>Two keys are considered equal if they match (<c>=:=</c>). In other
+ words, numbers are compared literally rather than by value, so that,
+ for instance, <c>1</c> and <c>1.0</c> are different keys.</p>
</description>
<funcs>
<func>
diff --git a/lib/stdlib/doc/src/re.xml b/lib/stdlib/doc/src/re.xml
index e9a32a59d4..4d2a0e0995 100644
--- a/lib/stdlib/doc/src/re.xml
+++ b/lib/stdlib/doc/src/re.xml
@@ -592,7 +592,7 @@ This option makes it possible to include comments inside complicated patterns. N
<v>NLSpec = cr | crlf | lf | anycrlf | any </v>
<v>SplitList = [ RetData ] | [ GroupedRetData ]</v>
<v>GroupedRetData = [ RetData ]</v>
- <v>RetData = iodata() charlist() | binary() | list()</v>
+ <v>RetData = iodata() | charlist() | binary() | list()</v>
</type>
<desc>
<p>This function splits the input into parts by finding tokens
diff --git a/lib/stdlib/doc/src/shell.xml b/lib/stdlib/doc/src/shell.xml
index b8fc64f45e..73cc1b33bd 100644
--- a/lib/stdlib/doc/src/shell.xml
+++ b/lib/stdlib/doc/src/shell.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>1996</year><year>2009</year>
+ <year>1996</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>shell</title>
@@ -739,6 +739,28 @@ loop(N) ->
returns <c>{error,Reason}</c>.</item>
</list>
</section>
+
+ <section>
+ <title>Prompting</title>
+ <p>The default shell prompt function displays the name of the node
+ (if the node can be part of a distributed system) and the
+ current command number. The user can customize the prompt
+ function by calling
+ <c>shell:prompt_func/1</c> or by setting the application
+ configuration parameter <c>shell_prompt_func</c> for the
+ application STDLIB.</p>
+ <p>A customized prompt function is stated as a tuple
+ <c>{Mod,&nbsp;Func}</c>. The function is called as
+ <c>Mod:Func(L)</c>, where <c>L</c> is a list of key-value pairs
+ created by the shell. Currently there is only one pair:
+ <c>{history, N}</c>, where N is the current command number. The
+ function should return a list of characters or an atom. This
+ constraint is due to the Erlang I/O-protocol. Unicode characters
+ beyond codepoint 255 are allowed in the list. Note
+ that in restricted mode the call <c>Mod:Func(L)</c> must be
+ allowed or the default shell prompt function will be called.</p>
+ </section>
+
<funcs>
<func>
<name>history(N) -> integer()</name>
@@ -782,6 +804,19 @@ loop(N) ->
</desc>
</func>
<func>
+ <name>prompt_func(PromptFunc) -> prompt_func()</name>
+ <fsummary>Sets the shell prompt</fsummary>
+ <type>
+ <v>PromptFunc = prompt_func()</v>
+ <v>prompt_func() = default | {Mod, Func}</v>
+ <v>Mod = Func = atom()</v>
+ </type>
+ <desc>
+ <p>Sets the shell prompt function to <c>PromptFunc</c>. The
+ previous prompt function is returned.</p>
+ </desc>
+ </func>
+ <func>
<name>start_restricted(Module) -> ok | {error, Reason}</name>
<fsummary>Exits a normal shell and starts a restricted shell.</fsummary>
<type>
diff --git a/lib/stdlib/doc/src/sofs.xml b/lib/stdlib/doc/src/sofs.xml
index ac434ec5b7..8c8ae51262 100644
--- a/lib/stdlib/doc/src/sofs.xml
+++ b/lib/stdlib/doc/src/sofs.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2001</year><year>2009</year>
+ <year>2001</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>sofs</title>
@@ -311,7 +311,7 @@
applying Fun to the type of the given set), and that Fun does
nothing but selecting, duplicating or rearranging parts of the
elements. Specifying a SetFun as an integer I is equivalent to
- specifying <c>{external, fun(X)&nbsp;-> element(I,&nbsp;X)}</c>,
+ specifying <c>{external, fun(X)&nbsp;-> element(I,&nbsp;X)&nbsp;end}</c>,
but is to be preferred since it makes it possible to handle this
case even more efficiently. Examples of SetFuns:</p>
<pre>
@@ -336,6 +336,7 @@ fun(S) -> sofs:partition(1, S) end
<c>badarg</c>, <c>bad_function</c>, or <c>type_mismatch</c>
message when given badly formed arguments or sets the types of
which are not compatible.</p>
+ <p>When comparing external sets the operator <c>==/2</c> is used.</p>
<p><em>Types</em></p>
<pre>
anyset() = -&nbsp;an unordered, ordered or atomic set&nbsp;-
@@ -1108,7 +1109,13 @@ type() = -&nbsp;a type&nbsp;- </pre>
<desc>
<p>Returns <c>true</c> if the AnySet1 and AnySet2
are <seealso marker="#equal">equal</seealso>, <c>false</c>
- otherwise.</p>
+ otherwise. This example shows that <c>==/2</c> is used when
+ comparing sets for equality:</p>
+ <pre>
+1> <input>S1 = sofs:set([1.0]),</input>
+<input>S2 = sofs:set([1]),</input>
+<input>sofs:is_equal(S1, S2).</input>
+true</pre>
</desc>
</func>
<func>
diff --git a/lib/stdlib/doc/src/stdlib_app.xml b/lib/stdlib/doc/src/stdlib_app.xml
index da046b8a8d..a615c1bf88 100644
--- a/lib/stdlib/doc/src/stdlib_app.xml
+++ b/lib/stdlib/doc/src/stdlib_app.xml
@@ -4,23 +4,21 @@
<appref>
<header>
<copyright>
- <year>2005</year>
- <year>2007</year>
- <holder>Ericsson AB, All Rights Reserved</holder>
+ <year>2005</year><year>2010</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/.
+ 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.
+ 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>STDLIB</title>
@@ -63,6 +61,16 @@
<p>This parameter can be used to determine how many
commands are saved by the Erlang shell.</p>
</item>
+ <tag><c>shell_prompt_func = {Mod, Func} | default</c></tag>
+ <item>
+ <p>where</p>
+ <list type="bulleted">
+ <item><c>Mod = atom()</c></item>
+ <item><c>Func = atom()</c></item>
+ </list>
+ <p>This parameter can be used to set a customized
+ Erlang shell prompt function.</p>
+ </item>
<tag><c>shell_saved_results = integer() >= 0</c></tag>
<item>
<p>This parameter can be used to determine how many
diff --git a/lib/stdlib/doc/src/supervisor.xml b/lib/stdlib/doc/src/supervisor.xml
index adf9d24eae..c696434d49 100644
--- a/lib/stdlib/doc/src/supervisor.xml
+++ b/lib/stdlib/doc/src/supervisor.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>1996</year><year>2009</year>
+ <year>1996</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>supervisor</title>
@@ -402,9 +402,12 @@ child_spec() = {Id,StartFunc,Restart,Shutdown,Type,Modules}
<v>&nbsp;Module = atom()</v>
</type>
<desc>
- <p>Returns a list with information about all child
+ <p>Returns a newly created list with information about all child
specifications and child processes belonging to
the supervisor <c>SupRef</c>.</p>
+ <p>Note that calling this function when supervising a large
+ number of children under low memory conditions can cause an
+ out of memory exception.</p>
<p>See <c>start_child/2</c> for a description of <c>SupRef</c>.</p>
<p>The information given for each child specification/process
is:</p>
@@ -428,6 +431,39 @@ child_spec() = {Id,StartFunc,Restart,Shutdown,Type,Modules}
</desc>
</func>
<func>
+ <name>count_children(SupRef) -> PropListOfCounts</name>
+ <fsummary>Return counts for the number of childspecs, active children, supervisors and workers.</fsummary>
+ <type>
+ <v>SupRef = Name | {Name,Node} | {global,Name} | pid()</v>
+ <v>&nbsp;Name = Node = atom()</v>
+ <v>PropListOfCounts = [{specs, ChildSpecCount}, {active, ActiveProcessCount}, {supervisors, ChildSupervisorCount}, {workers, ChildWorkerCount}]</v>
+ </type>
+ <desc>
+ <p>Returns a property list (see <c>proplists</c>) containing the
+ counts for each of the following elements of the supervisor's
+ child specifications and managed processes:</p>
+ <list type="bulleted">
+ <item>
+ <p><c>specs</c> - the total count of children, dead or alive.</p>
+ </item>
+ <item>
+ <p><c>active</c> - the count of all actively running child processes
+ managed by this supervisor.</p>
+ </item>
+ <item>
+ <p><c>supervisors</c> - the count of all children marked as
+ child_type = supervisor in the spec list, whether or not the
+ child process is still alive.</p>
+ </item>
+ <item>
+ <p><c>workers</c> - the count of all children marked as
+ child_type = worker in the spec list, whether or not the child
+ process is still alive.</p>
+ </item>
+ </list>
+ </desc>
+ </func>
+ <func>
<name>check_childspecs([ChildSpec]) -> Result</name>
<fsummary>Check if children specifications are syntactically correct.</fsummary>
<type>
diff --git a/lib/stdlib/src/Makefile b/lib/stdlib/src/Makefile
index 37c836a254..237818c08b 100644
--- a/lib/stdlib/src/Makefile
+++ b/lib/stdlib/src/Makefile
@@ -146,6 +146,9 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# FLAGS
# ----------------------------------------------------
+ifeq ($(NATIVE_LIBS_ENABLED),yes)
+ERL_COMPILE_FLAGS += +native
+endif
ERL_COMPILE_FLAGS += -I../include -I../../kernel/include
# ----------------------------------------------------
diff --git a/lib/stdlib/src/dets_v8.erl b/lib/stdlib/src/dets_v8.erl
index b24df02882..1f9f84cd27 100644
--- a/lib/stdlib/src/dets_v8.erl
+++ b/lib/stdlib/src/dets_v8.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(dets_v8).
@@ -1053,14 +1053,14 @@ wl([{_Seq, {insert, Object}} | Cs], Type, _Del, Lookup, _I, _Objs)
wl(Cs, Type, delete, Lookup, 1, [{Object,-1}]);
wl([{_Seq, {insert, Object}} | Cs], Type, Del, Lookup, _I, Objs) ->
NObjs =
- case lists:keysearch(Object, 1, Objs) of
- {value, {_, 0}} ->
+ case lists:keyfind(Object, 1, Objs) of
+ {_, 0} ->
lists:keyreplace(Object, 1, Objs, {Object,-1});
- {value, {_, _C}} when Type =:= bag -> % C =:= 1; C =:= -1
+ {_, _C} when Type =:= bag -> % C =:= 1; C =:= -1
Objs;
- {value, {_, C}} when C < 0 -> % when Type =:= duplicate_bag
+ {_, C} when C < 0 -> % when Type =:= duplicate_bag
lists:keyreplace(Object, 1, Objs, {Object,C-1});
- {value, {_, C}} -> % when C > 0, Type =:= duplicate_bag
+ {_, C} -> % when C > 0, Type =:= duplicate_bag
lists:keyreplace(Object, 1, Objs, {Object,C+1});
false when Del =:= delete ->
[{Object, -1} | Objs];
@@ -1258,8 +1258,8 @@ eval_slot(Head, TrySize, Pos, WLs, L, LU) ->
find_key(Head, Pos, NextPos, Size, Term, Key, WLs, L, LU).
find_key(Head, Pos, NextPos, Size, Term, Key, WLs, L, LU) ->
- case lists:keysearch(Key, 1, WLs) of
- {value, {_, {Delete, LookUp, Objects}} = WL} ->
+ case lists:keyfind(Key, 1, WLs) of
+ {_, {Delete, LookUp, Objects}} = WL ->
NWLs = lists:delete(WL, WLs),
{NewObjects, NL, LUK} = eval_object(Size, Term, Delete, LookUp,
Objects, Head, Pos, L, []),
@@ -1297,30 +1297,30 @@ eval_key(Key, Delete, LookUp, Objects, Head, Pos, WLs, L, LU, LUK) ->
%% All objects in Objects have the key Key.
eval_object(Size, Term, Delete, LookUp, Objects, Head, Pos, L, LU) ->
Type = Head#head.type,
- case lists:keysearch(Term, 1, Objects) of
- {value, {_Object, N}} when N =:= 0 ->
+ case lists:keyfind(Term, 1, Objects) of
+ {_Object, N} when N =:= 0 ->
L1 = [{delete,Pos,Size} | L],
{Objects, L1, LU};
- {value, {_Object, N}} when N < 0, Type =:= set ->
+ {_Object, N} when N < 0, Type =:= set ->
L1 = [{old,Pos} | L],
wl_lookup(LookUp, Objects, Term, L1, LU);
- {value, {Object, _N}} when Type =:= bag -> % when N =:= 1; N =:= -1
+ {Object, _N} when Type =:= bag -> % when N =:= 1; N =:= -1
L1 = [{old,Pos} | L],
Objects1 = lists:keydelete(Object, 1, Objects),
wl_lookup(LookUp, Objects1, Term, L1, LU);
- {value, {Object, N}} when N < 0, Type =:= duplicate_bag ->
+ {Object, N} when N < 0, Type =:= duplicate_bag ->
L1 = [{old,Pos} | L],
Objects1 = lists:keyreplace(Object, 1, Objects, {Object,N+1}),
wl_lookup(LookUp, Objects1, Term, L1, LU);
- {value, {_Object, N}} when N > 0, Type =:= duplicate_bag ->
+ {_Object, N} when N > 0, Type =:= duplicate_bag ->
L1 = [{old,Pos} | L],
wl_lookup(LookUp, Objects, Term, L1, LU);
false when Type =:= set, Delete =:= delete ->
- case lists:keysearch(-1, 2, Objects) of
+ case lists:keyfind(-1, 2, Objects) of
false -> % no inserted object, perhaps deleted objects
L1 = [{delete,Pos,Size} | L],
{[], L1, LU};
- {value, {Term2,-1}} ->
+ {Term2, -1} ->
Bin2 = term_to_binary(Term2),
NSize = byte_size(Bin2),
Overwrite =
diff --git a/lib/stdlib/src/edlin.erl b/lib/stdlib/src/edlin.erl
index 0e98bbaa06..6cb441dbed 100644
--- a/lib/stdlib/src/edlin.erl
+++ b/lib/stdlib/src/edlin.erl
@@ -30,8 +30,6 @@
-import(lists, [reverse/1, reverse/2]).
-%-import([nthtail/2, keysearch/3, prefix/2]).
-
-export([over_word/3]).
@@ -476,8 +474,8 @@ prompt({line,Pbs,_,_}) ->
%% case erlang:module_loaded(Mod) of
%% true ->
%% L = apply(Mod, module_info, []),
-%% case keysearch(exports, 1, L) of
-%% {value, {_, Exports}} ->
+%% case lists:keyfind(exports, 1, L) of
+%% {_, Exports} ->
%% match(FuncPrefix, Exports, "(");
%% _ ->
%% no
@@ -493,7 +491,7 @@ prompt({line,Pbs,_,_}) ->
%% print_matches(Matches),
%% no;
%% {partial, Str} ->
-%% case nthtail(length(Prefix), Str) of
+%% case lists:nthtail(length(Prefix), Str) of
%% [] ->
%% print_matches(Matches),
%% {yes, []};
@@ -501,7 +499,7 @@ prompt({line,Pbs,_,_}) ->
%% {yes, Remain}
%% end;
%% {complete, Str} ->
-%% {yes, nthtail(length(Prefix), Str) ++ Extra};
+%% {yes, lists:nthtail(length(Prefix), Str) ++ Extra};
%% no ->
%% no
%% end.
diff --git a/lib/stdlib/src/epp.erl b/lib/stdlib/src/epp.erl
index 8b702c005b..424aed3d2e 100644
--- a/lib/stdlib/src/epp.erl
+++ b/lib/stdlib/src/epp.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
-module(epp).
@@ -111,18 +111,24 @@ format_error({bad,W}) ->
io_lib:format("badly formed '~s'", [W]);
format_error({call,What}) ->
io_lib:format("illegal macro call '~s'",[What]);
-format_error({undefined,M}) ->
- io_lib:format("undefined macro '~w'", [M]);
+format_error({undefined,M,none}) ->
+ io_lib:format("undefined macro '~s'", [M]);
+format_error({undefined,M,A}) ->
+ io_lib:format("undefined macro '~s/~p'", [M,A]);
format_error({depth,What}) ->
io_lib:format("~s too deep",[What]);
format_error({mismatch,M}) ->
- io_lib:format("argument mismatch for macro '~w'", [M]);
+ io_lib:format("argument mismatch for macro '~s'", [M]);
format_error({arg_error,M}) ->
- io_lib:format("badly formed argument for macro '~w'", [M]);
+ io_lib:format("badly formed argument for macro '~s'", [M]);
format_error({redefine,M}) ->
- io_lib:format("redefining macro '~w'", [M]);
-format_error({circular,M}) ->
- io_lib:format("circular macro '~w'", [M]);
+ io_lib:format("redefining macro '~s'", [M]);
+format_error({redefine_predef,M}) ->
+ io_lib:format("redefining predefined macro '~s'", [M]);
+format_error({circular,M,none}) ->
+ io_lib:format("circular macro '~s'", [M]);
+format_error({circular,M,A}) ->
+ io_lib:format("circular macro '~s/~p'", [M,A]);
format_error({include,W,F}) ->
io_lib:format("can't find include ~s \"~s\"", [W,F]);
format_error({illegal,How,What}) ->
@@ -258,18 +264,23 @@ user_predef([{M,Val,redefine}|Pdm], Ms) when is_atom(M) ->
user_predef(Pdm, dict:store({atom,M}, {none,Exp}, Ms));
user_predef([{M,Val}|Pdm], Ms) when is_atom(M) ->
case dict:find({atom,M}, Ms) of
- {ok,_Def} ->
+ {ok,_Defs} when is_list(_Defs) -> %% User defined macros
{error,{redefine,M}};
+ {ok,_Def} -> %% Predefined macros
+ {error,{redefine_predef,M}};
error ->
Exp = erl_parse:tokens(erl_parse:abstract(Val)),
- user_predef(Pdm, dict:store({atom,M}, {none,Exp}, Ms))
+ user_predef(Pdm, dict:store({atom,M}, [{none, {none,Exp}}], Ms))
end;
user_predef([M|Pdm], Ms) when is_atom(M) ->
case dict:find({atom,M}, Ms) of
- {ok,_Def} ->
+ {ok,_Defs} when is_list(_Defs) -> %% User defined macros
{error,{redefine,M}};
+ {ok,_Def} -> %% Predefined macros
+ {error,{redefine_predef,M}};
error ->
- user_predef(Pdm, dict:store({atom,M}, {none,[{atom,1,true}]}, Ms))
+ user_predef(Pdm,
+ dict:store({atom,M}, [{none, {none,[{atom,1,true}]}}], Ms))
end;
user_predef([Md|_Pdm], _Ms) -> {error,{bad,Md}};
user_predef([], Ms) -> {ok,Ms}.
@@ -476,57 +487,56 @@ scan_extends(_Ts, _As, Ms) -> Ms.
%% scan_define(Tokens, DefineToken, From, EppState)
-scan_define([{'(',_Lp},{atom,_Lm,M}=Mac,{',',_Lc}|Toks], _Def, From, St) ->
+scan_define([{'(',_Lp},{Type,_Lm,M}=Mac,{',',_Lc}|Toks], _Def, From, St)
+ when Type =:= atom; Type =:= var ->
case dict:find({atom,M}, St#epp.macs) of
- {ok,_OldDef} ->
- epp_reply(From, {error,{loc(Mac),epp,{redefine,M}}}),
- wait_req_scan(St);
- error ->
- scan_define_cont(From, St,
- {atom, M},
- {none,macro_expansion(Toks)})
- end;
-scan_define([{'(',_Lp},{atom,_Lm,M}=Mac,{'(',_Lc}|Toks], Def, From, St) ->
- case dict:find({atom,M}, St#epp.macs) of
- {ok,_Def} ->
- epp_reply(From, {error,{loc(Mac),epp,{redefine,M}}}),
- wait_req_scan(St);
- error ->
- case catch macro_pars(Toks, []) of
- {ok, {As, Me}} ->
- scan_define_cont(From, St,
- {atom, M},
- {As, Me});
- _ ->
- epp_reply(From, {error,{loc(Def),epp,{bad,define}}}),
- wait_req_scan(St)
- end
- end;
-scan_define([{'(',_Lp},{var,_Lm,M}=Mac,{',',_Lc}|Toks], _Def, From, St) ->
- case dict:find({atom,M}, St#epp.macs) of
- {ok,_OldDef} ->
- epp_reply(From, {error,{loc(Mac),epp,{redefine,M}}}),
- wait_req_scan(St);
- error ->
- scan_define_cont(From, St,
- {atom, M},
- {none,macro_expansion(Toks)})
+ {ok, Defs} when is_list(Defs) ->
+ %% User defined macros: can be overloaded
+ case proplists:is_defined(none, Defs) of
+ true ->
+ epp_reply(From, {error,{loc(Mac),epp,{redefine,M}}}),
+ wait_req_scan(St);
+ false ->
+ scan_define_cont(From, St,
+ {atom, M},
+ {none, {none,macro_expansion(Toks)}})
+ end;
+ {ok, _PreDef} ->
+ %% Predefined macros: cannot be overloaded
+ epp_reply(From, {error,{loc(Mac),epp,{redefine_predef,M}}}),
+ wait_req_scan(St);
+ error ->
+ scan_define_cont(From, St,
+ {atom, M},
+ {none, {none,macro_expansion(Toks)}})
end;
-scan_define([{'(',_Lp},{var,_Lm,M}=Mac,{'(',_Lc}|Toks], Def, From, St) ->
- case dict:find({atom,M}, St#epp.macs) of
- {ok,_Def} ->
- epp_reply(From, {error,{loc(Mac),epp,{redefine,M}}}),
- wait_req_scan(St);
- error ->
- case catch macro_pars(Toks, []) of
- {ok, {As, Me}} ->
- scan_define_cont(From, St,
- {atom, M},
- {As, Me});
- _ ->
- epp_reply(From, {error,{loc(Def),epp,{bad,define}}}),
- wait_req_scan(St)
- end
+scan_define([{'(',_Lp},{Type,_Lm,M}=Mac,{'(',_Lc}|Toks], Def, From, St)
+ when Type =:= atom; Type =:= var ->
+ case catch macro_pars(Toks, []) of
+ {ok, {As,Me}} ->
+ Len = length(As),
+ case dict:find({atom,M}, St#epp.macs) of
+ {ok, Defs} when is_list(Defs) ->
+ %% User defined macros: can be overloaded
+ case proplists:is_defined(Len, Defs) of
+ true ->
+ epp_reply(From,{error,{loc(Mac),epp,{redefine,M}}}),
+ wait_req_scan(St);
+ false ->
+ scan_define_cont(From, St, {atom, M},
+ {Len, {As, Me}})
+ end;
+ {ok, _PreDef} ->
+ %% Predefined macros: cannot be overloaded
+ %% (There are currently no predefined F(...) macros.)
+ epp_reply(From, {error,{loc(Mac),epp,{redefine_predef,M}}}),
+ wait_req_scan(St);
+ error ->
+ scan_define_cont(From, St, {atom, M}, {Len, {As, Me}})
+ end;
+ _ ->
+ epp_reply(From, {error,{loc(Def),epp,{bad,define}}}),
+ wait_req_scan(St)
end;
scan_define(_Toks, Def, From, St) ->
epp_reply(From, {error,{loc(Def),epp,{bad,define}}}),
@@ -541,13 +551,17 @@ scan_define(_Toks, Def, From, St) ->
%%% the information from St#epp.uses is traversed, and if a circularity
%%% is detected, an error message is thrown.
-scan_define_cont(F, St, M, Def) ->
- Ms = dict:store(M, Def, St#epp.macs),
- U = dict:store(M, macro_uses(Def), St#epp.uses),
- scan_toks(F, St#epp{uses=U, macs=Ms}).
+scan_define_cont(F, St, M, {Arity, Def}) ->
+ Ms = dict:append_list(M, [{Arity, Def}], St#epp.macs),
+ try dict:append_list(M, [{Arity, macro_uses(Def)}], St#epp.uses) of
+ U ->
+ scan_toks(F, St#epp{uses=U, macs=Ms})
+ catch
+ {error, Line, Reason} ->
+ epp_reply(F, {error,{Line,epp,Reason}}),
+ wait_req_scan(St)
+ end.
-macro_uses(undefined) ->
- undefined;
macro_uses({_Args, Tokens}) ->
Uses0 = macro_ref(Tokens),
lists:usort(Uses0).
@@ -556,31 +570,25 @@ macro_ref([]) ->
[];
macro_ref([{'?', _}, {'?', _} | Rest]) ->
macro_ref(Rest);
-macro_ref([{'?', _}, {atom, _, A} | Rest]) ->
- [{atom, A} | macro_ref(Rest)];
-macro_ref([{'?', _}, {var, _, A} | Rest]) ->
- [{atom, A} | macro_ref(Rest)];
+macro_ref([{'?', _}, {atom, Lm, A} | Rest]) ->
+ Arity = count_args(Rest, Lm, A),
+ [{{atom, A}, Arity} | macro_ref(Rest)];
+macro_ref([{'?', _}, {var, Lm, A} | Rest]) ->
+ Arity = count_args(Rest, Lm, A),
+ [{{atom, A}, Arity} | macro_ref(Rest)];
macro_ref([_Token | Rest]) ->
macro_ref(Rest).
-all_macro_uses(D0) ->
- L = dict:to_list(D0),
- D = dict:new(),
- add_macro_uses(L, D).
-
-add_macro_uses([], D) ->
- D;
-add_macro_uses([{Key, Def} | Rest], D0) ->
- add_macro_uses(Rest, dict:store(Key, macro_uses(Def), D0)).
-
%% scan_undef(Tokens, UndefToken, From, EppState)
scan_undef([{'(',_Llp},{atom,_Lm,M},{')',_Lrp},{dot,_Ld}], _Undef, From, St) ->
- scan_toks(From, St#epp{macs=dict:erase({atom,M}, St#epp.macs),
- uses=all_macro_uses(St#epp.macs)});
+ Macs = dict:erase({atom,M}, St#epp.macs),
+ Uses = dict:erase({atom,M}, St#epp.uses),
+ scan_toks(From, St#epp{macs=Macs, uses=Uses});
scan_undef([{'(',_Llp},{var,_Lm,M},{')',_Lrp},{dot,_Ld}], _Undef, From,St) ->
- scan_toks(From, St#epp{macs=dict:erase({atom,M}, St#epp.macs),
- uses=all_macro_uses(St#epp.macs)});
+ Macs = dict:erase({atom,M}, St#epp.macs),
+ Uses = dict:erase({atom,M}, St#epp.uses),
+ scan_toks(From, St#epp{macs=Macs, uses=Uses});
scan_undef(_Toks, Undef, From, St) ->
epp_reply(From, {error,{loc(Undef),epp,{bad,undef}}}),
wait_req_scan(St).
@@ -819,42 +827,57 @@ expand_macros(Type, MacT, M, Toks, Ms0) ->
%% (Type will always be 'atom')
{Ms, U} = Ms0,
Lm = loc(MacT),
- check_uses([{Type,M}], [], U, Lm),
Tinfo = element(2, MacT),
- case dict:find({Type,M}, Ms) of
+ case expand_macro1(Type, Lm, M, Toks, Ms) of
{ok,{none,Exp}} ->
- expand_macros(expand_macro(Exp, Tinfo, Toks, dict:new()), Ms0);
+ check_uses([{{Type,M}, none}], [], U, Lm),
+ Toks1 = expand_macros(expand_macro(Exp, Tinfo, [], dict:new()), Ms0),
+ expand_macros(Toks1++Toks, Ms0);
{ok,{As,Exp}} ->
+ check_uses([{{Type,M}, length(As)}], [], U, Lm),
{Bs,Toks1} = bind_args(Toks, Lm, M, As, dict:new()),
- %%io:format("Bound arguments to macro ~w (~w)~n", [M,Bs]),
- expand_macros(expand_macro(Exp, Tinfo, Toks1, Bs), Ms0);
- {ok,undefined} ->
- throw({error,Lm,{undefined,M}});
- error ->
- throw({error,Lm,{undefined,M}})
+ expand_macros(expand_macro(Exp, Tinfo, Toks1, Bs), Ms0)
+ end.
+
+expand_macro1(Type, Lm, M, Toks, Ms) ->
+ Arity = count_args(Toks, Lm, M),
+ case dict:find({Type,M}, Ms) of
+ error -> %% macro not found
+ throw({error,Lm,{undefined,M,Arity}});
+ {ok, undefined} -> %% Predefined macro without definition
+ throw({error,Lm,{undefined,M,Arity}});
+ {ok, [{none, Def}]} ->
+ {ok, Def};
+ {ok, Defs} when is_list(Defs) ->
+ case proplists:get_value(Arity, Defs) of
+ undefined ->
+ throw({error,Lm,{mismatch,M}});
+ Def ->
+ {ok, Def}
+ end;
+ {ok, PreDef} -> %% Predefined macro
+ {ok, PreDef}
end.
-check_uses(undefined, _Anc, _U, _Lm) ->
- ok;
check_uses([], _Anc, _U, _Lm) ->
ok;
check_uses([M|Rest], Anc, U, Lm) ->
case lists:member(M, Anc) of
true ->
- {_, Name} = M,
- throw({error,Lm,{circular,Name}});
+ {{_, Name},Arity} = M,
+ throw({error,Lm,{circular,Name,Arity}});
false ->
L = get_macro_uses(M, U),
check_uses(L, [M|Anc], U, Lm),
check_uses(Rest, Anc, U, Lm)
end.
-
-get_macro_uses(M, U) ->
+
+get_macro_uses({M,Arity}, U) ->
case dict:find(M, U) of
error ->
[];
{ok, L} ->
- L
+ proplists:get_value(Arity, L, proplists:get_value(none, L, []))
end.
%% Macro expansion
@@ -882,7 +905,7 @@ expand_macros([T|Ts], Ms) ->
expand_macros([], _Ms) -> [].
%% bind_args(Tokens, MacroLocation, MacroName, ArgumentVars, Bindings)
-%% Collect the arguments to a macro call and check for correct number.
+%% Collect the arguments to a macro call.
bind_args([{'(',_Llp},{')',_Lrp}|Toks], _Lm, _M, [], Bs) ->
{Bs,Toks};
@@ -890,7 +913,7 @@ bind_args([{'(',_Llp}|Toks0], Lm, M, [A|As], Bs) ->
{Arg,Toks1} = macro_arg(Toks0, [], []),
macro_args(Toks1, Lm, M, As, store_arg(Lm, M, A, Arg, Bs));
bind_args(_Toks, Lm, M, _As, _Bs) ->
- throw({error,Lm,{mismatch,M}}).
+ throw({error,Lm,{mismatch,M}}). % Cannot happen.
macro_args([{')',_Lrp}|Toks], _Lm, _M, [], Bs) ->
{Bs,Toks};
@@ -898,15 +921,39 @@ macro_args([{',',_Lc}|Toks0], Lm, M, [A|As], Bs) ->
{Arg,Toks1} = macro_arg(Toks0, [], []),
macro_args(Toks1, Lm, M, As, store_arg(Lm, M, A, Arg, Bs));
macro_args([], Lm, M, _As, _Bs) ->
- throw({error,Lm,{arg_error,M}});
+ throw({error,Lm,{arg_error,M}}); % Cannot happen.
macro_args(_Toks, Lm, M, _As, _Bs) ->
- throw({error,Lm,{mismatch,M}}).
+ throw({error,Lm,{mismatch,M}}). % Cannot happen.
store_arg(L, M, _A, [], _Bs) ->
throw({error,L,{mismatch,M}});
store_arg(_L, _M, A, Arg, Bs) ->
dict:store(A, Arg, Bs).
+%% count_args(Tokens, MacroLine, MacroName)
+%% Count the number of arguments in a macro call.
+count_args([{'(', _Llp},{')',_Lrp}|_Toks], _Lm, _M) ->
+ 0;
+count_args([{'(', _Llp},{',',_Lc}|_Toks], Lm, M) ->
+ throw({error,Lm,{arg_error,M}});
+count_args([{'(',_Llp}|Toks0], Lm, M) ->
+ {_Arg,Toks1} = macro_arg(Toks0, [], []),
+ count_args(Toks1, Lm, M, 1);
+count_args(_Toks, _Lm, _M) ->
+ none.
+
+count_args([{')',_Lrp}|_Toks], _Lm, _M, NbArgs) ->
+ NbArgs;
+count_args([{',',_Lc},{')',_Lrp}|_Toks], Lm, M, _NbArgs) ->
+ throw({error,Lm,{arg_error,M}});
+count_args([{',',_Lc}|Toks0], Lm, M, NbArgs) ->
+ {_Arg,Toks1} = macro_arg(Toks0, [], []),
+ count_args(Toks1, Lm, M, NbArgs+1);
+count_args([], Lm, M, _NbArgs) ->
+ throw({error,Lm,{arg_error,M}});
+count_args(_Toks, Lm, M, _NbArgs) ->
+ throw({error,Lm,{mismatch,M}}). % Cannot happen.
+
%% macro_arg([Tok], [ClosePar], [ArgTok]) -> {[ArgTok],[RestTok]}.
%% Collect argument tokens until we hit a ',' or a ')'. We know a
%% enough about syntax to recognise "open parentheses" and keep
diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl
index 156d68554e..91f7641af7 100644
--- a/lib/stdlib/src/erl_lint.erl
+++ b/lib/stdlib/src/erl_lint.erl
@@ -1,20 +1,20 @@
%% -*- erlang-indent-level: 4 -*-
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%% Do necessary checking of Erlang code.
@@ -78,7 +78,7 @@ value_option(Flag, Default, On, OnVal, Off, OffVal, Opts) ->
calls = dict:new(), %Who calls who
imported = [], %Actually imported functions
used_records=sets:new() :: set(), %Used record definitions
- used_types = sets:new() :: set() %Used type definitions
+ used_types = dict:new() :: dict() %Used type definitions
}).
%% Define the lint state record.
@@ -277,6 +277,8 @@ format_error({conflicting_behaviours,{Name,Arity},B,FirstL,FirstB}) ->
format_error({undefined_behaviour_func, {Func,Arity}, Behaviour}) ->
io_lib:format("undefined callback function ~w/~w (behaviour '~w')",
[Func,Arity,Behaviour]);
+format_error({undefined_behaviour_func, {Func,Arity,_Spec}, Behaviour}) ->
+ format_error({undefined_behaviour_func, {Func,Arity}, Behaviour});
format_error({undefined_behaviour,Behaviour}) ->
io_lib:format("behaviour ~w undefined", [Behaviour]);
format_error({undefined_behaviour_callbacks,Behaviour}) ->
@@ -288,7 +290,7 @@ format_error({ill_defined_behaviour_callbacks,Behaviour}) ->
%% --- types and specs ---
format_error({singleton_typevar, Name}) ->
io_lib:format("type variable ~w is only used once (is unbound)", [Name]);
-format_error({type_ref, {TypeName, Arity}}) ->
+format_error({undefined_type, {TypeName, Arity}}) ->
io_lib:format("type ~w~s undefined", [TypeName, gen_type_paren(Arity)]);
format_error({unused_type, {TypeName, Arity}}) ->
io_lib:format("type ~w~s is unused", [TypeName, gen_type_paren(Arity)]);
@@ -757,10 +759,11 @@ post_traversal_check(Forms, St0) ->
St7 = check_bif_clashes(Forms, St6),
St8 = check_specs_without_function(St7),
St9 = check_functions_without_spec(Forms, St8),
- StA = check_unused_types(Forms, St9),
- StB = check_untyped_records(Forms, StA),
- StC = check_on_load(StB),
- check_unused_records(Forms, StC).
+ StA = check_undefined_types(St9),
+ StB = check_unused_types(Forms, StA),
+ StC = check_untyped_records(Forms, StB),
+ StD = check_on_load(StC),
+ check_unused_records(Forms, StD).
%% check_behaviour(State0) -> State
%% Check that the behaviour attribute is valid.
@@ -786,13 +789,20 @@ behaviour_callbacks(Line, B, St0) ->
Funcs when is_list(Funcs) ->
All = all(fun({FuncName, Arity}) ->
is_atom(FuncName) andalso is_integer(Arity);
+ ({FuncName, Arity, Spec}) ->
+ is_atom(FuncName) andalso is_integer(Arity)
+ andalso is_list(Spec);
(_Other) ->
false
end,
Funcs),
+ MaybeRemoveSpec = fun({_F,_A}=FA) -> FA;
+ ({F,A,_S}) -> {F,A};
+ (Other) -> Other
+ end,
if
All =:= true ->
- {Funcs, St0};
+ {[MaybeRemoveSpec(F) || F <- Funcs], St0};
true ->
St1 = add_warning(Line,
{ill_defined_behaviour_callbacks,B},
@@ -970,6 +980,16 @@ check_undefined_functions(#lint{called=Called0,defined=Def0}=St0) ->
add_error(L, {undefined_function,NA}, St)
end, St0, Undef).
+%% check_undefined_types(State0) -> State
+
+check_undefined_types(#lint{usage=Usage,types=Def}=St0) ->
+ Used = Usage#usage.used_types,
+ UTAs = dict:fetch_keys(Used),
+ Undef = [{TA,dict:fetch(TA, Used)} || TA <- UTAs, not dict:is_key(TA, Def)],
+ foldl(fun ({TA,L}, St) ->
+ add_error(L, {undefined_type,TA}, St)
+ end, St0, Undef).
+
%% check_bif_clashes(Forms, State0) -> State
check_bif_clashes(Forms, St0) ->
@@ -1427,20 +1447,11 @@ is_pattern_expr_1({tuple,_Line,Es}) ->
all(fun is_pattern_expr/1, Es);
is_pattern_expr_1({nil,_Line}) -> true;
is_pattern_expr_1({cons,_Line,H,T}) ->
- case is_pattern_expr_1(H) of
- true -> is_pattern_expr_1(T);
- false -> false
- end;
+ is_pattern_expr_1(H) andalso is_pattern_expr_1(T);
is_pattern_expr_1({op,_Line,Op,A}) ->
- case erl_internal:arith_op(Op, 1) of
- true -> is_pattern_expr_1(A);
- false -> false
- end;
+ erl_internal:arith_op(Op, 1) andalso is_pattern_expr_1(A);
is_pattern_expr_1({op,_Line,Op,A1,A2}) ->
- case erl_internal:arith_op(Op, 2) of
- true -> all(fun is_pattern_expr/1, [A1,A2]);
- false -> false
- end;
+ erl_internal:arith_op(Op, 2) andalso all(fun is_pattern_expr/1, [A1,A2]);
is_pattern_expr_1(_Other) -> false.
%% pattern_bin([Element], VarTable, Old, BinVarTable, State) ->
@@ -1817,28 +1828,17 @@ is_gexpr({bin,_L,Fs}, RDs) ->
end, Fs);
is_gexpr({call,_L,{atom,_Lf,F},As}, RDs) ->
A = length(As),
- case erl_internal:guard_bif(F, A) of
- true -> is_gexpr_list(As, RDs);
- false -> false
- end;
+ erl_internal:guard_bif(F, A) andalso is_gexpr_list(As, RDs);
is_gexpr({call,_L,{remote,_Lr,{atom,_Lm,erlang},{atom,_Lf,F}},As}, RDs) ->
A = length(As),
- case erl_internal:guard_bif(F, A) orelse is_gexpr_op(F, A) of
- true -> is_gexpr_list(As, RDs);
- false -> false
- end;
+ (erl_internal:guard_bif(F, A) orelse is_gexpr_op(F, A))
+ andalso is_gexpr_list(As, RDs);
is_gexpr({call,L,{tuple,Lt,[{atom,Lm,erlang},{atom,Lf,F}]},As}, RDs) ->
is_gexpr({call,L,{remote,Lt,{atom,Lm,erlang},{atom,Lf,F}},As}, RDs);
is_gexpr({op,_L,Op,A}, RDs) ->
- case is_gexpr_op(Op, 1) of
- true -> is_gexpr(A, RDs);
- false -> false
- end;
+ is_gexpr_op(Op, 1) andalso is_gexpr(A, RDs);
is_gexpr({op,_L,Op,A1,A2}, RDs) ->
- case is_gexpr_op(Op, 2) of
- true -> is_gexpr_list([A1,A2], RDs);
- false -> false
- end;
+ is_gexpr_op(Op, 2) andalso is_gexpr_list([A1,A2], RDs);
is_gexpr(_Other, _RDs) -> false.
is_gexpr_op('andalso', 2) -> true;
@@ -2388,7 +2388,7 @@ check_type(Types, St) ->
{SeenVars, St1} = check_type(Types, dict:new(), St),
dict:fold(fun(Var, {seen_once, Line}, AccSt) ->
case atom_to_list(Var) of
- [$_|_] -> AccSt;
+ "_"++_ -> AccSt;
_ -> add_error(Line, {singleton_typevar, Var}, AccSt)
end;
(_Var, seen_multiple, AccSt) ->
@@ -2400,7 +2400,7 @@ check_type({ann_type, _L, [_Var, Type]}, SeenVars, St) ->
check_type({paren_type, _L, [Type]}, SeenVars, St) ->
check_type(Type, SeenVars, St);
check_type({remote_type, L, [{atom, _, Mod}, {atom, _, Name}, Args]},
- SeenVars, St = #lint{module=CurrentMod}) ->
+ SeenVars, #lint{module=CurrentMod} = St) ->
St1 =
case (dict:is_key({Name, length(Args)}, default_types())
orelse is_var_arity_type(Name)) of
@@ -2463,21 +2463,15 @@ check_type({type, _L, product, Args}, SeenVars, St) ->
lists:foldl(fun(T, {AccSeenVars, AccSt}) ->
check_type(T, AccSeenVars, AccSt)
end, {SeenVars, St}, Args);
-check_type({type, La, TypeName, Args}, SeenVars,
- St = #lint{types=Defs, usage=Usage}) ->
+check_type({type, La, TypeName, Args}, SeenVars, #lint{usage=Usage} = St) ->
Arity = length(Args),
- St1 =
- case dict:is_key({TypeName, Arity}, Defs) of
- true ->
- UsedTypes1 = Usage#usage.used_types,
- UsedTypes2 = sets:add_element({TypeName, Arity}, UsedTypes1),
- St#lint{usage=Usage#usage{used_types=UsedTypes2}};
- false ->
- case is_var_arity_type(TypeName) of
- true -> St;
- false -> add_error(La, {type_ref, {TypeName, Arity}}, St)
- end
- end,
+ St1 = case is_var_arity_type(TypeName) of
+ true -> St;
+ false ->
+ OldUsed = Usage#usage.used_types,
+ UsedTypes = dict:store({TypeName, Arity}, La, OldUsed),
+ St#lint{usage=Usage#usage{used_types=UsedTypes}}
+ end,
check_type({type, -1, product, Args}, SeenVars, St1).
check_record_types(Line, Name, Fields, SeenVars, St) ->
@@ -2636,7 +2630,7 @@ check_specs([FunType|Left], Arity, St0) ->
check_specs([], _Arity, St) ->
St.
-check_specs_without_function(St = #lint{module=Mod, defined=Funcs}) ->
+check_specs_without_function(#lint{module=Mod,defined=Funcs,specs=Specs}=St) ->
Fun = fun({M, F, A} = MFA, Line, AccSt) when M =:= Mod ->
case gb_sets:is_element({F, A}, Funcs) of
true -> AccSt;
@@ -2644,7 +2638,7 @@ check_specs_without_function(St = #lint{module=Mod, defined=Funcs}) ->
end;
({_M, _F, _A}, _Line, AccSt) -> AccSt
end,
- dict:fold(Fun, St, St#lint.specs).
+ dict:fold(Fun, St, Specs).
%% This generates warnings for functions without specs; if the user has
%% specified both options, we do not generate the same warnings twice.
@@ -2688,7 +2682,7 @@ check_unused_types(Forms, St = #lint{usage=Usage, types=Types}) ->
(Type, FileLine, AccSt) ->
case loc(FileLine) of
{FirstFile, _} ->
- case sets:is_element(Type, UsedTypes) of
+ case dict:is_key(Type, UsedTypes) of
true -> AccSt;
false ->
add_warning(FileLine,
@@ -3009,7 +3003,7 @@ check_old_unused_vars(Vt, Vt0, St0) ->
unused_vars(Vt, Vt0, _St0) ->
U0 = orddict:filter(fun (V, {_State,unused,_Ls}) ->
case atom_to_list(V) of
- [$_|_] -> false;
+ "_"++_ -> false;
_ -> true
end;
(_V, _How) -> false
diff --git a/lib/stdlib/src/escript.erl b/lib/stdlib/src/escript.erl
index c0f71fb3f5..b2562c6169 100644
--- a/lib/stdlib/src/escript.erl
+++ b/lib/stdlib/src/escript.erl
@@ -139,7 +139,8 @@ start(EscriptOptions) ->
parse_and_run(File, Args, Options) ->
CheckOnly = lists:member("s", Options),
- {Source, Module, FormsOrBin, Mode} = parse_file(File, CheckOnly),
+ {Source, Module, FormsOrBin, HasRecs, Mode} =
+ parse_file(File, CheckOnly),
Mode2 =
case lists:member("d", Options) of
true ->
@@ -159,7 +160,7 @@ parse_and_run(File, Args, Options) ->
is_list(FormsOrBin) ->
case Mode2 of
interpret ->
- interpret(FormsOrBin, File, Args);
+ interpret(FormsOrBin, HasRecs, File, Args);
compile ->
case compile:forms(FormsOrBin, [report]) of
{ok, Module, BeamBin} ->
@@ -246,7 +247,8 @@ parse_file(File, CheckOnly) ->
#state{mode = Mode,
source = Source,
module = Module,
- forms_or_bin = FormsOrBin} =
+ forms_or_bin = FormsOrBin,
+ has_records = HasRecs} =
case ScriptType of
archive ->
%% Archive file
@@ -260,7 +262,7 @@ parse_file(File, CheckOnly) ->
%% Source code
parse_source(S, File, Fd, StartLine, HeaderSz, CheckOnly)
end,
- {Source, Module, FormsOrBin, Mode}.
+ {Source, Module, FormsOrBin, HasRecs, Mode}.
%% Skip header and make a heuristic guess about the script type
skip_header(P, LineNo) ->
@@ -421,8 +423,7 @@ check_source(S, CheckOnly) ->
case S of
#state{n_errors = Nerrs} when Nerrs =/= 0 ->
fatal("There were compilation errors.");
- #state{exports_main = ExpMain,
- has_records = HasRecs,
+ #state{exports_main = ExpMain,
forms_or_bin = [FileForm2, ModForm2 | Forms]} ->
%% Optionally add export of main/1
Forms2 =
@@ -433,36 +434,15 @@ check_source(S, CheckOnly) ->
Forms3 = [FileForm2, ModForm2 | Forms2],
case CheckOnly of
true ->
- %% Optionally expand records
- Forms4 =
- case HasRecs of
- false -> Forms3;
- true -> erl_expand_records:module(Forms3, [])
- end,
%% Strong validation and halt
- case compile:forms(Forms4, [report,strong_validation]) of
+ case compile:forms(Forms3, [report,strong_validation]) of
{ok,_} ->
my_halt(0);
_Other ->
fatal("There were compilation errors.")
end;
false ->
- %% Basic validation before execution
- case erl_lint:module(Forms3) of
- {ok,Ws} ->
- report_warnings(Ws);
- {error,Es,Ws} ->
- report_errors(Es),
- report_warnings(Ws),
- fatal("There were compilation errors.")
- end,
- %% Optionally expand records
- Forms4 =
- case HasRecs of
- false -> Forms3;
- true -> erl_expand_records:module(Forms3, [])
- end,
- S#state{forms_or_bin = Forms4}
+ S#state{forms_or_bin = Forms3}
end
end.
@@ -495,17 +475,9 @@ epp_parse_file2(Epp, S, Forms, Parsed) ->
case Parsed of
{ok, Form} ->
case Form of
- {attribute,Ln,record,{Record,Fields}} ->
- S2 = S#state{has_records = true},
- case epp:normalize_typed_record_fields(Fields) of
- {typed, NewFields} ->
- epp_parse_file(Epp, S2,
- [{attribute, Ln, record, {Record, NewFields}},
- {attribute, Ln, type,
- {{record, Record}, Fields, []}} | Forms]);
- not_typed ->
- epp_parse_file(Epp, S2, [Form | Forms])
- end;
+ {attribute,_,record, _} ->
+ S2 = S#state{has_records = true},
+ epp_parse_file(Epp, S2, [Form | Forms]);
{attribute,Ln,mode,NewMode} ->
S2 = S#state{mode = NewMode},
if
@@ -564,8 +536,23 @@ run(Module, Args) ->
fatal(format_exception(Class, Reason))
end.
-interpret(Forms, File, Args) ->
- Dict = parse_to_dict(Forms),
+interpret(Forms, HasRecs, File, Args) ->
+ %% Basic validation before execution
+ case erl_lint:module(Forms) of
+ {ok,Ws} ->
+ report_warnings(Ws);
+ {error,Es,Ws} ->
+ report_errors(Es),
+ report_warnings(Ws),
+ fatal("There were compilation errors.")
+ end,
+ %% Optionally expand records
+ Forms2 =
+ case HasRecs of
+ false -> Forms;
+ true -> erl_expand_records:module(Forms, [])
+ end,
+ Dict = parse_to_dict(Forms2),
ArgsA = erl_parse:abstract(Args, 0),
Call = {call,0,{atom,0,main},[ArgsA]},
try
diff --git a/lib/stdlib/src/file_sorter.erl b/lib/stdlib/src/file_sorter.erl
index de9e628e22..e21a0c88f3 100644
--- a/lib/stdlib/src/file_sorter.erl
+++ b/lib/stdlib/src/file_sorter.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(file_sorter).
@@ -186,7 +186,7 @@ options(Option) ->
options([{format, Format} | L], Opts) when Format =:= binary;
Format =:= term;
is_function(Format),
- is_function(Format, 1) ->
+ is_function(Format, 1) ->
options(L, Opts#opts{format = Format});
options([{format, binary_term} | L], Opts) ->
options(L, Opts#opts{format = binary_term_fun()});
@@ -419,9 +419,9 @@ culprit_found(IFun, F, FNs, W, L, I, [_Size | BT]) ->
IFun(close),
check_files(FNs, W, [{F,I,binary_to_term(BT)} | L]).
-files(_I, L, _LSz, #w{seq = 1}=W, []) ->
+files(_I, L, _LSz, #w{seq = 1, out = Out}=W, []) ->
%% No temporary files created, everything in L.
- case W#w.out of
+ case Out of
Fun when is_function(Fun) ->
SL = internal_sort(L, W),
W1 = outfun(binterm_objects(SL, []), W),
@@ -462,8 +462,8 @@ fun_run(I, L, LSz, W, []) ->
{cont, NW, Objs} ->
fun_run(I, L, LSz, NW, Objs)
end;
-fun_run(I, L, LSz, W, Objs) when LSz < W#w.runsize ->
- {NI, NObjs, NL, NLSz} = fun_objs(Objs, L, LSz, W#w.runsize, I, W),
+fun_run(I, L, LSz, #w{runsize = Runsize}=W, Objs) when LSz < Runsize ->
+ {NI, NObjs, NL, NLSz} = fun_objs(Objs, L, LSz, Runsize, I, W),
fun_run(NI, NL, NLSz, W, NObjs);
fun_run(I, L, _LSz, W, Objs) ->
NW = write_run(L, W),
@@ -1201,11 +1201,11 @@ infun(W) ->
erlang:raise(Class, Reason, erlang:get_stacktrace())
end.
-outfun(A, W) when W#w.inout_value =/= no_value ->
+outfun(A, #w{inout_value = Val} = W) when Val =/= no_value ->
W1 = W#w{inout_value = no_value},
W2 = if
W1#w.fun_out ->
- outfun(W#w.inout_value, W1);
+ outfun(Val, W1);
true -> W1
end,
outfun(A, W2);
@@ -1372,19 +1372,19 @@ cleanup(W) ->
end,
lists:foreach(F, W1#w.temp).
-close_input(W) when is_function(W#w.in) ->
- catch (W#w.in)(close),
+close_input(#w{in = In}=W) when is_function(In) ->
+ catch In(close),
W#w{in = undefined};
close_input(#w{in = undefined}=W) ->
W.
-close_out(W) when is_function(W#w.out) ->
- catch (W#w.out)(close);
+close_out(#w{out = Out}) when is_function(Out) ->
+ catch Out(close);
close_out(_) ->
ok.
close_file(Fd, W) ->
- {value, {Fd, FileName}} = lists:keysearch(Fd, 1, W#w.temp),
+ {Fd, FileName} = lists:keyfind(Fd, 1, W#w.temp),
?DEBUG("closing ~p~n", [FileName]),
file:close(Fd),
W#w{temp = [FileName | lists:keydelete(Fd, 1, W#w.temp)]}.
diff --git a/lib/stdlib/src/filelib.erl b/lib/stdlib/src/filelib.erl
index d65588f0d1..74c5172137 100644
--- a/lib/stdlib/src/filelib.erl
+++ b/lib/stdlib/src/filelib.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
-module(filelib).
@@ -228,7 +228,17 @@ ensure_dir(F) ->
ok;
false ->
ensure_dir(Dir),
- file:make_dir(Dir)
+ case file:make_dir(Dir) of
+ {error,eexist}=EExist ->
+ case do_is_dir(Dir, file) of
+ true ->
+ ok;
+ false ->
+ EExist
+ end;
+ Err ->
+ Err
+ end
end.
diff --git a/lib/stdlib/src/io_lib.erl b/lib/stdlib/src/io_lib.erl
index 2d3c86e4ea..26f6ec8931 100644
--- a/lib/stdlib/src/io_lib.erl
+++ b/lib/stdlib/src/io_lib.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -139,9 +139,9 @@ format_prompt({format,Format,Args}) ->
format_prompt(Format,Args);
format_prompt(Prompt)
when is_list(Prompt); is_atom(Prompt); is_binary(Prompt) ->
- format_prompt("~s", [Prompt]);
+ format_prompt("~ts", [Prompt]);
format_prompt(Prompt) ->
- format_prompt("~p", [Prompt]).
+ format_prompt("~tp", [Prompt]).
format_prompt(Format, Args) ->
case catch io_lib:format(Format, Args) of
diff --git a/lib/stdlib/src/qlc.erl b/lib/stdlib/src/qlc.erl
index ef142e1c8a..6e48d95973 100644
--- a/lib/stdlib/src/qlc.erl
+++ b/lib/stdlib/src/qlc.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(qlc).
@@ -528,122 +528,111 @@ options(Options0, [Key | Keys], L) when is_list(Options0) ->
false ->
Options0
end,
- V = case lists:keysearch(Key, 1, Options) of
- {value, {format_fun, U=undefined}} ->
+ V = case lists:keyfind(Key, 1, Options) of
+ {format_fun, U=undefined} ->
{ok, U};
- {value, {info_fun, U=undefined}} ->
+ {info_fun, U=undefined} ->
{ok, U};
- {value, {lookup_fun, U=undefined}} ->
+ {lookup_fun, U=undefined} ->
{ok, U};
- {value, {parent_fun, U=undefined}} ->
+ {parent_fun, U=undefined} ->
{ok, U};
- {value, {post_fun, U=undefined}} ->
+ {post_fun, U=undefined} ->
{ok, U};
- {value, {pre_fun, U=undefined}} ->
+ {pre_fun, U=undefined} ->
{ok, U};
- {value, {info_fun, Fun}} when is_function(Fun),
- is_function(Fun, 1) ->
+ {info_fun, Fun} when is_function(Fun), is_function(Fun, 1) ->
{ok, Fun};
- {value, {pre_fun, Fun}} when is_function(Fun),
- is_function(Fun, 1) ->
+ {pre_fun, Fun} when is_function(Fun), is_function(Fun, 1) ->
{ok, Fun};
- {value, {post_fun, Fun}} when is_function(Fun),
- is_function(Fun, 0) ->
+ {post_fun, Fun} when is_function(Fun), is_function(Fun, 0) ->
{ok, Fun};
- {value, {lookup_fun, Fun}} when is_function(Fun),
- is_function(Fun, 2) ->
+ {lookup_fun, Fun} when is_function(Fun), is_function(Fun, 2) ->
{ok, Fun};
- {value, {max_lookup, Max}} when is_integer(Max), Max >= 0 ->
+ {max_lookup, Max} when is_integer(Max), Max >= 0 ->
{ok, Max};
- {value, {max_lookup, infinity}} ->
+ {max_lookup, infinity} ->
{ok, -1};
- {value, {format_fun, Fun}} when is_function(Fun),
- is_function(Fun, 1) ->
+ {format_fun, Fun} when is_function(Fun), is_function(Fun, 1) ->
{ok, Fun};
- {value, {parent_fun, Fun}} when is_function(Fun),
- is_function(Fun, 0) ->
+ {parent_fun, Fun} when is_function(Fun), is_function(Fun, 0) ->
{ok, Fun};
- {value, {key_equality, KE='=='}}->
+ {key_equality, KE='=='} ->
{ok, KE};
- {value, {key_equality, KE='=:='}}->
+ {key_equality, KE='=:='} ->
{ok, KE};
- {value, {join, J=any}} ->
+ {join, J=any} ->
{ok, J};
- {value, {join, J=nested_loop}} ->
+ {join, J=nested_loop} ->
{ok, J};
- {value, {join, J=merge}} ->
+ {join, J=merge} ->
{ok, J};
- {value, {join, J=lookup}} ->
+ {join, J=lookup} ->
{ok, J};
- {value, {lookup, LookUp}} when LookUp;
- not LookUp;
- LookUp =:= any ->
+ {lookup, LookUp} when is_boolean(LookUp); LookUp =:= any ->
{ok, LookUp};
- {value, {max_list_size, Max}} when is_integer(Max), Max >= 0 ->
+ {max_list_size, Max} when is_integer(Max), Max >= 0 ->
{ok, Max};
- {value, {tmpdir_usage, TmpUsage}} when TmpUsage =:= allowed;
- TmpUsage =:= not_allowed;
- TmpUsage =:= info_msg;
- TmpUsage =:= warning_msg;
- TmpUsage =:= error_msg ->
+ {tmpdir_usage, TmpUsage} when TmpUsage =:= allowed;
+ TmpUsage =:= not_allowed;
+ TmpUsage =:= info_msg;
+ TmpUsage =:= warning_msg;
+ TmpUsage =:= error_msg ->
{ok, TmpUsage};
- {value, {unique, Unique}} when Unique; not Unique ->
+ {unique, Unique} when is_boolean(Unique) ->
{ok, Unique};
- {value, {cache, Cache}} when Cache; not Cache; Cache =:= list ->
+ {cache, Cache} when is_boolean(Cache); Cache =:= list ->
{ok, Cache};
- {value, {cache, ets}} ->
+ {cache, ets} ->
{ok, true};
- {value, {cache, no}} ->
+ {cache, no} ->
{ok, false};
- {value, {unique_all, UniqueAll}} when UniqueAll; not UniqueAll ->
+ {unique_all, UniqueAll} when is_boolean(UniqueAll) ->
{ok, UniqueAll};
- {value, {cache_all, CacheAll}} when CacheAll;
- not CacheAll;
- CacheAll =:= list ->
+ {cache_all, CacheAll} when is_boolean(CacheAll);
+ CacheAll =:= list ->
{ok, CacheAll};
- {value, {cache_all, ets}} ->
+ {cache_all, ets} ->
{ok, true};
- {value, {cache_all, no}} ->
+ {cache_all, no} ->
{ok, false};
- {value, {spawn_options, default}} ->
+ {spawn_options, default} ->
{ok, default};
- {value, {spawn_options, SpawnOptions}} ->
+ {spawn_options, SpawnOptions} ->
case is_proper_list(SpawnOptions) of
true ->
{ok, SpawnOptions};
false ->
badarg
end;
- {value, {flat, Flat}} when Flat; not Flat ->
+ {flat, Flat} when is_boolean(Flat) ->
{ok, Flat};
- {value, {format, Format}} when Format =:= string;
- Format =:= abstract_code;
- Format =:= debug ->
+ {format, Format} when Format =:= string;
+ Format =:= abstract_code;
+ Format =:= debug ->
{ok, Format};
- {value, {n_elements, NElements}} when NElements =:= infinity;
- is_integer(NElements),
- NElements > 0 ->
+ {n_elements, NElements} when NElements =:= infinity;
+ is_integer(NElements),
+ NElements > 0 ->
{ok, NElements};
- {value, {depth, Depth}} when Depth =:= infinity;
- is_integer(Depth), Depth >= 0 ->
+ {depth, Depth} when Depth =:= infinity;
+ is_integer(Depth), Depth >= 0 ->
{ok, Depth};
- {value, {order, Order}} when is_function(Order),
- is_function(Order, 2);
- (Order =:= ascending);
- (Order =:= descending) ->
+ {order, Order} when is_function(Order), is_function(Order, 2);
+ (Order =:= ascending);
+ (Order =:= descending) ->
{ok, Order};
- {value, {compressed, Comp}} when Comp ->
+ {compressed, Comp} when Comp ->
{ok, [compressed]};
- {value, {compressed, Comp}} when not Comp ->
+ {compressed, Comp} when not Comp ->
{ok, []};
- {value, {tmpdir, T}} ->
+ {tmpdir, T} ->
{ok, T};
- {value, {size, Size}} when is_integer(Size), Size > 0 ->
+ {size, Size} when is_integer(Size), Size > 0 ->
{ok, Size};
- {value, {no_files, NoFiles}} when is_integer(NoFiles),
- NoFiles > 1 ->
+ {no_files, NoFiles} when is_integer(NoFiles), NoFiles > 1 ->
{ok, NoFiles};
- {value, {Key, _}} ->
+ {Key, _} ->
badarg;
false ->
Default = default_option(Key),
@@ -1457,7 +1446,7 @@ prep_qlc_lc({qlc_v1, QFun, CodeF, Qdata0, QOpt}, Opt, GOpt, _H) ->
{?qual_data(QNum, GoI, SI, {gen, Prep}), ModGens}
end,
{Qdata, ModGens} = lists:mapfoldl(F, [], Qdata0),
- SomeLookUp = lists:keymember(true, 2, ModGens) =/= false,
+ SomeLookUp = lists:keymember(true, 2, ModGens),
check_lookup_option(Opt, SomeLookUp),
case ModGens of
[{_QNum, _LookUp, all, OnePrep}] ->
@@ -1503,7 +1492,7 @@ pos_fun('==', QOpt, QNum) ->
prep_gen(#qlc_table{lu_vals = LuV0, ms = MS0, trav_MS = TravMS,
info_fun = IF, lookup_fun = LU_fun,
- key_equality = KeyEquality}=LE0,
+ key_equality = KeyEquality}=LE0,
Prep0, PosFun0, {MS, Fs}, Opt) ->
PosFun = PosFun0(KeyEquality),
{LuV, {STag,SkipFils}} = find_const_positions(IF, LU_fun, PosFun, Opt),
@@ -1998,8 +1987,8 @@ no_cache_of_first_generator(Optz, 1) ->
Optz#optz{cache = false}.
maybe_sort(LE, QNum, DoSort, Opt) ->
- case lists:keysearch(QNum, 1, DoSort) of
- {value, {QNum, Col}} ->
+ case lists:keyfind(QNum, 1, DoSort) of
+ {QNum, Col} ->
#qlc_opt{tmpdir = TmpDir, tmpdir_usage = TmpUsage} = Opt,
SortOpts = [{tmpdir,Dir} || Dir <- [TmpDir], Dir =/= ""],
Sort = #qlc_sort{h = LE, keypos = {keysort, Col}, unique = false,
@@ -2025,7 +2014,7 @@ skip_lookup_filters(Qdata0, LU_SkipFs) ->
%% specification it must be applied _after_ the lookup join (the
%% filter must not be skipped!).
activate_join_lookup_filter(QNum, Qdata) ->
- {value, {_,GoI2,SI2,{gen,Prep2}}} = lists:keysearch(QNum, 1, Qdata),
+ {_,GoI2,SI2,{gen,Prep2}} = lists:keyfind(QNum, 1, Qdata),
Table2 = Prep2#prepared.qh,
NPrep2 = Prep2#prepared{qh = Table2#qlc_table{ms = no_match_spec}},
%% Table2#qlc_table.ms has been reset; the filter will be run.
@@ -2059,7 +2048,7 @@ opt_join(Join, JoinOption, Qdata, Opt, LU_SkipQuals) ->
opt_join_lu([{{_Q1,_C1,Q2,_C2}=J,[{lookup_join,_KEols,JKE,Skip0} | _]} | LJ],
Qdata, LU_SkipQuals) ->
- {value, {Q2,_,_,{gen,Prep2}}} = lists:keysearch(Q2, 1, Qdata),
+ {Q2,_,_,{gen,Prep2}} = lists:keyfind(Q2, 1, Qdata),
#qlc_table{ms = MS, key_equality = KE,
lookup_fun = LU_fun} = Prep2#prepared.qh,
%% If there is no filter to skip (the match spec was derived
@@ -2670,8 +2659,8 @@ sort_list_output(L) ->
%% Don't use the file_sorter unless it is known that objects will be
%% put on a temporary file (optimization).
sort_handle(H, ListFun, FileFun, SortOptions, Post, LocalPost, TmpUsageM) ->
- Size = case lists:keysearch(size, 1, SortOptions) of
- {value, {size, Size0}} -> Size0;
+ Size = case lists:keyfind(size, 1, SortOptions) of
+ {size, Size0} -> Size0;
false -> default_option(size)
end,
sort_cache(H, [], Size, {ListFun, FileFun, Post, LocalPost, TmpUsageM}).
@@ -2891,8 +2880,8 @@ ucache_recall(UTab, MTab, SeqNo) ->
Object = case ets:lookup(UTab, Hash) of
[{Hash, SeqNo, Object0}] -> Object0;
HashSeqObjects ->
- {value, {Hash, SeqNo, Object0}} =
- lists:keysearch(SeqNo, 2, HashSeqObjects),
+ {Hash, SeqNo, Object0} =
+ lists:keyfind(SeqNo, 2, HashSeqObjects),
Object0
end,
[Object | fun() -> ucache_recall(UTab, MTab, SeqNo + 1) end]
@@ -3403,8 +3392,8 @@ merge_join_id() ->
tmp_merge_file(MergeId) ->
TmpFiles = get(?MERGE_JOIN_FILE),
- case lists:keysearch(MergeId, 1, TmpFiles) of
- {value, {MergeId, Fd, FileName}} ->
+ case lists:keyfind(MergeId, 1, TmpFiles) of
+ {MergeId, Fd, FileName} ->
{Fd, FileName};
false ->
none
diff --git a/lib/stdlib/src/qlc_pt.erl b/lib/stdlib/src/qlc_pt.erl
index 2d7874d99f..24378a0698 100644
--- a/lib/stdlib/src/qlc_pt.erl
+++ b/lib/stdlib/src/qlc_pt.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(qlc_pt).
@@ -845,8 +845,8 @@ join_handle(AP, L, [F, H, O, C], Constants) ->
join_handle_constants(QId, ExtraConstants) ->
IdNo = QId#qid.no,
- case lists:keysearch(IdNo, 1, ExtraConstants) of
- {value, {IdNo, ConstOps}} ->
+ case lists:keyfind(IdNo, 1, ExtraConstants) of
+ {IdNo, ConstOps} ->
ConstOps;
false ->
[]
@@ -1231,9 +1231,9 @@ lu_skip(ColConstants, FilterData, PatternFrame, PatternVars,
%% The filter can only be skipped if all constants
%% are looked up.
LookedUpConstants =
- case lists:keysearch(Column, 1, ColConstants) of
+ case lists:keyfind(Column, 1, ColConstants) of
false -> [];
- {value, {Column,LUCs}} -> LUCs
+ {Column, LUCs} -> LUCs
end,
%% Don't try to handle filters that compare several
%% values equal. See also frames_to_columns().
@@ -1279,8 +1279,8 @@ join_gens(Cs0, Qs, Skip) ->
join_gens2(lists:filter(fun(C) -> length(C) > 2 end, Cs), FD, Skip)}.
join_gens2(Cs0, FilterData, Skip) ->
- [{J, skip_tag(case lists:keysearch(J, 1, Skip) of
- {value, {J,FilL}} ->
+ [{J, skip_tag(case lists:keyfind(J, 1, Skip) of
+ {J, FilL} ->
FilL;
false ->
[]
@@ -1296,8 +1296,8 @@ skip_tag(FilList, FilterData) ->
end, FilList}.
skip_tag(Col, ColFils, FilterData) ->
- case lists:keysearch(Col, 1, ColFils) of
- {value, {Col, FilL}} ->
+ case lists:keyfind(Col, 1, ColFils) of
+ {Col, FilL} ->
Tag = if
length(FilterData) =:= length(FilL) ->
all;
@@ -1415,7 +1415,7 @@ sel_gf([], _N, _Deps, _RDs, _Gens, _Gens1) ->
sel_gf([{#qid{no = N}=Id,{fil,F}}=Fil | FData], N, Deps, RDs, Gens, Gens1) ->
case erl_lint:is_guard_test(F, RDs) of
true ->
- {value, {Id,GIds}} = lists:keysearch(Id, 1, Deps),
+ {Id,GIds} = lists:keyfind(Id, 1, Deps),
case length(GIds) =< 1 of
true ->
case generators_in_scope(GIds, Gens1) of
@@ -2572,8 +2572,8 @@ nos_pattern([P0 | Ps0], S0, PVs0) ->
{[P | Ps], S, PVs};
nos_pattern({var,L,V}, {LI,Vs0,UV,A,Sg}, PVs0) when V =/= '_' ->
{Name, Vs, PVs} =
- case lists:keysearch(V, 1, PVs0) of
- {value, {V,VN}} ->
+ case lists:keyfind(V, 1, PVs0) of
+ {V, VN} ->
_ = used_var(V, Vs0, UV),
{VN, Vs0, PVs0};
false ->
diff --git a/lib/stdlib/src/shell.erl b/lib/stdlib/src/shell.erl
index a8d31b4e6b..ebb221c151 100644
--- a/lib/stdlib/src/shell.erl
+++ b/lib/stdlib/src/shell.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(shell).
@@ -22,12 +22,14 @@
-export([whereis_evaluator/0, whereis_evaluator/1]).
-export([start_restricted/1, stop_restricted/0]).
-export([local_allowed/3, non_local_allowed/3]).
+-export([prompt_func/1]).
-define(LINEMAX, 30).
-define(CHAR_MAX, 60).
-define(DEF_HISTORY, 20).
-define(DEF_RESULTS, 20).
-define(DEF_CATCH_EXCEPTION, false).
+-define(DEF_PROMPT_FUNC, default).
-define(RECORDS, shell_records).
@@ -235,14 +237,15 @@ server(StartSync) ->
{History,Results} = check_and_get_history_and_results(),
server_loop(0, start_eval(Bs, RT, []), Bs, RT, [], History, Results).
-server_loop(N0, Eval_0, Bs0, RT, Ds0, History0, Results0) ->
+server_loop(N0, Eval_0, Bs00, RT, Ds00, History0, Results0) ->
N = N0 + 1,
- {Res, Eval0} = get_command(prompt(N), Eval_0, Bs0, RT, Ds0),
+ {Eval_1,Bs0,Ds0,Prompt} = prompt(N, Eval_0, Bs00, RT, Ds00),
+ {Res,Eval0} = get_command(Prompt, Eval_1, Bs0, RT, Ds0),
case Res of
{ok,Es0,_EndLine} ->
case expand_hist(Es0, N) of
{ok,Es} ->
- {V,Eval,Bs,Ds} = shell_cmd(Es, Eval0, Bs0, RT, Ds0),
+ {V,Eval,Bs,Ds} = shell_cmd(Es, Eval0, Bs0, RT, Ds0, cmd),
{History,Results} = check_and_get_history_and_results(),
add_cmd(N, Es, V),
HB1 = del_cmd(command, N - History, N - History0, false),
@@ -301,7 +304,42 @@ get_command1(Pid, Eval, Bs, RT, Ds) ->
get_command1(Pid, start_eval(Bs, RT, Ds), Bs, RT, Ds)
end.
-prompt(N) ->
+prompt(N, Eval0, Bs0, RT, Ds0) ->
+ case get_prompt_func() of
+ {M,F} ->
+ L = [{history,N}],
+ C = {call,1,{remote,1,{atom,1,M},{atom,1,F}},[{value,1,L}]},
+ {V,Eval,Bs,Ds} = shell_cmd([C], Eval0, Bs0, RT, Ds0, pmt),
+ {Eval,Bs,Ds,case V of
+ {pmt,Val} ->
+ Val;
+ _ ->
+ bad_prompt_func({M,F}),
+ default_prompt(N)
+ end};
+ default ->
+ {Eval0,Bs0,Ds0,default_prompt(N)}
+ end.
+
+get_prompt_func() ->
+ case application:get_env(stdlib, shell_prompt_func) of
+ {ok,{M,F}=PromptFunc} when is_atom(M), is_atom(F) ->
+ PromptFunc;
+ {ok,default=Default} ->
+ Default;
+ {ok,Term} ->
+ bad_prompt_func(Term),
+ default;
+ undefined ->
+ default
+ end.
+
+bad_prompt_func(M) ->
+ fwrite_severity(benign, <<"Bad prompt function: ~p">>, [M]).
+
+default_prompt(N) ->
+ %% Don't bother flattening the list irrespective of what the
+ %% I/O-protocol states.
case is_alive() of
true -> io_lib:format(<<"(~s)~w> ">>, [node(), N]);
false -> io_lib:format(<<"~w> ">>, [N])
@@ -461,14 +499,16 @@ has_bin(T, I) ->
has_bin(element(I, T)),
has_bin(T, I - 1).
-%% shell_cmd(Sequence, Evaluator, Bindings, RecordTable, Dictionary)
+%% shell_cmd(Sequence, Evaluator, Bindings, RecordTable, Dictionary, What)
%% shell_rep(Evaluator, Bindings, RecordTable, Dictionary) ->
%% {Value,Evaluator,Bindings,Dictionary}
%% Send a command to the evaluator and wait for the reply. Start a new
%% evaluator if necessary.
+%% What = pmt | cmd. When evaluating a prompt ('pmt') the evaluated value
+%% must not be displayed, and it has to be returned.
-shell_cmd(Es, Eval, Bs, RT, Ds) ->
- Eval ! {shell_cmd,self(),{eval,Es}},
+shell_cmd(Es, Eval, Bs, RT, Ds, W) ->
+ Eval ! {shell_cmd,self(),{eval,Es}, W},
shell_rep(Eval, Bs, RT, Ds).
shell_rep(Ev, Bs0, RT, Ds0) ->
@@ -559,26 +599,26 @@ evaluator(Shell, Bs, RT, Ds) ->
eval_loop(Shell, Bs0, RT) ->
receive
- {shell_cmd,Shell,{eval,Es}} ->
+ {shell_cmd,Shell,{eval,Es},W} ->
Ef = {value,
fun(MForFun, As) -> apply_fun(MForFun, As, Shell) end},
Lf = local_func_handler(Shell, RT, Ef),
- Bs = eval_exprs(Es, Shell, Bs0, RT, Lf, Ef),
+ Bs = eval_exprs(Es, Shell, Bs0, RT, Lf, Ef, W),
eval_loop(Shell, Bs, RT)
end.
restricted_eval_loop(Shell, Bs0, RT, RShMod) ->
receive
- {shell_cmd,Shell,{eval,Es}} ->
+ {shell_cmd,Shell,{eval,Es}, W} ->
{LFH,NLFH} = restrict_handlers(RShMod, Shell, RT),
put(restricted_expr_state, []),
- Bs = eval_exprs(Es, Shell, Bs0, RT, {eval,LFH}, {value,NLFH}),
+ Bs = eval_exprs(Es, Shell, Bs0, RT, {eval,LFH}, {value,NLFH}, W),
restricted_eval_loop(Shell, Bs, RT, RShMod)
end.
-eval_exprs(Es, Shell, Bs0, RT, Lf, Ef) ->
+eval_exprs(Es, Shell, Bs0, RT, Lf, Ef, W) ->
try
- {R,Bs2} = exprs(Es, Bs0, RT, Lf, Ef),
+ {R,Bs2} = exprs(Es, Bs0, RT, Lf, Ef, W),
Shell ! {shell_rep,self(),R},
Bs2
catch
@@ -614,10 +654,10 @@ do_catch(_Class, _Reason) ->
false
end.
-exprs(Es, Bs0, RT, Lf, Ef) ->
- exprs(Es, Bs0, RT, Lf, Ef, Bs0).
+exprs(Es, Bs0, RT, Lf, Ef, W) ->
+ exprs(Es, Bs0, RT, Lf, Ef, Bs0, W).
-exprs([E0|Es], Bs1, RT, Lf, Ef, Bs0) ->
+exprs([E0|Es], Bs1, RT, Lf, Ef, Bs0, W) ->
UsedRecords = used_record_defs(E0, RT),
RBs = record_bindings(UsedRecords, Bs1),
case check_command(prep_check([E0]), RBs) of
@@ -629,16 +669,20 @@ exprs([E0|Es], Bs1, RT, Lf, Ef, Bs0) ->
if
Es =:= [] ->
VS = pp(V0, 1, RT),
- io:requests([{put_chars, VS}, nl]),
+ [io:requests([{put_chars, VS}, nl]) || W =:= cmd],
%% Don't send the result back if it will be
%% discarded anyway.
- V = case result_will_be_saved() of
- true -> V0;
- false -> ignored
+ V = if
+ W =:= pmt ->
+ {W,V0};
+ true -> case result_will_be_saved() of
+ true -> V0;
+ false -> ignored
+ end
end,
{{value,V,Bs,get()},Bs};
true ->
- exprs(Es, Bs, RT, Lf, Ef, Bs0)
+ exprs(Es, Bs, RT, Lf, Ef, Bs0, W)
end;
{error,Error} ->
{{command_error,Error},Bs0}
@@ -1383,7 +1427,7 @@ pp(V, I, RT) ->
columns() ->
case io:columns() of
- {ok,N} -> N;
+ {ok,N} -> N;
_ -> 80
end.
@@ -1438,3 +1482,9 @@ results(L) when is_integer(L), L >= 0 ->
catch_exception(Bool) ->
set_env(stdlib, shell_catch_exception, Bool, ?DEF_CATCH_EXCEPTION).
+
+-type prompt_func() :: 'default' | {module(),atom()}.
+-spec prompt_func(prompt_func()) -> prompt_func().
+
+prompt_func(String) ->
+ set_env(stdlib, shell_prompt_func, String, ?DEF_PROMPT_FUNC).
diff --git a/lib/stdlib/src/shell_default.erl b/lib/stdlib/src/shell_default.erl
index 670f8cdb44..3fe359af0e 100644
--- a/lib/stdlib/src/shell_default.erl
+++ b/lib/stdlib/src/shell_default.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -45,6 +45,7 @@ help() ->
format("h() -- history\n"),
format("history(N) -- set how many previous commands to keep\n"),
format("results(N) -- set how many previous command results to keep\n"),
+ format("catch_exception(B) -- how exceptions are handled\n"),
format("v(N) -- use the value of query <N>\n"),
format("rd(R,D) -- define a record\n"),
format("rf() -- remove all record information\n"),
diff --git a/lib/stdlib/src/supervisor.erl b/lib/stdlib/src/supervisor.erl
index fb1303d1eb..22269a8d1b 100644
--- a/lib/stdlib/src/supervisor.erl
+++ b/lib/stdlib/src/supervisor.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(supervisor).
@@ -24,7 +24,7 @@
-export([start_link/2,start_link/3,
start_child/2, restart_child/2,
delete_child/2, terminate_child/2,
- which_children/1,
+ which_children/1, count_children/1,
check_childspecs/1]).
-export([behaviour_info/1]).
@@ -95,6 +95,9 @@ terminate_child(Supervisor, Name) ->
which_children(Supervisor) ->
call(Supervisor, which_children).
+count_children(Supervisor) ->
+ call(Supervisor, count_children).
+
call(Supervisor, Req) ->
gen_server:call(Supervisor, Req, infinity).
@@ -297,7 +300,49 @@ handle_call(which_children, _From, State) ->
{Name, Pid, ChildType, Mods}
end,
State#state.children),
- {reply, Resp, State}.
+ {reply, Resp, State};
+
+handle_call(count_children, _From, State) when ?is_simple(State) ->
+ [#child{child_type = CT}] = State#state.children,
+ {Active, Count} =
+ ?DICT:fold(fun(Pid, _Val, {Alive, Tot}) ->
+ if is_pid(Pid) -> {Alive+1, Tot +1};
+ true -> {Alive, Tot + 1} end
+ end, {0, 0}, State#state.dynamics),
+ Reply = case CT of
+ supervisor -> [{specs, 1}, {active, Active},
+ {supervisors, Count}, {workers, 0}];
+ worker -> [{specs, 1}, {active, Active},
+ {supervisors, 0}, {workers, Count}]
+ end,
+ {reply, Reply, State};
+
+handle_call(count_children, _From, State) ->
+
+ %% Specs and children are together on the children list...
+ {Specs, Active, Supers, Workers} =
+ lists:foldl(fun(Child, Counts) ->
+ count_child(Child, Counts)
+ end, {0,0,0,0}, State#state.children),
+
+ %% Reformat counts to a property list.
+ Reply = [{specs, Specs}, {active, Active},
+ {supervisors, Supers}, {workers, Workers}],
+ {reply, Reply, State}.
+
+
+count_child(#child{pid = Pid, child_type = worker},
+ {Specs, Active, Supers, Workers}) ->
+ case is_pid(Pid) andalso is_process_alive(Pid) of
+ true -> {Specs+1, Active+1, Supers, Workers+1};
+ false -> {Specs+1, Active, Supers, Workers+1}
+ end;
+count_child(#child{pid = Pid, child_type = supervisor},
+ {Specs, Active, Supers, Workers}) ->
+ case is_pid(Pid) andalso is_process_alive(Pid) of
+ true -> {Specs+1, Active+1, Supers+1, Workers};
+ false -> {Specs+1, Active, Supers+1, Workers}
+ end.
%%% Hopefully cause a function-clause as there is no API function
diff --git a/lib/stdlib/test/Makefile b/lib/stdlib/test/Makefile
index ac8cbba375..9beac93eb8 100644
--- a/lib/stdlib/test/Makefile
+++ b/lib/stdlib/test/Makefile
@@ -110,7 +110,7 @@ COVERFILE=stdlib.cover
make_emakefile:
$(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) \
- >> $(EMAKEFILE)
+ > $(EMAKEFILE)
tests debug opt: make_emakefile
erl $(ERL_MAKE_FLAGS) -make
diff --git a/lib/stdlib/test/calendar_SUITE.erl b/lib/stdlib/test/calendar_SUITE.erl
index ea81bb99a9..10fb72c1b1 100644
--- a/lib/stdlib/test/calendar_SUITE.erl
+++ b/lib/stdlib/test/calendar_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(calendar_SUITE).
@@ -48,7 +48,7 @@ gregorian_days(doc) ->
"At the same time valid_date is tested.";
gregorian_days(suite) ->
[];
-gregorian_days(Config) when list(Config) ->
+gregorian_days(Config) when is_list(Config) ->
?line Days = calendar:date_to_gregorian_days({?START_YEAR, 1, 1}),
?line MaxDays = calendar:date_to_gregorian_days({?END_YEAR, 1, 1}),
?line check_gregorian_days(Days, MaxDays).
@@ -60,7 +60,7 @@ gregorian_seconds(doc) ->
"every 2 days + 1 second.";
gregorian_seconds(suite) ->
[];
-gregorian_seconds(Config) when list(Config) ->
+gregorian_seconds(Config) when is_list(Config) ->
?line Secs = calendar:datetime_to_gregorian_seconds({{?START_YEAR, 1, 1},
{0, 0, 0}}),
?line MaxSecs = calendar:datetime_to_gregorian_seconds({{?END_YEAR, 1, 1},
@@ -72,7 +72,7 @@ day_of_the_week(doc) ->
"year ?START_YEAR up to ?END_YEAR.";
day_of_the_week(suite) ->
[];
-day_of_the_week(Config) when list(Config) ->
+day_of_the_week(Config) when is_list(Config) ->
?line Days = calendar:date_to_gregorian_days({?START_YEAR, 1, 1}),
?line MaxDays = calendar:date_to_gregorian_days({?END_YEAR, 1, 1}),
?line DayNumber = calendar:day_of_the_week({?START_YEAR, 1, 1}),
@@ -82,7 +82,7 @@ day_of_the_week_calibrate(doc) ->
"Tests that day_of_the_week for 1997-11-11 is Tuesday (2)";
day_of_the_week_calibrate(suite) ->
[];
-day_of_the_week_calibrate(Config) when list(Config) ->
+day_of_the_week_calibrate(Config) when is_list(Config) ->
?line 2 = calendar:day_of_the_week({1997, 11, 11}).
leap_years(doc) ->
@@ -90,7 +90,7 @@ leap_years(doc) ->
"year ?START_YEAR up to ?END_YEAR.";
leap_years(suite) ->
[];
-leap_years(Config) when list(Config) ->
+leap_years(Config) when is_list(Config) ->
?line check_leap_years(?START_YEAR, ?END_YEAR).
last_day_of_the_month(doc) ->
@@ -98,14 +98,14 @@ last_day_of_the_month(doc) ->
"year ?START_YEAR up to ?END_YEAR.";
last_day_of_the_month(suite) ->
[];
-last_day_of_the_month(Config) when list(Config) ->
+last_day_of_the_month(Config) when is_list(Config) ->
?line check_last_day_of_the_month({?START_YEAR, 1}, {?END_YEAR, 1}).
local_time_to_universal_time_dst(doc) ->
"Tests local_time_to_universal_time_dst for MET";
local_time_to_universal_time_dst(suite) ->
[];
-local_time_to_universal_time_dst(Config) when list(Config) ->
+local_time_to_universal_time_dst(Config) when is_list(Config) ->
case os:type() of
{unix,_} ->
case os:cmd("date '+%Z'") of
@@ -117,7 +117,7 @@ local_time_to_universal_time_dst(Config) when list(Config) ->
_ ->
local_time_to_universal_time_dst_x(Config)
end.
-local_time_to_universal_time_dst_x(Config) when list(Config) ->
+local_time_to_universal_time_dst_x(Config) when is_list(Config) ->
%% Assumes MET (UTC+1 / UTC+2(dst)
?line LtW = {{2003,01,15},{14,00,00}}, % Winter
?line UtW = {{2003,01,15},{13,00,00}}, %
diff --git a/lib/stdlib/test/epp_SUITE.erl b/lib/stdlib/test/epp_SUITE.erl
index 67e20fd2e1..9a3ae0baf5 100644
--- a/lib/stdlib/test/epp_SUITE.erl
+++ b/lib/stdlib/test/epp_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1998-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1998-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
-module(epp_SUITE).
@@ -23,7 +23,7 @@
upcase_mac/1, upcase_mac_1/1, upcase_mac_2/1,
variable/1, variable_1/1, otp_4870/1, otp_4871/1, otp_5362/1,
pmod/1, not_circular/1, skip_header/1, otp_6277/1, otp_7702/1,
- otp_8130/1]).
+ otp_8130/1, overload_mac/1, otp_8388/1]).
-export([epp_parse_erl_form/2]).
@@ -61,8 +61,9 @@ fin_per_testcase(_, Config) ->
all(doc) ->
["Test cases for epp."];
all(suite) ->
- [rec_1, upcase_mac, predef_mac, variable, otp_4870, otp_4871, otp_5362,
- pmod, not_circular, skip_header, otp_6277, otp_7702, otp_8130].
+ [rec_1, upcase_mac, predef_mac, variable, otp_4870, otp_4871, otp_5362,
+ pmod, not_circular, skip_header, otp_6277, otp_7702, otp_8130,
+ overload_mac, otp_8388].
rec_1(doc) ->
["Recursive macros hang or crash epp (OTP-1398)."];
@@ -466,7 +467,7 @@ otp_6277(Config) when is_list(Config) ->
-define(ASSERT, ?MODULE).
?ASSERT().">>,
- [{error,{{4,16},epp,{undefined,'MODULE'}}}]}],
+ [{error,{{4,16},epp,{undefined,'MODULE', none}}}]}],
?line [] = check(Config, Ts),
ok.
@@ -673,7 +674,7 @@ otp_8130(Config) when is_list(Config) ->
{otp_8130_c7,
<<"\nt() -> ?A.\n">>,
- {errors,[{{2,9},epp,{undefined,'A'}}],[]}},
+ {errors,[{{2,9},epp,{undefined,'A', none}}],[]}},
{otp_8130_c8,
<<"\n-include_lib(\"$apa/foo.hrl\").\n">>,
@@ -683,7 +684,7 @@ otp_8130(Config) when is_list(Config) ->
{otp_8130_c9,
<<"-define(S, ?S).\n"
"t() -> ?S.\n">>,
- {errors,[{{2,9},epp,{circular,'S'}}],[]}},
+ {errors,[{{2,9},epp,{circular,'S', none}}],[]}},
{otp_8130_c10,
<<"\n-file.">>,
@@ -718,22 +719,22 @@ otp_8130(Config) when is_list(Config) ->
{otp_8130_c17,
<<"\n-define(A(B), B).\n"
"-define(A, 1).\n">>,
- {errors,[{{3,9},epp,{redefine,'A'}}],[]}},
+ []},
{otp_8130_c18,
<<"\n-define(A, 1).\n"
"-define(A(B), B).\n">>,
- {errors,[{{3,9},epp,{redefine,'A'}}],[]}},
+ []},
{otp_8130_c19,
<<"\n-define(a(B), B).\n"
"-define(a, 1).\n">>,
- {errors,[{{3,9},epp,{redefine,a}}],[]}},
+ []},
{otp_8130_c20,
<<"\n-define(a, 1).\n"
"-define(a(B), B).\n">>,
- {errors,[{{3,9},epp,{redefine,a}}],[]}},
+ []},
{otp_8130_c21,
<<"\n-define(A(B, B), B).\n">>,
@@ -745,7 +746,7 @@ otp_8130(Config) when is_list(Config) ->
{otp_8130_c23,
<<"\n-file(?b, 3).\n">>,
- {errors,[{{2,8},epp,{undefined,b}}],[]}},
+ {errors,[{{2,8},epp,{undefined,b, none}}],[]}},
{otp_8130_c24,
<<"\n-include(\"no such file.erl\").\n">>,
@@ -821,7 +822,8 @@ macs(Epp) ->
macro(Epp, N) ->
case lists:keyfind({atom,N}, 1, epp:macro_defs(Epp)) of
false -> false;
- {{atom,N},{_,V}} -> V
+ {{atom,N},{_,V}} -> V;
+ {{atom,N},Defs} -> lists:append([V || {_,{_,V}} <- Defs])
end.
ifdef(Config) ->
@@ -1030,6 +1032,113 @@ ifdef(Config) ->
],
?line [] = run(Config, Ts).
+
+
+overload_mac(doc) ->
+ ["Advanced test on overloading macros."];
+overload_mac(suite) ->
+ [];
+overload_mac(Config) when is_list(Config) ->
+ Cs = [
+ %% '-undef' removes all definitions of a macro
+ {overload_mac_c1,
+ <<"-define(A, a).\n"
+ "-define(A(X), X).\n"
+ "-undef(A).\n"
+ "t1() -> ?A.\n",
+ "t2() -> ?A(1).">>,
+ {errors,[{{4,9},epp,{undefined,'A', none}},
+ {{5,9},epp,{undefined,'A', 1}}],[]}},
+
+ %% cannot overload predefined macros
+ {overload_mac_c2,
+ <<"-define(MODULE(X), X).">>,
+ {errors,[{{1,9},epp,{redefine_predef,'MODULE'}}],[]}},
+
+ %% cannot overload macros with same arity
+ {overload_mac_c3,
+ <<"-define(A(X), X).\n"
+ "-define(A(Y), Y).">>,
+ {errors,[{{2,9},epp,{redefine,'A'}}],[]}},
+
+ {overload_mac_c4,
+ <<"-define(A, a).\n"
+ "-define(A(X,Y), {X,Y}).\n"
+ "a(X) -> X.\n"
+ "t() -> ?A(1).">>,
+ {errors,[{{4,9},epp,{mismatch,'A'}}],[]}}
+ ],
+ ?line [] = compile(Config, Cs),
+
+ Ts = [
+ {overload_mac_r1,
+ <<"-define(A, 1).\n"
+ "-define(A(X), X).\n"
+ "-define(A(X, Y), {X, Y}).\n"
+ "t() -> {?A, ?A(2), ?A(3, 4)}.">>,
+ {1, 2, {3, 4}}},
+
+ {overload_mac_r2,
+ <<"-define(A, 1).\n"
+ "-define(A(X), X).\n"
+ "t() -> ?A(?A).">>,
+ 1},
+
+ {overload_mac_r3,
+ <<"-define(A, ?B).\n"
+ "-define(B, a).\n"
+ "-define(B(X), {b,X}).\n"
+ "a(X) -> X.\n"
+ "t() -> ?A(1).">>,
+ 1}
+ ],
+ ?line [] = run(Config, Ts).
+
+
+otp_8388(doc) ->
+ ["OTP-8388. More tests on overloaded macros."];
+otp_8388(suite) ->
+ [];
+otp_8388(Config) when is_list(Config) ->
+ Dir = ?config(priv_dir, Config),
+ ?line File = filename:join(Dir, "otp_8388.erl"),
+ ?line ok = file:write_file(File, <<"-module(otp_8388)."
+ "-define(LINE, a).">>),
+ fun() ->
+ PreDefMacros = [{'LINE', a}],
+ ?line {error,{redefine_predef,'LINE'}} =
+ epp:open(File, [], PreDefMacros)
+ end(),
+
+ fun() ->
+ PreDefMacros = ['LINE'],
+ ?line {error,{redefine_predef,'LINE'}} =
+ epp:open(File, [], PreDefMacros)
+ end(),
+
+ Ts = [
+ {macro_1,
+ <<"-define(m(A), A).\n"
+ "t() -> ?m(,).\n">>,
+ {errors,[{{2,11},epp,{arg_error,m}}],[]}},
+ {macro_2,
+ <<"-define(m(A), A).\n"
+ "t() -> ?m(a,).\n">>,
+ {errors,[{{2,12},epp,{arg_error,m}}],[]}},
+ {macro_3,
+ <<"-define(LINE, a).\n">>,
+ {errors,[{{1,9},epp,{redefine_predef,'LINE'}}],[]}},
+ {macro_4,
+ <<"-define(A(B, C, D), {B,C,D}).\n"
+ "t() -> ?A(a,,3).\n">>,
+ {errors,[{{2,8},epp,{mismatch,'A'}}],[]}},
+ {macro_5,
+ <<"-define(Q, {?F0(), ?F1(,,4)}).\n">>,
+ {errors,[{{1,24},epp,{arg_error,'F1'}}],[]}}
+ ],
+ ?line [] = compile(Config, Ts),
+ ok.
+
check(Config, Tests) ->
eval_tests(Config, fun check_test/2, Tests).
diff --git a/lib/stdlib/test/erl_lint_SUITE.erl b/lib/stdlib/test/erl_lint_SUITE.erl
index bfbd7b3dc1..8581b496aa 100644
--- a/lib/stdlib/test/erl_lint_SUITE.erl
+++ b/lib/stdlib/test/erl_lint_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(erl_lint_SUITE).
@@ -2597,7 +2597,7 @@ otp_8051(Config) when is_list(Config) ->
<<"-opaque foo() :: bar().
">>,
[],
- {error,[{1,erl_lint,{type_ref,{bar,0}}}],
+ {error,[{1,erl_lint,{undefined_type,{bar,0}}}],
[{1,erl_lint,{unused_type,{foo,0}}}]}}],
?line [] = run(Config, Ts),
ok.
diff --git a/lib/stdlib/test/ets_tough_SUITE.erl b/lib/stdlib/test/ets_tough_SUITE.erl
index e3d44d00b9..4c8d941f13 100644
--- a/lib/stdlib/test/ets_tough_SUITE.erl
+++ b/lib/stdlib/test/ets_tough_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(ets_tough_SUITE).
@@ -40,7 +40,7 @@ fin_per_testcase(_Func, Config) ->
ets:delete(?GLOBAL_PARAMS).
-ex1(Config) when list(Config) ->
+ex1(Config) when is_list(Config) ->
?line ets:new(?GLOBAL_PARAMS,[named_table,public]),
?line ets:insert(?GLOBAL_PARAMS,{a,set}),
?line ets:insert(?GLOBAL_PARAMS,{b,set}),
@@ -269,7 +269,7 @@ show_entries(Fd) ->
start(DbName) ->
case gen_server:start_link(ets_tough_SUITE,{DbName,no_dump_dir},[]) of
- {ok,Pid} when pid(Pid) ->
+ {ok,Pid} when is_pid(Pid) ->
{ok, Pid};
Other ->
Other
@@ -283,7 +283,7 @@ start(DbName) ->
start(DbName,DumpDir) ->
case gen_server:start_link(ets_tough_SUITE,
{DbName,{dump_dir,DumpDir}},[]) of
- {ok,Pid} when pid(Pid) ->
+ {ok,Pid} when is_pid(Pid) ->
{ok, Pid};
Other ->
Other
@@ -1075,7 +1075,7 @@ phys_read_len(Fd) ->
phys_read_entry(Fd,Len) ->
case io:get_chars(Fd,'',Len) of
- L when list(L), length(L) == Len ->
+ L when is_list(L), length(L) == Len ->
{ok,binary_to_term(list_to_binary(L))};
Other ->
{error,{read_term,Other}}
diff --git a/lib/stdlib/test/filelib_SUITE.erl b/lib/stdlib/test/filelib_SUITE.erl
index c9c6054f7b..d54741051f 100644
--- a/lib/stdlib/test/filelib_SUITE.erl
+++ b/lib/stdlib/test/filelib_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2005-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -21,7 +21,7 @@
-export([all/1,init_per_testcase/2,fin_per_testcase/2,
wildcard_one/1,wildcard_two/1,wildcard_errors/1,
- fold_files/1,otp_5960/1]).
+ fold_files/1,otp_5960/1,ensure_dir_eexist/1]).
-import(lists, [foreach/2]).
@@ -38,7 +38,8 @@ fin_per_testcase(_Case, Config) ->
ok.
all(suite) ->
- [wildcard_one,wildcard_two,wildcard_errors,fold_files,otp_5960].
+ [wildcard_one,wildcard_two,wildcard_errors,fold_files,otp_5960,
+ ensure_dir_eexist].
wildcard_one(Config) when is_list(Config) ->
?line {ok,OldCwd} = file:get_cwd(),
@@ -223,7 +224,9 @@ otp_5960(Config) when is_list(Config) ->
?line Name1 = filename:join(Dir, name1),
?line Name2 = filename:join(Dir, name2),
?line ok = filelib:ensure_dir(Name1), % parent is created
+ ?line ok = filelib:ensure_dir(Name1), % repeating it should be OK
?line ok = filelib:ensure_dir(Name2), % parent already exists
+ ?line ok = filelib:ensure_dir(Name2), % repeating it should be OK
?line Name3 = filename:join(Name1, name3),
?line {ok, FileInfo} = file:read_file_info(Dir),
case os:type() of
@@ -239,3 +242,16 @@ otp_5960(Config) when is_list(Config) ->
?line ok = file:write_file_info(Dir, #file_info{mode=Mode}),
ok
end.
+
+ensure_dir_eexist(Config) when is_list(Config) ->
+ ?line PrivDir = ?config(priv_dir, Config),
+ ?line Dir = filename:join(PrivDir, ensure_dir_eexist),
+ ?line Name = filename:join(Dir, "same_name_as_file_and_dir"),
+ ?line ok = filelib:ensure_dir(Name),
+ ?line ok = file:write_file(Name, <<"some string\n">>),
+
+ %% There already is a file with the name of the directory
+ %% we want to create.
+ ?line NeedFile = filename:join(Name, "file"),
+ ?line {error, eexist} = filelib:ensure_dir(NeedFile),
+ ok.
diff --git a/lib/stdlib/test/fixtable_SUITE.erl b/lib/stdlib/test/fixtable_SUITE.erl
index 9f21308ad4..1940ee147e 100644
--- a/lib/stdlib/test/fixtable_SUITE.erl
+++ b/lib/stdlib/test/fixtable_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%%----------------------------------------------------------------------
@@ -83,7 +83,7 @@ fixbag(doc) ->
"incorrect lookups"];
fixbag(suite) ->
[];
-fixbag(Config) when list(Config) ->
+fixbag(Config) when is_list(Config) ->
?line T = ets:new(x,[bag]),
?line ets:insert(T,{a,1}),
?line ets:insert(T,{a,2}),
@@ -101,7 +101,7 @@ insert_same_key(doc) ->
["Check correct behaviour if a key is deleted and reinserted during fixation."];
insert_same_key(suite) ->
[];
-insert_same_key(Config) when list(Config) ->
+insert_same_key(Config) when is_list(Config) ->
?line {ok,Dets1} = dets:open_file(?DETS_TMP1,
[{file, dets_filename(?DETS_TMP1,Config)}]),
?line Ets1 = ets:new(ets,[]),
@@ -180,7 +180,7 @@ owner_dies(doc) ->
["Check correct behaviour if the table owner dies."];
owner_dies(suite) ->
[];
-owner_dies(Config) when list(Config) ->
+owner_dies(Config) when is_list(Config) ->
?line P1 = start_commander(),
?line Ets1 = command(P1,{ets,new,[ets,[]]}),
?line command(P1,{ets,safe_fixtable,[Ets1,true]}),
@@ -236,7 +236,7 @@ other_process_closes(doc) ->
other_process_closes(suite) ->
[];
-other_process_closes(Config) when list(Config) ->
+other_process_closes(Config) when is_list(Config) ->
?line {ok,Dets} = dets:open_file(?DETS_TMP1,
[{file, dets_filename(tmp1,Config)}]),
?line P2 = start_commander(),
@@ -265,7 +265,7 @@ other_process_deletes(doc) ->
"deletes an ets table"];
other_process_deletes(suite) ->
[];
-other_process_deletes(Config) when list(Config) ->
+other_process_deletes(Config) when is_list(Config) ->
?line Ets = ets:new(ets,[public]),
?line P = start_commander(),
?line ets:safe_fixtable(Ets,true),
@@ -282,7 +282,7 @@ multiple_fixes(doc) ->
["Check that multiple safe_fixtable keeps the reference counter."];
multiple_fixes(suite) ->
[];
-multiple_fixes(Config) when list(Config) ->
+multiple_fixes(Config) when is_list(Config) ->
?line {ok,Dets} = dets:open_file(?DETS_TMP1,
[{file, dets_filename(?DETS_TMP1,Config)}]),
?line Ets = ets:new(ets,[]),
@@ -317,7 +317,7 @@ multiple_processes(doc) ->
"counted OK"];
multiple_processes(suite) ->
[];
-multiple_processes(Config) when list(Config) ->
+multiple_processes(Config) when is_list(Config) ->
?line {ok,Dets} = dets:open_file(?DETS_TMP1,[{file,
dets_filename(?DETS_TMP1,
Config)}]),
@@ -370,7 +370,7 @@ multiple_processes(Tab, Mod) ->
%%% Helpers
-dets_filename(Base, Config) when atom(Base) ->
+dets_filename(Base, Config) when is_atom(Base) ->
dets_filename(atom_to_list(Base) ++ ".dat", Config);
dets_filename(Basename, Config) ->
PrivDir = ?config(priv_dir,Config),
diff --git a/lib/stdlib/test/format_SUITE.erl b/lib/stdlib/test/format_SUITE.erl
index 2c415894f4..1c9e953003 100644
--- a/lib/stdlib/test/format_SUITE.erl
+++ b/lib/stdlib/test/format_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1998-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1998-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(format_SUITE).
@@ -45,7 +45,7 @@ hang_1(doc) ->
["Bad args can hang (OTP-2400)"];
hang_1(suite) ->
[];
-hang_1(Config) when list(Config) ->
+hang_1(Config) when is_list(Config) ->
?line _ = (catch io:format(a, "", [])),
?line _ = (catch io:format({}, "", [])),
ok.
diff --git a/lib/stdlib/test/gen_event_SUITE.erl b/lib/stdlib/test/gen_event_SUITE.erl
index dc5ddebf53..8cbffaca56 100644
--- a/lib/stdlib/test/gen_event_SUITE.erl
+++ b/lib/stdlib/test/gen_event_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(gen_event_SUITE).
@@ -33,7 +33,7 @@ all(suite) -> {req, [stdlib], [start, test_all, hibernate]}.
start(doc) -> [];
start(suite) -> [];
-start(Config) when list(Config) ->
+start(Config) when is_list(Config) ->
OldFl = process_flag(trap_exit, true),
?line {ok, Pid0} = gen_event:start(), %anonymous
@@ -175,7 +175,7 @@ test_all(suite) -> [add_handler, add_sup_handler, delete_handler,
add_handler(doc) -> [];
add_handler(suite) -> [];
-add_handler(Config) when list(Config) ->
+add_handler(Config) when is_list(Config) ->
?line {ok,_} = gen_event:start({local, my_dummy_handler}),
?line {error, my_error} =
gen_event:add_handler(my_dummy_handler, dummy_h, make_error),
@@ -196,7 +196,7 @@ add_handler(Config) when list(Config) ->
add_sup_handler(doc) -> [];
add_sup_handler(suite) -> [];
-add_sup_handler(Config) when list(Config) ->
+add_sup_handler(Config) when is_list(Config) ->
?line {ok,Pid} = gen_event:start({local, my_dummy_handler}),
?line {error, my_error} =
gen_event:add_sup_handler(my_dummy_handler, dummy_h, make_error),
@@ -238,7 +238,7 @@ add_sup_handler(Config) when list(Config) ->
delete_handler(doc) -> [];
delete_handler(suite) -> [];
-delete_handler(Config) when list(Config) ->
+delete_handler(Config) when is_list(Config) ->
?line {ok,_} = gen_event:start({local, my_dummy_handler}),
?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]),
?line {error, module_not_found} =
@@ -270,7 +270,7 @@ delete_handler(Config) when list(Config) ->
swap_handler(doc) -> [];
swap_handler(suite) -> [];
-swap_handler(Config) when list(Config) ->
+swap_handler(Config) when is_list(Config) ->
?line {ok,_} = gen_event:start({local, my_dummy_handler}),
?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]),
?line {error, non_existing} =
@@ -299,7 +299,7 @@ swap_handler(Config) when list(Config) ->
swap_sup_handler(doc) -> [];
swap_sup_handler(suite) -> [];
-swap_sup_handler(Config) when list(Config) ->
+swap_sup_handler(Config) when is_list(Config) ->
?line {ok,_} = gen_event:start({local, my_dummy_handler}),
?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]),
?line {error, non_existing} =
@@ -341,7 +341,7 @@ swap_sup_handler(Config) when list(Config) ->
notify(doc) -> [];
notify(suite) -> [];
-notify(Config) when list(Config) ->
+notify(Config) when is_list(Config) ->
?line {ok,_} = gen_event:start({local, my_dummy_handler}),
?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]),
Event = {event, self()},
@@ -457,7 +457,7 @@ notify(Config) when list(Config) ->
sync_notify(doc) -> [];
sync_notify(suite) -> [];
-sync_notify(Config) when list(Config) ->
+sync_notify(Config) when is_list(Config) ->
?line {ok,_} = gen_event:start({local, my_dummy_handler}),
?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]),
Event = {event, self()},
@@ -576,7 +576,7 @@ sync_notify(Config) when list(Config) ->
call(doc) -> [];
call(suite) -> [];
-call(Config) when list(Config) ->
+call(Config) when is_list(Config) ->
?line {ok,_} = gen_event:start({local, my_dummy_handler}),
?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]),
?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h, 1}, [self()]),
@@ -718,7 +718,7 @@ flush() ->
info(doc) -> [];
info(suite) -> [];
-info(Config) when list(Config) ->
+info(Config) when is_list(Config) ->
?line {ok,_} = gen_event:start({local, my_dummy_handler}),
?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]),
Info = {info, self()},
diff --git a/lib/stdlib/test/io_proto_SUITE.erl b/lib/stdlib/test/io_proto_SUITE.erl
index 59aa175c73..93159fbd5b 100644
--- a/lib/stdlib/test/io_proto_SUITE.erl
+++ b/lib/stdlib/test/io_proto_SUITE.erl
@@ -23,7 +23,7 @@
-export([init_per_testcase/2, fin_per_testcase/2]).
-export([setopts_getopts/1,unicode_options/1,unicode_options_gen/1, binary_options/1, bc_with_r12/1,
- bc_with_r12_gl/1, read_modes_gl/1,bc_with_r12_ogl/1, read_modes_ogl/1, broken_unicode/1,eof_on_pipe/1]).
+ bc_with_r12_gl/1, read_modes_gl/1,bc_with_r12_ogl/1, read_modes_ogl/1, broken_unicode/1,eof_on_pipe/1,unicode_prompt/1]).
-export([io_server_proxy/1,start_io_server_proxy/0, proxy_getall/1, proxy_setnext/2, proxy_quit/1]).
@@ -31,6 +31,8 @@
-export([toerl_server/3,hold_the_line/3,answering_machine1/3,
answering_machine2/3]).
+-export([uprompt/1]).
+
%-define(without_test_server, true).
-ifdef(without_test_server).
@@ -43,7 +45,7 @@
-define(privdir(Conf), ?config(priv_dir, Conf)).
-endif.
-%-define(debug, true).
+-define(debug, true).
-ifdef(debug).
-define(format(S, A), io:format(S, A)).
@@ -82,7 +84,7 @@ all(doc) ->
all(suite) ->
[setopts_getopts, unicode_options, unicode_options_gen, binary_options, bc_with_r12,
bc_with_r12_gl,bc_with_r12_ogl, read_modes_gl, read_modes_ogl,
- broken_unicode,eof_on_pipe].
+ broken_unicode,eof_on_pipe,unicode_prompt].
-record(state, {
@@ -91,6 +93,48 @@ all(suite) ->
mode = list
}).
+uprompt(_L) ->
+ [1050,1072,1082,1074,1086,32,1077,32,85,110,105,99,111,100,101,32,63].
+
+unicode_prompt(suite) ->
+ [];
+unicode_prompt(doc) ->
+ ["Test that an Unicode prompt does not crash the shell"];
+unicode_prompt(Config) when is_list(Config) ->
+ ?line PA = filename:dirname(code:which(?MODULE)),
+ ?line rtnode([{putline,""},
+ {putline, "2."},
+ {getline, "2"},
+ {putline, "shell:prompt_func({io_proto_SUITE,uprompt})."},
+ {getline, "default"},
+ {putline, "io:get_line('')."},
+ {putline, "hej"},
+ {getline, "\"hej\\n\""},
+ {putline, "io:setopts([{binary,true}])."},
+ {getline, "ok"},
+ {putline, "io:get_line('')."},
+ {putline, "hej"},
+ {getline, "<<\"hej\\n\">>"}
+ ],[],[],"-pa "++ PA),
+ %% And one with oldshell
+ ?line rtnode([{putline,""},
+ {putline, "2."},
+ {getline_re, ".*2."},
+ {getline, "2"},
+ {putline, "shell:prompt_func({io_proto_SUITE,uprompt})."},
+ {getline_re, ".*default"},
+ {putline, "io:get_line('')."},
+ {putline, "hej"},
+ {getline_re, ".*\"hej\\\\n\""},
+ {putline, "io:setopts([{binary,true}])."},
+ {getline_re, ".*ok"},
+ {putline, "io:get_line('')."},
+ {putline, "hej"},
+ {getline_re, ".*<<\"hej\\\\n\">>"}
+ ],[],[],"-oldshell -pa "++PA),
+ ok.
+
+
setopts_getopts(suite) ->
[];
setopts_getopts(doc) ->
diff --git a/lib/stdlib/test/ms_transform_SUITE.erl b/lib/stdlib/test/ms_transform_SUITE.erl
index cf0926b7fa..79a0a9af89 100644
--- a/lib/stdlib/test/ms_transform_SUITE.erl
+++ b/lib/stdlib/test/ms_transform_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2003-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(ms_transform_SUITE).
@@ -56,7 +56,7 @@ andalso_orelse(suite) ->
[];
andalso_orelse(doc) ->
["Tests that andalso and orelse are allowed in guards."];
-andalso_orelse(Config) when list(Config) ->
+andalso_orelse(Config) when is_list(Config) ->
?line setup(Config),
?line [{{'$1','$2'},
[{'and',{is_integer,'$1'},{'>',{'+','$1',5},'$2'}}],
@@ -93,7 +93,7 @@ bitsyntax(suite) ->
[];
bitsyntax(doc) ->
["Tests that bitsyntax works and does not work where appropriate"];
-bitsyntax(Config) when list(Config) ->
+bitsyntax(Config) when is_list(Config) ->
?line setup(Config),
?line [{'_',[],
[<<0,27,0,27>>]}] =
@@ -131,7 +131,7 @@ record_defaults(suite) ->
[];
record_defaults(doc) ->
["Tests that record defaults works"];
-record_defaults(Config) when list(Config) ->
+record_defaults(Config) when is_list(Config) ->
?line setup(Config),
?line [{{<<27>>,{a,5,'$1',hej,hej}},
[],
@@ -146,7 +146,7 @@ basic_ets(suite) ->
[];
basic_ets(doc) ->
["Tests basic ets:fun2ms"];
-basic_ets(Config) when list(Config) ->
+basic_ets(Config) when is_list(Config) ->
?line setup(Config),
?line [{{a,b},[],[true]}] = compile_and_run(
<<"ets:fun2ms(fun({a,b}) -> true end)">>),
@@ -167,7 +167,7 @@ basic_dbg(suite) ->
[];
basic_dbg(doc) ->
["Tests basic ets:fun2ms"];
-basic_dbg(Config) when list(Config) ->
+basic_dbg(Config) when is_list(Config) ->
?line setup(Config),
?line [{[a,b],[],[{message,banan},{return_trace}]}] =
compile_and_run(<<"dbg:fun2ms(fun([a,b]) -> message(banan), ",
@@ -186,7 +186,7 @@ from_shell(suite) ->
[];
from_shell(doc) ->
["Test calling of ets/dbg:fun2ms from the shell"];
-from_shell(Config) when list(Config) ->
+from_shell(Config) when is_list(Config) ->
?line setup(Config),
?line Fun = do_eval("fun({a,b}) -> true end"),
?line [{{a,b},[],[true]}] = apply(ets,fun2ms,[Fun]),
@@ -203,7 +203,7 @@ records(suite) ->
[];
records(doc) ->
["Tests expansion of records in fun2ms"];
-records(Config) when list(Config) ->
+records(Config) when is_list(Config) ->
?line setup(Config),
?line RD = <<"-record(t, {"
"t1 = [],"
@@ -253,7 +253,7 @@ record_index(suite) ->
[];
record_index(doc) ->
["Tests expansion of records in fun2ms, part 2"];
-record_index(Config) when list(Config) ->
+record_index(Config) when is_list(Config) ->
?line setup(Config),
?line RD = <<"-record(a,{a,b}).">>,
?line [{{2},[],[true]}] = compile_and_run(RD,
@@ -268,7 +268,7 @@ top_match(suite) ->
[];
top_match(doc) ->
["Tests matching on top level in head to give alias for object()"];
-top_match(Config) when list(Config) ->
+top_match(Config) when is_list(Config) ->
?line setup(Config),
?line RD = <<"-record(a,{a,b}).">>,
?line [{{a,3,'_'},[],['$_']}] =
@@ -295,7 +295,7 @@ multipass(suite) ->
[];
multipass(doc) ->
["Tests that multi-defined fields in records give errors."];
-multipass(Config) when list(Config) ->
+multipass(Config) when is_list(Config) ->
?line setup(Config),
?line RD = <<"-record(a,{a,b}).">>,
?line expect_failure(RD,<<"ets:fun2ms(fun(A) -> #a{a=2,a=3} end)">>),
@@ -319,7 +319,7 @@ old_guards(suite) ->
[];
old_guards(doc) ->
["Tests that old type tests in guards are translated"];
-old_guards(Config) when list(Config) ->
+old_guards(Config) when is_list(Config) ->
?line setup(Config),
Tests = [
{atom,is_atom},
@@ -382,7 +382,7 @@ autoimported(suite) ->
autoimported(doc) ->
["Tests use of autoimported bif's used like erlang:'+'(A,B) in guards"
" and body."];
-autoimported(Config) when list(Config) ->
+autoimported(Config) when is_list(Config) ->
?line setup(Config),
Allowed = [
{abs,1},
@@ -582,7 +582,7 @@ float_1_function(suite) ->
[];
float_1_function(doc) ->
["OTP-5297. The function float/1."];
-float_1_function(Config) when list(Config) ->
+float_1_function(Config) when is_list(Config) ->
?line setup(Config),
RunMS = fun(L, MS) ->
ets:match_spec_run(L, ets:match_spec_compile(MS))
diff --git a/lib/stdlib/test/queue_SUITE.erl b/lib/stdlib/test/queue_SUITE.erl
index ec3080baa0..2cd6b52311 100644
--- a/lib/stdlib/test/queue_SUITE.erl
+++ b/lib/stdlib/test/queue_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(queue_SUITE).
@@ -45,7 +45,7 @@ do(doc) ->
[""];
do(suite) ->
[];
-do(Config) when list(Config) ->
+do(Config) when is_list(Config) ->
?line L = [{in, 1},
{in, 2},
{out, {value, 1}},
@@ -66,7 +66,7 @@ to_list(doc) ->
["OTP-2701"];
to_list(suite) ->
[];
-to_list(Config) when list(Config) ->
+to_list(Config) when is_list(Config) ->
?line E = queue:new(),
?line Q = do_queue(E, [{in, 1},
{in, 2},
@@ -104,7 +104,7 @@ io_test(doc) ->
"Test input and output";
io_test(suite) ->
[];
-io_test(Config) when list(Config) ->
+io_test(Config) when is_list(Config) ->
E = queue:new(),
do_io_test(E),
ok.
@@ -284,7 +284,7 @@ op_test(doc) ->
"Test operations on whole queues";
op_test(suite) ->
[];
-op_test(Config) when list(Config) ->
+op_test(Config) when is_list(Config) ->
do_op_test(fun id/1),
ok.
@@ -382,7 +382,7 @@ error(doc) ->
"Test queue errors";
error(suite) ->
[];
-error(Config) when list(Config) ->
+error(Config) when is_list(Config) ->
do_error(fun id/1, illegal_queue),
do_error(fun id/1, {[],illegal_queue}),
do_error(fun id/1, {illegal_queue,[17]}),
@@ -449,7 +449,7 @@ oops(doc) ->
"Test queue errors";
oops(suite) ->
[];
-oops(Config) when list(Config) ->
+oops(Config) when is_list(Config) ->
?line N = 3142,
?line Optab = optab(),
?line Seed0 = random:seed0(),
diff --git a/lib/stdlib/test/re_SUITE.erl b/lib/stdlib/test/re_SUITE.erl
index fa50ba3b7a..02683f9f1a 100644
--- a/lib/stdlib/test/re_SUITE.erl
+++ b/lib/stdlib/test/re_SUITE.erl
@@ -18,12 +18,12 @@
%%
-module(re_SUITE).
--export([all/1, pcre/1,compile_options/1,run_options/1,combined_options/1,replace_autogen/1,global_capture/1,replace_input_types/1,replace_return/1,split_autogen/1,split_options/1,split_specials/1,error_handling/1]).
+-export([all/1, pcre/1,compile_options/1,run_options/1,combined_options/1,replace_autogen/1,global_capture/1,replace_input_types/1,replace_return/1,split_autogen/1,split_options/1,split_specials/1,error_handling/1,pcre_cve_2008_2371/1]).
-include("test_server.hrl").
-include_lib("kernel/include/file.hrl").
-all(suite) -> [pcre,compile_options,run_options,combined_options,replace_autogen,global_capture,replace_input_types,replace_return,split_autogen,split_options,split_specials,error_handling].
+all(suite) -> [pcre,compile_options,run_options,combined_options,replace_autogen,global_capture,replace_input_types,replace_return,split_autogen,split_options,split_specials,error_handling,pcre_cve_2008_2371].
pcre(doc) ->
["Run all applicable tests from the PCRE testsuites."];
@@ -538,3 +538,9 @@ error_handling(Config) when is_list(Config) ->
?t:timetrap_cancel(Dog),
ok.
+pcre_cve_2008_2371(doc) ->
+ "Fix as in http://vcs.pcre.org/viewvc?revision=360&view=revision";
+pcre_cve_2008_2371(Config) when is_list(Config) ->
+ %% Make sure it doesn't crash the emulator.
+ re:compile(<<"(?i)[\xc3\xa9\xc3\xbd]|[\xc3\xa9\xc3\xbdA]">>, [unicode]),
+ ok.
diff --git a/lib/stdlib/test/re_testoutput1_replacement_test.erl b/lib/stdlib/test/re_testoutput1_replacement_test.erl
index b20db3f9c3..69cb140e0d 100644
--- a/lib/stdlib/test/re_testoutput1_replacement_test.erl
+++ b/lib/stdlib/test/re_testoutput1_replacement_test.erl
@@ -1,23 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(re_testoutput1_replacement_test).
-compile(export_all).
+-compile(no_native).
-include("test_server.hrl").
%% This file is generated by running run_pcre_tests:gen_repl_test("re_SUITE_data/testoutput1")
run() ->
diff --git a/lib/stdlib/test/re_testoutput1_split_test.erl b/lib/stdlib/test/re_testoutput1_split_test.erl
index 7e2d3f79ec..e86a04b008 100644
--- a/lib/stdlib/test/re_testoutput1_split_test.erl
+++ b/lib/stdlib/test/re_testoutput1_split_test.erl
@@ -1,23 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(re_testoutput1_split_test).
-compile(export_all).
+-compile(no_native).
-include("test_server.hrl").
%% This file is generated by running run_pcre_tests:gen_split_test("re_SUITE_data/testoutput1")
join([]) -> [];
diff --git a/lib/stdlib/test/run_pcre_tests.erl b/lib/stdlib/test/run_pcre_tests.erl
index 8c6424e708..78b4803fc8 100644
--- a/lib/stdlib/test/run_pcre_tests.erl
+++ b/lib/stdlib/test/run_pcre_tests.erl
@@ -987,6 +987,7 @@ gen_split_test(OneFile) ->
{ok,F}= file:open(ErlFileName,[write]),
io:format(F,"-module(~s).~n",[ErlModule]),
io:format(F,"-compile(export_all).~n",[]),
+ io:format(F,"-compile(no_native).~n",[]),
io:format(F,"-include(\"test_server.hrl\").~n",[]),
%io:format(F,"-define(line,erlang:display(?LINE),).~n",[]),
io:format(F,"%% This file is generated by running ~w:gen_split_test(~p)~n",
@@ -1068,6 +1069,7 @@ gen_repl_test(OneFile) ->
{ok,F}= file:open(ErlFileName,[write]),
io:format(F,"-module(~s).~n",[ErlModule]),
io:format(F,"-compile(export_all).~n",[]),
+ io:format(F,"-compile(no_native).~n",[]),
io:format(F,"-include(\"test_server.hrl\").~n",[]),
io:format(F,"%% This file is generated by running ~w:gen_repl_test(~p)~n",
[?MODULE,OneFile]),
diff --git a/lib/stdlib/test/select_SUITE.erl b/lib/stdlib/test/select_SUITE.erl
index 54664fbb00..6900f1a8f5 100644
--- a/lib/stdlib/test/select_SUITE.erl
+++ b/lib/stdlib/test/select_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -79,14 +79,14 @@ select_test(suite) ->
[];
select_test(doc) ->
["Tests select in numerous ways"];
-select_test(Config) when list(Config) ->
+select_test(Config) when is_list(Config) ->
do_test(Config).
return_values(suite) ->
[];
return_values(doc) ->
["Tests return values in specific situations for select/3 and select/1"];
-return_values(Config) when list(Config) ->
+return_values(Config) when is_list(Config) ->
do_return_values().
-endif.
@@ -279,7 +279,7 @@ cmp_ms_to_fun({Mod,Tab}, MS, Fun1, Fun2, ChunkSize) ->
MSRes = lists:sort(chunked_select(Mod,Tab,MS,ChunkSize)),
FunRes0 = table_foldl(Fun1,[],{Mod,Tab}),
FunRes = case Fun2 of
- F when function(F) ->
+ F when is_function(F) ->
FunRes1 = table_foldl(F,[],{Mod,Tab}),
lists:merge(FunRes0,FunRes1);
[] ->
diff --git a/lib/stdlib/test/shell_SUITE.erl b/lib/stdlib/test/shell_SUITE.erl
index 5827d5f332..588342d46a 100644
--- a/lib/stdlib/test/shell_SUITE.erl
+++ b/lib/stdlib/test/shell_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2004-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(shell_SUITE).
@@ -28,13 +28,14 @@
progex/1, progex_bit_syntax/1, progex_records/1,
progex_lc/1, progex_funs/1,
tickets/1, otp_5990/1, otp_6166/1, otp_6554/1, otp_6785/1,
- otp_7184/1, otp_7232/1]).
+ otp_7184/1, otp_7232/1, otp_8393/1]).
-export([restricted/1, start_restricted_from_shell/1,
start_restricted_on_command_line/1,restricted_local/1]).
%% Internal export.
--export([otp_5435_2/0]).
+-export([otp_5435_2/0, prompt1/1, prompt2/1, prompt3/1, prompt4/1,
+ prompt5/1]).
%%
%% Define to run outside of test server
@@ -2256,7 +2257,7 @@ progex_funs(Config) when is_list(Config) ->
ok.
tickets(suite) ->
- [otp_5990, otp_6166, otp_6554, otp_6785, otp_7184, otp_7232].
+ [otp_5990, otp_6166, otp_6554, otp_6785, otp_7184, otp_7232, otp_8393].
otp_5990(doc) ->
"OTP-5990. {erlang,is_record}.";
@@ -2598,6 +2599,93 @@ otp_7232(Config) when is_list(Config) ->
" end}])" = evaluate(Info, []),
ok.
+otp_8393(doc) ->
+ "OTP-8393. Prompt string.";
+otp_8393(suite) -> [];
+otp_8393(Config) when is_list(Config) ->
+ ?line _ = shell:prompt_func(default),
+ ?line "Bad prompt function: '> '" =
+ prompt_err(<<"shell:prompt_func('> ').">>),
+
+ ?line _ = shell:prompt_func(default),
+ ?line "exception error: bad argument in an arithmetic expression"++_ =
+ prompt_err(<<"shell:prompt_func({shell_SUITE,prompt4}).">>),
+
+ ?line _ = shell:prompt_func(default),
+ ?line "default.\n" =
+ t(<<"shell:prompt_func({shell_SUITE,prompt2}).">>),
+
+ ?line _ = shell:prompt_func(default),
+ ?line "default\nl.\n" =
+ t(<<"shell:prompt_func({shell_SUITE,prompt3}). l.">>),
+
+ %%
+ %% Although this tests that you can set a unicode prompt function
+ %% it does not really test that it does work with the io-servers.
+ %% That is instead tested in the io_proto_SUITE, which has
+ %% the right infrastructure in place for such tests. /PaN
+ %%
+ ?line _ = shell:prompt_func(default),
+ ?line "default\nl.\n" =
+ t(<<"shell:prompt_func({shell_SUITE,prompt5}). l.">>),
+
+ %% Restricted shell.
+ Contents = <<"-module(test_restricted_shell).
+ -export([local_allowed/3, non_local_allowed/3]).
+ local_allowed(_,_,State) ->
+ {false,State}.
+
+ non_local_allowed({shell,stop_restricted},[],State) ->
+ {true,State};
+ non_local_allowed({shell,prompt_func},[_L],State) ->
+ {true,State};
+ non_local_allowed({shell_SUITE,prompt1},[_L],State) ->
+ {true,State};
+ non_local_allowed(_,_,State) ->
+ {false,State}.
+ ">>,
+ ?line Test = filename:join(?config(priv_dir, Config),
+ "test_restricted_shell.erl"),
+ ?line ok = compile_file(Config, Test, Contents, []),
+ ?line _ = shell:prompt_func(default),
+ ?line "exception exit: restricted shell starts now" =
+ comm_err(<<"begin shell:start_restricted("
+ "test_restricted_shell) end.">>),
+ ?line "default.\n"++_ =
+ t(<<"shell:prompt_func({shell_SUITE,prompt1}).">>),
+ ?line "exception exit: restricted shell does not allow apple(" ++ _ =
+ comm_err(<<"apple(1).">>),
+ ?line "{shell_SUITE,prompt1}.\n" =
+ t(<<"shell:prompt_func(default).">>),
+ ?line "exception exit: restricted shell stopped"=
+ comm_err(<<"begin shell:stop_restricted() end.">>),
+ ?line undefined =
+ application:get_env(stdlib, restricted_shell),
+
+ ?line NR = shell:results(20),
+ ?line "default\n20.\n" =
+ t(<<"shell:prompt_func({shell_SUITE,prompt3}). results(0).">>),
+
+ ?line _ = shell:prompt_func(default),
+ ?line 0 = shell:results(NR),
+ ok.
+
+prompt1(_L) ->
+ "prompt> ".
+
+prompt2(_L) ->
+ {'EXIT', []}.
+
+prompt3(L) ->
+ N = proplists:get_value(history, L),
+ integer_to_list(N).
+
+prompt4(_L) ->
+ erlang:apply({erlang,'/'}, [1,0]).
+
+prompt5(_L) ->
+ [1050,1072,1082,1074,1086,32,1077,32,85,110,105,99,111,100,101,32,63].
+
-ifdef(not_used).
exit_term(B) ->
"** exception exit:" ++ Reply = t(B),
@@ -2627,7 +2715,16 @@ comm_err(B) ->
Reply = t(B),
S0 = string:left(Reply, string:chr(Reply, $\n)-1),
S1 = string:strip(S0, left, $*),
- S2 = string:strip(S1, both, $ ),
+ S2 = string:strip(S1, both, $ ),
+ S = string:strip(S2, both, $"),
+ string:strip(S, right, $.).
+
+prompt_err(B) ->
+ Reply = t(B),
+ S00 = string:sub_string(Reply, string:chr(Reply, $\n)+1),
+ S0 = string:left(S00, string:chr(S00, $\n)-1),
+ S1 = string:strip(S0, left, $*),
+ S2 = string:strip(S1, both, $ ),
S = string:strip(S2, both, $"),
string:strip(S, right, $.).
diff --git a/lib/stdlib/test/slave_SUITE.erl b/lib/stdlib/test/slave_SUITE.erl
index 3b737af64d..5c1282fe9b 100644
--- a/lib/stdlib/test/slave_SUITE.erl
+++ b/lib/stdlib/test/slave_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(slave_SUITE).
@@ -31,7 +31,7 @@ all(suite) ->
[t_start_link, start_link_nodedown, t_start, errors].
t_start_link(suite) -> [];
-t_start_link(Config) when list(Config) ->
+t_start_link(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(20)),
%% Define useful variables.
@@ -81,7 +81,7 @@ t_start_link(Config) when list(Config) ->
%% Test that slave:start_link() works when the master exits.
start_link_nodedown(suite) -> [];
-start_link_nodedown(Config) when list(Config) ->
+start_link_nodedown(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(20)),
%% Define useful variables.
@@ -109,7 +109,7 @@ start_a_slave(ReplyTo, Host, Name) ->
%% Test slave:start().
t_start(suite) -> [];
-t_start(Config) when list(Config) ->
+t_start(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(20)),
%% Define useful variables.
@@ -160,7 +160,7 @@ t_start(Config) when list(Config) ->
%% in slave is 32 seconds).
errors(suite) -> [];
-errors(Config) when list(Config) ->
+errors(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(50)),
?line process_flag(trap_exit, true),
diff --git a/lib/stdlib/test/sofs_SUITE.erl b/lib/stdlib/test/sofs_SUITE.erl
index 0849e0f59c..d60cfc6895 100644
--- a/lib/stdlib/test/sofs_SUITE.erl
+++ b/lib/stdlib/test/sofs_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(sofs_SUITE).
@@ -115,7 +115,7 @@ sofs(suite) ->
from_term_1(suite) -> [];
from_term_1(doc) -> [""];
-from_term_1(Conf) when list(Conf) ->
+from_term_1(Conf) when is_list(Conf) ->
%% would go wrong: projection(1,from_term([{2,b},{1,a,b}])),
?line {'EXIT', {badarg, _}} = (catch from_term([], {atom,'_',atom})),
@@ -203,7 +203,7 @@ from_term_1(Conf) when list(Conf) ->
set_1(suite) -> [];
set_1(doc) -> [""];
-set_1(Conf) when list(Conf) ->
+set_1(Conf) when is_list(Conf) ->
%% set/1
?line {'EXIT', {badarg, _}} = (catch set(a)),
?line {'EXIT', {badarg, _}} = (catch set({a})),
@@ -235,7 +235,7 @@ set_1(Conf) when list(Conf) ->
from_sets_1(suite) -> [];
from_sets_1(doc) -> [""];
-from_sets_1(Conf) when list(Conf) ->
+from_sets_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
%% unordered
@@ -272,7 +272,7 @@ from_sets_1(Conf) when list(Conf) ->
relation_1(suite) -> [];
relation_1(doc) -> [""];
-relation_1(Conf) when list(Conf) ->
+relation_1(Conf) when is_list(Conf) ->
%% relation/1
?line eval(relation([]), from_term([], [{atom,atom}])),
?line eval(from_term([{a}]), relation([{a}])),
@@ -305,7 +305,7 @@ relation_1(Conf) when list(Conf) ->
a_function_1(suite) -> [];
a_function_1(doc) -> [""];
-a_function_1(Conf) when list(Conf) ->
+a_function_1(Conf) when is_list(Conf) ->
%% a_function/1
?line eval(a_function([]), from_term([], [{atom,atom}])),
?line eval(a_function([{a,b},{a,b},{b,c}]), from_term([{a,b},{b,c}])),
@@ -352,7 +352,7 @@ a_function_1(Conf) when list(Conf) ->
family_1(suite) -> [];
family_1(doc) -> [""];
-family_1(Conf) when list(Conf) ->
+family_1(Conf) when is_list(Conf) ->
%% family/1
?line eval(family([]), from_term([],[{atom,[atom]}])),
?line {'EXIT', {badarg, _}} = (catch family(a)),
@@ -413,7 +413,7 @@ family_1(Conf) when list(Conf) ->
projection(suite) -> [];
projection(doc) -> [""];
-projection(Conf) when list(Conf) ->
+projection(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
@@ -535,7 +535,7 @@ projection(Conf) when list(Conf) ->
substitution(suite) -> [];
substitution(doc) -> [""];
-substitution(Conf) when list(Conf) ->
+substitution(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
@@ -633,7 +633,7 @@ substitution(Conf) when list(Conf) ->
restriction(suite) -> [];
restriction(doc) -> [""];
-restriction(Conf) when list(Conf) ->
+restriction(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([], 2),
@@ -752,7 +752,7 @@ restriction(Conf) when list(Conf) ->
drestriction(suite) -> [];
drestriction(doc) -> [""];
-drestriction(Conf) when list(Conf) ->
+drestriction(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([], 2),
@@ -869,7 +869,7 @@ drestriction(Conf) when list(Conf) ->
strict_relation_1(suite) -> [];
strict_relation_1(doc) -> [""];
-strict_relation_1(Conf) when list(Conf) ->
+strict_relation_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([], 2),
?line eval(strict_relation(E), E),
@@ -890,7 +890,7 @@ strict_relation_1(Conf) when list(Conf) ->
extension(suite) -> [];
extension(doc) -> [""];
-extension(Conf) when list(Conf) ->
+extension(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([], 2),
?line EF = family([]),
@@ -933,7 +933,7 @@ lextension(R, S, C) ->
weak_relation_1(suite) -> [];
weak_relation_1(doc) -> [""];
-weak_relation_1(Conf) when list(Conf) ->
+weak_relation_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([], 2),
?line eval(weak_relation(E), E),
@@ -966,7 +966,7 @@ weak_relation_1(Conf) when list(Conf) ->
to_sets_1(suite) -> [];
to_sets_1(doc) -> [""];
-to_sets_1(Conf) when list(Conf) ->
+to_sets_1(Conf) when is_list(Conf) ->
?line {'EXIT', {badarg, _}} = (catch to_sets(from_term(a))),
?line {'EXIT', {function_clause, _}} = (catch to_sets(a)),
%% unordered
@@ -988,8 +988,8 @@ to_sets_1(Conf) when list(Conf) ->
specification(suite) -> [];
specification(doc) -> [""];
-specification(Conf) when list(Conf) ->
- Fun = {external, fun(I) when integer(I) -> true; (_) -> false end},
+specification(Conf) when is_list(Conf) ->
+ Fun = {external, fun(I) when is_integer(I) -> true; (_) -> false end},
?line [1,2,3] = to_external(specification(Fun, set([a,1,b,2,c,3]))),
Fun2 = fun(S) -> is_subset(S, set([1,3,5,7,9])) end,
@@ -1014,7 +1014,7 @@ specification(Conf) when list(Conf) ->
union_1(suite) -> [];
union_1(doc) -> [""];
-union_1(Conf) when list(Conf) ->
+union_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([], 2),
?line {'EXIT', {badarg, _}} = (catch union(ER)),
@@ -1044,7 +1044,7 @@ union_1(Conf) when list(Conf) ->
intersection_1(suite) -> [];
intersection_1(doc) -> [""];
-intersection_1(Conf) when list(Conf) ->
+intersection_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line {'EXIT', {badarg, _}} = (catch intersection(from_term([a,b]))),
?line {'EXIT', {badarg, _}} = (catch intersection(E)),
@@ -1068,7 +1068,7 @@ intersection_1(Conf) when list(Conf) ->
difference(suite) -> [];
difference(doc) -> [""];
-difference(Conf) when list(Conf) ->
+difference(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line {'EXIT', {type_mismatch, _}} =
(catch difference(relation([{a,b}]), relation([{a,b,c}]))),
@@ -1089,7 +1089,7 @@ difference(Conf) when list(Conf) ->
symdiff(suite) -> [];
symdiff(doc) -> [""];
-symdiff(Conf) when list(Conf) ->
+symdiff(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line {'EXIT', {type_mismatch, _}} =
(catch symdiff(relation([{a,b}]), relation([{a,b,c}]))),
@@ -1114,7 +1114,7 @@ symdiff(Conf) when list(Conf) ->
symmetric_partition(suite) -> [];
symmetric_partition(doc) -> [""];
-symmetric_partition(Conf) when list(Conf) ->
+symmetric_partition(Conf) when is_list(Conf) ->
?line E = set([]),
?line S1 = set([1,2,3,4]),
?line S2 = set([3,4,5,6]),
@@ -1148,7 +1148,7 @@ symmetric_partition(Conf) when list(Conf) ->
is_sofs_set_1(suite) -> [];
is_sofs_set_1(doc) -> [""];
-is_sofs_set_1(Conf) when list(Conf) ->
+is_sofs_set_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line true = is_sofs_set(E),
?line true = is_sofs_set(from_term([a])),
@@ -1159,7 +1159,7 @@ is_sofs_set_1(Conf) when list(Conf) ->
is_set_1(suite) -> [];
is_set_1(doc) -> [""];
-is_set_1(Conf) when list(Conf) ->
+is_set_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line true = is_set(E),
?line true = is_set(from_term([a])),
@@ -1177,7 +1177,7 @@ is_set_1(Conf) when list(Conf) ->
is_equal(suite) -> [];
is_equal(doc) -> [""];
-is_equal(Conf) when list(Conf) ->
+is_equal(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line true = is_equal(E, E),
?line false = is_equal(from_term([a]), E),
@@ -1212,7 +1212,7 @@ is_equal(Conf) when list(Conf) ->
is_subset(suite) -> [];
is_subset(doc) -> [""];
-is_subset(Conf) when list(Conf) ->
+is_subset(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line true = is_subset(E, E),
?line true = is_subset(set([a,c,e]), set([a,b,c,d,e])),
@@ -1230,7 +1230,7 @@ is_subset(Conf) when list(Conf) ->
is_a_function_1(suite) -> [];
is_a_function_1(doc) -> [""];
-is_a_function_1(Conf) when list(Conf) ->
+is_a_function_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([], 2),
?line {'EXIT', {badarg, _}} = (catch is_a_function(set([a,b]))),
@@ -1254,7 +1254,7 @@ is_a_function_1(Conf) when list(Conf) ->
is_disjoint(suite) -> [];
is_disjoint(doc) -> [""];
-is_disjoint(Conf) when list(Conf) ->
+is_disjoint(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line {'EXIT', {type_mismatch, _}} =
(catch is_disjoint(relation([{a,1}]), set([a,b]))),
@@ -1268,7 +1268,7 @@ is_disjoint(Conf) when list(Conf) ->
join(suite) -> [];
join(doc) -> [""];
-join(Conf) when list(Conf) ->
+join(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line {'EXIT', {badarg, _}} = (catch join(relation([{a,1}]), 3, E, 5)),
@@ -1306,7 +1306,7 @@ join(Conf) when list(Conf) ->
canonical(suite) -> [];
canonical(doc) -> [""];
-canonical(Conf) when list(Conf) ->
+canonical(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line {'EXIT', {badarg, _}} =
(catch canonical_relation(set([a,b]))),
@@ -1318,7 +1318,7 @@ canonical(Conf) when list(Conf) ->
relation_to_family_1(suite) -> [];
relation_to_family_1(doc) -> [""];
-relation_to_family_1(Conf) when list(Conf) ->
+relation_to_family_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line EF = family([]),
?line eval(relation_to_family(E), E),
@@ -1333,7 +1333,7 @@ relation_to_family_1(Conf) when list(Conf) ->
domain_1(suite) -> [];
domain_1(doc) -> [""];
-domain_1(Conf) when list(Conf) ->
+domain_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line {'EXIT', {badarg, _}} = (catch domain(relation([],3))),
@@ -1355,7 +1355,7 @@ domain_1(Conf) when list(Conf) ->
range_1(suite) -> [];
range_1(doc) -> [""];
-range_1(Conf) when list(Conf) ->
+range_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line {'EXIT', {badarg, _}} = (catch range(relation([],3))),
@@ -1367,7 +1367,7 @@ range_1(Conf) when list(Conf) ->
inverse_1(suite) -> [];
inverse_1(doc) -> [""];
-inverse_1(Conf) when list(Conf) ->
+inverse_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line {'EXIT', {badarg, _}} = (catch inverse(relation([],3))),
@@ -1391,7 +1391,7 @@ inverse_1(Conf) when list(Conf) ->
converse_1(suite) -> [];
converse_1(doc) -> [""];
-converse_1(Conf) when list(Conf) ->
+converse_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line {'EXIT', {badarg, _}} = (catch converse(relation([],3))),
@@ -1407,7 +1407,7 @@ converse_1(Conf) when list(Conf) ->
no_elements_1(suite) -> [];
no_elements_1(doc) -> [""];
-no_elements_1(Conf) when list(Conf) ->
+no_elements_1(Conf) when is_list(Conf) ->
?line 0 = no_elements(empty_set()),
?line 0 = no_elements(set([])),
?line 1 = no_elements(from_term([a])),
@@ -1419,7 +1419,7 @@ no_elements_1(Conf) when list(Conf) ->
image(suite) -> [];
image(doc) -> [""];
-image(Conf) when list(Conf) ->
+image(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line eval(image(E, E), E),
@@ -1441,7 +1441,7 @@ image(Conf) when list(Conf) ->
inverse_image(suite) -> [];
inverse_image(doc) -> [""];
-inverse_image(Conf) when list(Conf) ->
+inverse_image(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line eval(inverse_image(E, E), E),
@@ -1468,7 +1468,7 @@ inverse_image(Conf) when list(Conf) ->
composite_1(suite) -> [];
composite_1(doc) -> [""];
-composite_1(Conf) when list(Conf) ->
+composite_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line EF = a_function([]),
?line eval(composite(E, E), E),
@@ -1520,7 +1520,7 @@ composite_1(Conf) when list(Conf) ->
relative_product_1(suite) -> [];
relative_product_1(doc) -> [""];
-relative_product_1(Conf) when list(Conf) ->
+relative_product_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line eval(relative_product1(E, E), E),
@@ -1548,7 +1548,7 @@ relative_product_1(Conf) when list(Conf) ->
relative_product_2(suite) -> [];
relative_product_2(doc) -> [""];
-relative_product_2(Conf) when list(Conf) ->
+relative_product_2(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
@@ -1597,7 +1597,7 @@ relative_product_2(Conf) when list(Conf) ->
product_1(suite) -> [];
product_1(doc) -> [""];
-product_1(Conf) when list(Conf) ->
+product_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line eval(product(E, E), E),
?line eval(product(relation([]), E), E),
@@ -1625,7 +1625,7 @@ product_1(Conf) when list(Conf) ->
partition_1(suite) -> [];
partition_1(doc) -> [""];
-partition_1(Conf) when list(Conf) ->
+partition_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line Id = fun(A) -> A end,
@@ -1671,7 +1671,7 @@ partition_1(Conf) when list(Conf) ->
partition_3(suite) -> [];
partition_3(doc) -> [""];
-partition_3(Conf) when list(Conf) ->
+partition_3(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
@@ -1818,7 +1818,7 @@ lpartition(F, S1, S2) ->
multiple_relative_product(suite) -> [];
multiple_relative_product(doc) -> [""];
-multiple_relative_product(Conf) when list(Conf) ->
+multiple_relative_product(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line T = relation([{a,1},{a,11},{b,2},{c,3},{c,33},{d,4}]),
@@ -1842,7 +1842,7 @@ multiple_relative_product(Conf) when list(Conf) ->
digraph(suite) -> [];
digraph(doc) -> [""];
-digraph(Conf) when list(Conf) ->
+digraph(Conf) when is_list(Conf) ->
?line T0 = ets:all(),
?line E = empty_set(),
?line R = relation([{a,b},{b,c},{c,d},{d,a}]),
@@ -1901,7 +1901,7 @@ digraph(Conf) when list(Conf) ->
constant_function(suite) -> [];
constant_function(doc) -> [""];
-constant_function(Conf) when list(Conf) ->
+constant_function(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line C = from_term(3),
?line eval(constant_function(E, C), E),
@@ -1913,7 +1913,7 @@ constant_function(Conf) when list(Conf) ->
misc(suite) -> [];
misc(doc) -> [""];
-misc(Conf) when list(Conf) ->
+misc(Conf) when is_list(Conf) ->
% find "relational" part of relation:
?line S = relation([{a,b},{b,c},{b,d},{c,d}]),
Id = fun(A) -> A end,
@@ -1943,7 +1943,7 @@ sofs_family(suite) ->
family_specification(suite) -> [];
family_specification(doc) -> [""];
-family_specification(Conf) when list(Conf) ->
+family_specification(Conf) when is_list(Conf) ->
E = empty_set(),
%% internal
?line eval(family_specification({sofs, is_set}, E), E),
@@ -1963,7 +1963,7 @@ family_specification(Conf) when list(Conf) ->
(catch family_specification(Fun3, F3)),
%% external
- IsList = {external, fun(L) when list(L) -> true; (_) -> false end},
+ IsList = {external, fun(L) when is_list(L) -> true; (_) -> false end},
?line eval(family_specification(IsList, E), E),
?line eval(family_specification(IsList, F1), F1),
MF = {external, fun(L) -> lists:member(3, L) end},
@@ -1975,7 +1975,7 @@ family_specification(Conf) when list(Conf) ->
family_domain_1(suite) -> [];
family_domain_1(doc) -> [""];
-family_domain_1(Conf) when list(Conf) ->
+family_domain_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = from_term([{a,[]},{b,[]}],[{atom,[{atom,atom}]}]),
?line EF = from_term([{a,[]},{b,[]}],[{atom,[atom]}]),
@@ -2001,7 +2001,7 @@ family_domain_1(Conf) when list(Conf) ->
family_range_1(suite) -> [];
family_range_1(doc) -> [""];
-family_range_1(Conf) when list(Conf) ->
+family_range_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = from_term([{a,[]},{b,[]}],[{atom,[{atom,atom}]}]),
?line EF = from_term([{a,[]},{b,[]}],[{atom,[atom]}]),
@@ -2023,7 +2023,7 @@ family_range_1(Conf) when list(Conf) ->
family_to_relation_1(suite) -> [];
family_to_relation_1(doc) -> [""];
-family_to_relation_1(Conf) when list(Conf) ->
+family_to_relation_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line ER = relation([]),
?line EF = family([]),
@@ -2037,7 +2037,7 @@ family_to_relation_1(Conf) when list(Conf) ->
union_of_family_1(suite) -> [];
union_of_family_1(doc) -> [""];
-union_of_family_1(Conf) when list(Conf) ->
+union_of_family_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line EF = from_term([{a,[]},{b,[]}],[{atom,[atom]}]),
?line eval(union_of_family(E), E),
@@ -2052,7 +2052,7 @@ union_of_family_1(Conf) when list(Conf) ->
intersection_of_family_1(suite) -> [];
intersection_of_family_1(doc) -> [""];
-intersection_of_family_1(Conf) when list(Conf) ->
+intersection_of_family_1(Conf) when is_list(Conf) ->
?line EF = from_term([{a,[]},{b,[]}],[{atom,[atom]}]),
?line eval(intersection_of_family(EF), set([])),
?line FR = from_term([{a,[1,2,3]},{b,[2,3]},{c,[3,4,5]}]),
@@ -2066,7 +2066,7 @@ intersection_of_family_1(Conf) when list(Conf) ->
family_projection(suite) -> [];
family_projection(doc) -> [""];
-family_projection(Conf) when list(Conf) ->
+family_projection(Conf) when is_list(Conf) ->
SSType = [{atom,[[atom]]}],
SRType = [{atom,[{atom,atom}]}],
?line E = empty_set(),
@@ -2127,7 +2127,7 @@ family_projection(Conf) when list(Conf) ->
family_difference(suite) -> [];
family_difference(doc) -> [""];
-family_difference(Conf) when list(Conf) ->
+family_difference(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line EF = family([]),
?line F9 = from_term([{b,[b,c]}]),
@@ -2164,7 +2164,7 @@ family_difference(Conf) when list(Conf) ->
family_intersection_1(suite) -> [];
family_intersection_1(doc) -> [""];
-family_intersection_1(Conf) when list(Conf) ->
+family_intersection_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line EF = family([]),
?line ES = from_term([], [{atom,[[atom]]}]),
@@ -2184,7 +2184,7 @@ family_intersection_1(Conf) when list(Conf) ->
family_intersection_2(suite) -> [];
family_intersection_2(doc) -> [""];
-family_intersection_2(Conf) when list(Conf) ->
+family_intersection_2(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line EF = family([]),
?line F1 = from_term([{a,[1,2]},{b,[4,5]},{c,[7,8]},{d,[10,11]}]),
@@ -2215,7 +2215,7 @@ family_intersection_2(Conf) when list(Conf) ->
family_union_1(suite) -> [];
family_union_1(doc) -> [""];
-family_union_1(Conf) when list(Conf) ->
+family_union_1(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line EF = family([]),
?line ES = from_term([], [{atom,[[atom]]}]),
@@ -2230,7 +2230,7 @@ family_union_1(Conf) when list(Conf) ->
family_union_2(suite) -> [];
family_union_2(doc) -> [""];
-family_union_2(Conf) when list(Conf) ->
+family_union_2(Conf) when is_list(Conf) ->
?line E = empty_set(),
?line EF = family([]),
?line F1 = from_term([{a,[1,2]},{b,[4,5]},{c,[7,8]},{d,[10,11]}]),
@@ -2259,7 +2259,7 @@ family_union_2(Conf) when list(Conf) ->
partition_family(suite) -> [];
partition_family(doc) -> [""];
-partition_family(Conf) when list(Conf) ->
+partition_family(Conf) when is_list(Conf) ->
?line E = empty_set(),
%% set of ordered sets
diff --git a/lib/stdlib/test/supervisor_SUITE.erl b/lib/stdlib/test/supervisor_SUITE.erl
index b5d9ca44bf..039ea298c4 100644
--- a/lib/stdlib/test/supervisor_SUITE.erl
+++ b/lib/stdlib/test/supervisor_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%% Description: Tests supervisor.erl
@@ -50,7 +50,7 @@
simple_one_for_one_extra/1]).
%% Misc tests
--export([child_unlink/1, tree/1]).
+-export([child_unlink/1, tree/1, count_children_memory/1]).
%-------------------------------------------------------------------------
@@ -60,7 +60,8 @@ all(suite) ->
child_adm_simple, extra_return, child_specs,
restart_one_for_one, restart_one_for_all,
restart_simple_one_for_one, restart_rest_for_one,
- normal_termination, abnormal_termination, child_unlink, tree]}.
+ normal_termination, abnormal_termination, child_unlink, tree,
+ count_children_memory]}.
start(InitResult) ->
@@ -72,6 +73,15 @@ init(fail) ->
init(InitResult) ->
InitResult.
+%% Respect proplist return of supervisor:count_children
+get_child_counts(Supervisor) ->
+ Counts = supervisor:count_children(Supervisor),
+ [proplists:get_value(specs, Counts),
+ proplists:get_value(active, Counts),
+ proplists:get_value(supervisors, Counts),
+ proplists:get_value(workers, Counts)].
+
+
%-------------------------------------------------------------------------
%
% Test cases starts here.
@@ -89,7 +99,7 @@ sup_start_normal(doc) ->
["Tests that the supervisor process starts correctly and that it "
"can be terminated gracefully."];
sup_start_normal(suite) -> [];
-sup_start_normal(Config) when list(Config) ->
+sup_start_normal(Config) when is_list(Config) ->
process_flag(trap_exit, true),
?line {ok, Pid} = start({ok, {{one_for_one, 2, 3600}, []}}),
?line exit(Pid, shutdown),
@@ -107,7 +117,7 @@ sup_start_normal(Config) when list(Config) ->
sup_start_ignore_init(doc) ->
["Tests what happens if init-callback returns ignore"];
sup_start_ignore_init(suite) -> [];
-sup_start_ignore_init(Config) when list(Config) ->
+sup_start_ignore_init(Config) when is_list(Config) ->
process_flag(trap_exit, true),
?line ignore = start(ignore),
@@ -127,7 +137,7 @@ sup_start_ignore_init(Config) when list(Config) ->
sup_start_ignore_child(doc) ->
["Tests what happens if init-callback returns ignore"];
sup_start_ignore_child(suite) -> [];
-sup_start_ignore_child(Config) when list(Config) ->
+sup_start_ignore_child(Config) when is_list(Config) ->
process_flag(trap_exit, true),
?line {ok, _Pid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, [ignore]},
@@ -140,13 +150,15 @@ sup_start_ignore_child(Config) when list(Config) ->
?line [{child2, CPid2, worker, []},{child1, undefined, worker, []}]
= supervisor:which_children(sup_test),
+ ?line [2,1,0,2] = get_child_counts(sup_test),
+
ok.
%-------------------------------------------------------------------------
sup_start_error_return(doc) ->
["Tests what happens if init-callback returns a invalid value"];
sup_start_error_return(suite) -> [];
-sup_start_error_return(Config) when list(Config) ->
+sup_start_error_return(Config) when is_list(Config) ->
process_flag(trap_exit, true),
?line {error, Term} = start(invalid),
@@ -165,7 +177,7 @@ sup_start_error_return(Config) when list(Config) ->
sup_start_fail(doc) ->
["Tests what happens if init-callback fails"];
sup_start_fail(suite) -> [];
-sup_start_fail(Config) when list(Config) ->
+sup_start_fail(Config) when is_list(Config) ->
process_flag(trap_exit, true),
?line {error, Term} = start(fail),
@@ -192,7 +204,7 @@ sup_stop_infinity(doc) ->
"for children of type supervisor"];
sup_stop_infinity(suite) -> [];
-sup_stop_infinity(Config) when list(Config) ->
+sup_stop_infinity(Config) when is_list(Config) ->
process_flag(trap_exit, true),
?line {ok, Pid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, []},
@@ -230,7 +242,7 @@ sup_stop_timeout(doc) ->
["See sup_stop/1 when Shutdown = 1000"];
sup_stop_timeout(suite) -> [];
-sup_stop_timeout(Config) when list(Config) ->
+sup_stop_timeout(Config) when is_list(Config) ->
process_flag(trap_exit, true),
?line {ok, Pid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, []},
@@ -278,7 +290,7 @@ sup_stop_brutal_kill(doc) ->
["See sup_stop/1 when Shutdown = brutal_kill"];
sup_stop_brutal_kill(suite) -> [];
-sup_stop_brutal_kill(Config) when list(Config) ->
+sup_stop_brutal_kill(Config) when is_list(Config) ->
process_flag(trap_exit, true),
?line {ok, Pid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, []},
@@ -327,7 +339,7 @@ extra_return(doc) ->
"and restart_child/2"];
extra_return(suite) -> [];
-extra_return(Config) when list(Config) ->
+extra_return(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child = {child1, {supervisor_1, start_child, [extra_return]},
permanent, 1000,
@@ -341,6 +353,8 @@ extra_return(Config) when list(Config) ->
?line {error, running} = supervisor:delete_child(sup_test, child1),
?line {error, running} = supervisor:restart_child(sup_test, child1),
?line [{child1, CPid, worker, []}] = supervisor:which_children(sup_test),
+ ?line [1,1,0,1] = get_child_counts(sup_test),
+
?line ok = supervisor:terminate_child(sup_test, child1),
receive
{'EXIT', CPid, shutdown} -> ok;
@@ -350,29 +364,39 @@ extra_return(Config) when list(Config) ->
?line test_server:fail(no_child_termination)
end,
?line [{child1,undefined,worker,[]}] = supervisor:which_children(sup_test),
+ ?line [1,0,0,1] = get_child_counts(sup_test),
+
?line {ok, CPid2,extra_return} =
supervisor:restart_child(sup_test, child1),
?line [{child1, CPid2, worker, []}] = supervisor:which_children(sup_test),
+ ?line [1,1,0,1] = get_child_counts(sup_test),
+
?line ok = supervisor:terminate_child(sup_test, child1),
?line ok = supervisor:terminate_child(sup_test, child1),
?line ok = supervisor:delete_child(sup_test, child1),
?line {error, not_found} = supervisor:restart_child(sup_test, child1),
?line [] = supervisor:which_children(sup_test),
+ ?line [0,0,0,0] = get_child_counts(sup_test),
+
?line {ok, CPid3, extra_return} = supervisor:start_child(sup_test, Child),
?line [{child1, CPid3, worker, []}] = supervisor:which_children(sup_test),
+ ?line [1,1,0,1] = get_child_counts(sup_test),
+
ok.
%-------------------------------------------------------------------------
child_adm(doc)->
["Test API functions start_child/2, terminate_child/2, delete_child/2 "
- "restart_child/2, which_children/1. Only correct childspecs are used, "
- "handling of incorrect childspecs is tested in child_specs/1"];
+ "restart_child/2, which_children/1, count_children/1. Only correct "
+ "childspecs are used, handling of incorrect childspecs is tested in "
+ "child_specs/1"];
child_adm(suite) -> [];
-child_adm(Config) when list(Config) ->
+child_adm(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child = {child1, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
?line {ok, _Pid} = start({ok, {{one_for_one, 2, 3600}, [Child]}}),
?line [{child1, CPid, worker, []}] = supervisor:which_children(sup_test),
+ ?line [1,1,0,1] = get_child_counts(sup_test),
link(CPid),
%% Start of an already runnig process
@@ -392,6 +416,7 @@ child_adm(Config) when list(Config) ->
?line test_server:fail(no_child_termination)
end,
?line [{child1,undefined,worker,[]}] = supervisor:which_children(sup_test),
+ ?line [1,0,0,1] = get_child_counts(sup_test),
%% Like deleting something that does not exist, it will succeed!
?line ok = supervisor:terminate_child(sup_test, child1),
@@ -402,6 +427,7 @@ child_adm(Config) when list(Config) ->
%% Restart
?line {ok, CPid2} = supervisor:restart_child(sup_test, child1),
?line [{child1, CPid2, worker, []}] = supervisor:which_children(sup_test),
+ ?line [1,1,0,1] = get_child_counts(sup_test),
?line {error, running} = supervisor:restart_child(sup_test, child1),
?line {error, not_found} = supervisor:restart_child(sup_test, child2),
@@ -414,15 +440,19 @@ child_adm(Config) when list(Config) ->
?line ok = supervisor:delete_child(sup_test, child1),
?line {error, not_found} = supervisor:restart_child(sup_test, child1),
?line [] = supervisor:which_children(sup_test),
+ ?line [0,0,0,0] = get_child_counts(sup_test),
%% Start
?line {'EXIT',{noproc,{gen_server,call, _}}} =
(catch supervisor:start_child(foo, Child)),
?line {ok, CPid3} = supervisor:start_child(sup_test, Child),
?line [{child1, CPid3, worker, []}] = supervisor:which_children(sup_test),
+ ?line [1,1,0,1] = get_child_counts(sup_test),
?line {'EXIT',{noproc,{gen_server,call,[foo,which_children,infinity]}}}
= (catch supervisor:which_children(foo)),
+ ?line {'EXIT',{noproc,{gen_server,call,[foo,count_children,infinity]}}}
+ = (catch supervisor:count_children(foo)),
ok.
%-------------------------------------------------------------------------
child_adm_simple(doc) ->
@@ -430,12 +460,13 @@ child_adm_simple(doc) ->
"restart_child/2 are not valid for a simple_one_for_one supervisor "
"check that the correct error message is returned."];
child_adm_simple(suite) -> [];
-child_adm_simple(Config) when list(Config) ->
+child_adm_simple(Config) when is_list(Config) ->
Child = {child, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
?line {ok, _Pid} = start({ok, {{simple_one_for_one, 2, 3600}, [Child]}}),
%% In simple_one_for_one all children are added dynamically
?line [] = supervisor:which_children(sup_test),
+ ?line [1,0,0,0] = get_child_counts(sup_test),
%% Start
?line {'EXIT',{noproc,{gen_server,call, _}}} =
@@ -443,12 +474,14 @@ child_adm_simple(Config) when list(Config) ->
?line {ok, CPid1} = supervisor:start_child(sup_test, []),
?line [{undefined, CPid1, worker, []}] =
supervisor:which_children(sup_test),
+ ?line [1,1,0,1] = get_child_counts(sup_test),
?line {ok, CPid2} = supervisor:start_child(sup_test, []),
?line Children = supervisor:which_children(sup_test),
?line 2 = length(Children),
?line true = lists:member({undefined, CPid2, worker, []}, Children),
?line true = lists:member({undefined, CPid1, worker, []}, Children),
+ ?line [1,2,0,2] = get_child_counts(sup_test),
%% Termination
?line {error, simple_one_for_one} =
@@ -467,7 +500,7 @@ child_adm_simple(Config) when list(Config) ->
child_specs(doc) ->
["Tests child specs, invalid formats should be rejected."];
child_specs(suite) -> [];
-child_specs(Config) when list(Config) ->
+child_specs(Config) when is_list(Config) ->
process_flag(trap_exit, true),
?line {ok, _Pid} = start({ok, {{one_for_one, 2, 3600}, []}}),
?line {error, _} = supervisor:start_child(sup_test, hej),
@@ -526,7 +559,7 @@ normal_termination(suite) ->
permanent_normal(doc) ->
["A permanent child should always be restarted"];
permanent_normal(suite) -> [];
-permanent_normal(Config) when list(Config) ->
+permanent_normal(Config) when is_list(Config) ->
?line {ok, _SupPid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
@@ -541,14 +574,16 @@ permanent_normal(Config) when list(Config) ->
ok;
false ->
?line test_server:fail({permanent_child_not_restarted, Child1})
- end.
+ end,
+ ?line [1,1,0,1] = get_child_counts(sup_test),
+ ok.
%-------------------------------------------------------------------------
transient_normal(doc) ->
["A transient child should not be restarted if it exits with "
"reason normal"];
transient_normal(suite) -> [];
-transient_normal(Config) when list(Config) ->
+transient_normal(Config) when is_list(Config) ->
?line {ok, _SupPid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, []}, transient, 1000,
worker, []},
@@ -558,13 +593,15 @@ transient_normal(Config) when list(Config) ->
CPid1 ! stop,
test_server:sleep(100),
- ?line [{child1,undefined,worker,[]}] = supervisor:which_children(sup_test).
+ ?line [{child1,undefined,worker,[]}] = supervisor:which_children(sup_test),
+ ?line [1,0,0,1] = get_child_counts(sup_test),
+ ok.
%-------------------------------------------------------------------------
temporary_normal(doc) ->
["A temporary process should never be restarted"];
temporary_normal(suite) -> [];
-temporary_normal(Config) when list(Config) ->
+temporary_normal(Config) when is_list(Config) ->
?line {ok, _SupPid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, []}, temporary, 1000,
worker, []},
@@ -574,8 +611,10 @@ temporary_normal(Config) when list(Config) ->
CPid1 ! stop,
test_server:sleep(100),
- ?line [{child1,undefined,worker,[]}] = supervisor:which_children(sup_test).
+ ?line [{child1,undefined,worker,[]}] = supervisor:which_children(sup_test),
+ ?line [1,0,0,1] = get_child_counts(sup_test),
+ ok.
%-------------------------------------------------------------------------
abnormal_termination(doc) ->
["Testes the supervisors behaviour if a child dies with reason abnormal"];
@@ -586,7 +625,7 @@ abnormal_termination(suite) ->
permanent_abnormal(doc) ->
["A permanent child should always be restarted"];
permanent_abnormal(suite) -> [];
-permanent_abnormal(Config) when list(Config) ->
+permanent_abnormal(Config) when is_list(Config) ->
?line {ok, _SupPid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
@@ -601,14 +640,16 @@ permanent_abnormal(Config) when list(Config) ->
ok;
false ->
?line test_server:fail({permanent_child_not_restarted, Child1})
- end.
+ end,
+ ?line [1,1,0,1] = get_child_counts(sup_test),
+ ok.
%-------------------------------------------------------------------------
transient_abnormal(doc) ->
["A transient child should be restarted if it exits with "
"reason abnormal"];
transient_abnormal(suite) -> [];
-transient_abnormal(Config) when list(Config) ->
+transient_abnormal(Config) when is_list(Config) ->
?line {ok, _SupPid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, []}, transient, 1000,
worker, []},
@@ -624,14 +665,15 @@ transient_abnormal(Config) when list(Config) ->
ok;
false ->
?line test_server:fail({transient_child_not_restarted, Child1})
- end.
-
+ end,
+ ?line [1,1,0,1] = get_child_counts(sup_test),
+ ok.
%-------------------------------------------------------------------------
temporary_abnormal(doc) ->
["A temporary process should never be restarted"];
temporary_abnormal(suite) -> [];
-temporary_abnormal(Config) when list(Config) ->
+temporary_abnormal(Config) when is_list(Config) ->
?line {ok, _SupPid} = start({ok, {{one_for_one, 2, 3600}, []}}),
Child1 = {child1, {supervisor_1, start_child, []}, temporary, 1000,
worker, []},
@@ -641,8 +683,10 @@ temporary_abnormal(Config) when list(Config) ->
CPid1 ! die,
test_server:sleep(100),
- ?line [{child1,undefined,worker,[]}] = supervisor:which_children(sup_test).
+ ?line [{child1,undefined,worker,[]}] = supervisor:which_children(sup_test),
+ ?line [1,0,0,1] = get_child_counts(sup_test),
+ ok.
%-------------------------------------------------------------------------
restart_one_for_one(doc) ->
["Test that the one_for_one strategy works."];
@@ -653,7 +697,7 @@ restart_one_for_one(suite) -> [one_for_one, one_for_one_escalation].
one_for_one(doc) ->
["Test the one_for_one base case."];
one_for_one(suite) -> [];
-one_for_one(Config) when list(Config) ->
+one_for_one(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child1 = {child1, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
@@ -679,6 +723,7 @@ one_for_one(Config) when list(Config) ->
end;
true -> ?line test_server:fail({bad_child_list, Children})
end,
+ ?line [2,2,0,2] = get_child_counts(sup_test),
%% Test restart frequency property
CPid2 ! die,
@@ -697,7 +742,7 @@ one_for_one(Config) when list(Config) ->
one_for_one_escalation(doc) ->
["Test restart escalation on a one_for_one supervisor."];
one_for_one_escalation(suite) -> [];
-one_for_one_escalation(Config) when list(Config) ->
+one_for_one_escalation(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child1 = {child1, {supervisor_1, start_child, [error]},
permanent, 1000,
@@ -737,7 +782,7 @@ restart_one_for_all(suite) ->
one_for_all(doc) ->
["Test the one_for_all base case."];
one_for_all(suite) -> [];
-one_for_all(Config) when list(Config) ->
+one_for_all(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child1 = {child1, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
@@ -772,6 +817,8 @@ one_for_all(Config) when list(Config) ->
true -> ?line test_server:fail(bad_child);
false -> ok
end,
+ ?line [2,2,0,2] = get_child_counts(sup_test),
+
%%% Test restart frequency property
[{_, Pid3, _, _}|_] = supervisor:which_children(sup_test),
Pid3 ! die,
@@ -788,7 +835,7 @@ one_for_all(Config) when list(Config) ->
one_for_all_escalation(doc) ->
["Test restart escalation on a one_for_all supervisor."];
one_for_all_escalation(suite) -> [];
-one_for_all_escalation(Config) when list(Config) ->
+one_for_all_escalation(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child1 = {child1, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
@@ -830,7 +877,7 @@ restart_simple_one_for_one(suite) ->
simple_one_for_one(doc) ->
["Test the simple_one_for_one base case."];
simple_one_for_one(suite) -> [];
-simple_one_for_one(Config) when list(Config) ->
+simple_one_for_one(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child = {child, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
@@ -854,6 +901,8 @@ simple_one_for_one(Config) when list(Config) ->
end;
true -> ?line test_server:fail({bad_child_list, Children})
end,
+ ?line [1,2,0,2] = get_child_counts(sup_test),
+
%% Test restart frequency property
CPid2 ! die,
receive
@@ -872,7 +921,7 @@ simple_one_for_one_extra(doc) ->
["Tests automatic restart of children "
"who's start function return extra info."];
simple_one_for_one_extra(suite) -> [];
-simple_one_for_one_extra(Config) when list(Config) ->
+simple_one_for_one_extra(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child = {child, {supervisor_1, start_child, [extra_info]},
permanent, 1000, worker, []},
@@ -896,6 +945,8 @@ simple_one_for_one_extra(Config) when list(Config) ->
end;
true -> ?line test_server:fail({bad_child_list, Children})
end,
+ ?line [1,2,0,2] = get_child_counts(sup_test),
+
CPid2 ! die,
receive
{'EXIT', CPid2, _} -> ok
@@ -912,7 +963,7 @@ simple_one_for_one_extra(Config) when list(Config) ->
simple_one_for_one_escalation(doc) ->
["Test restart escalation on a simple_one_for_one supervisor."];
simple_one_for_one_escalation(suite) -> [];
-simple_one_for_one_escalation(Config) when list(Config) ->
+simple_one_for_one_escalation(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child = {child, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
@@ -947,7 +998,7 @@ restart_rest_for_one(suite) -> [rest_for_one, rest_for_one_escalation].
rest_for_one(doc) ->
["Test the rest_for_one base case."];
rest_for_one(suite) -> [];
-rest_for_one(Config) when list(Config) ->
+rest_for_one(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child1 = {child1, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
@@ -962,6 +1013,8 @@ rest_for_one(Config) when list(Config) ->
link(CPid2),
?line {ok, CPid3} = supervisor:start_child(sup_test, Child3),
link(CPid3),
+ ?line [3,3,0,3] = get_child_counts(sup_test),
+
CPid2 ! die,
receive
{'EXIT', CPid2, died} -> ok;
@@ -987,6 +1040,8 @@ rest_for_one(Config) when list(Config) ->
if length(Children) == 3 -> ok;
true -> ?line test_server:fail({bad_child_list, Children})
end,
+ ?line [3,3,0,3] = get_child_counts(sup_test),
+
%% Test that no old children is still alive
SCh = lists:map(fun({_,P,_,_}) -> P end, Children),
case lists:member(CPid1, SCh) of
@@ -1018,7 +1073,7 @@ rest_for_one(Config) when list(Config) ->
rest_for_one_escalation(doc) ->
["Test restart escalation on a rest_for_one supervisor."];
rest_for_one_escalation(suite) -> [];
-rest_for_one_escalation(Config) when list(Config) ->
+rest_for_one_escalation(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child1 = {child1, {supervisor_1, start_child, []}, permanent, 1000,
worker, []},
@@ -1052,7 +1107,7 @@ rest_for_one_escalation(Config) when list(Config) ->
child_unlink(doc)-> ["Test that the supervisor does not hang forever if "
"the child unliks and then is terminated by the supervisor."];
child_unlink(suite) -> [];
-child_unlink(Config) when list(Config) ->
+child_unlink(Config) when is_list(Config) ->
?line {ok, SupPid} = start({ok, {{one_for_one, 2, 3600}, []}}),
@@ -1081,7 +1136,7 @@ tree(doc) ->
["Test a basic supervison tree."];
tree(suite) ->
[];
-tree(Config) when list(Config) ->
+tree(Config) when is_list(Config) ->
process_flag(trap_exit, true),
Child1 = {child1, {supervisor_1, start_child, []},
@@ -1114,15 +1169,19 @@ tree(Config) when list(Config) ->
%% Child supervisors
?line {ok, Sup1} = supervisor:start_child(Pid, ChildSup1),
?line {ok, Sup2} = supervisor:start_child(Pid, ChildSup2),
+ ?line [2,2,2,0] = get_child_counts(Pid),
%% Workers
-
?line [{_, CPid2, _, _},{_, CPid1, _, _}] =
supervisor:which_children(Sup1),
+ ?line [2,2,0,2] = get_child_counts(Sup1),
+ ?line [0,0,0,0] = get_child_counts(Sup2),
%% Dynamic children
?line {ok, CPid3} = supervisor:start_child(Sup2, Child3),
?line {ok, CPid4} = supervisor:start_child(Sup2, Child4),
+ ?line [2,2,0,2] = get_child_counts(Sup1),
+ ?line [2,2,0,2] = get_child_counts(Sup2),
link(Sup1),
link(Sup2),
@@ -1144,9 +1203,11 @@ tree(Config) when list(Config) ->
?line [{_, CPid2, _, _},{_, CPid1, _, _}] =
supervisor:which_children(Sup1),
+ ?line [2,2,0,2] = get_child_counts(Sup1),
?line [{_, NewCPid4, _, _},{_, CPid3, _, _}] =
supervisor:which_children(Sup2),
+ ?line [2,2,0,2] = get_child_counts(Sup2),
link(NewCPid4),
@@ -1195,9 +1256,99 @@ tree(Config) when list(Config) ->
?line [{supchild2, NewSup2, _, _},{supchild1, NewSup1, _, _}] =
supervisor:which_children(Pid),
+ ?line [2,2,2,0] = get_child_counts(Pid),
?line [{child2, _, _, _},{child1, _, _, _}] =
supervisor:which_children(NewSup1),
+ ?line [2,2,0,2] = get_child_counts(NewSup1),
+
?line [] = supervisor:which_children(NewSup2),
+ ?line [0,0,0,0] = get_child_counts(NewSup2),
ok.
+%-------------------------------------------------------------------------
+count_children_allocator_test(MemoryState) ->
+ Allocators = [temp_alloc, eheap_alloc, binary_alloc, ets_alloc,
+ driver_alloc, sl_alloc, ll_alloc, fix_alloc, std_alloc,
+ sys_alloc],
+ MemoryStateList = element(4, MemoryState),
+ AllocTypes = [lists:keyfind(Alloc, 1, MemoryStateList)
+ || Alloc <- Allocators],
+ AllocStates = [lists:keyfind(e, 1, AllocValue)
+ || {_Type, AllocValue} <- AllocTypes],
+ lists:all(fun(State) -> State == {e, true} end, AllocStates).
+
+count_children_memory(doc) ->
+ ["Test that which_children eats memory, but count_children does not."];
+count_children_memory(suite) ->
+ MemoryState = erlang:system_info(allocator),
+ case count_children_allocator_test(MemoryState) of
+ true -> [];
+ false ->
+ {skip, "+Meamin used during test; erlang:memory/1 not available"}
+ end;
+count_children_memory(Config) when is_list(Config) ->
+ process_flag(trap_exit, true),
+ Child = {child, {supervisor_1, start_child, []}, temporary, 1000,
+ worker, []},
+ ?line {ok, _Pid} = start({ok, {{simple_one_for_one, 2, 3600}, [Child]}}),
+ [supervisor:start_child(sup_test, []) || _Ignore <- lists:seq(1,1000)],
+
+ garbage_collect(),
+ _Size1 = erlang:memory(processes_used),
+ Children = supervisor:which_children(sup_test),
+ _Size2 = erlang:memory(processes_used),
+ ChildCount = get_child_counts(sup_test),
+ Size3 = erlang:memory(processes_used),
+
+ [supervisor:start_child(sup_test, []) || _Ignore2 <- lists:seq(1,1000)],
+
+ garbage_collect(),
+ Children2 = supervisor:which_children(sup_test),
+ Size4 = erlang:memory(processes_used),
+ ChildCount2 = get_child_counts(sup_test),
+ Size5 = erlang:memory(processes_used),
+
+ garbage_collect(),
+ Children3 = supervisor:which_children(sup_test),
+ Size6 = erlang:memory(processes_used),
+ ChildCount3 = get_child_counts(sup_test),
+ Size7 = erlang:memory(processes_used),
+
+ ?line 1000 = length(Children),
+ ?line [1,1000,0,1000] = ChildCount,
+ ?line 2000 = length(Children2),
+ ?line [1,2000,0,2000] = ChildCount2,
+ ?line Children3 = Children2,
+ ?line ChildCount3 = ChildCount2,
+
+ %% count_children consumes memory using an accumulator function,
+ %% but the space can be reclaimed incrementally, whereas
+ %% which_children generates a return list.
+ case (Size5 =< Size4) of
+ true -> ok;
+ false ->
+ ?line test_server:fail({count_children, used_more_memory})
+ end,
+ case Size7 =< Size6 of
+ true -> ok;
+ false ->
+ ?line test_server:fail({count_children, used_more_memory})
+ end,
+
+ case Size4 > Size3 of
+ true -> ok;
+ false ->
+ ?line test_server:fail({which_children, used_no_memory})
+ end,
+ case Size6 > Size5 of
+ true -> ok;
+ false ->
+ ?line test_server:fail({which_children, used_no_memory})
+ end,
+
+ [exit(Pid, kill) || {undefined, Pid, worker, _Modules} <- Children3],
+ test_server:sleep(100),
+ ?line [1,0,0,0] = get_child_counts(sup_test),
+
+ ok.
diff --git a/lib/stdlib/test/tar_SUITE.erl b/lib/stdlib/test/tar_SUITE.erl
index af687ed2e1..7646f4c249 100644
--- a/lib/stdlib/test/tar_SUITE.erl
+++ b/lib/stdlib/test/tar_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(tar_SUITE).
@@ -183,7 +183,7 @@ atomic(doc) ->
"and uncompressed archives."
"Also test the 'cooked' option."];
atomic(suite) -> [];
-atomic(Config) when list(Config) ->
+atomic(Config) when is_list(Config) ->
?line ok = file:set_cwd(?config(priv_dir, Config)),
?line DataFiles = data_files(),
?line Names = [Name || {Name,_,_} <- DataFiles],
@@ -369,7 +369,7 @@ try_bad(Name0, Reason, Config) ->
case catch erl_tar:format_error(Reason) of
{'EXIT', CrashReason} ->
test_server:fail({format_error, crashed, CrashReason});
- String when list(String) ->
+ String when is_list(String) ->
io:format("format_error(~p) -> ~s", [Reason, String]);
Other ->
test_server:fail({format_error, returned, Other})
@@ -413,7 +413,7 @@ try_error(M, F, A, Error) ->
case catch erl_tar:format_error(Error) of
{'EXIT', FReason} ->
test_server:fail({format_error, crashed, FReason});
- String when list(String) ->
+ String when is_list(String) ->
io:format("format_error(~p) -> ~s", [Error, String]);
Other ->
test_server:fail({format_error, returned, Other})
@@ -431,7 +431,7 @@ remove_prefix(_, Result) ->
extract_from_binary(doc) ->
"Test extracting a tar archive from a binary.";
-extract_from_binary(Config) when list(Config) ->
+extract_from_binary(Config) when is_list(Config) ->
?line DataDir = ?config(data_dir, Config),
?line PrivDir = ?config(priv_dir, Config),
?line Long = filename:join(DataDir, "no_fancy_stuff.tar"),
diff --git a/lib/stdlib/test/timer_SUITE.erl b/lib/stdlib/test/timer_SUITE.erl
index 86d8612b56..5f38c91c64 100644
--- a/lib/stdlib/test/timer_SUITE.erl
+++ b/lib/stdlib/test/timer_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(timer_SUITE).
@@ -271,7 +271,7 @@ collect(N, {E,A,B}, I) ->
print_report ->
print_report({E,A,B,I}),
collect(N,{E,A,B}, I);
- {Pid, get_report} when pid(Pid) ->
+ {Pid, get_report} when is_pid(Pid) ->
Pid ! {report, {E, A, B, I}},
collect(N,{E,A,B}, I);
reset ->
diff --git a/lib/stdlib/test/unicode_SUITE.erl b/lib/stdlib/test/unicode_SUITE.erl
index 706445005c..141ac64606 100644
--- a/lib/stdlib/test/unicode_SUITE.erl
+++ b/lib/stdlib/test/unicode_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(unicode_SUITE).
@@ -276,7 +276,7 @@ ex_latin1(Config) when is_list(Config) ->
unicode:characters_to_list(make_unaligned(MissingLastByte),unicode),
?line DoubleSize16 = byte_size(DoubleUtf16),
- ?line DoubleUtf16_2 = erlang:concat_binary([DoubleUtf16,<<16#FFFFF/utf16-big>>]),
+ ?line DoubleUtf16_2 = list_to_binary([DoubleUtf16,<<16#FFFFF/utf16-big>>]),
?line DoubleSize16_2 = byte_size(DoubleUtf16_2),
?line AllBut1_16 = DoubleSize16 - 1,
?line AllBut2_16_2 = DoubleSize16_2 - 2,
@@ -884,15 +884,15 @@ utf8_to_list_bsyntax(<<C/utf8,R/binary>>) ->
list_to_utf8_bsyntax(List,unicode) ->
FList = flatx(List),
- erlang:concat_binary([ if
- is_binary(E) ->
- E;
- true ->
- <<E/utf8>>
- end || E <- FList ]);
+ list_to_binary([ if
+ is_binary(E) ->
+ E;
+ true ->
+ <<E/utf8>>
+ end || E <- FList ]);
list_to_utf8_bsyntax(List,latin1) ->
FList = flatb(List),
- erlang:concat_binary([ <<E/utf8>> || E <- FList ]).
+ list_to_binary([ <<E/utf8>> || E <- FList ]).
@@ -954,15 +954,15 @@ utf16_big_to_list_bsyntax(<<C/utf16-big,R/binary>>) ->
list_to_utf16_big_bsyntax(List,{utf16,big}) ->
FList = flatx(List),
- erlang:concat_binary([ if
- is_binary(E) ->
- E;
- true ->
- <<E/utf16-big>>
- end || E <- FList ]);
+ list_to_binary([ if
+ is_binary(E) ->
+ E;
+ true ->
+ <<E/utf16-big>>
+ end || E <- FList ]);
list_to_utf16_big_bsyntax(List,latin1) ->
FList = flatb(List),
- erlang:concat_binary([ <<E/utf16-big>> || E <- FList ]).
+ list_to_binary([ <<E/utf16-big>> || E <- FList ]).
utf16_little_to_list_bsyntax(<<>>) ->
@@ -972,15 +972,15 @@ utf16_little_to_list_bsyntax(<<C/utf16-little,R/binary>>) ->
list_to_utf16_little_bsyntax(List,{utf16,little}) ->
FList = flatx(List),
- erlang:concat_binary([ if
- is_binary(E) ->
- E;
- true ->
- <<E/utf16-little>>
- end || E <- FList ]);
+ list_to_binary([ if
+ is_binary(E) ->
+ E;
+ true ->
+ <<E/utf16-little>>
+ end || E <- FList ]);
list_to_utf16_little_bsyntax(List,latin1) ->
FList = flatb(List),
- erlang:concat_binary([ <<E/utf16-little>> || E <- FList ]).
+ list_to_binary([ <<E/utf16-little>> || E <- FList ]).
@@ -991,15 +991,15 @@ utf32_big_to_list_bsyntax(<<C/utf32-big,R/binary>>) ->
list_to_utf32_big_bsyntax(List,{utf32,big}) ->
FList = flatx(List),
- erlang:concat_binary([ if
- is_binary(E) ->
- E;
- true ->
- <<E/utf32-big>>
- end || E <- FList ]);
+ list_to_binary([ if
+ is_binary(E) ->
+ E;
+ true ->
+ <<E/utf32-big>>
+ end || E <- FList ]);
list_to_utf32_big_bsyntax(List,latin1) ->
FList = flatb(List),
- erlang:concat_binary([ <<E/utf32-big>> || E <- FList ]).
+ list_to_binary([ <<E/utf32-big>> || E <- FList ]).
utf32_little_to_list_bsyntax(<<>>) ->
@@ -1009,15 +1009,15 @@ utf32_little_to_list_bsyntax(<<C/utf32-little,R/binary>>) ->
list_to_utf32_little_bsyntax(List,{utf32,little}) ->
FList = flatx(List),
- erlang:concat_binary([ if
- is_binary(E) ->
- E;
- true ->
- <<E/utf32-little>>
- end || E <- FList ]);
+ list_to_binary([ if
+ is_binary(E) ->
+ E;
+ true ->
+ <<E/utf32-little>>
+ end || E <- FList ]);
list_to_utf32_little_bsyntax(List,latin1) ->
FList = flatb(List),
- erlang:concat_binary([ <<E/utf32-little>> || E <- FList ]).
+ list_to_binary([ <<E/utf32-little>> || E <- FList ]).
diff --git a/lib/stdlib/test/win32reg_SUITE.erl b/lib/stdlib/test/win32reg_SUITE.erl
index 3ad58eba03..c8cc82f61e 100644
--- a/lib/stdlib/test/win32reg_SUITE.erl
+++ b/lib/stdlib/test/win32reg_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(win32reg_SUITE).
@@ -37,7 +37,7 @@ fini(Config) when is_list(Config) ->
Config.
long(doc) -> "Test long keys and entries (OTP-3446).";
-long(Config) when list(Config) ->
+long(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(10)),
?line LongKey = "software\\" ++
@@ -61,7 +61,7 @@ long(Config) when list(Config) ->
?line test_server:timetrap_cancel(Dog),
ok.
-evil_write(Config) when list(Config) ->
+evil_write(Config) when is_list(Config) ->
?line Dog = test_server:timetrap(test_server:seconds(10)),
?line Key = "Software\\Ericsson\\Erlang",
diff --git a/lib/stdlib/test/zip_SUITE.erl b/lib/stdlib/test/zip_SUITE.erl
index 55cbd277ef..12ca655000 100644
--- a/lib/stdlib/test/zip_SUITE.erl
+++ b/lib/stdlib/test/zip_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2006-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2006-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(zip_SUITE).
@@ -181,7 +181,7 @@ atomic(doc) ->
["Test the 'atomic' operations: zip/unzip/list_dir, on archives."
"Also test the 'cooked' option."];
atomic(suite) -> [];
-atomic(Config) when list(Config) ->
+atomic(Config) when is_list(Config) ->
ok = file:set_cwd(?config(priv_dir, Config)),
DataFiles = data_files(),
Names = [Name || {Name,_,_} <- DataFiles],
@@ -209,7 +209,7 @@ openzip_api(doc) ->
["Test the openzip_open/2, openzip_get/1, openzip_get/2, openzip_close/1 "
"and openzip_list_dir/1 functions."];
openzip_api(suite) -> [];
-openzip_api(Config) when list(Config) ->
+openzip_api(Config) when is_list(Config) ->
ok = file:set_cwd(?config(priv_dir, Config)),
DataFiles = data_files(),
Names = [Name || {Name, _, _} <- DataFiles],
@@ -248,7 +248,7 @@ zip_api(doc) ->
["Test the zip_open/2, zip_get/1, zip_get/2, zip_close/1 "
"and zip_list_dir/1 functions."];
zip_api(suite) -> [];
-zip_api(Config) when list(Config) ->
+zip_api(Config) when is_list(Config) ->
ok = file:set_cwd(?config(priv_dir, Config)),
DataFiles = data_files(),
Names = [Name || {Name, _, _} <- DataFiles],
@@ -550,7 +550,7 @@ aliases(Config) when is_list(Config) ->
unzip_from_binary(doc) ->
["Test extracting a zip archive from a binary."];
-unzip_from_binary(Config) when list(Config) ->
+unzip_from_binary(Config) when is_list(Config) ->
DataDir = ?config(data_dir, Config),
PrivDir = ?config(priv_dir, Config),
ExtractDir = filename:join(PrivDir, "extract_from_binary"),
@@ -626,7 +626,7 @@ delete_all_in(Dir) ->
compress_control(doc) ->
["Test control of which files that should be compressed"];
compress_control(suite) -> [];
-compress_control(Config) when list(Config) ->
+compress_control(Config) when is_list(Config) ->
ok = file:set_cwd(?config(priv_dir, Config)),
Dir = "compress_control",
Files = [
diff --git a/lib/syntax_tools/vsn.mk b/lib/syntax_tools/vsn.mk
index 53c13440f3..2ba5eac582 100644
--- a/lib/syntax_tools/vsn.mk
+++ b/lib/syntax_tools/vsn.mk
@@ -1 +1 @@
-SYNTAX_TOOLS_VSN = 1.6.4
+SYNTAX_TOOLS_VSN = 1.6.5
diff --git a/lib/test_server/info b/lib/test_server/info
index 79ccc202d7..7a9ed6c700 100644
--- a/lib/test_server/info
+++ b/lib/test_server/info
@@ -1,2 +1,2 @@
-group: tools
+group: test Test Applications
short: The OTP Test Server
diff --git a/lib/tools/doc/src/Makefile b/lib/tools/doc/src/Makefile
index bab607c4bd..433f123ae5 100644
--- a/lib/tools/doc/src/Makefile
+++ b/lib/tools/doc/src/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1997-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1997-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
include $(ERL_TOP)/make/target.mk
@@ -41,6 +41,7 @@ XML_REF3_FILES = \
eprof.xml \
fprof.xml \
cprof.xml \
+ lcnt.xml \
instrument.xml \
make.xml \
tags.xml \
@@ -53,6 +54,7 @@ XML_CHAPTER_FILES = \
cover_chapter.xml \
fprof_chapter.xml \
cprof_chapter.xml \
+ lcnt_chapter.xml \
erlang_mode_chapter.xml \
xref_chapter.xml \
notes.xml \
diff --git a/lib/tools/doc/src/lcnt.xml b/lib/tools/doc/src/lcnt.xml
new file mode 100644
index 0000000000..3c55e4e422
--- /dev/null
+++ b/lib/tools/doc/src/lcnt.xml
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>2009</year>
+ <year>2010</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>lcnt</title>
+ <prepared>Björn-Egil Dahlberg</prepared>
+ <responsible>nobody</responsible>
+ <docno></docno>
+ <approved>nobody</approved>
+ <checked></checked>
+ <date>2009-11-26</date>
+ <rev>PA1</rev>
+ <file>lcnt.xml</file>
+ </header>
+ <module>lcnt</module>
+ <modulesummary>A runtime system Lock Profiling tool.</modulesummary>
+ <description>
+ <p>The <c>lcnt</c> module is used to profile the internal ethread locks in the
+ Erlang Runtime System. With <c>lcnt</c> enabled, Internal counters in the
+ runtime system are updated each time a lock is taken. The counters stores
+ information about the number of acquisition tries and the number of collisions
+ that has occurred during the acquisition tries. The counters also record the
+ waiting time a lock has caused for a blocked thread when a collision has occurred.
+ </p>
+ <p>
+ The data produced by the lock counters will give an estimate on how well
+ the runtime system will behave from a parallelizable view point for the
+ scenarios tested. This tool was mainly developed to help erlang runtime
+ developers iron out potential and generic bottlenecks.
+ </p>
+ <p>Locks in the emulator are named after what type of resource they protect and where
+ in the emulator they are initialized, those are lock 'classes'. Most of those
+ locks are also instantiated several times, and given unique identifiers, to increase
+ locking granularity. Typically an instantiated lock protects a disjunct set of
+ the resource, i.e ets-tables, processes or ports. In other cases it protects a
+ specific range of a resource, e.g. <c>pix_lock</c> which protects index to process
+ mappings, and is given a unique number within the class. A unique lock in <c>lcnt</c>
+ is referenced by a name (class) and an identifier, <c>{Name, Id}</c>.
+ </p>
+ <p>Some locks in the system are static and protects global resources, for example
+ <c>bif_timers</c> and the <c>run_queue</c> locks. Other locks are dynamic and not
+ necessarily long lived, for example process locks and ets-table locks. The
+ statistics data from short lived locks can be stored separately when the locks
+ are deleted. This behavior is by default turned off to save memory but can be
+ turned on via <c>lcnt:rt_opt({copy_save, true})</c>. The <c>lcnt:apply/1,2,3</c>
+ functions enables this behavior during profiling.
+ </p>
+ </description>
+ <funcs>
+
+ <func>
+ <name>start() -> {ok, Pid} | {error, {already_started, Pid}} </name>
+ <fsummary>Starts the lock profiler server.</fsummary>
+ <type>
+ <v>Pid = pid()</v>
+ </type>
+ <desc>
+ <p>Starts the lock profiler server. The server only act as a medium for the
+ user and performs filtering and printing of data collected by <c>lcnt:collect/1</c>.
+ </p>
+ </desc>
+ </func>
+
+ <func>
+ <name>stop() -> ok</name>
+ <fsummary>Stops the lock profiler server.</fsummary>
+ <desc>
+ <p>Stops the lock profiler server.</p>
+ </desc>
+ </func>
+
+ <func>
+ <name>collect() -> ok</name>
+ <fsummary>Same as <c>collect(node())</c>.</fsummary>
+ <desc><p>Same as <c>collect(node())</c>.</p></desc>
+ </func>
+
+ <func>
+ <name>collect(Node) -> ok</name>
+ <fsummary>Collects lock statistics from the runtime system.</fsummary>
+ <type>
+ <v>Node = node()</v>
+ </type>
+ <desc>
+ <p>Collects lock statistics from the runtime system. The function starts a
+ server if it is not already started. It then populates the server with lock
+ statistics. If the server held any lock statistics data before the collect then
+ that data is lost.
+ </p>
+ <note>
+ <p>
+ When collection occurs the runtime system transitions to a single thread,
+ blocking all other threads. No other tasks will be scheduled during this
+ operation. Depending on the size of the data this might take a long time
+ (several seconds) and cause timeouts in the system.
+ </p>
+ </note>
+ </desc>
+ </func>
+
+ <func>
+ <name>clear() -> ok</name>
+ <fsummary>Same as <c>clear(node())</c>.</fsummary>
+ <desc><p>Same as <c>clear(node())</c>.</p></desc>
+ </func>
+
+ <func>
+ <name>clear(Node) -> ok</name>
+ <fsummary>Clears the internal lock statistics from runtime system.</fsummary>
+ <type>
+ <v>Node = node()</v>
+ </type>
+ <desc>
+ <p>Clears the internal lock statistics from the runtime system. This does not clear the
+ data on the server only on runtime system. All counters for static locks are zeroed,
+ all dynamic locks currently alive are zeroed and all saved locks now destroyed are removed.
+ It also resets the duration timer.
+ </p>
+ </desc>
+ </func>
+ <func>
+ <name>conflicts() -> ok</name>
+ <fsummary>Same as <c>conflicts([])</c>.</fsummary>
+ <desc><p>Same as <c>conflicts([])</c>.</p></desc>
+ </func>
+ <func>
+ <name>conflicts([Option]) -> ok</name>
+ <fsummary>Prints a list of internal lock counters.</fsummary>
+ <type>
+ <v>Option = {sort, Sort} | {reverse, bool()} | {thresholds, [Thresholds]} | {print, [Print | {Print, integer()}]} | {max_locks, MaxLocks} | {combine, bool()}</v>
+ <v>Sort = name | id | type | tries | colls | ratio | time | entry</v>
+ <v>Thresholds = {tries, integer()} | {colls, integer()} | {time, integer()}</v>
+ <v>Print = name | id | type | entry | tries | colls | ratio | time | duration</v>
+ <v>MaxLocks = integer() | none</v>
+ </type>
+ <desc>
+ <p>Prints a list of internal locks and its statistics.</p>
+ <p>For option description, see <seealso marker="#inspect/2">lcnt:inspect/2</seealso>.</p>
+ </desc>
+ </func>
+
+ <func>
+ <name>locations() -> ok</name>
+ <fsummary>Same as <c>locations([])</c>.</fsummary>
+ <desc>
+ <p>Same as <c>locations([])</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>locations([Option]) -> ok</name>
+ <fsummary>Prints a list of internal lock counters by source code locations.</fsummary>
+ <type>
+ <v>Option = {sort, Sort} | {thresholds, [Thresholds]} | {print, [Print | {Print, integer()}]} | {max_locks, MaxLocks} | {combine, bool()}</v>
+ <v>Sort = name | id | type | tries | colls | ratio | time | entry</v>
+ <v>Thresholds = {tries, integer()} | {colls, integer()} | {time, integer()}</v>
+ <v>Print = name | id | type | entry | tries | colls | ratio | time | duration</v>
+ <v>MaxLocks = integer() | none</v>
+ </type>
+ <desc>
+ <p>Prints a list of internal lock counters by source code locations.</p>
+ <p>For option description, see <seealso marker="#inspect/2">lcnt:inspect/2</seealso>.</p>
+ </desc>
+ </func>
+
+ <func>
+ <name>inspect(Lock) -> ok</name>
+ <fsummary>Same as <c>inspect(Lock, [])</c>.</fsummary>
+ <desc><p>Same as <c>inspect(Lock, [])</c>.</p></desc>
+ </func>
+ <func>
+ <name>inspect(Lock, [Option]) -> ok</name>
+ <fsummary>Prints a list of internal lock counters for a specific lock.</fsummary>
+ <type>
+ <v>Lock = Name | {Name, Id | [Id]}</v>
+ <v>Name = atom() | pid() | port()</v>
+ <v>Id = atom() | integer() | pid() | port()</v>
+ <v>Option = {sort, Sort} | {thresholds, [Thresholds]} | {print, [Print | {Print, integer()}]} | {max_locks, MaxLocks} | {combine, bool()} | {locations, bool()}</v>
+ <v>Sort = name | id | type | tries | colls | ratio | time</v>
+ <v>Thresholds = {tries, integer()} | {colls, integer()} | {time, integer()}</v>
+ <v>Print = name | id | type | entry | tries | colls | ratio | time | duration</v>
+ <v>MaxLocks = integer() | none</v>
+ </type>
+ <desc>
+ <p>Prints a list of internal lock counters for a specific lock.</p>
+ <p>Lock <c>Name</c> and <c>Id</c> for ports and processes are interchangeable with the use of <c>lcnt:swap_pid_keys/0</c> and is the reason why <c>pid()</c> and <c>port()</c> options can be used in both <c>Name</c> and <c>Id</c> space. Both pids and ports are special identifiers with stripped creation and can be recreated with <seealso marker="#pid/3">lcnt:pid/2,3</seealso> and <seealso marker="#port/2">lcnt:port/1,2</seealso>. </p>
+ <p>Option description:</p>
+ <taglist>
+ <tag><c>{combine, bool()}</c></tag>
+ <item>Combine the statistics from different instances of a lock class.
+ <br/>Default: <c>true</c>
+ </item>
+
+ <tag><c>{locations, bool()}</c></tag>
+ <item>Print the statistics by source file and line numbers.
+ <br/>Default: <c>false</c>
+ </item>
+
+ <tag><c>{max_locks, MaxLocks}</c></tag>
+ <item>Maximum number of locks printed or no limit with <c>none</c>.
+ <br/>Default: <c>20</c>
+ </item>
+
+ <tag><c>{print, PrintOptions}</c></tag>
+ <item>Printing options:
+ <taglist>
+ <tag><c>name</c></tag>
+ <item>Named lock or named set of locks (classes). The same name used for initializing the lock in the VM.</item>
+
+ <tag><c>id</c></tag>
+ <item>Internal id for set of locks, not always unique. This could be table name for ets tables (db_tab), port id for ports, integer identifiers for allocators, etc.</item>
+
+ <tag><c>type</c></tag>
+ <item>Type of lock: <c>rw_mutex</c>, <c>mutex</c>, <c>spinlock</c>, <c>rw_spinlock</c> or <c>proclock</c>.</item>
+
+ <tag><c>entry</c></tag>
+ <item>In combination with <c>{locations, true}</c> this option prints the lock operations source file and line number entry-points along with statistics for each entry. </item>
+
+ <tag><c>tries</c></tag>
+ <item>Number of acquisitions of this lock.</item>
+
+ <tag><c>colls</c></tag>
+ <item>Number of collisions when a thread tried to acquire this lock. This is when a trylock is EBUSY, a write try on read held rw_lock, a try read on write held rw_lock, a thread tries to lock an already locked lock. (Internal states supervises this).</item>
+
+ <tag><c>ratio</c></tag>
+ <item>The ratio between the number of collisions and the number of tries (acquisitions) in percentage.</item>
+
+ <tag><c>time</c></tag>
+ <item>Accumulated waiting time for this lock. This could be greater than actual wall clock time, it is accumulated for all threads. Trylock conflicts does not accumulate time.</item>
+
+ <tag><c>duration</c></tag>
+ <item>Percentage of accumulated waiting time of wall clock time. This percentage can be higher than 100% since accumulated time is from all threads.</item>
+ </taglist>
+ <br/>Default: <c>[name,id,tries,colls,ratio,time,duration]</c>
+ </item>
+
+ <tag><c>{reverse, bool()}</c></tag>
+ <item>Reverses the order of sorting.
+ <br/>Default: <c>false</c>
+ </item>
+
+ <tag><c>{sort, Sort}</c></tag>
+ <item>Column sorting orders.
+ <br/>Default: <c>time</c>
+ </item>
+
+ <tag><c>{thresholds, Thresholds}</c></tag>
+ <item>Filtering thresholds. Anything values above the threshold value are passed through.
+ <br/>Default: <c>[{tries, 0}, {colls, 0}, {time, 0}]</c>
+ </item>
+
+ </taglist>
+
+ </desc>
+ </func>
+
+ <func>
+ <name>information() -> ok</name>
+ <fsummary>Prints lcnt server state and generic information about collected lock statistics.</fsummary>
+ <desc>
+ <p>Prints lcnt server state and generic information about collected lock statistics.</p>
+ </desc>
+ </func>
+
+ <func>
+ <name>swap_pid_keys() -> ok</name>
+ <fsummary>Swaps places on <c>Name</c> and <c>Id</c> space for ports and processes.</fsummary>
+ <desc>
+ <p>Swaps places on <c>Name</c> and <c>Id</c> space for ports and processes.</p>
+ </desc>
+ </func>
+
+ <func>
+ <name>load(Filename) -> ok</name>
+ <fsummary>Restores previously saved data to the server.</fsummary>
+ <type>
+ <v>Filename = filename()</v>
+ </type>
+ <desc>
+ <p>Restores previously saved data to the server.</p>
+ </desc>
+ </func>
+
+ <func>
+ <name>save(Filename) -> ok</name>
+ <fsummary>Saves the collected data to file.</fsummary>
+ <type>
+ <v>Filename = filename()</v>
+ </type>
+ <desc>
+ <p>Saves the collected data to file.</p>
+ </desc>
+ </func>
+ </funcs>
+
+ <section>
+ <title>Convenience functions</title>
+ <p>The following functions are used for convenience.</p>
+ </section>
+ <funcs>
+ <func>
+ <name>apply(Fun) -> term()</name>
+ <fsummary>Same as <c>apply(Fun, [])</c>.</fsummary>
+ <desc>
+ <p>Same as <c>apply(Fun, [])</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>apply(Fun, Args) -> term()</name>
+ <fsummary>Clears counters, applies function and collects the profiling results.</fsummary>
+ <type>
+ <v>Fun = fun()</v>
+ <v>Args = [term()]</v>
+ </type>
+ <desc>
+ <p> Clears the lock counters and then setups the instrumentation to save all destroyed locks.
+ After setup the fun is called, passing the elements in <c>Args</c> as arguments.
+ When the fun returns the statistics are immediately collected to the server. After the
+ collection the instrumentation is returned to its previous behavior.
+ The result of the applied fun is returned.
+ </p>
+ </desc>
+ </func>
+ <func>
+ <name>apply(Module, Function, Args) -> term()</name>
+ <fsummary>Clears counters, applies function and collects the profiling results.</fsummary>
+ <type>
+ <v>Module = atom()</v>
+ <v>Function = atom()</v>
+ <v>Args = [term()]</v>
+ </type>
+ <desc>
+ <p> Clears the lock counters and then setups the instrumentation to save all destroyed locks.
+ After setup the function is called, passing the elements in <c>Args</c> as arguments.
+ When the function returns the statistics are immediately collected to the server. After the
+ collection the instrumentation is returned to its previous behavior.
+ The result of the applied function is returned.
+ </p>
+ </desc>
+ </func>
+
+ <func>
+ <name>pid(Id, Serial) -> pid()</name>
+ <fsummary>Same as <c>pid(node(), Id, Serial)</c>.</fsummary>
+ <desc><p>Same as <c>pid(node(), Id, Serial)</c>.</p></desc>
+ </func>
+ <func>
+ <name>pid(Node, Id, Serial) -> pid()</name>
+ <fsummary>Creates a process id with creation 0.</fsummary>
+ <type>
+ <v>Node = node()</v>
+ <v>Id = integer()</v>
+ <v>Serial = integer()</v>
+ </type>
+ <desc>
+ <p>Creates a process id with creation 0. Example:</p>
+ </desc>
+ </func>
+
+ <func>
+ <name>port(Id) -> port()</name>
+ <fsummary>Same as <c>port(node(), Id)</c>.</fsummary>
+ <desc><p>Same as <c>port(node(), Id)</c>.</p></desc>
+ </func>
+ <func>
+ <name>port(Node, Id) -> port()</name>
+ <fsummary>Creates a port id with creation 0.</fsummary>
+ <type>
+ <v>Node = node()</v>
+ <v>Id = integer()</v>
+ </type>
+ <desc><p>Creates a port id with creation 0.</p></desc>
+ </func>
+
+ </funcs>
+
+ <section>
+ <title>Internal runtime lock counter controllers</title>
+ <p> The following functions control the behavior of the internal counters. </p>
+ </section>
+
+ <funcs>
+ <func>
+ <name>rt_collect() -> [lock_counter_data()]</name>
+ <fsummary>Same as <c>rt_collect(node())</c>.</fsummary>
+ <desc> <p>Same as <c>rt_collect(node())</c>.</p> </desc>
+ </func>
+ <func>
+ <name>rt_collect(Node) -> [lock_counter_data()]</name>
+ <fsummary>Returns a list of raw lock counter data.</fsummary>
+ <type>
+ <v>Node = node()</v>
+ </type>
+ <desc> <p>Returns a list of raw lock counter data.</p> </desc>
+ </func>
+
+ <func>
+ <name>rt_clear() -> ok</name>
+ <fsummary>Same as <c>rt_clear(node())</c>.</fsummary>
+ <desc> <p>Same as <c>rt_clear(node())</c>.</p> </desc>
+ </func>
+ <func>
+ <name>rt_clear(Node) -> ok</name>
+ <fsummary>Clears the internal counters.</fsummary>
+ <type>
+ <v>Node = node()</v>
+ </type>
+ <desc> <p>Clear the internal counters. Same as <c>lcnt:clear(Node)</c>.</p></desc>
+ </func>
+
+ <func>
+ <name>rt_opt({Type, bool()}) -> bool()</name>
+ <fsummary>Same as <c>rt_opt(node(), {Type, Opt})</c>.</fsummary>
+ <desc> <p>Same as <c>rt_opt(node(), {Type, Opt})</c>.</p> </desc>
+ </func>
+ <func>
+ <name>rt_opt(Node, {Type, bool()}) -> bool()</name>
+ <fsummary>Changes the lock counter behavior and returns the previous behaviour.</fsummary>
+ <type>
+ <v>Node = node()</v>
+ <v>Type = copy_save | process_locks</v>
+ </type>
+ <desc>
+ <p>Changes the lock counter behavior and returns the previous behaviour.</p>
+ <p>Option description:</p>
+ <taglist>
+ <tag><c>{copy_save, bool()}</c></tag>
+ <item>Enable statistics saving from destroyed locks by copying. This might consume a lot of memory.
+ <br/>Default: <c>false</c>
+ </item>
+
+ <tag><c>{process_locks, bool()}</c></tag>
+ <item>Profile process locks.
+ <br/>Default: <c>true</c>
+ </item>
+ </taglist>
+ </desc>
+ </func>
+ </funcs>
+
+ <section>
+ <title>See Also</title>
+ <p> <seealso marker="lcnt_chapter">LCNT User's Guide</seealso></p>
+ </section>
+</erlref>
diff --git a/lib/tools/doc/src/lcnt_chapter.xml b/lib/tools/doc/src/lcnt_chapter.xml
new file mode 100644
index 0000000000..8f44b23f59
--- /dev/null
+++ b/lib/tools/doc/src/lcnt_chapter.xml
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2009</year><year>2010</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>lcnt - The Lock Profiler</title>
+ <prepared>Björn-Egil Dahlberg</prepared>
+ <responsible>nobody</responsible>
+ <docno></docno>
+ <approved>nobody</approved>
+ <checked>no</checked>
+ <date>2009-11-26</date>
+ <rev>PA1</rev>
+ <file>lcnt_chapter.xml</file>
+ </header>
+ <p>
+ Internally in the Erlang runtime system locks are used to protect resources from being updated from multiple threads in a fatal way. Locks are necessary
+ to ensure that the runtime system works properly but it also introduces a couple of limitations. Lock contention and locking overhead.
+ </p>
+ <p>
+ With lock contention we mean when one thread locks a resource and another thread, or threads, tries to acquire the same resource at the same time. The lock will deny
+ the other thread access to the resource and the thread will be blocked from continuing its execution. The second thread has to wait until the first thread has
+ completed its access to the resource and unlocked it. The <c>lcnt</c> tool measures these lock conflicts.
+ </p>
+ <p>
+ Locks has an inherent cost in execution time and memory space. It takes time initialize, destroy, aquiring or releasing locks. To decrease lock contention it
+ some times necessary to use finer grained locking strategies. This will usually also increase the locking overhead and hence there is a tradeoff
+ between lock contention and overhead. In general, lock contention increases with the number of threads running concurrently. The <c>lcnt</c> tool does not measure locking overhead.
+ </p>
+ <section>
+ <title> Enabling lock-counting </title>
+ <p>For investigation of locks in the emulator we use an internal tool called <c>lcnt</c> (short for lock-count). The VM needs to be compiled with this option enabled. To enable this, use:</p>
+
+ <pre>
+cd $ERL_TOP
+./configure --enable-lock-counter
+ </pre>
+
+ <p>
+ Another way to enable this alongside a normal VM is to compile it at emulator directory level, much like a debug build. To compile it this way do the following,
+ </p>
+ <pre>
+cd $ERL_TOP/erts/emulator
+make lcnt FLAVOR=smp
+ </pre>
+ <p> and then starting Erlang with,</p>
+ <pre>
+$ERL_TOP/bin/cerl -lcnt
+ </pre>
+ <p>To verify that you lock-counting enabled check that <c>[lock-counting]</c> appears in the status text when the VM is started.</p>
+ <pre>
+Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:8:8] [rq:8] [async-threads:0] [hipe]
+ [kernel-poll:false] [lock-counting]
+ </pre>
+ </section>
+ <section>
+ <title>Getting started</title>
+ <p>Once you have a lock counting enabled VM the module <c>lcnt</c> can be used. The module is intended to be used from the current running nodes shell. To access remote nodes use <c>lcnt:clear(Node)</c> and <c>lcnt:collect(Node)</c>. </p>
+
+ <p>All locks are continuously monitored and its statistics updated. Use <c>lcnt:clear/0</c> to initially clear all counters before running any specific tests. This command will also reset the duration timer internally.</p>
+ <p>To retrieve lock statistics information use, <c>lcnt:collect/0,1</c>. The collect operation will start a <c>lcnt</c> server if it not already started. All collected data will be built into an erlang term and uploaded to the server and a duration time will also be uploaded. This duration is the time between <c>lcnt:clear/0,1</c> and <c>lcnt:collect/0,1</c>.</p>
+
+ <p>Once the data is collected to the server it can be filtered, sorted and printed in many different ways.</p>
+ <p>See the <seealso marker="lcnt">reference manual</seealso> for a description of each function.</p>
+ </section>
+ <section>
+ <title> Example of usage </title>
+ <p>From the Erlang shell:</p>
+ <pre>
+Erlang R13B03 (erts-5.7.4) [source] [smp:8:8] [rq:8] [async-threads:0] [hipe]
+ [kernel-poll:false] [lock-counting]
+1> lcnt:rt_opt({copy_save, true}).
+false
+2> lcnt:clear(), big:bang(1000), lcnt:collect().
+ok
+3> lcnt:conflicts().
+ lock id #tries #collisions collisions [%] time [us] duration [%]
+ ----- --- ------- ------------ --------------- ---------- -------------
+ alcu_allocator 50 4113692 158921 3.8632 215464 4.4962
+ pix_lock 256 4007140 4882 0.1218 12221 0.2550
+ run_queue 8 2287246 6949 0.3038 9825 0.2050
+ proc_main 1029 3115778 25755 0.8266 1199 0.0250
+ proc_msgq 1029 2467022 1910 0.0774 1048 0.0219
+ proc_status 1029 5708439 2435 0.0427 706 0.0147
+ message_pre_alloc_lock 8 2008569 134 0.0067 90 0.0019
+ timeofday 1 54065 8 0.0148 22 0.0005
+ gc_info 1 7071 7 0.0990 5 0.0001
+ok
+</pre>
+<p>
+ Another way to to profile a specific function is to use <c>lcnt:apply/3</c> or <c>lcnt:apply/1</c> which does <c>lcnt:clear/0</c> before the function and <c>lcnt:collect/0</c> after its invocation.
+ It also sets <c>copy_save</c> to <c>true</c> for the duration of the function call
+</p>
+<pre>
+Erlang R13B03 (erts-5.7.4) [source] [smp:8:8] [rq:8] [async-threads:0] [hipe]
+ [kernel-poll:false] [lock-counting]
+1> lcnt:apply(fun() -> big:bang(1000) end).
+4384.338
+2> lcnt:conflicts().
+ lock id #tries #collisions collisions [%] time [us] duration [%]
+ ----- --- ------- ------------ --------------- ---------- -------------
+ alcu_allocator 50 4117913 183091 4.4462 234232 5.1490
+ run_queue 8 2050398 3801 0.1854 6700 0.1473
+ pix_lock 256 4007080 4943 0.1234 2847 0.0626
+ proc_main 1028 3000178 28247 0.9415 1022 0.0225
+ proc_msgq 1028 2293677 1352 0.0589 545 0.0120
+ proc_status 1028 5258029 1744 0.0332 442 0.0097
+ message_pre_alloc_lock 8 2009322 147 0.0073 82 0.0018
+ timeofday 1 48616 9 0.0185 13 0.0003
+ gc_info 1 7455 12 0.1610 9 0.0002
+ok
+</pre>
+<p> The process locks are sorted after its class like all other locks. It is convenient to look at specific processes and ports as classes. We can do this by swapping class and class identifiers with <c>lcnt:swap_pid_keys/0</c>. </p>
+<pre>
+3> lcnt:swap_pid_keys().
+ok
+4> lcnt:conflicts([{print, [name, tries, ratio, time]}]).
+ lock #tries collisions [%] time [us]
+ ----- ------- --------------- ----------
+ alcu_allocator 4117913 4.4462 234232
+ run_queue 2050398 0.1854 6700
+ pix_lock 4007080 0.1234 2847
+ message_pre_alloc_lock 2009322 0.0073 82
+ &lt;[email protected]&gt; 13493 1.4452 41
+ &lt;[email protected]&gt; 13504 1.1404 36
+ &lt;[email protected]&gt; 13181 1.6235 35
+ &lt;[email protected]&gt; 13534 0.8202 22
+ &lt;[email protected]&gt; 8744 5.8326 22
+ &lt;[email protected]&gt; 13335 1.1174 19
+ &lt;[email protected]&gt; 13452 1.3678 19
+ &lt;[email protected]&gt; 13497 1.8745 18
+ &lt;[email protected]&gt; 11009 2.5343 18
+ &lt;[email protected]&gt; 13131 1.2566 16
+ &lt;[email protected]&gt; 13216 1.7327 15
+ &lt;[email protected]&gt; 13156 1.1098 15
+ &lt;[email protected]&gt; 13420 0.7303 14
+ &lt;[email protected]&gt; 13141 1.6437 14
+ &lt;[email protected]&gt; 13346 1.2064 13
+ &lt;[email protected]&gt; 13076 1.1701 13
+ok
+</pre>
+ </section>
+ <section>
+ <title> Example with Mnesia Transaction Benchmark </title>
+ <p>From the Erlang shell:</p>
+<pre>
+Erlang R13B03 (erts-5.7.4) [source] [smp:8:8] [rq:8] [async-threads:0] [hipe]
+ [kernel-poll:false] [lock-counting]
+
+Eshell V5.7.4 (abort with ^G)
+1> Conf=[{db_nodes, [node()]}, {driver_nodes, [node()]}, {replica_nodes, [node()]},
+ {n_drivers_per_node, 10}, {n_branches, 1000}, {n_accounts_per_branch, 10},
+ {replica_type, ram_copies}, {stop_after, 60000}, {reuse_history_id, true}].
+[{db_nodes,[nonode@nohost]},
+ {driver_nodes,[nonode@nohost]},
+ {replica_nodes,[nonode@nohost]},
+ {n_drivers_per_node,10},
+ {n_branches,1000},
+ {n_accounts_per_branch,10},
+ {replica_type,ram_copies},
+ {stop_after,60000},
+ {reuse_history_id,true}]
+2> mnesia_tpcb:init([{use_running_mnesia, false}|Conf]).
+ignore
+</pre>
+<p>Initial configuring of the benchmark is done. It is time to profile the actual benchmark and Mnesia</p>
+<pre>
+3> lcnt:apply(fun() -> {ok,{time, Tps,_,_,_,_}} = mnesia_tpcb:run([{use_running_mnesia,
+ true}|Conf]), Tps/60 end).
+12037.483333333334
+ok
+4> lcnt:swap_pid_keys().
+ok
+</pre>
+<p>The <c>id</c> header represents the number of unique identifiers under a class when the option <c>{combine, true}</c> is used (which is on by default). It will otherwise show the specific identifier.
+The <c>db_tab</c> listing shows 722287 unique locks, it is one for each ets-table created and Mnesia creates one for each transaction.
+</p>
+<pre>
+5> lcnt:conflicts().
+ lock id #tries #collisions collisions [%] time [us] duration [%]
+ ----- --- ------- ------------ --------------- ---------- -------------
+ alcu_allocator 50 56355118 732662 1.3001 2934747 4.8862
+ db_tab 722287 94513441 63203 0.0669 1958797 3.2613
+ timeofday 1 2701048 175854 6.5106 1746079 2.9071
+ pix_lock 256 24306168 163214 0.6715 918309 1.5289
+ run_queue 8 11813811 152637 1.2920 357040 0.5945
+ message_pre_alloc_lock 8 17671449 57203 0.3237 263043 0.4380
+ mnesia_locker 4 17477633 1618548 9.2607 97092 0.1617
+ mnesia_tm 4 9891408 463788 4.6888 86353 0.1438
+ gc_info 1 823460 628 0.0763 24826 0.0413
+ meta_main_tab_slot 16 41393400 7193 0.0174 11393 0.0190
+ &lt;[email protected]&gt; 4 4331412 333 0.0077 7148 0.0119
+ timer_wheel 1 203185 30 0.0148 3108 0.0052
+ &lt;[email protected]&gt; 4 4291098 210 0.0049 885 0.0015
+ &lt;[email protected]&gt; 4 4294702 288 0.0067 442 0.0007
+ &lt;[email protected]&gt; 4 4346066 235 0.0054 390 0.0006
+ &lt;[email protected]&gt; 4 4348159 287 0.0066 379 0.0006
+ &lt;[email protected]&gt; 4 4279309 290 0.0068 325 0.0005
+ &lt;[email protected]&gt; 4 4292190 302 0.0070 315 0.0005
+ &lt;[email protected]&gt; 4 4208858 265 0.0063 276 0.0005
+ &lt;[email protected]&gt; 4 4377502 267 0.0061 276 0.0005
+ok
+</pre>
+<p>The listing shows <c>mnesia_locker</c>, a process, has highly contended locks.</p>
+<pre>
+6> lcnt:inspect(mnesia_locker).
+ lock id #tries #collisions collisions [%] time [us] duration [%]
+ ----- --- ------- ------------ --------------- ---------- -------------
+ mnesia_locker proc_msgq 5449930 59374 1.0894 69781 0.1162
+ mnesia_locker proc_main 4462782 1487374 33.3284 14398 0.0240
+ mnesia_locker proc_status 7564921 71800 0.9491 12913 0.0215
+ mnesia_locker proc_link 0 0 0.0000 0 0.0000
+ok
+</pre>
+<p>Listing without class combiner.</p>
+
+<pre>
+7> lcnt:conflicts([{combine, false}, {print, [name, id, tries, ratio, time]}]).
+ lock id #tries collisions [%] time [us]
+ ----- --- ------- --------------- ----------
+ db_tab mnesia_transient_decision 722250 3.9463 1856852
+ timeofday undefined 2701048 6.5106 1746079
+ alcu_allocator ets_alloc 7490696 2.2737 692655
+ alcu_allocator ets_alloc 7081771 2.3294 664522
+ alcu_allocator ets_alloc 7047750 2.2520 658495
+ alcu_allocator ets_alloc 5883537 2.3177 610869
+ pix_lock 58 11011355 1.1924 564808
+ pix_lock 60 4426484 0.7120 262490
+ alcu_allocator ets_alloc 1897004 2.4248 219543
+ message_pre_alloc_lock undefined 4211267 0.3242 128299
+ run_queue 3 2801555 1.3003 116792
+ run_queue 2 2799988 1.2700 100091
+ run_queue 1 2966183 1.2712 78834
+ mnesia_locker proc_msgq 5449930 1.0894 69781
+ message_pre_alloc_lock undefined 3495672 0.3262 65773
+ message_pre_alloc_lock undefined 4189752 0.3174 58607
+ mnesia_tm proc_msgq 2094144 1.7184 56361
+ run_queue 4 2343585 1.3115 44300
+ db_tab branch 1446529 0.5229 38244
+ gc_info undefined 823460 0.0763 24826
+ok
+</pre>
+<p>
+In this scenario the lock that protects ets-table <c>mnesia_transient_decision</c> has spent most of its waiting for. That is 1.8 seconds in a test that run for 60 seconds. The time is also spread on eight different scheduler threads.
+</p>
+<pre>
+8> lcnt:inspect(db_tab, [{print, [name, id, tries, colls, ratio, duration]}]).
+ lock id #tries #collisions collisions [%] duration [%]
+ ----- --- ------- ------------ --------------- -------------
+ db_tab mnesia_transient_decision 722250 28502 3.9463 3.0916
+ db_tab branch 1446529 7564 0.5229 0.0637
+ db_tab account 1464500 8203 0.5601 0.0357
+ db_tab teller 1464529 8110 0.5538 0.0291
+ db_tab history 722250 3767 0.5216 0.0232
+ db_tab mnesia_stats 750332 7057 0.9405 0.0180
+ db_tab mnesia_trans_store 61 0 0.0000 0.0000
+ db_tab mnesia_trans_store 61 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ db_tab mnesia_trans_store 53 0 0.0000 0.0000
+ok
+</pre>
+
+ </section>
+ <section>
+ <title> Deciphering the output </title>
+ <p> Typically high <c>time</c> values are bad and this is often the thing to look for. However, one should also look for high lock acquisition frequencies (#tries) since locks generate overhead and because high frequency could become problematic if they begin to have conflicts even if it is not shown in a particular test. </p>
+ </section>
+
+ <section>
+ <title>See Also</title>
+ <p> <seealso marker="lcnt">LCNT Reference Manual</seealso></p>
+ </section>
+</chapter>
diff --git a/lib/tools/doc/src/part.xml b/lib/tools/doc/src/part.xml
index 3e02086b80..bf9e1ebbec 100644
--- a/lib/tools/doc/src/part.xml
+++ b/lib/tools/doc/src/part.xml
@@ -4,7 +4,7 @@
<part xmlns:xi="http://www.w3.org/2001/XInclude">
<header>
<copyright>
- <year>1996</year><year>2009</year>
+ <year>1996</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Tools User's Guide</title>
@@ -55,6 +55,8 @@
<tag><em>instrument</em></tag>
<item>Utility functions for obtaining and analysing resource usage
in an instrumented Erlang runtime system.</item>
+ <tag><em>lcnt</em></tag>
+ <item>A lock profiling tool for the Erlang runtime system.</item>
<tag><em>make</em></tag>
<item>A make utility for Erlang similar to UNIX make.</item>
<tag><em>tags</em></tag>
@@ -69,6 +71,7 @@
<xi:include href="cprof_chapter.xml"/>
<xi:include href="erlang_mode_chapter.xml"/>
<xi:include href="fprof_chapter.xml"/>
+ <xi:include href="lcnt_chapter.xml"/>
<xi:include href="xref_chapter.xml"/>
</part>
diff --git a/lib/tools/doc/src/ref_man.xml b/lib/tools/doc/src/ref_man.xml
index aea74e3746..d4861af9f3 100644
--- a/lib/tools/doc/src/ref_man.xml
+++ b/lib/tools/doc/src/ref_man.xml
@@ -4,7 +4,7 @@
<application xmlns:xi="http://www.w3.org/2001/XInclude">
<header>
<copyright>
- <year>1996</year><year>2009</year>
+ <year>1996</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -13,12 +13,12 @@
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
-
+
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
-
+
</legalnotice>
<title>Tools Reference Manual</title>
@@ -51,9 +51,14 @@
Erlang programs. Uses trace to file to minimize runtime
performance impact, and displays time for calling and called
functions.</item>
+
<tag><em>instrument</em></tag>
<item>Utility functions for obtaining and analysing resource usage
in an instrumented Erlang runtime system.</item>
+
+ <tag><em>lcnt</em></tag>
+ <item>A lock profiling tool for the Erlang runtime system.</item>
+
<tag><em>make</em></tag>
<item>A make utility for Erlang similar to UNIX make.</item>
<tag><em>tags</em></tag>
@@ -70,6 +75,7 @@
<xi:include href="erlang_mode.xml"/>
<xi:include href="fprof.xml"/>
<xi:include href="instrument.xml"/>
+ <xi:include href="lcnt.xml"/>
<xi:include href="make.xml"/>
<xi:include href="tags.xml"/>
<xi:include href="xref.xml"/>
diff --git a/lib/tools/emacs/erlang.el b/lib/tools/emacs/erlang.el
index 0c3e235efa..da586ee09a 100644
--- a/lib/tools/emacs/erlang.el
+++ b/lib/tools/emacs/erlang.el
@@ -1,19 +1,19 @@
;; erlang.el --- Major modes for editing and running Erlang
;; %CopyrightBegin%
-;;
-;; Copyright Ericsson AB 1996-2009. All Rights Reserved.
-;;
+;;
+;; Copyright Ericsson AB 1996-2010. All Rights Reserved.
+;;
;; The contents of this file are subject to the Erlang Public License,
;; Version 1.1, (the "License"); you may not use this file except in
;; compliance with the License. You should have received a copy of the
;; Erlang Public License along with this software. If not, it can be
;; retrieved online at http://www.erlang.org/.
-;;
+;;
;; Software distributed under the License is distributed on an "AS IS"
;; basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
;; the License for the specific language governing rights and limitations
;; under the License.
-;;
+;;
;; %CopyrightEnd%
;;
;; Copyright (C) 2004 Free Software Foundation, Inc.
diff --git a/lib/tools/src/Makefile b/lib/tools/src/Makefile
index 81933cda14..360f4f8f29 100644
--- a/lib/tools/src/Makefile
+++ b/lib/tools/src/Makefile
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1996-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 1996-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
include $(ERL_TOP)/make/target.mk
@@ -34,11 +34,13 @@ RELSYSDIR = $(RELEASE_PATH)/lib/tools-$(VSN)
# Common Macros
# ----------------------------------------------------
-MODULES= cover \
+MODULES= \
+ cover \
cover_web \
eprof \
fprof \
cprof \
+ lcnt \
instrument \
make \
tags \
diff --git a/lib/tools/src/lcnt.erl b/lib/tools/src/lcnt.erl
new file mode 100644
index 0000000000..989a661b75
--- /dev/null
+++ b/lib/tools/src/lcnt.erl
@@ -0,0 +1,840 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+-module(lcnt).
+-behaviour(gen_server).
+-author("Björn-Egil Dahlberg").
+
+%% gen_server callbacks
+-export([
+ init/1,
+ handle_call/3,
+ handle_cast/2,
+ handle_info/2,
+ terminate/2,
+ code_change/3
+ ]).
+
+%% start/stop
+-export([
+ start/0,
+ stop/0
+ ]).
+
+%% erts_debug:lock_counters api
+-export([
+ rt_collect/0,
+ rt_collect/1,
+ rt_clear/0,
+ rt_clear/1,
+ rt_opt/1,
+ rt_opt/2
+ ]).
+
+
+%% gen_server call api
+-export([
+ raw/0,
+ collect/0,
+ collect/1,
+ clear/0,
+ clear/1,
+ conflicts/0,
+ conflicts/1,
+ locations/0,
+ locations/1,
+ inspect/1,
+ inspect/2,
+ information/0,
+ swap_pid_keys/0,
+ % set options
+ set/1,
+ set/2,
+
+ load/1,
+ save/1
+ ]).
+
+%% convenience
+-export([
+ apply/3,
+ apply/2,
+ apply/1,
+ all_conflicts/0,
+ all_conflicts/1,
+ pid/2, pid/3,
+ port/1, port/2
+ ]).
+
+-define(version, "1.0").
+
+-record(state, {
+ locks = [],
+ duration = 0
+ }).
+
+
+-record(stats, {
+ file,
+ line,
+ tries,
+ colls,
+ time, % us
+ nt % #timings collected
+ }).
+
+-record(lock, {
+ name,
+ id,
+ type,
+ stats = []
+ }).
+
+-record(print, {
+ name,
+ id,
+ type,
+ entry,
+ tries,
+ colls,
+ cr, % collision ratio
+ time,
+ dtr % time duration ratio
+ }).
+
+
+
+%% -------------------------------------------------------------------- %%
+%%
+%% start/stop/init
+%%
+%% -------------------------------------------------------------------- %%
+
+start() -> gen_server:start({local, ?MODULE}, ?MODULE, [], []).
+stop() -> gen_server:cast(?MODULE, stop).
+init([]) -> {ok, #state{ locks = [], duration = 0 } }.
+
+%% -------------------------------------------------------------------- %%
+%%
+%% API erts_debug:lock_counters
+%%
+%% -------------------------------------------------------------------- %%
+
+rt_collect() ->
+ erts_debug:lock_counters(info).
+
+rt_collect(Node) ->
+ rpc:call(Node, erts_debug, lock_counters, [info]).
+
+rt_clear() ->
+ erts_debug:lock_counters(clear).
+
+rt_clear(Node) ->
+ rpc:call(Node, erts_debug, lock_counters, [clear]).
+
+rt_opt({Type, Opt}) ->
+ erts_debug:lock_counters({Type, Opt}).
+
+rt_opt(Node, {Type, Opt}) ->
+ rpc:call(Node, erts_debug, lock_counters, [{Type, Opt}]).
+
+%% -------------------------------------------------------------------- %%
+%%
+%% API implementation
+%%
+%% -------------------------------------------------------------------- %%
+
+clear() -> rt_clear().
+clear(Node) -> rt_clear(Node).
+collect() -> call({collect, rt_collect()}).
+collect(Node) -> call({collect, rt_collect(Node)}).
+
+locations() -> call({locations,[]}).
+locations(Opts) -> call({locations, Opts}).
+conflicts() -> call({conflicts, []}).
+conflicts(Opts) -> call({conflicts, Opts}).
+inspect(Lock) -> call({inspect, Lock, []}).
+inspect(Lock, Opts) -> call({inspect, Lock, Opts}).
+information() -> call(information).
+swap_pid_keys() -> call(swap_pid_keys).
+raw() -> call(raw).
+set(Option, Value) -> call({set, Option, Value}).
+set({Option, Value}) -> call({set, Option, Value}).
+save(Filename) -> call({save, Filename}).
+load(Filename) -> start(), call({load, Filename}).
+
+call(Msg) -> gen_server:call(?MODULE, Msg, infinity).
+
+%% -------------------------------------------------------------------- %%
+%%
+%% convenience implementation
+%%
+%% -------------------------------------------------------------------- %%
+
+apply(M,F,As) when is_atom(M), is_atom(F), is_list(As) ->
+ lcnt:start(),
+ Opt = lcnt:rt_opt({copy_save, true}),
+ lcnt:clear(),
+ Res = erlang:apply(M,F,As),
+ lcnt:collect(),
+ lcnt:rt_opt({copy_save, Opt}),
+ Res.
+
+apply(Fun) when is_function(Fun) ->
+ lcnt:apply(Fun, []).
+
+apply(Fun, As) when is_function(Fun) ->
+ lcnt:start(),
+ Opt = lcnt:rt_opt({copy_save, true}),
+ lcnt:clear(),
+ Res = erlang:apply(Fun, As),
+ lcnt:collect(),
+ lcnt:rt_opt({copy_save, Opt}),
+ Res.
+
+all_conflicts() -> all_conflicts(time).
+all_conflicts(Sort) ->
+ conflicts([{max_locks, none}, {thresholds, []},{combine,false}, {sort, Sort}, {reverse, true}]).
+
+pid(Id, Serial) -> pid(node(), Id, Serial).
+pid(Node, Id, Serial) when is_atom(Node) ->
+ Header = <<131,103,100>>,
+ String = atom_to_list(Node),
+ L = length(String),
+ binary_to_term(list_to_binary([Header, bytes16(L), String, bytes32(Id), bytes32(Serial),0])).
+
+port(Id) -> port(node(), Id).
+port(Node, Id ) when is_atom(Node) ->
+ Header = <<131,102,100>>,
+ String = atom_to_list(Node),
+ L = length(String),
+ binary_to_term(list_to_binary([Header, bytes16(L), String, bytes32(Id), 0])).
+
+%% -------------------------------------------------------------------- %%
+%%
+%% handle_call
+%%
+%% -------------------------------------------------------------------- %%
+
+% printing
+
+handle_call({conflicts, InOpts}, _From, #state{ locks = Locks } = State) when is_list(InOpts) ->
+ Default = [
+ {sort, time},
+ {reverse, false},
+ {print, [name,id,tries,colls,ratio,time,duration]},
+ {max_locks, 20},
+ {combine, true},
+ {thresholds, [{tries, 0}, {colls, 0}, {time, 0}] },
+ {locations, false}],
+
+ Opts = options(InOpts, Default),
+ Flocks = filter_locks_type(Locks, proplists:get_value(type, Opts)),
+ Combos = combine_classes(Flocks, proplists:get_value(combine, Opts)),
+ Printables = locks2print(Combos, State#state.duration),
+ Filtered = filter_print(Printables, Opts),
+
+ print_lock_information(Filtered, proplists:get_value(print, Opts)),
+
+ {reply, ok, State};
+
+handle_call(information, _From, State) ->
+ print_state_information(State),
+ {reply, ok, State};
+
+handle_call({locations, InOpts}, _From, #state{ locks = Locks } = State) when is_list(InOpts) ->
+ Default = [
+ {sort, time},
+ {reverse, false},
+ {print, [name,entry,tries,colls,ratio,time,duration]},
+ {max_locks, 20},
+ {combine, true},
+ {thresholds, [{tries, 0}, {colls, 0}, {time, 0}] },
+ {locations, true}],
+
+ Opts = options(InOpts, Default),
+ Printables = filter_print([#print{
+ name = string_names(Names),
+ entry = term2string("~p:~p", [Stats#stats.file, Stats#stats.line]),
+ colls = Stats#stats.colls,
+ tries = Stats#stats.tries,
+ cr = percent(Stats#stats.colls, Stats#stats.tries),
+ time = Stats#stats.time,
+ dtr = percent(Stats#stats.time, State#state.duration)
+ } || {Stats, Names} <- combine_locations(Locks) ], Opts),
+
+ print_lock_information(Printables, proplists:get_value(print, Opts)),
+
+ {reply, ok, State};
+
+handle_call({inspect, Lockname, InOpts}, _From, #state{ duration = Duration, locks = Locks } = State) when is_list(InOpts) ->
+ Default = [
+ {sort, time},
+ {reverse, false},
+ {print, [name,id,tries,colls,ratio,time,duration]},
+ {max_locks, 20},
+ {combine, false},
+ {thresholds, [] },
+ {locations, false}],
+
+ Opts = options(InOpts, Default),
+ Filtered = filter_locks(Locks, Lockname),
+ IDs = case {proplists:get_value(full_id, Opts), proplists:get_value(combine, Opts)} of
+ {true, true} -> locks_ids(Filtered);
+ _ -> []
+ end,
+ Combos = combine_classes(Filtered, proplists:get_value(combine, Opts)),
+ case proplists:get_value(locations, Opts) of
+ true ->
+ lists:foreach(fun
+ (#lock{ name = Name, id = Id, type = Type, stats = Stats }) ->
+ IdString = case proplists:get_value(full_id, Opts) of
+ true -> term2string(proplists:get_value(Name, IDs, Id));
+ _ -> term2string(Id)
+ end,
+ Combined = [CStats || {CStats,_} <- combine_locations(Stats)],
+ case Combined of
+ [] ->
+ ok;
+ _ ->
+ %io:format("Combined ~p~n", [Combined]),
+ print("lock: " ++ term2string(Name)),
+ print("id: " ++ IdString),
+ print("type: " ++ term2string(Type)),
+ Ps = stats2print(Combined, Duration),
+ Opts1 = options([{print, [entry, tries,colls,ratio,time,duration]},
+ {thresholds, [{tries, -1}, {colls, -1}, {time, -1}]}], Opts),
+ print_lock_information(filter_print(Ps, Opts1), proplists:get_value(print, Opts1))
+ end
+ % (#lock{ name = Name, id = Id}) ->
+ % io:format("Empty lock ~p ~p~n", [Name, Id])
+ end, Combos);
+ _ ->
+ Print1 = locks2print(Combos, Duration),
+ Print2 = filter_print(Print1, Opts),
+ print_lock_information(Print2, proplists:get_value(print, Opts))
+ end,
+ {reply, ok, State};
+
+handle_call(raw, _From, #state{ locks = Locks} = State)->
+ {reply, Locks, State};
+
+% collecting
+handle_call({collect, Data}, _From, State)->
+ {reply, ok, data2state(Data, State)};
+
+% manipulate
+handle_call(swap_pid_keys, _From, #state{ locks = Locks } = State)->
+ SwappedLocks = lists:map(fun
+ (L) when L#lock.name =:= port_lock; L#lock.type =:= proclock ->
+ L#lock{ id = L#lock.name, name = L#lock.id };
+ (L) ->
+ L
+ end, Locks),
+
+ {reply, ok, State#state{ locks = SwappedLocks}};
+
+% settings
+handle_call({set, data, Data}, _From, State)->
+ {reply, ok, data2state(Data, State)};
+
+handle_call({set, duration, Duration}, _From, State)->
+ {reply, ok, State#state{ duration = Duration}};
+
+% file operations
+handle_call({load, Filename}, _From, State) ->
+ case file:read_file(Filename) of
+ {ok, Binary} ->
+ case binary_to_term(Binary) of
+ {?version, Statelist} ->
+ {reply, ok, list2state(Statelist)};
+ {Version, _} ->
+ {reply, {error, {mismatch, Version, ?version}}, State}
+ end;
+ Error ->
+ {reply, {error, Error}, State}
+ end;
+
+handle_call({save, Filename}, _From, State) ->
+ Binary = term_to_binary({?version, state2list(State)}),
+ case file:write_file(Filename, Binary) of
+ ok ->
+ {reply, ok, State};
+ Error ->
+ {reply, {error, Error}, State}
+ end;
+
+
+handle_call(Command, _From, State) ->
+ {reply, {error, {undefined, Command}}, State}.
+
+%% -------------------------------------------------------------------- %%
+%%
+%% handle_cast
+%%
+%% -------------------------------------------------------------------- %%
+
+handle_cast(stop, State) ->
+ {stop, normal, State};
+handle_cast(_, State) ->
+ {noreply, State}.
+
+%% -------------------------------------------------------------------- %%
+%%
+%% handle_info
+%%
+%% -------------------------------------------------------------------- %%
+
+handle_info(_Info, State) ->
+ {noreply, State}.
+
+%% -------------------------------------------------------------------- %%
+%%
+%% termination
+%%
+%% -------------------------------------------------------------------- %%
+
+terminate(_Reason, _State) ->
+ ok.
+
+%% -------------------------------------------------------------------- %%
+%%
+%% code_change
+%%
+%% -------------------------------------------------------------------- %%
+
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+%% -------------------------------------------------------------------- %%
+%%
+%% AUX
+%%
+%% -------------------------------------------------------------------- %%
+
+% summate
+
+summate_locks(Locks) -> summate_locks(Locks, #stats{ tries = 0, colls = 0, time = 0, nt = 0}).
+summate_locks([], Stats) -> Stats;
+summate_locks([L|Ls], #stats{ tries = Tries, colls = Colls, time = Time, nt = Nt}) ->
+ S = summate_stats(L#lock.stats),
+ summate_locks(Ls, #stats{ tries = Tries + S#stats.tries, colls = Colls + S#stats.colls, time = Time + S#stats.time, nt = Nt + S#stats.nt}).
+
+summate_stats(Stats) -> summate_stats(Stats, #stats{ tries = 0, colls = 0, time = 0, nt = 0}).
+summate_stats([], Stats) -> Stats;
+summate_stats([S|Ss], #stats{ tries = Tries, colls = Colls, time = Time, nt = Nt}) ->
+ summate_stats(Ss, #stats{ tries = Tries + S#stats.tries, colls = Colls + S#stats.colls, time = Time + S#stats.time, nt = Nt + S#stats.nt}).
+
+
+%% manipulators
+filter_locks_type(Locks, undefined) -> Locks;
+filter_locks_type(Locks, all) -> Locks;
+filter_locks_type(Locks, Types) when is_list(Types) ->
+ [ L || L <- Locks, lists:member(L#lock.type, Types)];
+filter_locks_type(Locks, Type) ->
+ [ L || L <- Locks, L#lock.type =:= Type].
+
+filter_locks(Locks, {Lockname, Ids}) when is_list(Ids) ->
+ [ L || L <- Locks, L#lock.name =:= Lockname, lists:member(L#lock.id, Ids)];
+filter_locks(Locks, {Lockname, Id}) ->
+ [ L || L <- Locks, L#lock.name =:= Lockname, L#lock.id =:= Id ];
+filter_locks(Locks, Lockname) ->
+ [ L || L <- Locks, L#lock.name =:= Lockname ].
+% order of processing
+% 2. cut thresholds
+% 3. sort locks
+% 4. max length of locks
+
+filter_print(PLs, Opts) ->
+ TLs = threshold_locks(PLs, proplists:get_value(thresholds, Opts, [])),
+ SLs = sort_locks(TLs, proplists:get_value(sort, Opts, time)),
+ CLs = cut_locks(SLs, proplists:get_value(max_locks, Opts, none)),
+ reverse_locks(CLs, proplists:get_value(reverse, Opts, false)).
+
+sort_locks(Locks, Type) -> lists:reverse(sort_locks0(Locks, Type)).
+sort_locks0(Locks, name) -> lists:keysort(#print.name, Locks);
+sort_locks0(Locks, id) -> lists:keysort(#print.id, Locks);
+sort_locks0(Locks, type) -> lists:keysort(#print.type, Locks);
+sort_locks0(Locks, tries) -> lists:keysort(#print.tries, Locks);
+sort_locks0(Locks, colls) -> lists:keysort(#print.colls, Locks);
+sort_locks0(Locks, ratio) -> lists:keysort(#print.cr, Locks);
+sort_locks0(Locks, time) -> lists:keysort(#print.time, Locks);
+sort_locks0(Locks, _) -> sort_locks0(Locks, time).
+
+% cut locks not above certain thresholds
+threshold_locks(Locks, Thresholds) ->
+ Tries = proplists:get_value(tries, Thresholds, -1),
+ Colls = proplists:get_value(colls, Thresholds, -1),
+ Time = proplists:get_value(time, Thresholds, -1),
+ [ L || L <- Locks, L#print.tries > Tries, L#print.colls > Colls, L#print.time > Time].
+
+cut_locks(Locks, N) when is_integer(N), N > 0 -> lists:sublist(Locks, N);
+cut_locks(Locks, _) -> Locks.
+
+%% reversal
+reverse_locks(Locks, true) -> lists:reverse(Locks);
+reverse_locks(Locks, _) -> Locks.
+
+
+%%
+string_names([]) -> "";
+string_names(Names) -> string_names(Names, []).
+string_names([Name], Strings) -> strings(lists:reverse([term2string(Name) | Strings]));
+string_names([Name|Names],Strings) -> string_names(Names, [term2string(Name) ++ ","|Strings]).
+
+%% combine_locations
+%% In:
+%% Locations :: [#lock{}] | [#stats{}]
+%% Out:
+%% [{{File,Line}, #stats{}, [Lockname]}]
+
+
+combine_locations(Locations) -> gb_trees:values(combine_locations(Locations, gb_trees:empty())).
+combine_locations([], Tree) -> Tree;
+combine_locations([S|_] = Stats, Tree) when is_record(S, stats) ->
+ combine_locations(Stats, undefined, Tree);
+combine_locations([#lock{ stats = Stats, name = Name}|Ls], Tree) ->
+ combine_locations(Ls, combine_locations(Stats, Name, Tree)).
+
+combine_locations([], _, Tree) -> Tree;
+combine_locations([S|Ss], Name, Tree) when is_record(S, stats)->
+ Key = {S#stats.file, S#stats.line},
+ Tree1 = case gb_trees:lookup(Key, Tree) of
+ none ->
+ gb_trees:insert(Key, {S, [Name]}, Tree);
+ {value, {C, Names}} ->
+ NewNames = case lists:member(Name, Names) of
+ true -> Names;
+ _ -> [Name | Names]
+ end,
+ gb_trees:update(Key, {
+ C#stats{
+ tries = C#stats.tries + S#stats.tries,
+ colls = C#stats.colls + S#stats.colls,
+ time = C#stats.time + S#stats.time,
+ nt = C#stats.nt + S#stats.nt
+ }, NewNames}, Tree)
+ end,
+ combine_locations(Ss, Name, Tree1).
+
+%% combines all statistics for a class (name) lock
+%% id's are translated to #id's.
+
+combine_classes(Locks, true) -> combine_classes1(Locks, gb_trees:empty());
+combine_classes(Locks, _) -> Locks.
+
+combine_classes1([], Tree) -> gb_trees:values(Tree);
+combine_classes1([L|Ls], Tree) ->
+ Key = L#lock.name,
+ case gb_trees:lookup(Key, Tree) of
+ none ->
+ combine_classes1(Ls, gb_trees:insert(Key, L#lock{ id = 1 }, Tree));
+ {value, C} ->
+ combine_classes1(Ls, gb_trees:update(Key, C#lock{
+ id = C#lock.id + 1,
+ stats = L#lock.stats ++ C#lock.stats
+ }, Tree))
+ end.
+
+locks_ids(Locks) -> locks_ids(Locks, []).
+locks_ids([], Out) -> Out;
+locks_ids([#lock{ name = Key } = L|Ls], Out) ->
+ case proplists:get_value(Key, Out) of
+ undefined ->
+ locks_ids(Ls, [{Key, [L#lock.id] } | Out]);
+ Ids ->
+ locks_ids(Ls, [{Key, [L#lock.id | Ids] } | proplists:delete(Key,Out)])
+ end.
+
+stats2print(Stats, Duration) ->
+ lists:map(fun
+ (S) ->
+ #print{
+ entry = term2string("~p:~p", [S#stats.file, S#stats.line]),
+ colls = S#stats.colls,
+ tries = S#stats.tries,
+ cr = percent(S#stats.colls, S#stats.tries),
+ time = S#stats.time,
+ dtr = percent(S#stats.time, Duration)
+ }
+ end, Stats).
+
+locks2print(Locks, Duration) ->
+ lists:map( fun
+ (L) ->
+ Tries = lists:sum([T || #stats{ tries = T} <- L#lock.stats]),
+ Colls = lists:sum([C || #stats{ colls = C} <- L#lock.stats]),
+ Time = lists:sum([T || #stats{ time = T} <- L#lock.stats]),
+ Cr = percent(Colls, Tries),
+ Dtr = percent(Time, Duration),
+ #print{
+ name = L#lock.name,
+ id = L#lock.id,
+ type = L#lock.type,
+ tries = Tries,
+ colls = Colls,
+ cr = Cr,
+ time = Time,
+ dtr = Dtr
+ }
+ end, Locks).
+
+%% state making
+
+data2state(Data, State) ->
+ Duration = time2us(proplists:get_value(duration, Data)),
+ Rawlocks = proplists:get_value(locks, Data),
+ Locks = locks2records(Rawlocks),
+ State#state{
+ duration = Duration,
+ locks = Locks
+ }.
+
+locks2records(Locks) -> locks2records(Locks, []).
+locks2records([], Out) -> Out;
+locks2records([{Name, Id, Type, Stats}|Locks], Out) ->
+ Lock = #lock{
+ name = Name,
+ id = clean_id_creation(Id),
+ type = Type,
+ stats = [ #stats{
+ file = File,
+ line = Line,
+ tries = Tries,
+ colls = Colls,
+ time = time2us({S, Ns}),
+ nt = N
+ } || {{File, Line}, {Tries, Colls, {S, Ns, N}}} <- Stats] },
+ locks2records(Locks, [Lock|Out]).
+
+clean_id_creation(Id) when is_pid(Id) ->
+ Bin = term_to_binary(Id),
+ <<H:3/binary, L:16, Node:L/binary, Ids:8/binary, _Creation/binary>> = Bin,
+ Bin2 = list_to_binary([H, bytes16(L), Node, Ids, 0]),
+ binary_to_term(Bin2);
+clean_id_creation(Id) when is_port(Id) ->
+ Bin = term_to_binary(Id),
+ <<H:3/binary, L:16, Node:L/binary, Ids:4/binary, _Creation/binary>> = Bin,
+ Bin2 = list_to_binary([H, bytes16(L), Node, Ids, 0]),
+ binary_to_term(Bin2);
+clean_id_creation(Id) ->
+ Id.
+
+%% serializer
+
+state_default(Field) -> proplists:get_value(Field, state2list(#state{})).
+
+state2list(State) ->
+ [_|Values] = tuple_to_list(State),
+ lists:zipwith(fun
+ (locks, Locks) -> {locks, [lock2list(Lock) || Lock <- Locks]};
+ (X, Y) -> {X,Y}
+ end, record_info(fields, state), Values).
+
+list2state(List) -> list2state(record_info(fields, state), List, [state]).
+list2state([], _, Out) -> list_to_tuple(lists:reverse(Out));
+list2state([locks|Fs], List, Out) ->
+ Locks = [ list2lock(Lock) || Lock <- proplists:get_value(locks, List, [])],
+ list2state(Fs, List, [Locks|Out]);
+list2state([F|Fs], List, Out) -> list2state(Fs, List, [proplists:get_value(F, List, state_default(F))|Out]).
+
+lock_default(Field) -> proplists:get_value(Field, lock2list(#lock{})).
+
+lock2list(Lock) ->
+ [_|Values] = tuple_to_list(Lock),
+ lists:zip(record_info(fields, lock), Values).
+
+list2lock(List) -> list2lock(record_info(fields, lock), List, [lock]).
+list2lock([], _, Out) -> list_to_tuple(lists:reverse(Out));
+list2lock([F|Fs], List, Out) -> list2lock(Fs, List, [proplists:get_value(F, List, lock_default(F))|Out]).
+
+%% printing
+
+%% print_lock_information
+%% In:
+%% Locks :: [#lock{}]
+%% Print :: [Type | {Type, integer()}]
+%%
+%% Out:
+%% ok
+
+auto_print_width(Locks, Print) ->
+ % iterate all lock entries to save all max length values
+ % these are records, so we do a little tuple <-> list smashing
+ R = lists:foldl(fun
+ (L, Max) ->
+ list_to_tuple(lists:reverse(lists:foldl(fun
+ ({print,print}, Out) -> [print|Out];
+ ({Str, Len}, Out) -> [erlang:min(erlang:max(length(s(Str))+1,Len),80)|Out]
+ end, [], lists:zip(tuple_to_list(L), tuple_to_list(Max)))))
+ end, #print{ id = 4, type = 5, entry = 5, name = 6, tries = 8, colls = 13, cr = 16, time = 11, dtr = 14 },
+ Locks),
+ % Setup the offsets for later pruning
+ Offsets = [
+ {id, R#print.id},
+ {name, R#print.name},
+ {type, R#print.type},
+ {entry, R#print.entry},
+ {tries, R#print.tries},
+ {colls, R#print.colls},
+ {ratio, R#print.cr},
+ {time, R#print.time},
+ {duration, R#print.dtr}],
+ % Prune offsets to only allow specified print options
+ lists:foldr(fun
+ ({Type, W}, Out) -> [{Type, W}|Out];
+ (Type, Out) -> [proplists:lookup(Type, Offsets)|Out]
+ end, [], Print).
+
+print_lock_information(Locks, Print) ->
+ % remake Print to autosize entries
+ AutoPrint = auto_print_width(Locks, Print),
+
+ print_header(AutoPrint),
+
+ lists:foreach(fun
+ (L) ->
+ print_lock(L, AutoPrint)
+ end, Locks),
+ ok.
+
+print_header(Opts) ->
+ Header = #print{
+ name = "lock",
+ id = "id",
+ type = "type",
+ entry = "location",
+ tries = "#tries",
+ colls = "#collisions",
+ cr = "collisions [%]",
+ time = "time [us]",
+ dtr = "duration [%]"
+ },
+ Divider = #print{
+ name = lists:duplicate(1 + length(Header#print.name), 45),
+ id = lists:duplicate(1 + length(Header#print.id), 45),
+ type = lists:duplicate(1 + length(Header#print.type), 45),
+ entry = lists:duplicate(1 + length(Header#print.entry), 45),
+ tries = lists:duplicate(1 + length(Header#print.tries), 45),
+ colls = lists:duplicate(1 + length(Header#print.colls), 45),
+ cr = lists:duplicate(1 + length(Header#print.cr), 45),
+ time = lists:duplicate(1 + length(Header#print.time), 45),
+ dtr = lists:duplicate(1 + length(Header#print.dtr), 45)
+ },
+ print_lock(Header, Opts),
+ print_lock(Divider, Opts),
+ ok.
+
+
+print_lock(L, Opts) -> print_lock(L, Opts, []).
+print_lock(_, [], Formats) -> print(strings(lists:reverse(Formats)));
+print_lock(L, [Opt|Opts], Formats) ->
+ case Opt of
+ id -> print_lock(L, Opts, [{space, 25, s(L#print.id) } | Formats]);
+ {id, W} -> print_lock(L, Opts, [{space, W, s(L#print.id) } | Formats]);
+ type -> print_lock(L, Opts, [{space, 18, s(L#print.type) } | Formats]);
+ {type, W} -> print_lock(L, Opts, [{space, W, s(L#print.type) } | Formats]);
+ entry -> print_lock(L, Opts, [{space, 30, s(L#print.entry)} | Formats]);
+ {entry, W} -> print_lock(L, Opts, [{space, W, s(L#print.entry)} | Formats]);
+ name -> print_lock(L, Opts, [{space, 22, s(L#print.name) } | Formats]);
+ {name, W} -> print_lock(L, Opts, [{space, W, s(L#print.name) } | Formats]);
+ tries -> print_lock(L, Opts, [{space, 12, s(L#print.tries)} | Formats]);
+ {tries, W} -> print_lock(L, Opts, [{space, W, s(L#print.tries)} | Formats]);
+ colls -> print_lock(L, Opts, [{space, 14, s(L#print.colls)} | Formats]);
+ {colls, W} -> print_lock(L, Opts, [{space, W, s(L#print.colls)} | Formats]);
+ ratio -> print_lock(L, Opts, [{space, 20, s(L#print.cr) } | Formats]);
+ {ratio, W} -> print_lock(L, Opts, [{space, W, s(L#print.cr) } | Formats]);
+ time -> print_lock(L, Opts, [{space, 15, s(L#print.time) } | Formats]);
+ {time, W} -> print_lock(L, Opts, [{space, W, s(L#print.time) } | Formats]);
+ duration -> print_lock(L, Opts, [{space, 20, s(L#print.dtr) } | Formats]);
+ {duration, W} -> print_lock(L, Opts, [{space, W, s(L#print.dtr) } | Formats]);
+ _ -> print_lock(L, Opts, Formats)
+ end.
+
+print_state_information(#state{ locks = Locks} = State) ->
+ Stats = summate_locks(Locks),
+ print("information:"),
+ print(kv("#locks", s(length(Locks)))),
+ print(kv("duration", s(State#state.duration) ++ " us" ++ " (" ++ s(State#state.duration/1000000) ++ " s)")),
+ print("\nsummated stats:"),
+ print(kv("#tries", s(Stats#stats.tries))),
+ print(kv("#colls", s(Stats#stats.colls))),
+ print(kv("wait time", s(Stats#stats.time) ++ " us" ++ " ( " ++ s(Stats#stats.time/1000000) ++ " s)")),
+ print(kv("percent of duration", s(Stats#stats.time/State#state.duration*100) ++ " %")),
+ ok.
+
+%% AUX
+
+time2us({S, Ns}) -> round(S*1000000 + Ns/1000).
+
+percent(_,0) -> 0.0;
+percent(T,N) -> T/N*100.
+
+options(Opts, Default) when is_list(Default) ->
+ options1(proplists:unfold(Opts), Default).
+options1([], Defaults) -> Defaults;
+options1([{Key, Value}|Opts], Defaults) ->
+ case proplists:get_value(Key, Defaults) of
+ undefined -> options1(Opts, [{Key, Value} | Defaults]);
+ _ -> options1(Opts, [{Key, Value} | proplists:delete(Key, Defaults)])
+ end.
+
+%%% AUX STRING FORMATTING
+
+print(String) -> io:format("~s~n", [String]).
+
+kv(Key, Value) -> kv(Key, Value, 20).
+kv(Key, Value, Offset) -> term2string(term2string("~~~ps : ~~s", [Offset]),[Key, Value]).
+
+s(T) when is_float(T) -> term2string("~.4f", [T]);
+s(T) when is_list(T) -> term2string("~s", [T]);
+s(T) -> term2string(T).
+
+strings(Strings) -> strings(Strings, []).
+strings([], Out) -> Out;
+strings([{space, N, S} | Ss], Out) -> strings(Ss, Out ++ term2string(term2string("~~~ps", [N]), [S]));
+strings([{format, Format, S} | Ss], Out) -> strings(Ss, Out ++ term2string(Format, [S]));
+strings([S|Ss], Out) -> strings(Ss, Out ++ term2string("~s", [S])).
+
+
+term2string({M,F,A}) when is_atom(M), is_atom(F), is_integer(A) -> term2string("~p:~p/~p", [M,F,A]);
+term2string(Term) when is_port(Term) ->
+ % ex #Port<6442.816>
+ <<_:3/binary, L:16, Node:L/binary, Ids:32, _/binary>> = term_to_binary(Term),
+ term2string("#Port<~s.~w>", [Node, Ids]);
+term2string(Term) when is_pid(Term) ->
+ % ex <0.80.0>
+ <<_:3/binary, L:16, Node:L/binary, Ids:32, Serial:32, _/binary>> = term_to_binary(Term),
+ term2string("<~s.~w.~w>", [Node, Ids, Serial]);
+term2string(Term) -> term2string("~w", [Term]).
+term2string(Format, Terms) -> lists:flatten(io_lib:format(Format, Terms)).
+
+%%% AUD id binary
+
+bytes16(Value) ->
+ B0 = Value band 255,
+ B1 = (Value bsr 8) band 255,
+ <<B1, B0>>.
+
+bytes32(Value) ->
+ B0 = Value band 255,
+ B1 = (Value bsr 8) band 255,
+ B2 = (Value bsr 16) band 255,
+ B3 = (Value bsr 24) band 255,
+ <<B3, B2, B1, B0>>.
diff --git a/lib/tools/src/xref_utils.erl b/lib/tools/src/xref_utils.erl
index aeb7bf9f1c..680b7e8aac 100644
--- a/lib/tools/src/xref_utils.erl
+++ b/lib/tools/src/xref_utils.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
-module(xref_utils).
@@ -453,7 +453,8 @@ find_beam(Module) when is_atom(Module) ->
non_existing ->
error({no_such_module, Module});
preloaded ->
- {_M, _Bin, File} = code:get_object_code(Module),
+ {Module, {_M, _Bin, File}} =
+ {Module, code:get_object_code(Module)},
{ok, File};
cover_compiled ->
error({cover_compiled, Module});
diff --git a/lib/tools/test/Makefile b/lib/tools/test/Makefile
index a846a3a6f4..3a59be758a 100644
--- a/lib/tools/test/Makefile
+++ b/lib/tools/test/Makefile
@@ -26,6 +26,7 @@ MODULES = \
fprof_SUITE \
cprof_SUITE \
instrument_SUITE \
+ lcnt_SUITE \
make_SUITE \
tools_SUITE \
xref_SUITE \
@@ -49,7 +50,8 @@ RELSYSDIR = $(RELEASE_PATH)/tools_test
# FLAGS
# ----------------------------------------------------
ERL_MAKE_FLAGS +=
-ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/test_server/include
+ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/test_server/include \
+ -I$(ERL_TOP)/lib/percept/include
EBIN = .
@@ -68,10 +70,11 @@ tests debug opt: make_emakefile
clean:
rm -f $(EMAKEFILE)
rm -f $(TARGET_FILES)
- rm -f core
+ rm -f core *~
docs:
+
# ----------------------------------------------------
# Release Target
# ----------------------------------------------------
diff --git a/lib/tools/test/lcnt_SUITE.erl b/lib/tools/test/lcnt_SUITE.erl
new file mode 100644
index 0000000000..e6866f721d
--- /dev/null
+++ b/lib/tools/test/lcnt_SUITE.erl
@@ -0,0 +1,154 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+-module(lcnt_SUITE).
+-include("test_server.hrl").
+
+%% Test server specific exports
+-export([all/1]).
+-export([init_per_suite/1, end_per_suite/1]).
+-export([init_per_testcase/2, end_per_testcase/2]).
+
+%% Test cases
+-export([
+ load_v1/1,
+ conflicts/1,
+ locations/1,
+ swap_keys/1
+ ]).
+
+%% Default timetrap timeout (set in init_per_testcase)
+-define(default_timeout, ?t:minutes(2)).
+
+init_per_suite(Config) when is_list(Config) ->
+ Config.
+
+end_per_suite(Config) when is_list(Config) ->
+ Config.
+
+init_per_testcase(_Case, Config) ->
+ Dog = ?t:timetrap(?default_timeout),
+ [{watchdog,Dog} | Config].
+
+end_per_testcase(_Case, Config) ->
+ Dog = ?config(watchdog, Config),
+ ?t:timetrap_cancel(Dog),
+ ok.
+
+all(suite) ->
+ % Test cases
+ [load_v1, conflicts, locations, swap_keys].
+
+%%----------------------------------------------------------------------
+%% Tests
+%%----------------------------------------------------------------------
+
+load_v1(suite) ->
+ [];
+load_v1(doc) ->
+ ["Load data from file."];
+load_v1(Config) when is_list(Config) ->
+ ?line {ok, _} = lcnt:start(),
+ ?line Path = ?config(data_dir, Config),
+ ?line File = filename:join([Path,"big_bang_40.lcnt"]),
+ ?line ok = lcnt:load(File),
+ ?line ok = lcnt:stop(),
+ ok.
+
+conflicts(suite) ->
+ [];
+conflicts(doc) ->
+ ["API: conflicts"];
+conflicts(Config) when is_list(Config) ->
+ ?line {ok, _} = lcnt:start(),
+ ?line Path = ?config(data_dir, Config),
+ ?line File = filename:join([Path,"big_bang_40.lcnt"]),
+ ?line ok = lcnt:load(File),
+ ?line ok = lcnt:conflicts(),
+ THs = [-1, 0, 100, 1000],
+ Print = [name , id , type , entry , tries , colls , ratio , time , duration],
+ Opts = [
+ [{sort, Sort}, {reverse, Rev}, {max_locks, ML}, {combine, Combine}, {thresholds, [TH]}, {print, [Print]}] ||
+ Sort <- [name , id , type , tries , colls , ratio , time , entry],
+ ML <- [none, 1 , 32, 4096],
+ Combine <- [true, false],
+ TH <- [{tries, Tries} || Tries <- THs] ++ [{colls, Colls} || Colls <- THs] ++ [{time, Time} || Time <- THs],
+ Rev <- [true, false]
+ ],
+ ?line ok = test_conflicts_opts(Opts),
+ ?line ok = lcnt:stop(),
+ ok.
+
+test_conflicts_opts([]) -> ok;
+test_conflicts_opts([Opt|Opts]) ->
+ ?line ok = lcnt:conflicts(Opt),
+ test_conflicts_opts(Opts).
+
+locations(suite) ->
+ [];
+locations(doc) ->
+ ["API: locations"];
+locations(Config) when is_list(Config) ->
+ ?line {ok, _} = lcnt:start(),
+ ?line Path = ?config(data_dir, Config),
+ ?line File = filename:join([Path,"big_bang_40.lcnt"]),
+ ?line ok = lcnt:load(File),
+ ?line ok = lcnt:locations(),
+ THs = [-1, 0, 100, 1000],
+ Print = [name , id , type , entry , tries , colls , ratio , time , duration],
+ Opts = [
+ [{full_id, Id}, {sort, Sort}, {max_locks, ML}, {combine, Combine}, {thresholds, [TH]}, {print, Print}] ||
+ Sort <- [name , id , type , tries , colls , ratio , time , entry],
+ ML <- [none, 1 , 64],
+ Combine <- [true, false],
+ TH <- [{tries, Tries} || Tries <- THs] ++ [{colls, Colls} || Colls <- THs] ++ [{time, Time} || Time <- THs],
+ Id <- [true, false]
+ ],
+ ?line ok = test_locations_opts(Opts),
+ ?line ok = lcnt:stop(),
+ ok.
+
+test_locations_opts([]) -> ok;
+test_locations_opts([Opt|Opts]) ->
+ ?line ok = lcnt:locations(Opt),
+ test_locations_opts(Opts).
+
+swap_keys(suite) ->
+ [];
+swap_keys(doc) ->
+ ["Test interchanging port/process id with class"];
+swap_keys(Config) when is_list(Config) ->
+ ?line {ok, _} = lcnt:start(),
+ ?line Path = ?config(data_dir, Config),
+ ?line File = filename:join([Path,"big_bang_40.lcnt"]),
+ ?line ok = lcnt:load(File),
+ ?line ok = lcnt:conflicts(),
+ ?line ok = lcnt:swap_pid_keys(),
+ ?line ok = lcnt:conflicts(),
+ ?line ok = lcnt:stop(),
+ ok.
+
+
+%%----------------------------------------------------------------------
+%% Auxiliary tests
+%%----------------------------------------------------------------------
+
+%%----------------------------------------------------------------------
+%% Auxiliary
+%%----------------------------------------------------------------------
diff --git a/lib/tools/test/lcnt_SUITE_data/big_bang_40.lcnt b/lib/tools/test/lcnt_SUITE_data/big_bang_40.lcnt
new file mode 100644
index 0000000000..6087f6f37e
--- /dev/null
+++ b/lib/tools/test/lcnt_SUITE_data/big_bang_40.lcnt
Binary files differ
diff --git a/lib/tools/test/xref_SUITE.erl b/lib/tools/test/xref_SUITE.erl
index 0bbb3ba0f1..b4684140ca 100644
--- a/lib/tools/test/xref_SUITE.erl
+++ b/lib/tools/test/xref_SUITE.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
-module(xref_SUITE).
@@ -1067,9 +1067,7 @@ read_expected(Version) ->
{POS13+3,{FF,{'$M_EXPR','$F_EXPR',-1}}},
{POS14+8,{{read,bi,0},{'$M_EXPR','$F_EXPR',1}}}],
- O1 = [{0,{FF,{modul,'$F_EXPR',179}}},
- {0,{FF,{read,'$F_EXPR',178}}},
- {20,{{read,lc,0},{ets,new,0}}},
+ O1 = [{20,{{read,lc,0},{ets,new,0}}},
{21,{{read,lc,0},{ets,tab2list,1}}},
{POS1+1,{FF,{erlang,spawn,1}}},
{POS1+1,{FF,{mod17,fun17,0}}},
@@ -1168,13 +1166,19 @@ read_expected(Version) ->
[{POS8+3, {FF,{erlang,apply,3}}},
{POS10+1, {FF,{erlang,apply,3}}},
{POS10+6, {FF,{erlang,apply,3}}}]
- ++ O1;
+ ++
+ [{0,{FF,{read,'$F_EXPR',178}}},
+ {0,{FF,{modul,'$F_EXPR',179}}}]
+ ++ O1;
_ ->
% [{POS15+2,{{read,bi,0},{foo,t,0}}},
% {POS15+3,{{read,bi,0},{bar,t,0}}},
% {POS15+6,{{read,bi,0},{read,local,0}}},
% {POS15+8,{{read,bi,0},{foo,t,0}}},
% {POS15+10,{{read,bi,0},{bar,t,0}}}] ++
+ [{16,{FF,{read,'$F_EXPR',178}}},
+ {17,{FF,{modul,'$F_EXPR',179}}}]
+ ++
O1
end,
@@ -1649,7 +1653,7 @@ abstract_modules(Conf) when is_list(Conf) ->
%% The compiler will no longer allow us to have a mismatch between
%% the module name and the output file, so we must use a trick.
?line {ok, param, BeamCode} = compile:file(File, [binary,debug_info]),
- ?line ok = file:write_file(filename:join(Dir, Beam), BeamCode),
+ ?line ok = file:write_file(Beam, BeamCode),
?line {ok, _} = xref:start(s),
?line {ok, param} = xref:add_module(s, MFile, {warnings,false}),
diff --git a/lib/wx/api_gen/gen_util.erl b/lib/wx/api_gen/gen_util.erl
index d47fd579a5..859317bdef 100644
--- a/lib/wx/api_gen/gen_util.erl
+++ b/lib/wx/api_gen/gen_util.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%% Some utilities
@@ -205,42 +205,65 @@ halt(Reason) ->
end.
erl_copyright() ->
+ StartYear = start_year(get(current_class)),
w("%%~n",[]),
w("%% %CopyrightBegin%~n",[]),
- w("%% ~n",[]),
- w("%% Copyright Ericsson AB 2008-2009. All Rights Reserved.~n",[]),
- w("%% ~n",[]),
+ w("%%~n",[]),
+ w("%% Copyright Ericsson AB ~p-2010. All Rights Reserved.~n",
+ [StartYear]),
+ w("%%~n",[]),
w("%% The contents of this file are subject to the Erlang Public License,~n",[]),
w("%% Version 1.1, (the \"License\"); you may not use this file except in~n",[]),
w("%% compliance with the License. You should have received a copy of the~n",[]),
w("%% Erlang Public License along with this software. If not, it can be~n",[]),
w("%% retrieved online at http://www.erlang.org/.~n",[]),
- w("%% ~n",[]),
+ w("%%~n",[]),
w("%% Software distributed under the License is distributed on an \"AS IS\"~n",[]),
w("%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See~n",[]),
w("%% the License for the specific language governing rights and limitations~n",[]),
w("%% under the License.~n",[]),
- w("%% ~n",[]),
+ w("%%~n",[]),
w("%% %CopyrightEnd%~n",[]).
c_copyright() ->
w("/*~n",[]),
w(" * %CopyrightBegin%~n",[]),
- w(" * ~n",[]),
- w(" * Copyright Ericsson AB 2008-2009. All Rights Reserved.~n",[]),
- w(" * ~n",[]),
+ w(" *~n",[]),
+ w(" * Copyright Ericsson AB 2008-2010. All Rights Reserved.~n",[]),
+ w(" *~n",[]),
w(" * The contents of this file are subject to the Erlang Public License,~n",[]),
w(" * Version 1.1, (the \"License\"); you may not use this file except in~n",[]),
w(" * compliance with the License. You should have received a copy of the~n",[]),
w(" * Erlang Public License along with this software. If not, it can be~n",[]),
w(" * retrieved online at http://www.erlang.org/.~n",[]),
- w(" * ~n",[]),
+ w(" *~n",[]),
w(" * Software distributed under the License is distributed on an \"AS IS\"~n",[]),
w(" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See~n",[]),
w(" * the License for the specific language governing rights and limitations~n",[]),
w(" * under the License.~n",[]),
- w(" * ~n",[]),
+ w(" *~n",[]),
w(" * %CopyrightEnd% ~n",[]),
w("*/~n",[]).
-
+start_year("wxAuiManagerEvent") -> 2009;
+start_year("wxAuiNotebookEvent") -> 2009;
+start_year("wxChoicebook") -> 2009;
+start_year("wxGridCellBoolEditor") -> 2009;
+start_year("wxGridCellBoolRenderer") -> 2009;
+start_year("wxGridCellChoiceEditor") -> 2009;
+start_year("wxGridCellFloatEditor") -> 2009;
+start_year("wxGridCellFloatRenderer") -> 2009;
+start_year("wxGridCellNumberEditor") -> 2009;
+start_year("wxGridCellNumberRenderer") -> 2009;
+start_year("wxGridCellStringRenderer") -> 2009;
+start_year("wxGridCellTextEditor") -> 2009;
+start_year("wxHtmlLinkEvent") -> 2009;
+start_year("wxHtmlWindow") -> 2009;
+start_year("wxListbook") -> 2009;
+start_year("wxLogNull") -> 2009;
+start_year("wxSpinEvent") -> 2009;
+start_year("wxSplitterEvent") -> 2009;
+start_year("wxSplitterWindow") -> 2009;
+start_year("wxToolbook") -> 2009;
+start_year("wxTreebook") -> 2009;
+start_year(_) -> 2008.
diff --git a/lib/wx/api_gen/gl_gen_c.erl b/lib/wx/api_gen/gl_gen_c.erl
index 5c72499790..864ce8b1ac 100644
--- a/lib/wx/api_gen/gl_gen_c.erl
+++ b/lib/wx/api_gen/gl_gen_c.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%%-------------------------------------------------------------------
@@ -44,7 +44,7 @@ gen(GLFuncs, GLUFuncs) ->
%% Marshal funcs
open_write("../c_src/gen/gl_funcs.cpp"),
c_copyright(),
- w("/***** This file is generated do not edit ****/ ~n~n", []),
+ w("/***** This file is generated do not edit ****/~n~n", []),
w("#include <stdio.h>~n", []),
w("#include <string.h>~n", []),
w("#include \"../wxe_impl.h\"~n", []),
@@ -67,8 +67,8 @@ gen(GLFuncs, GLUFuncs) ->
" driver_send_term(WXE_DRV_PORT,caller,rt,8);~n"
" return ;~n }~n };~n~n", []),
- w(" switch(op) ~n{~n",[]),
- w(" case 5000: ~n wxe_tess_impl(bp, caller); ~n break;~n", []),
+ w(" switch(op)~n{~n",[]),
+ w(" case 5000:~n wxe_tess_impl(bp, caller);~n break;~n", []),
w(" case WXE_BIN_INCR:~n driver_binary_inc_refc(bins[0]->bin);~n break;~n",[]),
w(" case WXE_BIN_DECR:~n driver_binary_dec_refc(bins[0]->bin);~n break;~n",[]),
@@ -93,23 +93,23 @@ funcs(F) ->
func(#func{where=erl}) -> ok;
func(#func{id=Id,alt={has_vector,_,FuncName}}) ->
#func{name=Name,type=T,params=As} = get(FuncName),
- w("case ~p: { // ~s ~n", [Id,Name]),
+ w("case ~p: { // ~s~n", [Id,Name]),
put(bin_count,-1),
As1 = declare_vars(T, As),
As2 = decode_args(As1),
As3 = call_gl(Name,T,As2),
build_return_vals(T,As3),
free_args(),
- w("}; break; ~n", []);
+ w("}; break;~n", []);
func(#func{name=Name,id=Id,type=T,params=As,alt=_Alt}) ->
- w("case ~p: { // ~s ~n", [Id,Name]),
+ w("case ~p: { // ~s~n", [Id,Name]),
put(bin_count,-1),
As2 = decode_args(As),
declare_vars(T, As), %% Unusal order but it's c++
As3 = call_gl(Name,T,As2),
build_return_vals(T,As3),
free_args(),
- w("}; break; ~n", []).
+ w("}; break;~n", []).
declare_vars(void,Ps) ->
[declare_var(P) || P <- Ps];
@@ -183,7 +183,7 @@ decode_arg(P=#arg{name=Name,type=#type{name=T,base=string,single=list}},A0) ->
w(" int * ~sTotSize = (int *) bp; bp += 4;~n",[Name]),
%% w(" if(*~sLen > 256) *~sLen = 256;", []),
w(" ~s **~s;~n", [T,Name]),
- w(" ~s = (~s **) driver_alloc(sizeof(~s *) * *~sLen); ~n",[Name, T, T, Name]),
+ w(" ~s = (~s **) driver_alloc(sizeof(~s *) * *~sLen);~n",[Name, T, T, Name]),
store_free(Name),
w(" for(int i=0;i<*~sLen;i++) {~n", [Name]),
w(" ~s[i] = (~s *) bp; bp += 1+strlen(bp);};~n",[Name,T]),
@@ -353,7 +353,7 @@ build_return_vals(Type,As) ->
case Vars of
none -> ignore;
_ ->
- w(" driver_free(rt); ~n", [])
+ w(" driver_free(rt);~n", [])
end,
[w(" ~s~n", [Name]) || Name <- FreeList],
ok
@@ -492,7 +492,7 @@ build_ret(Name,_Q,T=#type{}) ->
gen_defines(GLFuncs,GLUFuncs) ->
open_write("../c_src/gen/gl_fdefs.h"),
c_copyright(),
- w("/***** This file is generated do not edit ****/ ~n~n", []),
+ w("/***** This file is generated do not edit ****/~n~n", []),
w("#ifdef WX_DEF_EXTS~n", []),
w("# define WXE_EXTERN~n", []),
w("#else~n# define WXE_EXTERN extern~n", []),
@@ -543,7 +543,7 @@ fdef_types(As) ->
gl_gen_init(Funcs) ->
open_write("../c_src/gen/gl_finit.h"),
c_copyright(),
- w("/***** This file is generated do not edit ****/ ~n~n", []),
+ w("/***** This file is generated do not edit ****/~n~n", []),
w("static struct {\n"
" const char * name;\n"
" const char * alt;\n"
@@ -557,7 +557,7 @@ gl_gen_init(Funcs) ->
glu_gen_init(Funcs) ->
open_write("../c_src/gen/glu_finit.h"),
c_copyright(),
- w("/***** This file is generated do not edit ****/ ~n~n", []),
+ w("/***** This file is generated do not edit ****/~n~n", []),
w("static struct {\n"
" const char * name;\n"
" const char * alt;\n"
diff --git a/lib/wx/api_gen/gl_gen_erl.erl b/lib/wx/api_gen/gl_gen_erl.erl
index 3e436100b6..07e4d6f783 100644
--- a/lib/wx/api_gen/gl_gen_erl.erl
+++ b/lib/wx/api_gen/gl_gen_erl.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%%-------------------------------------------------------------------
@@ -86,14 +86,14 @@ gl_api(Fs) ->
erl_copyright(),
w("~n%% OPENGL API~n~n", []),
w("%% This file is generated DO NOT EDIT~n~n", []),
- w("%% @doc Standard OpenGL api. ~n", []),
+ w("%% @doc Standard OpenGL api.~n", []),
w("%% See <a href=\"http://www.opengl.org/sdk/docs/man/\">www.opengl.org</a>~n",[]),
w("%%~n", []),
- w("%% Booleans are represented by integers 0 and 1. ~n~n", []),
+ w("%% Booleans are represented by integers 0 and 1.~n~n", []),
w("%% @type wx_mem(). see wx.erl on memory allocation functions~n", []),
w("%% @type enum(). An integer defined in gl.hrl~n", []),
w("%% @type offset(). An integer which is an offset in an array~n", []),
- w("%% @type clamp(). A float clamped between 0.0 - 1.0 ~n", []),
+ w("%% @type clamp(). A float clamped between 0.0 - 1.0~n", []),
w("-module(gl).~n~n",[]),
w("-compile(inline).~n", []),
@@ -106,7 +106,7 @@ gl_api(Fs) ->
ExportList = lists:map(Exp,Fs),
w("~n-export([~s]).~n~n", [args(fun(EF) -> EF end, ",", ExportList, 60)]),
- w("~n%% API ~n~n", []),
+ w("~n%% API~n~n", []),
[gen_funcs(F) || F <- Fs],
close(),
ok.
@@ -116,14 +116,14 @@ glu_api(Fs) ->
erl_copyright(),
w("~n%% OPENGL UTILITY API~n~n", []),
w("%% This file is generated DO NOT EDIT~n~n", []),
- w("%% @doc A part of the standard OpenGL Utility api. ~n", []),
+ w("%% @doc A part of the standard OpenGL Utility api.~n", []),
w("%% See <a href=\"http://www.opengl.org/sdk/docs/man/\">www.opengl.org</a>~n",[]),
w("%%~n", []),
- w("%% Booleans are represented by integers 0 and 1. ~n~n", []),
+ w("%% Booleans are represented by integers 0 and 1.~n~n", []),
w("%% @type wx_mem(). see wx.erl on memory allocation functions~n", []),
w("%% @type enum(). An integer defined in gl.hrl~n", []),
w("%% @type offset(). An integer which is an offset in an array~n", []),
- w("%% @type clamp(). A float clamped between 0.0 - 1.0 ~n~n", []),
+ w("%% @type clamp(). A float clamped between 0.0 - 1.0~n~n", []),
w("-module(glu).~n",[]),
w("-compile(inline).~n", []),
@@ -134,7 +134,7 @@ glu_api(Fs) ->
ExportList = ["tesselate/2" | lists:map(Exp,Fs)],
w("~n-export([~s]).~n~n", [args(fun(EF) -> EF end, ",", ExportList, 60)]),
- w("~n%% API ~n~n", []),
+ w("~n%% API~n~n", []),
w("%% @spec (Vec3, [Vec3]) -> {Triangles, VertexPos}~n",[]),
w("%% Vec3 = {float(),float(),float()}~n",[]),
@@ -143,8 +143,8 @@ glu_api(Fs) ->
w("%% @doc General purpose polygon triangulation.~n",[]),
w("%% The first argument is the normal and the second a list of~n"
"%% vertex positions. Returned is a list of indecies of the vertices~n"
- "%% and a binary (64bit native float) containing an array of ~n"
- "%% vertex positions, it starts with the vertices in Vs and ~n"
+ "%% and a binary (64bit native float) containing an array of~n"
+ "%% vertex positions, it starts with the vertices in Vs and~n"
"%% may contain newly created vertices in the end.~n", []),
w("tesselate({Nx,Ny,Nz}, Vs) ->~n",[]),
@@ -413,7 +413,7 @@ marshal_arg(#type{size=Sz,name=Type,single={tuple_list,TSz}},Name,A0) ->
marshal_arg(T=#type{}, Name, Align) ->
io:format("{\"~s\", {\"~s\", }}.~n", [get(current_func),lowercase(Name)]),
%%?error({unhandled_type, {Name,T}}).
- w(" Don't know how to marshal this type ~p ~p ~n", [T,Name]),
+ w(" Don't know how to marshal this type ~p ~p~n", [T,Name]),
align(8,Align,"").
% Make sure that it is aligned before adding it, and update alignment
@@ -581,7 +581,7 @@ gen_debug(GL, GLU) ->
open_write("../src/gen/gl_debug.hrl"),
erl_copyright(),
w("%% This file is generated DO NOT EDIT~n~n", []),
- w("gldebug_table() -> ~n[~n", []),
+ w("gldebug_table() ->~n[~n", []),
[printd(F,gl) || F <- GL],
[printd(F,glu) || F <- GLU],
w(" {-1, {mod, func, -1}}~n",[]),
diff --git a/lib/wx/api_gen/wx_gen_cpp.erl b/lib/wx/api_gen/wx_gen_cpp.erl
index 423dcd0179..9e9f8799c7 100644
--- a/lib/wx/api_gen/wx_gen_cpp.erl
+++ b/lib/wx/api_gen/wx_gen_cpp.erl
@@ -38,7 +38,7 @@
gen(Defs) ->
open_write("../c_src/gen/wxe_derived_dest.h"),
c_copyright(),
- w("~n/***** This file is generated do not edit ****/ ~n~n", []),
+ w("~n/***** This file is generated do not edit ****/~n~n", []),
gen_derived_dest(Defs),
close(),
@@ -91,16 +91,16 @@ gen_derived_dest_2(C=#class{name=Class}) ->
case is_derived(C) of
true ->
?WTC("gen_derived_dest_2"),
- w("class E~s : public ~s { ~n",[Class,Class]),
+ w("class E~s : public ~s {~n",[Class,Class]),
case Class of
"wxGLCanvas" -> %% Special for cleaning up gl context
w(" public: ~~E~s() {deleteActiveGL(this);"
- "((WxeApp *)wxTheApp)->clearPtr(this);}; ~n", [Class]);
+ "((WxeApp *)wxTheApp)->clearPtr(this);};~n", [Class]);
_ ->
- w(" public: ~~E~s() {((WxeApp *)wxTheApp)->clearPtr(this);}; ~n", [Class])
+ w(" public: ~~E~s() {((WxeApp *)wxTheApp)->clearPtr(this);};~n", [Class])
end,
gen_constructors(C),
- w("}; ~n~n", []);
+ w("};~n~n", []);
false ->
ignore
end.
@@ -147,7 +147,7 @@ gen_type({merged, _, _T1,_, _, T2,_}, 2) ->
gen_type(T2,error).
gen_funcs(Defs) ->
- w("~n/***** This file is generated do not edit ****/ ~n~n"),
+ w("~n/***** This file is generated do not edit ****/~n~n"),
w("#include <wx/wx.h>~n"),
w("#include \"../wxe_impl.h\"~n"),
w("#include \"../wxe_events.h\"~n"),
@@ -156,21 +156,21 @@ gen_funcs(Defs) ->
w("#include \"wxe_derived_dest.h\"~n~n"),
w("void WxeApp::wxe_dispatch(wxeCommand& Ecmd)~n{~n"),
- w(" char * bp = Ecmd.buffer; ~n"),
+ w(" char * bp = Ecmd.buffer;~n"),
w(" wxeMemEnv *memenv = getMemEnv(Ecmd.port);~n"),
%% w(" wxMBConvUTF32 UTFconverter;~n"),
w(" wxeReturn rt = wxeReturn(WXE_DRV_PORT, Ecmd.caller, true);~n"),
- w(" try { ~n"),
- w(" switch (Ecmd.op) ~n{~n"),
-%% w(" case WXE_CREATE_PORT: ~n", []),
-%% w(" { newMemEnv(Ecmd.port); } break; ~n", []),
-%% w(" case WXE_REMOVE_PORT: ~n", []),
-%% w(" { destroyMemEnv(Ecmd.port); } break; ~n", []),
- w(" case DESTROY_OBJECT: { ~n"),
+ w(" try {~n"),
+ w(" switch (Ecmd.op)~n{~n"),
+%% w(" case WXE_CREATE_PORT:~n", []),
+%% w(" { newMemEnv(Ecmd.port); } break;~n", []),
+%% w(" case WXE_REMOVE_PORT:~n", []),
+%% w(" { destroyMemEnv(Ecmd.port); } break;~n", []),
+ w(" case DESTROY_OBJECT: {~n"),
w(" wxObject *This = (wxObject *) getPtr(bp,memenv); "),
w(" if(This) {"),
w(" ((WxeApp *) wxTheApp)->clearPtr((void *) This);~n"),
- w(" delete This; }~n } break; ~n"),
+ w(" delete This; }~n } break;~n"),
w(" case WXE_REGISTER_OBJECT: {~n"
" registerPid(bp, Ecmd.caller, memenv);~n"
" rt.addAtom(\"ok\");~n"
@@ -190,7 +190,7 @@ gen_funcs(Defs) ->
w(" }~n"),
w("} // switch~n"),
w(" rt.send();~n"),
- w("} catch (wxe_badarg badarg) { // try ~n"),
+ w("} catch (wxe_badarg badarg) { // try~n"),
w(" wxeReturn error = wxeReturn(WXE_DRV_PORT, Ecmd.caller, false);"),
w(" error.addAtom(\"_wxe_error_\");~n"),
w(" error.addInt((int) Ecmd.op);~n"),
@@ -199,7 +199,7 @@ gen_funcs(Defs) ->
w(" error.addTupleCount(2);~n"),
w(" error.addTupleCount(3);~n"),
w(" error.send();~n"),
- w("}} /* The End */ ~n"),
+ w("}} /* The End */~n"),
Res.
gen_class(C=#class{name=Name,methods=Ms,options=Opts}) ->
@@ -233,7 +233,7 @@ gen_method(_CName, M=#method{where=erl_no_opt}) -> M;
gen_method(CName, M=#method{where=taylormade, name=Name, id=Id}) ->
{ok, Bin} = file:read_file(filename:join([wx_extra, CName ++".c_src"])),
Str0 = binary_to_list(Bin),
- %% io:format("C++ Class ~p ~p ~n", [CName, Name]),
+ %% io:format("C++ Class ~p ~p~n", [CName, Name]),
{match, [Str1]} = re:run(Str0, "<<"++Name++"(.*)"++Name++">>",
[dotall, {capture, all_but_first, list}]),
@@ -244,13 +244,13 @@ gen_method(CName, M=#method{name=N,params=[Ps],method_type=destructor,id=MethodI
case hd(reverse(wx_gen_erl:parents(CName))) of
root ->
?WTC("gen_method"),
- w("case ~s: { // ~s::~s ~n", [wx_gen_erl:get_unique_name(MethodId),CName,N]),
+ w("case ~s: { // ~s::~s~n", [wx_gen_erl:get_unique_name(MethodId),CName,N]),
decode_arguments([Ps]),
w(" if(This) {", []),
w(" ((WxeApp *) wxTheApp)->clearPtr((void *) This);~n", []),
w(" delete This;}~n", []),
free_args(),
- w(" break; ~n}~n", []);
+ w(" break;~n}~n", []);
object -> %% Use default
ignore
end,
@@ -259,7 +259,7 @@ gen_method(CName, M=#method{name=N,params=Ps0,type=T,method_type=MT,id=MethodId
put(current_func, N),
put(bin_count,-1),
?WTC("gen_method"),
- w("case ~s: { // ~s::~s ~n", [wx_gen_erl:get_unique_name(MethodId),CName,N]),
+ w("case ~s: { // ~s::~s~n", [wx_gen_erl:get_unique_name(MethodId),CName,N]),
Ps1 = declare_variables(void, Ps0),
{Ps2,Align} = decode_arguments(Ps1),
Opts = [Opt || Opt = #param{def=Def,in=In,where=Where} <- Ps2,
@@ -276,7 +276,7 @@ gen_method(CName, M=#method{name=N,params=Ps0,type=T,method_type=MT,id=MethodId
end,
free_args(),
build_return_vals(T,Ps3),
- w(" break; ~n}~n", []),
+ w(" break;~n}~n", []),
erase(current_func),
M.
@@ -353,9 +353,9 @@ declare_type(N,In,Def,T) ->
decode_options([], _Align) -> ok;
decode_options(Opts, Align) ->
align(Align, 64),
- w(" while( * (int*) bp) { switch (* (int*) bp) { ~n", []),
+ w(" while( * (int*) bp) { switch (* (int*) bp) {~n", []),
foldl(fun decode_opt/2, 1, Opts),
- w(" }}; ~n", []).
+ w(" }};~n", []).
decode_opt(#param{name=Name,type=Type}, N) ->
w(" case ~p: {bp += 4;~n", [N]),
@@ -548,10 +548,10 @@ decode_arg(N,#type{name=Type,base=binary,mod=Mod0},Arg,A0) ->
Mod = mods([M || M <- Mod0]),
case Arg of
arg ->
- w(" ~s~s * ~s = (~s~s*) Ecmd.bin[~p]->base; ~n",
+ w(" ~s~s * ~s = (~s~s*) Ecmd.bin[~p]->base;~n",
[Mod,Type,N,Mod,Type, next_id(bin_count)]);
opt ->
- w(" ~s = (~s~s*) Ecmd.bin[~p]->base; ~n",
+ w(" ~s = (~s~s*) Ecmd.bin[~p]->base;~n",
[N,Mod,Type,next_id(bin_count)])
end,
A0;
@@ -561,10 +561,10 @@ decode_arg(N,#type{base={term,"wxTreeItemData"},mod=Mod0},Arg,A0) ->
BinCnt = next_id(bin_count),
case Arg of
arg ->
- w(" ~s~s * ~s = new ~s(Ecmd.bin[~p]->size, Ecmd.bin[~p]->base); ~n",
+ w(" ~s~s * ~s = new ~s(Ecmd.bin[~p]->size, Ecmd.bin[~p]->base);~n",
[Mod,Type,N,Type,BinCnt,BinCnt]);
opt ->
- w(" ~s = new ~s(Ecmd.bin[~p]->size, Ecmd.bin[~p]->base); ~n",
+ w(" ~s = new ~s(Ecmd.bin[~p]->size, Ecmd.bin[~p]->base);~n",
[N,Type,BinCnt,BinCnt])
end,
A0;
@@ -573,10 +573,10 @@ decode_arg(N,#type{name=Type,base={term,_},mod=Mod0},Arg,A0) ->
BinCnt = next_id(bin_count),
case Arg of
arg ->
- w(" ~s~s * ~s = new ~s(Ecmd.bin[~p]); ~n",
+ w(" ~s~s * ~s = new ~s(Ecmd.bin[~p]);~n",
[Mod,Type,N,Type,BinCnt]);
opt ->
- w(" ~s = new ~s(Ecmd.bin[~p]); ~n",
+ w(" ~s = new ~s(Ecmd.bin[~p]);~n",
[N,Type,BinCnt])
end,
A0;
@@ -792,7 +792,7 @@ virtual_dest(#class{methods=Ms, parent=Parent}) ->
"root" ->
false;
_ ->
- io:format("Error: ~p ~n",[Parent]),
+ io:format("Error: ~p~n",[Parent]),
erlang:error(no_parent)
end;
PClass ->
@@ -1017,7 +1017,7 @@ gen_macros() ->
build_events() ->
open_write("../c_src/gen/wxe_events.cpp"),
c_copyright(),
- w("~n/***** This file is generated do not edit ****/ ~n~n"),
+ w("~n/***** This file is generated do not edit ****/~n~n"),
w("#include <wx/wx.h>~n"),
w("#include \"../wxe_impl.h\"~n~n"),
w("#include \"wxe_macros.h\"~n"),
@@ -1027,7 +1027,7 @@ build_events() ->
w("wxeEtype::wxeEtype(const char *name, int Id) {eName = name;cID = Id;}~n~n"),
w("WX_DECLARE_HASH_MAP(int, wxeEtype*, wxIntegerHash, wxIntegerEqual, wxeETmap );~n~n"),
- w("wxeETmap etmap; ~n~n"),
+ w("wxeETmap etmap;~n~n"),
w(
"int wxeEventTypeFromAtom(char *etype_atom) {
@@ -1054,16 +1054,16 @@ build_events() ->
close().
initEventTable(Evs) ->
- w("void initEventTable() ~n{~n"),
+ w("void initEventTable()~n{~n"),
w(" struct { ",[]),
- w("int ev_type; int class_id; const char * ev_name;} event_types[] = ~n {~n",[]),
+ w("int ev_type; int class_id; const char * ev_name;} event_types[] =~n {~n",[]),
lists:foreach(fun(Ev) -> init_event_classes(Ev) end,
[#class{id=0,event=[wxEVT_NULL]}|Evs]),
w(" {-1, 0, ""}~n };~n",[]),
w(" for(int i=0; event_types[i].ev_type != -1; i++) {~n",[]),
w(" if(NULL == etmap[event_types[i].ev_type]) {~n",[]),
- w(" etmap[event_types[i].ev_type] = ~n"
+ w(" etmap[event_types[i].ev_type] =~n"
" new wxeEtype(event_types[i].ev_name, event_types[i].class_id);~n"),
w(" } else {~n",[]),
w(" wxeEtype *prev = etmap[event_types[i].ev_type];~n"
@@ -1082,10 +1082,10 @@ init_event_classes(#class{event=ETs, id=Id}) ->
w(" {~w + wxEVT_USER_FIRST, ~w, ~p},~n",
[Cev, find_id(OtherClass), wx_gen_erl:event_type_name(Eev)]);
({Ev, {test_if, Test}}) ->
- w("#if ~s ~n", [Test]),
+ w("#if ~s~n", [Test]),
w(" {~w, ~w, ~p},~n",
[Ev, Id, wx_gen_erl:event_type_name(Ev)]),
- w("#endif ~n", []);
+ w("#endif~n", []);
(Ev) ->
w(" {~w, ~w, ~p},~n",
[Ev, Id, wx_gen_erl:event_type_name(Ev)])
@@ -1099,20 +1099,20 @@ find_id(OtherClass) ->
encode_events(Evs) ->
?WTC("encode_events"),
- w("void wxeEvtListener::forward(wxEvent& event) ~n"
- "{ ~n"
+ w("void wxeEvtListener::forward(wxEvent& event)~n"
+ "{~n"
"#ifdef DEBUG~n"
- " if(!sendevent(&event, port)) ~n"
+ " if(!sendevent(&event, port))~n"
" fprintf(stderr, \"Couldn't send event!\\r\\n\");~n"
"#else~n"
"sendevent(&event, port);~n"
"#endif~n"
"}~n~n"),
- w("int getRef(void* ptr, wxeMemEnv* memenv) ~n"
- "{ ~n"
+ w("int getRef(void* ptr, wxeMemEnv* memenv)~n"
+ "{~n"
" WxeApp * app = (WxeApp *) wxTheApp;~n"
" return app->getRef(ptr,memenv);~n"
- "} ~n~n"),
+ "}~n~n"),
w("bool sendevent(wxEvent *event, ErlDrvPort port)~n{~n"
" int send_res ;~n"
" char * evClass = NULL;~n"
diff --git a/lib/wx/api_gen/wx_gen_erl.erl b/lib/wx/api_gen/wx_gen_erl.erl
index c31d7d2a92..d75442d307 100644
--- a/lib/wx/api_gen/wx_gen_erl.erl
+++ b/lib/wx/api_gen/wx_gen_erl.erl
@@ -119,7 +119,7 @@ gen_class1(C=#class{name=Name,parent=Parent,methods=Ms,options=Opts}) ->
case [P || P <- Parents, P =/= root, P =/= object] of
[] -> ignore;
Ps ->
- w("%% <p>This class is derived (and can use functions) from: ~n", []),
+ w("%% <p>This class is derived (and can use functions) from:~n", []),
[w("%% <br />{@link ~s}~n", [P]) || P <- Ps],
w("%% </p>~n",[])
end,
@@ -302,7 +302,7 @@ gen_dest(#class{name=CName,abstract=Abs}, Ms) ->
gen_dest2(Class, Id) ->
w("%% @spec (This::~s()) -> ok~n", [Class]),
w("%% @doc Destroys this object, do not use object again~n", []),
- w("destroy(Obj=#wx_ref{type=Type}) -> ~n", []),
+ w("destroy(Obj=#wx_ref{type=Type}) ->~n", []),
w(" ?CLASS(Type,~s),~n",[Class]),
case Id of
object ->
@@ -317,7 +317,7 @@ gen_inherited([object], Done, Exported) -> {Done, Exported};
gen_inherited([Parent|Ps], Done0, Exported0) ->
#class{name=Class, methods=Ms} = get({class,Parent}),
case is_list(Exported0) of
- false -> w(" %% From ~s ~n", [Class]);
+ false -> w(" %% From ~s~n", [Class]);
true -> ignore
end,
{Done,Exported} = gen_inherited_ms(Ms, Class, Done0, gb_sets:empty(), Exported0),
@@ -673,7 +673,7 @@ gen_doc(Class, Cs = [#method{name=N, alias=A,method_type=MT}|_]) ->
[lowercase_all(Class),lowercase_all(Class),lowercase_all(N)])
end,
Name = case MT of constructor -> "new"; _ -> erl_func_name(N,A) end,
- w("%% <br /> Alternatives: ~n",[]),
+ w("%% <br /> Alternatives:~n",[]),
[gen_doc2(Name, Clause) || Clause <- Cs],
ok.
@@ -1026,22 +1026,22 @@ enum_name(Name) ->
gen_enums_ints() ->
%% open_write("../include/wx.hrl"), opened in gen_event_recs
- w("~n%% Hardcoded Records ~n", []),
- w("-record(wxMouseState, {x, y, %% integer() ~n"
- " leftDown, middleDown, rightDown, %% bool() ~n"
+ w("~n%% Hardcoded Records~n", []),
+ w("-record(wxMouseState, {x, y, %% integer()~n"
+ " leftDown, middleDown, rightDown, %% bool()~n"
" controlDown, shiftDown, altDown, metaDown, cmdDown %% bool()~n"
" }).~n", []),
- w("-record(wxHtmlLinkInfo, { ~n"
- " href, target %% string() ~n"
+ w("-record(wxHtmlLinkInfo, {~n"
+ " href, target %% string()~n"
" }).~n", []),
- w("~n%% Hardcoded Defines ~n", []),
+ w("~n%% Hardcoded Defines~n", []),
Enums = [E || E = {{enum,_},#enum{as_atom=false}} <- get()],
w("-define(wxDefaultSize, {-1,-1}).~n", []),
w("-define(wxDefaultPosition, {-1,-1}).~n", []),
- w("~n%% Global Variables ~n", []),
+ w("~n%% Global Variables~n", []),
[w("-define(~s, wxe_util:get_const(~s)).~n", [Gvar, Gvar]) ||
{Gvar,_,_Id} <- get(gvars)],
- w("~n%% Enum and defines ~n", []),
+ w("~n%% Enum and defines~n", []),
foldl(fun({{enum,Type},Enum= #enum{as_atom=false}}, Done) ->
build_enum_ints(Type,Enum,Done);
(_,Done) -> Done
@@ -1051,9 +1051,9 @@ gen_enums_ints() ->
build_enum_ints(Type,#enum{vals=Vals},Done) ->
case Type of
[$@|_] -> ok; % anonymous
- {Class,[$@|_]} when Vals =/= [] -> w("% From class ~s ~n", [Class]);
- {Class,Enum} when Vals =/= [] -> w("% From ~s::~s ~n", [Class,Enum]);
- _ when Vals =/= [] -> w("% Type ~s ~n", [Type]);
+ {Class,[$@|_]} when Vals =/= [] -> w("% From class ~s~n", [Class]);
+ {Class,Enum} when Vals =/= [] -> w("% From ~s::~s~n", [Class,Enum]);
+ _ when Vals =/= [] -> w("% Type ~s~n", [Type]);
_ -> ok
end,
@@ -1096,7 +1096,7 @@ gen_event_recs() ->
erl_copyright(),
w("", []),
w("%% This file is generated DO NOT EDIT~n~n", []),
- w("%% All event messages are encapsulated in a wx record ~n"
+ w("%% All event messages are encapsulated in a wx record~n"
"%% they contain the widget id and a specialized event record.~n"
"%% Each event record may be sent for one or more event types.~n"
"%% The mapping to wxWidgets is one record per class.~n~n",[]),
@@ -1104,7 +1104,7 @@ gen_event_recs() ->
w("-record(wx, {id, %% Integer Identity of object.~n"
" obj, %% Object reference that was used in the connect call.~n"
" userData, %% User data specified in the connect call.~n"
- " event}).%% The event record ~n~n",[]),
+ " event}).%% The event record~n~n",[]),
w("%% Here comes the definitions of all event records.~n"
"%% they contain the event type and possible some extra information.~n~n",[]),
Types = [build_event_rec(C) || {_,C=#class{event=Evs}} <- get(), Evs =/= false],
@@ -1157,7 +1157,7 @@ build_event_rec(Class=#class{name=Name, event=Evs}) ->
%% false -> w("%% This event will be handled by other handlers~n",[])
%% end,
w("%% Callback event: {@link ~s}~n", [Name]),
- w("-record(~s, {type}). ~n~n", [Rec]);
+ w("-record(~s, {type}).~n~n", [Rec]);
false ->
w("%% @type ~s() = #~s{type=wxEventType(),~s}.~n",
[Rec,Rec,args(GetType,",",Attr)]),
@@ -1167,7 +1167,7 @@ build_event_rec(Class=#class{name=Name, event=Evs}) ->
%% false -> w("%% This event will be handled by other handlers~n",[])
%% end,
w("%% Callback event: {@link ~s}~n", [Name]),
- w("-record(~s,{type, ~s}). ~n~n", [Rec,args(GetName,",",Attr)])
+ w("-record(~s,{type, ~s}).~n~n", [Rec,args(GetName,",",Attr)])
end,
EvTypes.
@@ -1197,7 +1197,7 @@ gen_funcnames() ->
open_write("../src/gen/wxe_debug.hrl"),
erl_copyright(),
w("%% This file is generated DO NOT EDIT~n~n", []),
- w("wxdebug_table() -> ~n[~n", []),
+ w("wxdebug_table() ->~n[~n", []),
w(" {0, {wx, internal_batch_start, 0}},~n", []),
w(" {1, {wx, internal_batch_end, 0}},~n", []),
w(" {4, {wxObject, internal_destroy, 1}},~n", []),
diff --git a/lib/wx/api_gen/wxapi.conf b/lib/wx/api_gen/wxapi.conf
index 4bb358ebc9..4f7bbfedef 100644
--- a/lib/wx/api_gen/wxapi.conf
+++ b/lib/wx/api_gen/wxapi.conf
@@ -757,7 +757,7 @@
{'EditLabel',[{"textControlClass",nowhere}]},
'EnsureVisible',
{'FindItem',3},'GetColumn','GetColumnCount','GetColumnWidth','GetCountPerPage',
- %%'GetEditControl',
+ 'GetEditControl',
'GetImageList','GetItem','GetItemBackgroundColour',
'GetItemCount',{'GetItemData', [{return, {base,int}}]},
'GetItemFont','GetItemPosition','GetItemRect',
diff --git a/lib/wx/c_src/Makefile.in b/lib/wx/c_src/Makefile.in
index 2f04b1dbf6..5a0b4ce8ef 100644
--- a/lib/wx/c_src/Makefile.in
+++ b/lib/wx/c_src/Makefile.in
@@ -1,19 +1,19 @@
#
# %CopyrightBegin%
-#
-# Copyright Ericsson AB 2008-2009. All Rights Reserved.
-#
+#
+# Copyright Ericsson AB 2008-2010. All Rights Reserved.
+#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
-#
+#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
-#
+#
# %CopyrightEnd%
#
@@ -47,14 +47,11 @@ ERL_DIR = @ERLANG_ROOT_DIR@
ERL_INCS = -I$(ERL_DIR)/usr/include
else
-ERLANG_OSTYPE = @WXERL_SYS_TYPE@
-
-ERL_INCS= -I$(ERL_TOP)/erts/emulator/beam \
- -I$(ERL_TOP)/erts/emulator/sys/$(ERLANG_OSTYPE) \
- -I$(ERL_TOP)/erts/include/internal \
- -I$(ERL_TOP)/erts/include/internal/$(ERLANG_OSTYPE) \
- -I$(ERL_TOP)/erts/include \
- -I$(ERL_TOP)/erts/include/$(ERLANG_OSTYPE)
+
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp_ded.mk
+
+ERL_INCS= $(DED_INCLUDES)
endif
diff --git a/lib/wx/c_src/gen/gl_fdefs.h b/lib/wx/c_src/gen/gl_fdefs.h
index 5fcd2d8e9b..f8851ddb83 100644
--- a/lib/wx/c_src/gen/gl_fdefs.h
+++ b/lib/wx/c_src/gen/gl_fdefs.h
@@ -1,19 +1,19 @@
/*
* %CopyrightBegin%
- *
- * Copyright Ericsson AB 2008-2009. All Rights Reserved.
- *
+ *
+ * Copyright Ericsson AB 2008-2010. All Rights Reserved.
+ *
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
* compliance with the License. You should have received a copy of the
* Erlang Public License along with this software. If not, it can be
* retrieved online at http://www.erlang.org/.
- *
+ *
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
- *
+ *
* %CopyrightEnd%
*/
/***** This file is generated do not edit ****/
diff --git a/lib/wx/c_src/gen/gl_finit.h b/lib/wx/c_src/gen/gl_finit.h
index dac74ca7b6..a22192d06a 100644
--- a/lib/wx/c_src/gen/gl_finit.h
+++ b/lib/wx/c_src/gen/gl_finit.h
@@ -1,19 +1,19 @@
/*
* %CopyrightBegin%
- *
- * Copyright Ericsson AB 2008-2009. All Rights Reserved.
- *
+ *
+ * Copyright Ericsson AB 2008-2010. All Rights Reserved.
+ *
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
* compliance with the License. You should have received a copy of the
* Erlang Public License along with this software. If not, it can be
* retrieved online at http://www.erlang.org/.
- *
+ *
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
- *
+ *
* %CopyrightEnd%
*/
/***** This file is generated do not edit ****/
diff --git a/lib/wx/c_src/gen/gl_funcs.cpp b/lib/wx/c_src/gen/gl_funcs.cpp
index 784731f02c..41a5524891 100644
--- a/lib/wx/c_src/gen/gl_funcs.cpp
+++ b/lib/wx/c_src/gen/gl_funcs.cpp
@@ -1,19 +1,19 @@
/*
* %CopyrightBegin%
- *
- * Copyright Ericsson AB 2008-2009. All Rights Reserved.
- *
+ *
+ * Copyright Ericsson AB 2008-2010. All Rights Reserved.
+ *
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
* compliance with the License. You should have received a copy of the
* Erlang Public License along with this software. If not, it can be
* retrieved online at http://www.erlang.org/.
- *
+ *
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
- *
+ *
* %CopyrightEnd%
*/
/***** This file is generated do not edit ****/
diff --git a/lib/wx/c_src/gen/glu_finit.h b/lib/wx/c_src/gen/glu_finit.h
index 7135c53243..2f0e2d15e4 100644
--- a/lib/wx/c_src/gen/glu_finit.h
+++ b/lib/wx/c_src/gen/glu_finit.h
@@ -1,19 +1,19 @@
/*
* %CopyrightBegin%
- *
- * Copyright Ericsson AB 2008-2009. All Rights Reserved.
- *
+ *
+ * Copyright Ericsson AB 2008-2010. All Rights Reserved.
+ *
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
* compliance with the License. You should have received a copy of the
* Erlang Public License along with this software. If not, it can be
* retrieved online at http://www.erlang.org/.
- *
+ *
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
- *
+ *
* %CopyrightEnd%
*/
/***** This file is generated do not edit ****/
diff --git a/lib/wx/c_src/gen/wxe_derived_dest.h b/lib/wx/c_src/gen/wxe_derived_dest.h
index ec56df7d4e..57b0faa2cb 100644
--- a/lib/wx/c_src/gen/wxe_derived_dest.h
+++ b/lib/wx/c_src/gen/wxe_derived_dest.h
@@ -1,235 +1,235 @@
/*
* %CopyrightBegin%
- *
- * Copyright Ericsson AB 2008-2009. All Rights Reserved.
- *
+ *
+ * Copyright Ericsson AB 2008-2010. All Rights Reserved.
+ *
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
* compliance with the License. You should have received a copy of the
* Erlang Public License along with this software. If not, it can be
* retrieved online at http://www.erlang.org/.
- *
+ *
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
- *
+ *
* %CopyrightEnd%
*/
-/***** This file is generated do not edit ****/
+/***** This file is generated do not edit ****/
-class EwxWindow : public wxWindow {
- public: ~EwxWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxWindow : public wxWindow {
+ public: ~EwxWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxWindow(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxWindow(parent,id,pos,size,style) {};
EwxWindow() : wxWindow() {};
-};
+};
-class EwxFrame : public wxFrame {
- public: ~EwxFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFrame : public wxFrame {
+ public: ~EwxFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFrame(wxWindow * parent,wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,long style) : wxFrame(parent,id,title,pos,size,style) {};
EwxFrame() : wxFrame() {};
-};
+};
-class EwxMiniFrame : public wxMiniFrame {
- public: ~EwxMiniFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMiniFrame : public wxMiniFrame {
+ public: ~EwxMiniFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMiniFrame(wxWindow * parent,wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,long style) : wxMiniFrame(parent,id,title,pos,size,style) {};
EwxMiniFrame() : wxMiniFrame() {};
-};
+};
-class EwxSplashScreen : public wxSplashScreen {
- public: ~EwxSplashScreen() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxSplashScreen : public wxSplashScreen {
+ public: ~EwxSplashScreen() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxSplashScreen(const wxBitmap& bitmap,long splashStyle,int milliseconds,wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxSplashScreen(bitmap,splashStyle,milliseconds,parent,id,pos,size,style) {};
EwxSplashScreen() : wxSplashScreen() {};
-};
+};
-class EwxPanel : public wxPanel {
- public: ~EwxPanel() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPanel : public wxPanel {
+ public: ~EwxPanel() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPanel(wxWindow * parent,int x,int y,int width,int height,long style) : wxPanel(parent,x,y,width,height,style) {};
EwxPanel(wxWindow * parent,wxWindowID winid,const wxPoint& pos,const wxSize& size,long style) : wxPanel(parent,winid,pos,size,style) {};
EwxPanel() : wxPanel() {};
-};
+};
-class EwxScrolledWindow : public wxScrolledWindow {
- public: ~EwxScrolledWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxScrolledWindow : public wxScrolledWindow {
+ public: ~EwxScrolledWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxScrolledWindow(wxWindow * parent,wxWindowID winid,const wxPoint& pos,const wxSize& size,long style) : wxScrolledWindow(parent,winid,pos,size,style) {};
EwxScrolledWindow() : wxScrolledWindow() {};
-};
+};
-class EwxSashWindow : public wxSashWindow {
- public: ~EwxSashWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxSashWindow : public wxSashWindow {
+ public: ~EwxSashWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxSashWindow(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxSashWindow(parent,id,pos,size,style) {};
EwxSashWindow() : wxSashWindow() {};
-};
+};
-class EwxSashLayoutWindow : public wxSashLayoutWindow {
- public: ~EwxSashLayoutWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxSashLayoutWindow : public wxSashLayoutWindow {
+ public: ~EwxSashLayoutWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxSashLayoutWindow(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxSashLayoutWindow(parent,id,pos,size,style) {};
EwxSashLayoutWindow() : wxSashLayoutWindow() {};
-};
+};
-class EwxGrid : public wxGrid {
- public: ~EwxGrid() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxGrid : public wxGrid {
+ public: ~EwxGrid() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxGrid(wxWindow * parent,int x,int y,int w,int h,long style) : wxGrid(parent,x,y,w,h,style) {};
EwxGrid(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxGrid(parent,id,pos,size,style) {};
EwxGrid() : wxGrid() {};
-};
+};
-class EwxMirrorDC : public wxMirrorDC {
- public: ~EwxMirrorDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMirrorDC : public wxMirrorDC {
+ public: ~EwxMirrorDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMirrorDC(wxDC& dc,bool mirror) : wxMirrorDC(dc,mirror) {};
-};
+};
-class EwxScreenDC : public wxScreenDC {
- public: ~EwxScreenDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxScreenDC : public wxScreenDC {
+ public: ~EwxScreenDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxScreenDC() : wxScreenDC() {};
-};
+};
-class EwxPostScriptDC : public wxPostScriptDC {
- public: ~EwxPostScriptDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPostScriptDC : public wxPostScriptDC {
+ public: ~EwxPostScriptDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPostScriptDC(const wxPrintData& printData) : wxPostScriptDC(printData) {};
EwxPostScriptDC() : wxPostScriptDC() {};
-};
+};
-class EwxWindowDC : public wxWindowDC {
- public: ~EwxWindowDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxWindowDC : public wxWindowDC {
+ public: ~EwxWindowDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxWindowDC(wxWindow * win) : wxWindowDC(win) {};
EwxWindowDC() : wxWindowDC() {};
-};
+};
-class EwxClientDC : public wxClientDC {
- public: ~EwxClientDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxClientDC : public wxClientDC {
+ public: ~EwxClientDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxClientDC(wxWindow * win) : wxClientDC(win) {};
EwxClientDC() : wxClientDC() {};
-};
+};
-class EwxPaintDC : public wxPaintDC {
- public: ~EwxPaintDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPaintDC : public wxPaintDC {
+ public: ~EwxPaintDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPaintDC(wxWindow * win) : wxPaintDC(win) {};
EwxPaintDC() : wxPaintDC() {};
-};
+};
-class EwxMemoryDC : public wxMemoryDC {
- public: ~EwxMemoryDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMemoryDC : public wxMemoryDC {
+ public: ~EwxMemoryDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMemoryDC(wxDC * dc) : wxMemoryDC(dc) {};
EwxMemoryDC(wxBitmap& dc) : wxMemoryDC(dc) {};
EwxMemoryDC() : wxMemoryDC() {};
-};
+};
-class EwxBufferedDC : public wxBufferedDC {
- public: ~EwxBufferedDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxBufferedDC : public wxBufferedDC {
+ public: ~EwxBufferedDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxBufferedDC(wxDC * dc,const wxSize& area,int style) : wxBufferedDC(dc,area,style) {};
EwxBufferedDC(wxDC * dc,wxBitmap& buffer,int style) : wxBufferedDC(dc,buffer,style) {};
EwxBufferedDC() : wxBufferedDC() {};
-};
+};
-class EwxBufferedPaintDC : public wxBufferedPaintDC {
- public: ~EwxBufferedPaintDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxBufferedPaintDC : public wxBufferedPaintDC {
+ public: ~EwxBufferedPaintDC() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxBufferedPaintDC(wxWindow * window,wxBitmap& buffer,int style) : wxBufferedPaintDC(window,buffer,style) {};
EwxBufferedPaintDC(wxWindow * window,int style) : wxBufferedPaintDC(window,style) {};
-};
+};
-class EwxMenuBar : public wxMenuBar {
- public: ~EwxMenuBar() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMenuBar : public wxMenuBar {
+ public: ~EwxMenuBar() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMenuBar(long style) : wxMenuBar(style) {};
EwxMenuBar() : wxMenuBar() {};
-};
+};
-class EwxMenu : public wxMenu {
- public: ~EwxMenu() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMenu : public wxMenu {
+ public: ~EwxMenu() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMenu(const wxString& title,long style) : wxMenu(title,style) {};
EwxMenu(long style) : wxMenu(style) {};
-};
+};
-class EwxMenuItem : public wxMenuItem {
- public: ~EwxMenuItem() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMenuItem : public wxMenuItem {
+ public: ~EwxMenuItem() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMenuItem(wxMenu * parentMenu,int id,const wxString& text,const wxString& help,wxItemKind kind,wxMenu * subMenu) : wxMenuItem(parentMenu,id,text,help,kind,subMenu) {};
-};
+};
-class EwxStatusBar : public wxStatusBar {
- public: ~EwxStatusBar() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxStatusBar : public wxStatusBar {
+ public: ~EwxStatusBar() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxStatusBar(wxWindow * parent,wxWindowID winid,long style) : wxStatusBar(parent,winid,style) {};
EwxStatusBar() : wxStatusBar() {};
-};
+};
-class EwxBitmap : public wxBitmap {
- public: ~EwxBitmap() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxBitmap : public wxBitmap {
+ public: ~EwxBitmap() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxBitmap(const char * bits,int width,int height,int depth) : wxBitmap(bits,width,height,depth) {};
EwxBitmap(int width,int height,int depth) : wxBitmap(width,height,depth) {};
EwxBitmap(const wxString& filename,wxBitmapType type) : wxBitmap(filename,type) {};
EwxBitmap(const wxImage& image,int depth) : wxBitmap(image,depth) {};
EwxBitmap() : wxBitmap() {};
-};
+};
-class EwxIcon : public wxIcon {
- public: ~EwxIcon() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxIcon : public wxIcon {
+ public: ~EwxIcon() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxIcon(const wxString& filename,wxBitmapType type,int desiredWidth,int desiredHeight) : wxIcon(filename,type,desiredWidth,desiredHeight) {};
EwxIcon(const wxIconLocation& loc) : wxIcon(loc) {};
EwxIcon() : wxIcon() {};
-};
+};
-class EwxCursor : public wxCursor {
- public: ~EwxCursor() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxCursor : public wxCursor {
+ public: ~EwxCursor() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxCursor(const char * bits,int width,int height,int hotSpotX,int hotSpotY) : wxCursor(bits,width,height,hotSpotX,hotSpotY) {};
EwxCursor(int cursorId) : wxCursor(cursorId) {};
EwxCursor(const wxImage& image) : wxCursor(image) {};
EwxCursor() : wxCursor() {};
-};
+};
-class EwxMask : public wxMask {
- public: ~EwxMask() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMask : public wxMask {
+ public: ~EwxMask() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMask(const wxBitmap& bitmap,int paletteIndex) : wxMask(bitmap,paletteIndex) {};
EwxMask(const wxBitmap& bitmap,const wxColour& colour) : wxMask(bitmap,colour) {};
EwxMask(const wxBitmap& bitmap) : wxMask(bitmap) {};
EwxMask() : wxMask() {};
-};
+};
-class EwxImage : public wxImage {
- public: ~EwxImage() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxImage : public wxImage {
+ public: ~EwxImage() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxImage(int width,int height,unsigned char * data,unsigned char * alpha,bool static_data) : wxImage(width,height,data,alpha,static_data) {};
EwxImage(int width,int height,unsigned char * data,bool static_data) : wxImage(width,height,data,static_data) {};
EwxImage(int width,int height,bool clear) : wxImage(width,height,clear) {};
EwxImage(const wxString& name,const wxString& mimetype,int index) : wxImage(name,mimetype,index) {};
EwxImage(const wxString& name,long type,int index) : wxImage(name,type,index) {};
EwxImage() : wxImage() {};
-};
+};
-class EwxBrush : public wxBrush {
- public: ~EwxBrush() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxBrush : public wxBrush {
+ public: ~EwxBrush() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxBrush(const wxColour& colour,int style) : wxBrush(colour,style) {};
EwxBrush(const wxBitmap& stippleBitmap) : wxBrush(stippleBitmap) {};
EwxBrush() : wxBrush() {};
-};
+};
-class EwxPen : public wxPen {
- public: ~EwxPen() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPen : public wxPen {
+ public: ~EwxPen() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPen(const wxColour& colour,int width,int style) : wxPen(colour,width,style) {};
EwxPen() : wxPen() {};
-};
+};
-class EwxRegion : public wxRegion {
- public: ~EwxRegion() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxRegion : public wxRegion {
+ public: ~EwxRegion() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxRegion(wxCoord x,wxCoord y,wxCoord w,wxCoord h) : wxRegion(x,y,w,h) {};
EwxRegion(const wxPoint& topLeft,const wxPoint& bottomRight) : wxRegion(topLeft,bottomRight) {};
EwxRegion(const wxBitmap& bmp) : wxRegion(bmp) {};
EwxRegion(const wxRect& rect) : wxRegion(rect) {};
EwxRegion() : wxRegion() {};
-};
+};
-class EwxAcceleratorTable : public wxAcceleratorTable {
- public: ~EwxAcceleratorTable() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxAcceleratorTable : public wxAcceleratorTable {
+ public: ~EwxAcceleratorTable() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxAcceleratorTable(int n,const wxAcceleratorEntry * entries) : wxAcceleratorTable(n,entries) {};
EwxAcceleratorTable() : wxAcceleratorTable() {};
-};
+};
-class EwxCaret : public wxCaret {
- public: ~EwxCaret() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxCaret : public wxCaret {
+ public: ~EwxCaret() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxCaret(wxWindow * window,int width,int height) : wxCaret(window,width,height) {};
EwxCaret(wxWindow * window,const wxSize& size) : wxCaret(window,size) {};
-};
+};
-class EwxSizerItem : public wxSizerItem {
- public: ~EwxSizerItem() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxSizerItem : public wxSizerItem {
+ public: ~EwxSizerItem() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxSizerItem(int width,int height,int proportion,int flag,int border,wxObject * userData) : wxSizerItem(width,height,proportion,flag,border,userData) {};
EwxSizerItem(wxWindow * window,int proportion,int flag,int border,wxObject * userData) : wxSizerItem(window,proportion,flag,border,userData) {};
EwxSizerItem(wxSizer * window,int proportion,int flag,int border,wxObject * userData) : wxSizerItem(window,proportion,flag,border,userData) {};
@@ -237,483 +237,483 @@ class EwxSizerItem : public wxSizerItem {
EwxSizerItem(wxWindow * window,const wxSizerFlags& flags) : wxSizerItem(window,flags) {};
EwxSizerItem(wxSizer * window,const wxSizerFlags& flags) : wxSizerItem(window,flags) {};
EwxSizerItem() : wxSizerItem() {};
-};
+};
-class EwxBoxSizer : public wxBoxSizer {
- public: ~EwxBoxSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxBoxSizer : public wxBoxSizer {
+ public: ~EwxBoxSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxBoxSizer(int orient) : wxBoxSizer(orient) {};
-};
+};
-class EwxStaticBoxSizer : public wxStaticBoxSizer {
- public: ~EwxStaticBoxSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxStaticBoxSizer : public wxStaticBoxSizer {
+ public: ~EwxStaticBoxSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxStaticBoxSizer(int orient,wxWindow * win,const wxString& label) : wxStaticBoxSizer(orient,win,label) {};
EwxStaticBoxSizer(wxStaticBox * box,int orient) : wxStaticBoxSizer(box,orient) {};
-};
+};
-class EwxGridSizer : public wxGridSizer {
- public: ~EwxGridSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxGridSizer : public wxGridSizer {
+ public: ~EwxGridSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxGridSizer(int rows,int cols,int vgap,int hgap) : wxGridSizer(rows,cols,vgap,hgap) {};
EwxGridSizer(int cols,int vgap,int hgap) : wxGridSizer(cols,vgap,hgap) {};
-};
+};
-class EwxFlexGridSizer : public wxFlexGridSizer {
- public: ~EwxFlexGridSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFlexGridSizer : public wxFlexGridSizer {
+ public: ~EwxFlexGridSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFlexGridSizer(int rows,int cols,int vgap,int hgap) : wxFlexGridSizer(rows,cols,vgap,hgap) {};
EwxFlexGridSizer(int cols,int vgap,int hgap) : wxFlexGridSizer(cols,vgap,hgap) {};
-};
+};
-class EwxGridBagSizer : public wxGridBagSizer {
- public: ~EwxGridBagSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxGridBagSizer : public wxGridBagSizer {
+ public: ~EwxGridBagSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxGridBagSizer(int vgap,int hgap) : wxGridBagSizer(vgap,hgap) {};
-};
+};
-class EwxStdDialogButtonSizer : public wxStdDialogButtonSizer {
- public: ~EwxStdDialogButtonSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxStdDialogButtonSizer : public wxStdDialogButtonSizer {
+ public: ~EwxStdDialogButtonSizer() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxStdDialogButtonSizer() : wxStdDialogButtonSizer() {};
-};
+};
-class EwxFont : public wxFont {
- public: ~EwxFont() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFont : public wxFont {
+ public: ~EwxFont() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFont(int size,int family,int style,int weight,bool underlined,const wxString& face,wxFontEncoding encoding) : wxFont(size,family,style,weight,underlined,face,encoding) {};
EwxFont(const wxString& fontname) : wxFont(fontname) {};
EwxFont() : wxFont() {};
-};
+};
-class EwxToolTip : public wxToolTip {
- public: ~EwxToolTip() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxToolTip : public wxToolTip {
+ public: ~EwxToolTip() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxToolTip(const wxString& tip) : wxToolTip(tip) {};
-};
+};
-class EwxButton : public wxButton {
- public: ~EwxButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxButton : public wxButton {
+ public: ~EwxButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxButton(wxWindow * parent,wxWindowID id,const wxString& label,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxButton(parent,id,label,pos,size,style,validator) {};
EwxButton() : wxButton() {};
-};
+};
-class EwxBitmapButton : public wxBitmapButton {
- public: ~EwxBitmapButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxBitmapButton : public wxBitmapButton {
+ public: ~EwxBitmapButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxBitmapButton(wxWindow * parent,wxWindowID id,const wxBitmap& bitmap,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxBitmapButton(parent,id,bitmap,pos,size,style,validator) {};
EwxBitmapButton() : wxBitmapButton() {};
-};
+};
-class EwxToggleButton : public wxToggleButton {
- public: ~EwxToggleButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxToggleButton : public wxToggleButton {
+ public: ~EwxToggleButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxToggleButton(wxWindow * parent,wxWindowID id,const wxString& label,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxToggleButton(parent,id,label,pos,size,style,validator) {};
EwxToggleButton() : wxToggleButton() {};
-};
+};
-class EwxCalendarCtrl : public wxCalendarCtrl {
- public: ~EwxCalendarCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxCalendarCtrl : public wxCalendarCtrl {
+ public: ~EwxCalendarCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxCalendarCtrl(wxWindow * parent,wxWindowID id,const wxDateTime& date,const wxPoint& pos,const wxSize& size,long style) : wxCalendarCtrl(parent,id,date,pos,size,style) {};
EwxCalendarCtrl() : wxCalendarCtrl() {};
-};
+};
-class EwxCheckBox : public wxCheckBox {
- public: ~EwxCheckBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxCheckBox : public wxCheckBox {
+ public: ~EwxCheckBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxCheckBox(wxWindow * parent,wxWindowID id,const wxString& label,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxCheckBox(parent,id,label,pos,size,style,validator) {};
EwxCheckBox() : wxCheckBox() {};
-};
+};
-class EwxCheckListBox : public wxCheckListBox {
- public: ~EwxCheckListBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxCheckListBox : public wxCheckListBox {
+ public: ~EwxCheckListBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxCheckListBox(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,const wxArrayString& choices,long style,const wxValidator& validator) : wxCheckListBox(parent,id,pos,size,choices,style,validator) {};
EwxCheckListBox() : wxCheckListBox() {};
-};
+};
-class EwxChoice : public wxChoice {
- public: ~EwxChoice() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxChoice : public wxChoice {
+ public: ~EwxChoice() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxChoice(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,const wxArrayString& choices,long style,const wxValidator& validator) : wxChoice(parent,id,pos,size,choices,style,validator) {};
EwxChoice() : wxChoice() {};
-};
+};
-class EwxComboBox : public wxComboBox {
- public: ~EwxComboBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxComboBox : public wxComboBox {
+ public: ~EwxComboBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxComboBox(wxWindow * parent,wxWindowID id,const wxString& value,const wxPoint& pos,const wxSize& size,const wxArrayString& choices,long style,const wxValidator& validator) : wxComboBox(parent,id,value,pos,size,choices,style,validator) {};
EwxComboBox() : wxComboBox() {};
-};
+};
-class EwxGauge : public wxGauge {
- public: ~EwxGauge() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxGauge : public wxGauge {
+ public: ~EwxGauge() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxGauge(wxWindow * parent,wxWindowID id,int range,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxGauge(parent,id,range,pos,size,style,validator) {};
EwxGauge() : wxGauge() {};
-};
+};
-class EwxGenericDirCtrl : public wxGenericDirCtrl {
- public: ~EwxGenericDirCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxGenericDirCtrl : public wxGenericDirCtrl {
+ public: ~EwxGenericDirCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxGenericDirCtrl(wxWindow * parent,const wxWindowID id,const wxString& dir,const wxPoint& pos,const wxSize& size,long style,const wxString& filter,int defaultFilter) : wxGenericDirCtrl(parent,id,dir,pos,size,style,filter,defaultFilter) {};
EwxGenericDirCtrl() : wxGenericDirCtrl() {};
-};
+};
-class EwxStaticBox : public wxStaticBox {
- public: ~EwxStaticBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxStaticBox : public wxStaticBox {
+ public: ~EwxStaticBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxStaticBox(wxWindow * parent,wxWindowID id,const wxString& label,const wxPoint& pos,const wxSize& size,long style) : wxStaticBox(parent,id,label,pos,size,style) {};
EwxStaticBox() : wxStaticBox() {};
-};
+};
-class EwxStaticLine : public wxStaticLine {
- public: ~EwxStaticLine() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxStaticLine : public wxStaticLine {
+ public: ~EwxStaticLine() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxStaticLine(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxStaticLine(parent,id,pos,size,style) {};
EwxStaticLine() : wxStaticLine() {};
-};
+};
-class EwxListBox : public wxListBox {
- public: ~EwxListBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxListBox : public wxListBox {
+ public: ~EwxListBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxListBox(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,const wxArrayString& choices,long style,const wxValidator& validator) : wxListBox(parent,id,pos,size,choices,style,validator) {};
EwxListBox() : wxListBox() {};
-};
+};
-class EwxListCtrl : public wxListCtrl {
- public: ~EwxListCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxListCtrl : public wxListCtrl {
+ public: ~EwxListCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxListCtrl(wxWindow * parent,wxWindowID winid,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxListCtrl(parent,winid,pos,size,style,validator) {};
EwxListCtrl() : wxListCtrl() {};
-};
+};
-class EwxListItem : public wxListItem {
- public: ~EwxListItem() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxListItem : public wxListItem {
+ public: ~EwxListItem() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxListItem(const wxListItem& item) : wxListItem(item) {};
EwxListItem() : wxListItem() {};
-};
+};
-class EwxImageList : public wxImageList {
- public: ~EwxImageList() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxImageList : public wxImageList {
+ public: ~EwxImageList() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxImageList(int width,int height,bool mask,int initialCount) : wxImageList(width,height,mask,initialCount) {};
EwxImageList() : wxImageList() {};
-};
+};
-class EwxTextCtrl : public wxTextCtrl {
- public: ~EwxTextCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxTextCtrl : public wxTextCtrl {
+ public: ~EwxTextCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxTextCtrl(wxWindow * parent,wxWindowID id,const wxString& value,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxTextCtrl(parent,id,value,pos,size,style,validator) {};
EwxTextCtrl() : wxTextCtrl() {};
-};
+};
-class EwxNotebook : public wxNotebook {
- public: ~EwxNotebook() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxNotebook : public wxNotebook {
+ public: ~EwxNotebook() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxNotebook(wxWindow * parent,wxWindowID winid,const wxPoint& pos,const wxSize& size,long style) : wxNotebook(parent,winid,pos,size,style) {};
EwxNotebook() : wxNotebook() {};
-};
+};
-class EwxChoicebook : public wxChoicebook {
- public: ~EwxChoicebook() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxChoicebook : public wxChoicebook {
+ public: ~EwxChoicebook() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxChoicebook(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxChoicebook(parent,id,pos,size,style) {};
EwxChoicebook() : wxChoicebook() {};
-};
+};
-class EwxToolbook : public wxToolbook {
- public: ~EwxToolbook() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxToolbook : public wxToolbook {
+ public: ~EwxToolbook() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxToolbook(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxToolbook(parent,id,pos,size,style) {};
EwxToolbook() : wxToolbook() {};
-};
+};
-class EwxListbook : public wxListbook {
- public: ~EwxListbook() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxListbook : public wxListbook {
+ public: ~EwxListbook() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxListbook(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxListbook(parent,id,pos,size,style) {};
EwxListbook() : wxListbook() {};
-};
+};
-class EwxTreebook : public wxTreebook {
- public: ~EwxTreebook() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxTreebook : public wxTreebook {
+ public: ~EwxTreebook() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxTreebook(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxTreebook(parent,id,pos,size,style) {};
EwxTreebook() : wxTreebook() {};
-};
+};
-class EwxTreeCtrl : public wxTreeCtrl {
- public: ~EwxTreeCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxTreeCtrl : public wxTreeCtrl {
+ public: ~EwxTreeCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxTreeCtrl(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxTreeCtrl(parent,id,pos,size,style,validator) {};
EwxTreeCtrl() : wxTreeCtrl() {};
-};
+};
-class EwxScrollBar : public wxScrollBar {
- public: ~EwxScrollBar() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxScrollBar : public wxScrollBar {
+ public: ~EwxScrollBar() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxScrollBar(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxScrollBar(parent,id,pos,size,style,validator) {};
EwxScrollBar() : wxScrollBar() {};
-};
+};
-class EwxSpinButton : public wxSpinButton {
- public: ~EwxSpinButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxSpinButton : public wxSpinButton {
+ public: ~EwxSpinButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxSpinButton(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxSpinButton(parent,id,pos,size,style) {};
EwxSpinButton() : wxSpinButton() {};
-};
+};
-class EwxSpinCtrl : public wxSpinCtrl {
- public: ~EwxSpinCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxSpinCtrl : public wxSpinCtrl {
+ public: ~EwxSpinCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxSpinCtrl(wxWindow * parent,wxWindowID id,const wxString& value,const wxPoint& pos,const wxSize& size,long style,int min,int max,int initial) : wxSpinCtrl(parent,id,value,pos,size,style,min,max,initial) {};
EwxSpinCtrl() : wxSpinCtrl() {};
-};
+};
-class EwxStaticText : public wxStaticText {
- public: ~EwxStaticText() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxStaticText : public wxStaticText {
+ public: ~EwxStaticText() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxStaticText(wxWindow * parent,wxWindowID id,const wxString& label,const wxPoint& pos,const wxSize& size,long style) : wxStaticText(parent,id,label,pos,size,style) {};
EwxStaticText() : wxStaticText() {};
-};
+};
-class EwxStaticBitmap : public wxStaticBitmap {
- public: ~EwxStaticBitmap() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxStaticBitmap : public wxStaticBitmap {
+ public: ~EwxStaticBitmap() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxStaticBitmap(wxWindow * parent,wxWindowID id,const wxBitmap& label,const wxPoint& pos,const wxSize& size,long style) : wxStaticBitmap(parent,id,label,pos,size,style) {};
EwxStaticBitmap() : wxStaticBitmap() {};
-};
+};
-class EwxRadioBox : public wxRadioBox {
- public: ~EwxRadioBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxRadioBox : public wxRadioBox {
+ public: ~EwxRadioBox() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxRadioBox(wxWindow * parent,wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,const wxArrayString& choices,int majorDim,long style,const wxValidator& val) : wxRadioBox(parent,id,title,pos,size,choices,majorDim,style,val) {};
-};
+};
-class EwxRadioButton : public wxRadioButton {
- public: ~EwxRadioButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxRadioButton : public wxRadioButton {
+ public: ~EwxRadioButton() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxRadioButton(wxWindow * parent,wxWindowID id,const wxString& label,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxRadioButton(parent,id,label,pos,size,style,validator) {};
EwxRadioButton() : wxRadioButton() {};
-};
+};
-class EwxSlider : public wxSlider {
- public: ~EwxSlider() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxSlider : public wxSlider {
+ public: ~EwxSlider() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxSlider(wxWindow * parent,wxWindowID id,int value,int minValue,int maxValue,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxSlider(parent,id,value,minValue,maxValue,pos,size,style,validator) {};
EwxSlider() : wxSlider() {};
-};
+};
-class EwxDialog : public wxDialog {
- public: ~EwxDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxDialog : public wxDialog {
+ public: ~EwxDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxDialog(wxWindow * parent,wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,long style) : wxDialog(parent,id,title,pos,size,style) {};
EwxDialog() : wxDialog() {};
-};
+};
-class EwxColourDialog : public wxColourDialog {
- public: ~EwxColourDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxColourDialog : public wxColourDialog {
+ public: ~EwxColourDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxColourDialog(wxWindow * parent,wxColourData * data) : wxColourDialog(parent,data) {};
EwxColourDialog() : wxColourDialog() {};
-};
+};
-class EwxColourData : public wxColourData {
- public: ~EwxColourData() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxColourData : public wxColourData {
+ public: ~EwxColourData() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxColourData(const wxColourData& data) : wxColourData(data) {};
EwxColourData() : wxColourData() {};
-};
+};
-class EwxPalette : public wxPalette {
- public: ~EwxPalette() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPalette : public wxPalette {
+ public: ~EwxPalette() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPalette(int n,const unsigned char * red,const unsigned char * green,const unsigned char * blue) : wxPalette(n,red,green,blue) {};
EwxPalette() : wxPalette() {};
-};
+};
-class EwxDirDialog : public wxDirDialog {
- public: ~EwxDirDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxDirDialog : public wxDirDialog {
+ public: ~EwxDirDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxDirDialog(wxWindow * parent,const wxString& title,const wxString& defaultPath,long style,const wxPoint& pos,const wxSize& sz) : wxDirDialog(parent,title,defaultPath,style,pos,sz) {};
-};
+};
-class EwxFileDialog : public wxFileDialog {
- public: ~EwxFileDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFileDialog : public wxFileDialog {
+ public: ~EwxFileDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFileDialog(wxWindow * parent,const wxString& message,const wxString& defaultDir,const wxString& defaultFile,const wxString& wildCard,long style,const wxPoint& pos,const wxSize& sz) : wxFileDialog(parent,message,defaultDir,defaultFile,wildCard,style,pos,sz) {};
-};
+};
-class EwxFilePickerCtrl : public wxFilePickerCtrl {
- public: ~EwxFilePickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFilePickerCtrl : public wxFilePickerCtrl {
+ public: ~EwxFilePickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFilePickerCtrl(wxWindow * parent,wxWindowID id,const wxString& path,const wxString& message,const wxString& wildcard,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxFilePickerCtrl(parent,id,path,message,wildcard,pos,size,style,validator) {};
EwxFilePickerCtrl() : wxFilePickerCtrl() {};
-};
+};
-class EwxDirPickerCtrl : public wxDirPickerCtrl {
- public: ~EwxDirPickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxDirPickerCtrl : public wxDirPickerCtrl {
+ public: ~EwxDirPickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxDirPickerCtrl(wxWindow * parent,wxWindowID id,const wxString& path,const wxString& message,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxDirPickerCtrl(parent,id,path,message,pos,size,style,validator) {};
EwxDirPickerCtrl() : wxDirPickerCtrl() {};
-};
+};
-class EwxColourPickerCtrl : public wxColourPickerCtrl {
- public: ~EwxColourPickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxColourPickerCtrl : public wxColourPickerCtrl {
+ public: ~EwxColourPickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxColourPickerCtrl(wxWindow * parent,wxWindowID id,const wxColour& col,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxColourPickerCtrl(parent,id,col,pos,size,style,validator) {};
EwxColourPickerCtrl() : wxColourPickerCtrl() {};
-};
+};
-class EwxDatePickerCtrl : public wxDatePickerCtrl {
- public: ~EwxDatePickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxDatePickerCtrl : public wxDatePickerCtrl {
+ public: ~EwxDatePickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxDatePickerCtrl(wxWindow * parent,wxWindowID id,const wxDateTime& date,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxDatePickerCtrl(parent,id,date,pos,size,style,validator) {};
EwxDatePickerCtrl() : wxDatePickerCtrl() {};
-};
+};
-class EwxFontPickerCtrl : public wxFontPickerCtrl {
- public: ~EwxFontPickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFontPickerCtrl : public wxFontPickerCtrl {
+ public: ~EwxFontPickerCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFontPickerCtrl(wxWindow * parent,wxWindowID id,const wxFont& initial,const wxPoint& pos,const wxSize& size,long style,const wxValidator& validator) : wxFontPickerCtrl(parent,id,initial,pos,size,style,validator) {};
EwxFontPickerCtrl() : wxFontPickerCtrl() {};
-};
+};
-class EwxFindReplaceDialog : public wxFindReplaceDialog {
- public: ~EwxFindReplaceDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFindReplaceDialog : public wxFindReplaceDialog {
+ public: ~EwxFindReplaceDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFindReplaceDialog(wxWindow * parent,wxFindReplaceData * data,const wxString& title,int style) : wxFindReplaceDialog(parent,data,title,style) {};
EwxFindReplaceDialog() : wxFindReplaceDialog() {};
-};
+};
-class EwxFindReplaceData : public wxFindReplaceData {
- public: ~EwxFindReplaceData() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFindReplaceData : public wxFindReplaceData {
+ public: ~EwxFindReplaceData() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFindReplaceData(unsigned int flags) : wxFindReplaceData(flags) {};
EwxFindReplaceData() : wxFindReplaceData() {};
-};
+};
-class EwxMultiChoiceDialog : public wxMultiChoiceDialog {
- public: ~EwxMultiChoiceDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMultiChoiceDialog : public wxMultiChoiceDialog {
+ public: ~EwxMultiChoiceDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMultiChoiceDialog(wxWindow * parent,const wxString& message,const wxString& caption,const wxArrayString& choices,long style,const wxPoint& pos) : wxMultiChoiceDialog(parent,message,caption,choices,style,pos) {};
EwxMultiChoiceDialog() : wxMultiChoiceDialog() {};
-};
+};
-class EwxSingleChoiceDialog : public wxSingleChoiceDialog {
- public: ~EwxSingleChoiceDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxSingleChoiceDialog : public wxSingleChoiceDialog {
+ public: ~EwxSingleChoiceDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxSingleChoiceDialog(wxWindow * parent,const wxString& message,const wxString& caption,const wxArrayString& choices,char ** clientData,long style,const wxPoint& pos) : wxSingleChoiceDialog(parent,message,caption,choices,clientData,style,pos) {};
EwxSingleChoiceDialog() : wxSingleChoiceDialog() {};
-};
+};
-class EwxTextEntryDialog : public wxTextEntryDialog {
- public: ~EwxTextEntryDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxTextEntryDialog : public wxTextEntryDialog {
+ public: ~EwxTextEntryDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxTextEntryDialog(wxWindow * parent,const wxString& message,const wxString& caption,const wxString& value,long style,const wxPoint& pos) : wxTextEntryDialog(parent,message,caption,value,style,pos) {};
-};
+};
-class EwxPasswordEntryDialog : public wxPasswordEntryDialog {
- public: ~EwxPasswordEntryDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPasswordEntryDialog : public wxPasswordEntryDialog {
+ public: ~EwxPasswordEntryDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPasswordEntryDialog(wxWindow * parent,const wxString& message,const wxString& caption,const wxString& value,long style,const wxPoint& pos) : wxPasswordEntryDialog(parent,message,caption,value,style,pos) {};
-};
+};
-class EwxFontData : public wxFontData {
- public: ~EwxFontData() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFontData : public wxFontData {
+ public: ~EwxFontData() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFontData(const wxFontData& data) : wxFontData(data) {};
EwxFontData() : wxFontData() {};
-};
+};
-class EwxFontDialog : public wxFontDialog {
- public: ~EwxFontDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxFontDialog : public wxFontDialog {
+ public: ~EwxFontDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxFontDialog(wxWindow * parent,const wxFontData& data) : wxFontDialog(parent,data) {};
EwxFontDialog() : wxFontDialog() {};
-};
+};
-class EwxProgressDialog : public wxProgressDialog {
- public: ~EwxProgressDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxProgressDialog : public wxProgressDialog {
+ public: ~EwxProgressDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxProgressDialog(const wxString& title,const wxString& message,int maximum,wxWindow * parent,int style) : wxProgressDialog(title,message,maximum,parent,style) {};
-};
+};
-class EwxMessageDialog : public wxMessageDialog {
- public: ~EwxMessageDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMessageDialog : public wxMessageDialog {
+ public: ~EwxMessageDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMessageDialog(wxWindow * parent,const wxString& message,const wxString& caption,long style,const wxPoint& pos) : wxMessageDialog(parent,message,caption,style,pos) {};
-};
+};
-class EwxPageSetupDialog : public wxPageSetupDialog {
- public: ~EwxPageSetupDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPageSetupDialog : public wxPageSetupDialog {
+ public: ~EwxPageSetupDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPageSetupDialog(wxWindow * parent,wxPageSetupDialogData * data) : wxPageSetupDialog(parent,data) {};
-};
+};
-class EwxPageSetupDialogData : public wxPageSetupDialogData {
- public: ~EwxPageSetupDialogData() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPageSetupDialogData : public wxPageSetupDialogData {
+ public: ~EwxPageSetupDialogData() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPageSetupDialogData(const wxPrintData& printData) : wxPageSetupDialogData(printData) {};
EwxPageSetupDialogData(const wxPageSetupDialogData& printData) : wxPageSetupDialogData(printData) {};
EwxPageSetupDialogData() : wxPageSetupDialogData() {};
-};
+};
-class EwxPrintDialog : public wxPrintDialog {
- public: ~EwxPrintDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPrintDialog : public wxPrintDialog {
+ public: ~EwxPrintDialog() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPrintDialog(wxWindow * parent,wxPrintDialogData * data) : wxPrintDialog(parent,data) {};
EwxPrintDialog(wxWindow * parent,wxPrintData * data) : wxPrintDialog(parent,data) {};
-};
+};
-class EwxPrintDialogData : public wxPrintDialogData {
- public: ~EwxPrintDialogData() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPrintDialogData : public wxPrintDialogData {
+ public: ~EwxPrintDialogData() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPrintDialogData(const wxPrintDialogData& dialogData) : wxPrintDialogData(dialogData) {};
EwxPrintDialogData(const wxPrintData& dialogData) : wxPrintDialogData(dialogData) {};
EwxPrintDialogData() : wxPrintDialogData() {};
-};
+};
-class EwxPrintData : public wxPrintData {
- public: ~EwxPrintData() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPrintData : public wxPrintData {
+ public: ~EwxPrintData() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPrintData(const wxPrintData& printData) : wxPrintData(printData) {};
EwxPrintData() : wxPrintData() {};
-};
+};
-class EwxPrintPreview : public wxPrintPreview {
- public: ~EwxPrintPreview() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPrintPreview : public wxPrintPreview {
+ public: ~EwxPrintPreview() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPrintPreview(wxPrintout * printout,wxPrintout * printoutForPrinting,wxPrintData * data) : wxPrintPreview(printout,printoutForPrinting,data) {};
EwxPrintPreview(wxPrintout * printout,wxPrintout * printoutForPrinting,wxPrintDialogData * data) : wxPrintPreview(printout,printoutForPrinting,data) {};
-};
+};
-class EwxPreviewFrame : public wxPreviewFrame {
- public: ~EwxPreviewFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPreviewFrame : public wxPreviewFrame {
+ public: ~EwxPreviewFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPreviewFrame(wxPrintPreview * preview,wxWindow * parent,const wxString& title,const wxPoint& pos,const wxSize& size,long style) : wxPreviewFrame(preview,parent,title,pos,size,style) {};
-};
+};
-class EwxPreviewControlBar : public wxPreviewControlBar {
- public: ~EwxPreviewControlBar() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPreviewControlBar : public wxPreviewControlBar {
+ public: ~EwxPreviewControlBar() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPreviewControlBar(wxPrintPreview * preview,long buttons,wxWindow * parent,const wxPoint& pos,const wxSize& size,long style) : wxPreviewControlBar(preview,buttons,parent,pos,size,style) {};
-};
+};
-class EwxPrinter : public wxPrinter {
- public: ~EwxPrinter() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPrinter : public wxPrinter {
+ public: ~EwxPrinter() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPrinter(wxPrintDialogData * data) : wxPrinter(data) {};
-};
+};
-class EwxXmlResource : public wxXmlResource {
- public: ~EwxXmlResource() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxXmlResource : public wxXmlResource {
+ public: ~EwxXmlResource() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxXmlResource(const wxString& filemask,int flags,const wxString& domain) : wxXmlResource(filemask,flags,domain) {};
EwxXmlResource(int flags,const wxString& domain) : wxXmlResource(flags,domain) {};
-};
+};
-class EwxHtmlEasyPrinting : public wxHtmlEasyPrinting {
- public: ~EwxHtmlEasyPrinting() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxHtmlEasyPrinting : public wxHtmlEasyPrinting {
+ public: ~EwxHtmlEasyPrinting() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxHtmlEasyPrinting(const wxString& name,wxWindow * parentWindow) : wxHtmlEasyPrinting(name,parentWindow) {};
-};
+};
-class EwxGLCanvas : public wxGLCanvas {
- public: ~EwxGLCanvas() {deleteActiveGL(this);((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxGLCanvas : public wxGLCanvas {
+ public: ~EwxGLCanvas() {deleteActiveGL(this);((WxeApp *)wxTheApp)->clearPtr(this);};
EwxGLCanvas(wxWindow * parent,const wxGLContext * shared,wxWindowID id,const wxPoint& pos,const wxSize& size,long style,const wxString& name,int * attribList,const wxPalette& palette) : wxGLCanvas(parent,shared,id,pos,size,style,name,attribList,palette) {};
EwxGLCanvas(wxWindow * parent,const wxGLCanvas * shared,wxWindowID id,const wxPoint& pos,const wxSize& size,long style,const wxString& name,int * attribList,const wxPalette& palette) : wxGLCanvas(parent,shared,id,pos,size,style,name,attribList,palette) {};
EwxGLCanvas(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style,const wxString& name,int * attribList,const wxPalette& palette) : wxGLCanvas(parent,id,pos,size,style,name,attribList,palette) {};
-};
+};
-class EwxAuiManager : public wxAuiManager {
- public: ~EwxAuiManager() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxAuiManager : public wxAuiManager {
+ public: ~EwxAuiManager() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxAuiManager(wxWindow * managed_wnd,unsigned int flags) : wxAuiManager(managed_wnd,flags) {};
-};
+};
-class EwxAuiNotebook : public wxAuiNotebook {
- public: ~EwxAuiNotebook() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxAuiNotebook : public wxAuiNotebook {
+ public: ~EwxAuiNotebook() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxAuiNotebook(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxAuiNotebook(parent,id,pos,size,style) {};
EwxAuiNotebook() : wxAuiNotebook() {};
-};
+};
-class EwxMDIParentFrame : public wxMDIParentFrame {
- public: ~EwxMDIParentFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMDIParentFrame : public wxMDIParentFrame {
+ public: ~EwxMDIParentFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMDIParentFrame(wxWindow * parent,wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,long style) : wxMDIParentFrame(parent,id,title,pos,size,style) {};
EwxMDIParentFrame() : wxMDIParentFrame() {};
-};
+};
-class EwxMDIChildFrame : public wxMDIChildFrame {
- public: ~EwxMDIChildFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMDIChildFrame : public wxMDIChildFrame {
+ public: ~EwxMDIChildFrame() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMDIChildFrame(wxMDIParentFrame * parent,wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,long style) : wxMDIChildFrame(parent,id,title,pos,size,style) {};
EwxMDIChildFrame() : wxMDIChildFrame() {};
-};
+};
-class EwxMDIClientWindow : public wxMDIClientWindow {
- public: ~EwxMDIClientWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxMDIClientWindow : public wxMDIClientWindow {
+ public: ~EwxMDIClientWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxMDIClientWindow(wxMDIParentFrame * parent,long style) : wxMDIClientWindow(parent,style) {};
EwxMDIClientWindow() : wxMDIClientWindow() {};
-};
+};
-class EwxLayoutAlgorithm : public wxLayoutAlgorithm {
- public: ~EwxLayoutAlgorithm() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxLayoutAlgorithm : public wxLayoutAlgorithm {
+ public: ~EwxLayoutAlgorithm() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxLayoutAlgorithm() : wxLayoutAlgorithm() {};
-};
+};
-class EwxPrintout : public wxPrintout {
- public: ~EwxPrintout() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxPrintout : public wxPrintout {
+ public: ~EwxPrintout() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxPrintout(const wxString& title) : wxPrintout(title) {};
-};
+};
-class EwxClipboard : public wxClipboard {
- public: ~EwxClipboard() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxClipboard : public wxClipboard {
+ public: ~EwxClipboard() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxClipboard() : wxClipboard() {};
-};
+};
-class EwxSplitterWindow : public wxSplitterWindow {
- public: ~EwxSplitterWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxSplitterWindow : public wxSplitterWindow {
+ public: ~EwxSplitterWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxSplitterWindow(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxSplitterWindow(parent,id,pos,size,style) {};
EwxSplitterWindow() : wxSplitterWindow() {};
-};
+};
-class EwxHtmlWindow : public wxHtmlWindow {
- public: ~EwxHtmlWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
+class EwxHtmlWindow : public wxHtmlWindow {
+ public: ~EwxHtmlWindow() {((WxeApp *)wxTheApp)->clearPtr(this);};
EwxHtmlWindow(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxHtmlWindow(parent,id,pos,size,style) {};
EwxHtmlWindow() : wxHtmlWindow() {};
-};
+};
void WxeApp::delete_object(void *ptr, wxeRefData *refd) {
switch(refd->type) {
diff --git a/lib/wx/c_src/gen/wxe_events.cpp b/lib/wx/c_src/gen/wxe_events.cpp
index de55f9d8da..a6857442c9 100644
--- a/lib/wx/c_src/gen/wxe_events.cpp
+++ b/lib/wx/c_src/gen/wxe_events.cpp
@@ -17,7 +17,7 @@
* %CopyrightEnd%
*/
-/***** This file is generated do not edit ****/
+/***** This file is generated do not edit ****/
#include <wx/wx.h>
#include "../wxe_impl.h"
@@ -31,7 +31,7 @@ wxeEtype::wxeEtype(const char *name, int Id) {eName = name;cID = Id;}
WX_DECLARE_HASH_MAP(int, wxeEtype*, wxIntegerHash, wxIntegerEqual, wxeETmap );
-wxeETmap etmap;
+wxeETmap etmap;
int wxeEventTypeFromAtom(char *etype_atom) {
wxeETmap::iterator it;
@@ -48,9 +48,9 @@ int wxeEventTypeFromAtom(char *etype_atom) {
return -1;
}
-void initEventTable()
+void initEventTable()
{
- struct { int ev_type; int class_id; const char * ev_name;} event_types[] =
+ struct { int ev_type; int class_id; const char * ev_name;} event_types[] =
{
{wxEVT_NULL, 0, "null"},
{wxEVT_COMMAND_BUTTON_CLICKED, 163, "command_button_clicked"},
@@ -274,27 +274,27 @@ void initEventTable()
{wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, 220, "command_auinotebook_end_drag"},
{wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION, 220, "command_auinotebook_drag_motion"},
{wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND, 220, "command_auinotebook_allow_dnd"},
-#if wxCHECK_VERSION(2,8,5)
+#if wxCHECK_VERSION(2,8,5)
{wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, 220, "command_auinotebook_tab_middle_down"},
-#endif
-#if wxCHECK_VERSION(2,8,5)
+#endif
+#if wxCHECK_VERSION(2,8,5)
{wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP, 220, "command_auinotebook_tab_middle_up"},
-#endif
-#if wxCHECK_VERSION(2,8,5)
+#endif
+#if wxCHECK_VERSION(2,8,5)
{wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, 220, "command_auinotebook_tab_right_down"},
-#endif
-#if wxCHECK_VERSION(2,8,5)
+#endif
+#if wxCHECK_VERSION(2,8,5)
{wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, 220, "command_auinotebook_tab_right_up"},
-#endif
-#if wxCHECK_VERSION(2,8,5)
+#endif
+#if wxCHECK_VERSION(2,8,5)
{wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, 220, "command_auinotebook_page_closed"},
-#endif
-#if wxCHECK_VERSION(2,8,5)
+#endif
+#if wxCHECK_VERSION(2,8,5)
{wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, 220, "command_auinotebook_drag_done"},
-#endif
-#if wxCHECK_VERSION(2,8,5)
+#endif
+#if wxCHECK_VERSION(2,8,5)
{wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, 220, "command_auinotebook_bg_dclick"},
-#endif
+#endif
{wxEVT_AUI_PANE_BUTTON, 221, "aui_pane_button"},
{wxEVT_AUI_PANE_CLOSE, 221, "aui_pane_close"},
{wxEVT_AUI_PANE_MAXIMIZE, 221, "aui_pane_maximize"},
@@ -305,7 +305,7 @@ void initEventTable()
};
for(int i=0; event_types[i].ev_type != -1; i++) {
if(NULL == etmap[event_types[i].ev_type]) {
- etmap[event_types[i].ev_type] =
+ etmap[event_types[i].ev_type] =
new wxeEtype(event_types[i].ev_name, event_types[i].class_id);
} else {
wxeEtype *prev = etmap[event_types[i].ev_type];
@@ -319,21 +319,21 @@ void initEventTable()
}
}
-void wxeEvtListener::forward(wxEvent& event)
-{
+void wxeEvtListener::forward(wxEvent& event)
+{
#ifdef DEBUG
- if(!sendevent(&event, port))
+ if(!sendevent(&event, port))
fprintf(stderr, "Couldn't send event!\r\n");
#else
sendevent(&event, port);
#endif
}
-int getRef(void* ptr, wxeMemEnv* memenv)
-{
+int getRef(void* ptr, wxeMemEnv* memenv)
+{
WxeApp * app = (WxeApp *) wxTheApp;
return app->getRef(ptr,memenv);
-}
+}
bool sendevent(wxEvent *event, ErlDrvPort port)
{
diff --git a/lib/wx/c_src/gen/wxe_funcs.cpp b/lib/wx/c_src/gen/wxe_funcs.cpp
index 532fee24b2..c8549d0716 100644
--- a/lib/wx/c_src/gen/wxe_funcs.cpp
+++ b/lib/wx/c_src/gen/wxe_funcs.cpp
@@ -17,7 +17,7 @@
* %CopyrightEnd%
*/
-/***** This file is generated do not edit ****/
+/***** This file is generated do not edit ****/
#include <wx/wx.h>
#include "../wxe_impl.h"
@@ -28,16 +28,16 @@
void WxeApp::wxe_dispatch(wxeCommand& Ecmd)
{
- char * bp = Ecmd.buffer;
+ char * bp = Ecmd.buffer;
wxeMemEnv *memenv = getMemEnv(Ecmd.port);
wxeReturn rt = wxeReturn(WXE_DRV_PORT, Ecmd.caller, true);
- try {
- switch (Ecmd.op)
+ try {
+ switch (Ecmd.op)
{
- case DESTROY_OBJECT: {
+ case DESTROY_OBJECT: {
wxObject *This = (wxObject *) getPtr(bp,memenv); if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This; }
- } break;
+ } break;
case WXE_REGISTER_OBJECT: {
registerPid(bp, Ecmd.caller, memenv);
rt.addAtom("ok");
@@ -110,19 +110,19 @@ case 101: { // wxEvtHandler::Disconnect
break;
}
-case wxWindow_new_0: { // wxWindow::wxWindow
+case wxWindow_new_0: { // wxWindow::wxWindow
wxWindow * Result = new EwxWindow();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_new_3: { // wxWindow::wxWindow
+case wxWindow_new_3: { // wxWindow::wxWindow
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -138,86 +138,86 @@ case wxWindow_new_3: { // wxWindow::wxWindow
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxWindow * Result = new EwxWindow(parent,(wxWindowID) *id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_CacheBestSize: { // wxWindow::CacheBestSize
+case wxWindow_CacheBestSize: { // wxWindow::CacheBestSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->CacheBestSize(size);
- break;
+ break;
}
-case wxWindow_CaptureMouse: { // wxWindow::CaptureMouse
+case wxWindow_CaptureMouse: { // wxWindow::CaptureMouse
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CaptureMouse();
- break;
+ break;
}
-case wxWindow_Center: { // wxWindow::Center
+case wxWindow_Center: { // wxWindow::Center
int dir=wxBOTH;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
dir = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Center(dir);
- break;
+ break;
}
-case wxWindow_CenterOnParent: { // wxWindow::CenterOnParent
+case wxWindow_CenterOnParent: { // wxWindow::CenterOnParent
int dir=wxBOTH;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
dir = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->CenterOnParent(dir);
- break;
+ break;
}
-case wxWindow_Centre: { // wxWindow::Centre
+case wxWindow_Centre: { // wxWindow::Centre
int dir=wxBOTH;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
dir = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Centre(dir);
- break;
+ break;
}
-case wxWindow_CentreOnParent: { // wxWindow::CentreOnParent
+case wxWindow_CentreOnParent: { // wxWindow::CentreOnParent
int dir=wxBOTH;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
dir = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->CentreOnParent(dir);
- break;
+ break;
}
-case wxWindow_ClearBackground: { // wxWindow::ClearBackground
+case wxWindow_ClearBackground: { // wxWindow::ClearBackground
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ClearBackground();
- break;
+ break;
}
-case wxWindow_ClientToScreen_2: { // wxWindow::ClientToScreen
+case wxWindow_ClientToScreen_2: { // wxWindow::ClientToScreen
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -226,9 +226,9 @@ case wxWindow_ClientToScreen_2: { // wxWindow::ClientToScreen
rt.addInt(*x);
rt.addInt(*y);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxWindow_ClientToScreen_1: { // wxWindow::ClientToScreen
+case wxWindow_ClientToScreen_1: { // wxWindow::ClientToScreen
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -236,23 +236,23 @@ case wxWindow_ClientToScreen_1: { // wxWindow::ClientToScreen
if(!This) throw wxe_badarg(0);
wxPoint Result = This->ClientToScreen(pt);
rt.add(Result);
- break;
+ break;
}
-case wxWindow_Close: { // wxWindow::Close
+case wxWindow_Close: { // wxWindow::Close
bool force=false;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
force = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Close(force);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_ConvertDialogToPixels: { // wxWindow::ConvertDialogToPixels
+case wxWindow_ConvertDialogToPixels: { // wxWindow::ConvertDialogToPixels
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * szW = (int *) bp; bp += 4;
int * szH = (int *) bp; bp += 4;
@@ -260,9 +260,9 @@ case wxWindow_ConvertDialogToPixels: { // wxWindow::ConvertDialogToPixels
if(!This) throw wxe_badarg(0);
wxSize Result = This->ConvertDialogToPixels(sz);
rt.add(Result);
- break;
+ break;
}
-case wxWindow_ConvertPixelsToDialog: { // wxWindow::ConvertPixelsToDialog
+case wxWindow_ConvertPixelsToDialog: { // wxWindow::ConvertPixelsToDialog
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * szW = (int *) bp; bp += 4;
int * szH = (int *) bp; bp += 4;
@@ -270,57 +270,57 @@ case wxWindow_ConvertPixelsToDialog: { // wxWindow::ConvertPixelsToDialog
if(!This) throw wxe_badarg(0);
wxSize Result = This->ConvertPixelsToDialog(sz);
rt.add(Result);
- break;
+ break;
}
-case wxWindow_Destroy: { // wxWindow::Destroy
+case wxWindow_Destroy: { // wxWindow::Destroy
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Destroy();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_DestroyChildren: { // wxWindow::DestroyChildren
+case wxWindow_DestroyChildren: { // wxWindow::DestroyChildren
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DestroyChildren();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_Disable: { // wxWindow::Disable
+case wxWindow_Disable: { // wxWindow::Disable
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Disable();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_Enable: { // wxWindow::Enable
+case wxWindow_Enable: { // wxWindow::Enable
bool enable=true;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Enable(enable);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_FindFocus: { // wxWindow::FindFocus
+case wxWindow_FindFocus: { // wxWindow::FindFocus
wxWindow * Result = (wxWindow*)wxWindow::FindFocus();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_FindWindow_1_0: { // wxWindow::FindWindow
+case wxWindow_FindWindow_1_0: { // wxWindow::FindWindow
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * winid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->FindWindow((long) *winid);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_FindWindow_1_1: { // wxWindow::FindWindow
+case wxWindow_FindWindow_1_1: { // wxWindow::FindWindow
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -328,122 +328,122 @@ case wxWindow_FindWindow_1_1: { // wxWindow::FindWindow
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->FindWindow(name);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_FindWindowById: { // wxWindow::FindWindowById
+case wxWindow_FindWindowById: { // wxWindow::FindWindowById
const wxWindow * parent=NULL;
int * winid = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxWindow * Result = (wxWindow*)wxWindow::FindWindowById((long) *winid,parent);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_FindWindowByName: { // wxWindow::FindWindowByName
+case wxWindow_FindWindowByName: { // wxWindow::FindWindowByName
const wxWindow * parent=NULL;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
bp += *nameLen+((8-((4+ *nameLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxWindow * Result = (wxWindow*)wxWindow::FindWindowByName(name,parent);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_FindWindowByLabel: { // wxWindow::FindWindowByLabel
+case wxWindow_FindWindowByLabel: { // wxWindow::FindWindowByLabel
const wxWindow * parent=NULL;
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxWindow * Result = (wxWindow*)wxWindow::FindWindowByLabel(label,parent);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_Fit: { // wxWindow::Fit
+case wxWindow_Fit: { // wxWindow::Fit
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Fit();
- break;
+ break;
}
-case wxWindow_FitInside: { // wxWindow::FitInside
+case wxWindow_FitInside: { // wxWindow::FitInside
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->FitInside();
- break;
+ break;
}
-case wxWindow_Freeze: { // wxWindow::Freeze
+case wxWindow_Freeze: { // wxWindow::Freeze
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Freeze();
- break;
+ break;
}
-case wxWindow_GetAcceleratorTable: { // wxWindow::GetAcceleratorTable
+case wxWindow_GetAcceleratorTable: { // wxWindow::GetAcceleratorTable
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAcceleratorTable * Result = (wxAcceleratorTable*)This->GetAcceleratorTable();
rt.addRef(getRef((void *)Result,memenv), "wxAcceleratorTable");
- break;
+ break;
}
-case wxWindow_GetBackgroundColour: { // wxWindow::GetBackgroundColour
+case wxWindow_GetBackgroundColour: { // wxWindow::GetBackgroundColour
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetBackgroundColour();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetBackgroundStyle: { // wxWindow::GetBackgroundStyle
+case wxWindow_GetBackgroundStyle: { // wxWindow::GetBackgroundStyle
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetBackgroundStyle();
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_GetBestSize: { // wxWindow::GetBestSize
+case wxWindow_GetBestSize: { // wxWindow::GetBestSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetBestSize();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetCaret: { // wxWindow::GetCaret
+case wxWindow_GetCaret: { // wxWindow::GetCaret
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCaret * Result = (wxCaret*)This->GetCaret();
rt.addRef(getRef((void *)Result,memenv), "wxCaret");
- break;
+ break;
}
-case wxWindow_GetCapture: { // wxWindow::GetCapture
+case wxWindow_GetCapture: { // wxWindow::GetCapture
wxWindow * Result = (wxWindow*)wxWindow::GetCapture();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_GetCharHeight: { // wxWindow::GetCharHeight
+case wxWindow_GetCharHeight: { // wxWindow::GetCharHeight
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCharHeight();
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_GetCharWidth: { // wxWindow::GetCharWidth
+case wxWindow_GetCharWidth: { // wxWindow::GetCharWidth
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCharWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_GetChildren: { // wxWindow::GetChildren
+case wxWindow_GetChildren: { // wxWindow::GetChildren
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxWindowList Result = This->GetChildren();
@@ -452,194 +452,194 @@ case wxWindow_GetChildren: { // wxWindow::GetChildren
wxWindow * ResultTmp = *it;
rt.addRef(getRef((void *)ResultTmp,memenv), "wxWindow"); i++;}
rt.endList(Result.GetCount());
- break;
+ break;
}
-case wxWindow_GetClientSize: { // wxWindow::GetClientSize
+case wxWindow_GetClientSize: { // wxWindow::GetClientSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetClientSize();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetContainingSizer: { // wxWindow::GetContainingSizer
+case wxWindow_GetContainingSizer: { // wxWindow::GetContainingSizer
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizer * Result = (wxSizer*)This->GetContainingSizer();
rt.addRef(getRef((void *)Result,memenv), "wxSizer");
- break;
+ break;
}
-case wxWindow_GetCursor: { // wxWindow::GetCursor
+case wxWindow_GetCursor: { // wxWindow::GetCursor
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxCursor * Result = &This->GetCursor();
rt.addRef(getRef((void *)Result,memenv), "wxCursor");
- break;
+ break;
}
-case wxWindow_GetDropTarget: { // wxWindow::GetDropTarget
+case wxWindow_GetDropTarget: { // wxWindow::GetDropTarget
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxDropTarget * Result = (wxDropTarget*)This->GetDropTarget();
rt.addRef(getRef((void *)Result,memenv), "wxDropTarget");
- break;
+ break;
}
-case wxWindow_GetEventHandler: { // wxWindow::GetEventHandler
+case wxWindow_GetEventHandler: { // wxWindow::GetEventHandler
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxEvtHandler * Result = (wxEvtHandler*)This->GetEventHandler();
rt.addRef(getRef((void *)Result,memenv), "wxEvtHandler");
- break;
+ break;
}
-case wxWindow_GetExtraStyle: { // wxWindow::GetExtraStyle
+case wxWindow_GetExtraStyle: { // wxWindow::GetExtraStyle
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetExtraStyle();
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_GetFont: { // wxWindow::GetFont
+case wxWindow_GetFont: { // wxWindow::GetFont
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetFont()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxWindow_GetForegroundColour: { // wxWindow::GetForegroundColour
+case wxWindow_GetForegroundColour: { // wxWindow::GetForegroundColour
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetForegroundColour();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetGrandParent: { // wxWindow::GetGrandParent
+case wxWindow_GetGrandParent: { // wxWindow::GetGrandParent
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetGrandParent();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_GetHandle: { // wxWindow::GetHandle
+case wxWindow_GetHandle: { // wxWindow::GetHandle
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxUIntPtr * Result = (wxUIntPtr*)This->GetHandle();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetHelpText: { // wxWindow::GetHelpText
+case wxWindow_GetHelpText: { // wxWindow::GetHelpText
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetHelpText();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetId: { // wxWindow::GetId
+case wxWindow_GetId: { // wxWindow::GetId
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindowID Result = This->GetId();
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_GetLabel: { // wxWindow::GetLabel
+case wxWindow_GetLabel: { // wxWindow::GetLabel
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLabel();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetMaxSize: { // wxWindow::GetMaxSize
+case wxWindow_GetMaxSize: { // wxWindow::GetMaxSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetMaxSize();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetMinSize: { // wxWindow::GetMinSize
+case wxWindow_GetMinSize: { // wxWindow::GetMinSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetMinSize();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetName: { // wxWindow::GetName
+case wxWindow_GetName: { // wxWindow::GetName
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetName();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetParent: { // wxWindow::GetParent
+case wxWindow_GetParent: { // wxWindow::GetParent
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetParent();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxWindow_GetPosition: { // wxWindow::GetPosition
+case wxWindow_GetPosition: { // wxWindow::GetPosition
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPosition();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetRect: { // wxWindow::GetRect
+case wxWindow_GetRect: { // wxWindow::GetRect
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetRect();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetScreenPosition: { // wxWindow::GetScreenPosition
+case wxWindow_GetScreenPosition: { // wxWindow::GetScreenPosition
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetScreenPosition();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetScreenRect: { // wxWindow::GetScreenRect
+case wxWindow_GetScreenRect: { // wxWindow::GetScreenRect
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetScreenRect();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetScrollPos: { // wxWindow::GetScrollPos
+case wxWindow_GetScrollPos: { // wxWindow::GetScrollPos
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * orient = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetScrollPos((int) *orient);
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_GetScrollRange: { // wxWindow::GetScrollRange
+case wxWindow_GetScrollRange: { // wxWindow::GetScrollRange
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * orient = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetScrollRange((int) *orient);
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_GetScrollThumb: { // wxWindow::GetScrollThumb
+case wxWindow_GetScrollThumb: { // wxWindow::GetScrollThumb
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * orient = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetScrollThumb((int) *orient);
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_GetSize: { // wxWindow::GetSize
+case wxWindow_GetSize: { // wxWindow::GetSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetSize();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetSizer: { // wxWindow::GetSizer
+case wxWindow_GetSizer: { // wxWindow::GetSizer
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizer * Result = (wxSizer*)This->GetSizer();
rt.addRef(getRef((void *)Result,memenv), "wxSizer");
- break;
+ break;
}
-case wxWindow_GetTextExtent: { // wxWindow::GetTextExtent
+case wxWindow_GetTextExtent: { // wxWindow::GetTextExtent
int x;
int y;
int descent;
@@ -649,11 +649,11 @@ case wxWindow_GetTextExtent: { // wxWindow::GetTextExtent
int * stringLen = (int *) bp; bp += 4;
wxString string = wxString(bp, wxConvUTF8);
bp += *stringLen+((8-((0+ *stringLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
theFont = (wxFont *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->GetTextExtent(string,&x,&y,&descent,&externalLeading,theFont);
rt.addInt(x);
@@ -661,107 +661,107 @@ theFont = (wxFont *) getPtr(bp,memenv); bp += 4;
rt.addInt(descent);
rt.addInt(externalLeading);
rt.addTupleCount(4);
- break;
+ break;
}
-case wxWindow_GetToolTip: { // wxWindow::GetToolTip
+case wxWindow_GetToolTip: { // wxWindow::GetToolTip
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxToolTip * Result = (wxToolTip*)This->GetToolTip();
rt.addRef(getRef((void *)Result,memenv), "wxToolTip");
- break;
+ break;
}
-case wxWindow_GetUpdateRegion: { // wxWindow::GetUpdateRegion
+case wxWindow_GetUpdateRegion: { // wxWindow::GetUpdateRegion
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxRegion * Result = &This->GetUpdateRegion();
rt.addRef(getRef((void *)Result,memenv), "wxRegion");
- break;
+ break;
}
-case wxWindow_GetVirtualSize: { // wxWindow::GetVirtualSize
+case wxWindow_GetVirtualSize: { // wxWindow::GetVirtualSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetVirtualSize();
rt.add(Result);
- break;
+ break;
}
-case wxWindow_GetWindowStyleFlag: { // wxWindow::GetWindowStyleFlag
+case wxWindow_GetWindowStyleFlag: { // wxWindow::GetWindowStyleFlag
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetWindowStyleFlag();
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_GetWindowVariant: { // wxWindow::GetWindowVariant
+case wxWindow_GetWindowVariant: { // wxWindow::GetWindowVariant
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWindowVariant();
rt.addInt(Result);
- break;
+ break;
}
-case wxWindow_HasCapture: { // wxWindow::HasCapture
+case wxWindow_HasCapture: { // wxWindow::HasCapture
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasCapture();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_HasScrollbar: { // wxWindow::HasScrollbar
+case wxWindow_HasScrollbar: { // wxWindow::HasScrollbar
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * orient = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasScrollbar((int) *orient);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_HasTransparentBackground: { // wxWindow::HasTransparentBackground
+case wxWindow_HasTransparentBackground: { // wxWindow::HasTransparentBackground
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasTransparentBackground();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_Hide: { // wxWindow::Hide
+case wxWindow_Hide: { // wxWindow::Hide
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Hide();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_InheritAttributes: { // wxWindow::InheritAttributes
+case wxWindow_InheritAttributes: { // wxWindow::InheritAttributes
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->InheritAttributes();
- break;
+ break;
}
-case wxWindow_InitDialog: { // wxWindow::InitDialog
+case wxWindow_InitDialog: { // wxWindow::InitDialog
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->InitDialog();
- break;
+ break;
}
-case wxWindow_InvalidateBestSize: { // wxWindow::InvalidateBestSize
+case wxWindow_InvalidateBestSize: { // wxWindow::InvalidateBestSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->InvalidateBestSize();
- break;
+ break;
}
-case wxWindow_IsEnabled: { // wxWindow::IsEnabled
+case wxWindow_IsEnabled: { // wxWindow::IsEnabled
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEnabled();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_IsExposed_2: { // wxWindow::IsExposed
+case wxWindow_IsExposed_2: { // wxWindow::IsExposed
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsExposed((int) *x,(int) *y);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_IsExposed_4: { // wxWindow::IsExposed
+case wxWindow_IsExposed_4: { // wxWindow::IsExposed
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -770,9 +770,9 @@ case wxWindow_IsExposed_4: { // wxWindow::IsExposed
if(!This) throw wxe_badarg(0);
bool Result = This->IsExposed((int) *x,(int) *y,(int) *w,(int) *h);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_IsExposed_1_0: { // wxWindow::IsExposed
+case wxWindow_IsExposed_1_0: { // wxWindow::IsExposed
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -780,9 +780,9 @@ case wxWindow_IsExposed_1_0: { // wxWindow::IsExposed
if(!This) throw wxe_badarg(0);
bool Result = This->IsExposed(pt);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_IsExposed_1_1: { // wxWindow::IsExposed
+case wxWindow_IsExposed_1_1: { // wxWindow::IsExposed
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -792,174 +792,174 @@ case wxWindow_IsExposed_1_1: { // wxWindow::IsExposed
if(!This) throw wxe_badarg(0);
bool Result = This->IsExposed(rect);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_IsRetained: { // wxWindow::IsRetained
+case wxWindow_IsRetained: { // wxWindow::IsRetained
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsRetained();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_IsShown: { // wxWindow::IsShown
+case wxWindow_IsShown: { // wxWindow::IsShown
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsShown();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_IsTopLevel: { // wxWindow::IsTopLevel
+case wxWindow_IsTopLevel: { // wxWindow::IsTopLevel
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsTopLevel();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_Layout: { // wxWindow::Layout
+case wxWindow_Layout: { // wxWindow::Layout
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Layout();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_LineDown: { // wxWindow::LineDown
+case wxWindow_LineDown: { // wxWindow::LineDown
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->LineDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_LineUp: { // wxWindow::LineUp
+case wxWindow_LineUp: { // wxWindow::LineUp
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->LineUp();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_Lower: { // wxWindow::Lower
+case wxWindow_Lower: { // wxWindow::Lower
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Lower();
- break;
+ break;
}
-case wxWindow_MakeModal: { // wxWindow::MakeModal
+case wxWindow_MakeModal: { // wxWindow::MakeModal
bool modal=true;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
modal = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->MakeModal(modal);
- break;
+ break;
}
-case wxWindow_Move_3: { // wxWindow::Move
+case wxWindow_Move_3: { // wxWindow::Move
int flags=wxSIZE_USE_EXISTING;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Move((int) *x,(int) *y,flags);
- break;
+ break;
}
-case wxWindow_Move_2: { // wxWindow::Move
+case wxWindow_Move_2: { // wxWindow::Move
int flags=wxSIZE_USE_EXISTING;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Move(pt,flags);
- break;
+ break;
}
-case wxWindow_MoveAfterInTabOrder: { // wxWindow::MoveAfterInTabOrder
+case wxWindow_MoveAfterInTabOrder: { // wxWindow::MoveAfterInTabOrder
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->MoveAfterInTabOrder(win);
- break;
+ break;
}
-case wxWindow_MoveBeforeInTabOrder: { // wxWindow::MoveBeforeInTabOrder
+case wxWindow_MoveBeforeInTabOrder: { // wxWindow::MoveBeforeInTabOrder
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->MoveBeforeInTabOrder(win);
- break;
+ break;
}
-case wxWindow_Navigate: { // wxWindow::Navigate
+case wxWindow_Navigate: { // wxWindow::Navigate
int flags=wxNavigationKeyEvent::IsForward;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Navigate(flags);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_PageDown: { // wxWindow::PageDown
+case wxWindow_PageDown: { // wxWindow::PageDown
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->PageDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_PageUp: { // wxWindow::PageUp
+case wxWindow_PageUp: { // wxWindow::PageUp
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->PageUp();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_PopEventHandler: { // wxWindow::PopEventHandler
+case wxWindow_PopEventHandler: { // wxWindow::PopEventHandler
bool deleteHandler=false;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
deleteHandler = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxEvtHandler * Result = (wxEvtHandler*)This->PopEventHandler(deleteHandler);
rt.addRef(getRef((void *)Result,memenv), "wxEvtHandler");
- break;
+ break;
}
-case wxWindow_PopupMenu_2: { // wxWindow::PopupMenu
+case wxWindow_PopupMenu_2: { // wxWindow::PopupMenu
wxPoint pos= wxDefaultPosition;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxMenu *menu = (wxMenu *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
pos = wxPoint(*posX,*posY);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->PopupMenu(menu,pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_PopupMenu_3: { // wxWindow::PopupMenu
+case wxWindow_PopupMenu_3: { // wxWindow::PopupMenu
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxMenu *menu = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
@@ -967,20 +967,20 @@ case wxWindow_PopupMenu_3: { // wxWindow::PopupMenu
if(!This) throw wxe_badarg(0);
bool Result = This->PopupMenu(menu,(int) *x,(int) *y);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_Raise: { // wxWindow::Raise
+case wxWindow_Raise: { // wxWindow::Raise
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Raise();
- break;
+ break;
}
-case wxWindow_Refresh: { // wxWindow::Refresh
+case wxWindow_Refresh: { // wxWindow::Refresh
bool eraseBackground=true;
const wxRect *rect=(const wxRect *) NULL; wxRect rectTmp;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
eraseBackground = *(bool *) bp; bp += 4;
} break;
@@ -992,12 +992,12 @@ case wxWindow_Refresh: { // wxWindow::Refresh
rectTmp = wxRect(*rectX,*rectY,*rectW,*rectH); rect = & rectTmp;
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Refresh(eraseBackground,rect);
- break;
+ break;
}
-case wxWindow_RefreshRect: { // wxWindow::RefreshRect
+case wxWindow_RefreshRect: { // wxWindow::RefreshRect
bool eraseBackground=true;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
@@ -1006,37 +1006,37 @@ case wxWindow_RefreshRect: { // wxWindow::RefreshRect
int * rectH = (int *) bp; bp += 4;
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
eraseBackground = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->RefreshRect(rect,eraseBackground);
- break;
+ break;
}
-case wxWindow_ReleaseMouse: { // wxWindow::ReleaseMouse
+case wxWindow_ReleaseMouse: { // wxWindow::ReleaseMouse
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ReleaseMouse();
- break;
+ break;
}
-case wxWindow_RemoveChild: { // wxWindow::RemoveChild
+case wxWindow_RemoveChild: { // wxWindow::RemoveChild
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *child = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->RemoveChild(child);
- break;
+ break;
}
-case wxWindow_Reparent: { // wxWindow::Reparent
+case wxWindow_Reparent: { // wxWindow::Reparent
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *newParent = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Reparent(newParent);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_ScreenToClient_2: { // wxWindow::ScreenToClient
+case wxWindow_ScreenToClient_2: { // wxWindow::ScreenToClient
int x;
int y;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
@@ -1045,9 +1045,9 @@ case wxWindow_ScreenToClient_2: { // wxWindow::ScreenToClient
rt.addInt(x);
rt.addInt(y);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxWindow_ScreenToClient_1: { // wxWindow::ScreenToClient
+case wxWindow_ScreenToClient_1: { // wxWindow::ScreenToClient
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -1055,31 +1055,31 @@ case wxWindow_ScreenToClient_1: { // wxWindow::ScreenToClient
if(!This) throw wxe_badarg(0);
wxPoint Result = This->ScreenToClient(pt);
rt.add(Result);
- break;
+ break;
}
-case wxWindow_ScrollLines: { // wxWindow::ScrollLines
+case wxWindow_ScrollLines: { // wxWindow::ScrollLines
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * lines = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ScrollLines((int) *lines);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_ScrollPages: { // wxWindow::ScrollPages
+case wxWindow_ScrollPages: { // wxWindow::ScrollPages
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * pages = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ScrollPages((int) *pages);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_ScrollWindow: { // wxWindow::ScrollWindow
+case wxWindow_ScrollWindow: { // wxWindow::ScrollWindow
const wxRect *rect=(wxRect *) NULL; wxRect rectTmp;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * dx = (int *) bp; bp += 4;
int * dy = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -1088,26 +1088,26 @@ case wxWindow_ScrollWindow: { // wxWindow::ScrollWindow
rectTmp = wxRect(*rectX,*rectY,*rectW,*rectH); rect = & rectTmp;
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->ScrollWindow((int) *dx,(int) *dy,rect);
- break;
+ break;
}
-case wxWindow_SetAcceleratorTable: { // wxWindow::SetAcceleratorTable
+case wxWindow_SetAcceleratorTable: { // wxWindow::SetAcceleratorTable
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxAcceleratorTable *accel = (wxAcceleratorTable *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAcceleratorTable(*accel);
- break;
+ break;
}
-case wxWindow_SetAutoLayout: { // wxWindow::SetAutoLayout
+case wxWindow_SetAutoLayout: { // wxWindow::SetAutoLayout
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bool * autoLayout = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAutoLayout((bool) *autoLayout);
- break;
+ break;
}
-case wxWindow_SetBackgroundColour: { // wxWindow::SetBackgroundColour
+case wxWindow_SetBackgroundColour: { // wxWindow::SetBackgroundColour
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -1117,41 +1117,41 @@ case wxWindow_SetBackgroundColour: { // wxWindow::SetBackgroundColour
if(!This) throw wxe_badarg(0);
bool Result = This->SetBackgroundColour(colour);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_SetBackgroundStyle: { // wxWindow::SetBackgroundStyle
+case wxWindow_SetBackgroundStyle: { // wxWindow::SetBackgroundStyle
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxBackgroundStyle style = *(wxBackgroundStyle *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
bool Result = This->SetBackgroundStyle((wxBackgroundStyle) style);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_SetCaret: { // wxWindow::SetCaret
+case wxWindow_SetCaret: { // wxWindow::SetCaret
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxCaret *caret = (wxCaret *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCaret(caret);
- break;
+ break;
}
-case wxWindow_SetClientSize_2: { // wxWindow::SetClientSize
+case wxWindow_SetClientSize_2: { // wxWindow::SetClientSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetClientSize((int) *width,(int) *height);
- break;
+ break;
}
-case wxWindow_SetClientSize_1_0: { // wxWindow::SetClientSize
+case wxWindow_SetClientSize_1_0: { // wxWindow::SetClientSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetClientSize(size);
- break;
+ break;
}
-case wxWindow_SetClientSize_1_1: { // wxWindow::SetClientSize
+case wxWindow_SetClientSize_1_1: { // wxWindow::SetClientSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -1160,42 +1160,42 @@ case wxWindow_SetClientSize_1_1: { // wxWindow::SetClientSize
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
if(!This) throw wxe_badarg(0);
This->SetClientSize(rect);
- break;
+ break;
}
-case wxWindow_SetContainingSizer: { // wxWindow::SetContainingSizer
+case wxWindow_SetContainingSizer: { // wxWindow::SetContainingSizer
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetContainingSizer(sizer);
- break;
+ break;
}
-case wxWindow_SetCursor: { // wxWindow::SetCursor
+case wxWindow_SetCursor: { // wxWindow::SetCursor
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxCursor *cursor = (wxCursor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetCursor(*cursor);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_SetMaxSize: { // wxWindow::SetMaxSize
+case wxWindow_SetMaxSize: { // wxWindow::SetMaxSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * maxSizeW = (int *) bp; bp += 4;
int * maxSizeH = (int *) bp; bp += 4;
wxSize maxSize = wxSize(*maxSizeW,*maxSizeH);
if(!This) throw wxe_badarg(0);
This->SetMaxSize(maxSize);
- break;
+ break;
}
-case wxWindow_SetMinSize: { // wxWindow::SetMinSize
+case wxWindow_SetMinSize: { // wxWindow::SetMinSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * minSizeW = (int *) bp; bp += 4;
int * minSizeH = (int *) bp; bp += 4;
wxSize minSize = wxSize(*minSizeW,*minSizeH);
if(!This) throw wxe_badarg(0);
This->SetMinSize(minSize);
- break;
+ break;
}
-case wxWindow_SetOwnBackgroundColour: { // wxWindow::SetOwnBackgroundColour
+case wxWindow_SetOwnBackgroundColour: { // wxWindow::SetOwnBackgroundColour
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -1204,16 +1204,16 @@ case wxWindow_SetOwnBackgroundColour: { // wxWindow::SetOwnBackgroundColour
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
if(!This) throw wxe_badarg(0);
This->SetOwnBackgroundColour(colour);
- break;
+ break;
}
-case wxWindow_SetOwnFont: { // wxWindow::SetOwnFont
+case wxWindow_SetOwnFont: { // wxWindow::SetOwnFont
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetOwnFont(*font);
- break;
+ break;
}
-case wxWindow_SetOwnForegroundColour: { // wxWindow::SetOwnForegroundColour
+case wxWindow_SetOwnForegroundColour: { // wxWindow::SetOwnForegroundColour
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -1222,43 +1222,43 @@ case wxWindow_SetOwnForegroundColour: { // wxWindow::SetOwnForegroundColour
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
if(!This) throw wxe_badarg(0);
This->SetOwnForegroundColour(colour);
- break;
+ break;
}
-case wxWindow_SetDropTarget: { // wxWindow::SetDropTarget
+case wxWindow_SetDropTarget: { // wxWindow::SetDropTarget
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxDropTarget *dropTarget = (wxDropTarget *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDropTarget(dropTarget);
- break;
+ break;
}
-case wxWindow_SetExtraStyle: { // wxWindow::SetExtraStyle
+case wxWindow_SetExtraStyle: { // wxWindow::SetExtraStyle
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * exStyle = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetExtraStyle((long) *exStyle);
- break;
+ break;
}
-case wxWindow_SetFocus: { // wxWindow::SetFocus
+case wxWindow_SetFocus: { // wxWindow::SetFocus
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFocus();
- break;
+ break;
}
-case wxWindow_SetFocusFromKbd: { // wxWindow::SetFocusFromKbd
+case wxWindow_SetFocusFromKbd: { // wxWindow::SetFocusFromKbd
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFocusFromKbd();
- break;
+ break;
}
-case wxWindow_SetFont: { // wxWindow::SetFont
+case wxWindow_SetFont: { // wxWindow::SetFont
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetFont(*font);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_SetForegroundColour: { // wxWindow::SetForegroundColour
+case wxWindow_SetForegroundColour: { // wxWindow::SetForegroundColour
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -1268,50 +1268,50 @@ case wxWindow_SetForegroundColour: { // wxWindow::SetForegroundColour
if(!This) throw wxe_badarg(0);
bool Result = This->SetForegroundColour(colour);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_SetHelpText: { // wxWindow::SetHelpText
+case wxWindow_SetHelpText: { // wxWindow::SetHelpText
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetHelpText(text);
- break;
+ break;
}
-case wxWindow_SetId: { // wxWindow::SetId
+case wxWindow_SetId: { // wxWindow::SetId
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * winid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetId((wxWindowID) *winid);
- break;
+ break;
}
-case wxWindow_SetLabel: { // wxWindow::SetLabel
+case wxWindow_SetLabel: { // wxWindow::SetLabel
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetLabel(label);
- break;
+ break;
}
-case wxWindow_SetName: { // wxWindow::SetName
+case wxWindow_SetName: { // wxWindow::SetName
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
bp += *nameLen+((8-((0+ *nameLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetName(name);
- break;
+ break;
}
-case wxWindow_SetPalette: { // wxWindow::SetPalette
+case wxWindow_SetPalette: { // wxWindow::SetPalette
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxPalette *pal = (wxPalette *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPalette(*pal);
- break;
+ break;
}
-case wxWindow_SetScrollbar: { // wxWindow::SetScrollbar
+case wxWindow_SetScrollbar: { // wxWindow::SetScrollbar
bool refresh=true;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * orient = (int *) bp; bp += 4;
@@ -1319,31 +1319,31 @@ case wxWindow_SetScrollbar: { // wxWindow::SetScrollbar
int * thumbVisible = (int *) bp; bp += 4;
int * range = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
refresh = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetScrollbar((int) *orient,(int) *pos,(int) *thumbVisible,(int) *range,refresh);
- break;
+ break;
}
-case wxWindow_SetScrollPos: { // wxWindow::SetScrollPos
+case wxWindow_SetScrollPos: { // wxWindow::SetScrollPos
bool refresh=true;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * orient = (int *) bp; bp += 4;
int * pos = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
refresh = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetScrollPos((int) *orient,(int) *pos,refresh);
- break;
+ break;
}
-case wxWindow_SetSize_5: { // wxWindow::SetSize
+case wxWindow_SetSize_5: { // wxWindow::SetSize
int sizeFlags=wxSIZE_AUTO;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
@@ -1351,33 +1351,33 @@ case wxWindow_SetSize_5: { // wxWindow::SetSize
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
sizeFlags = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetSize((int) *x,(int) *y,(int) *width,(int) *height,sizeFlags);
- break;
+ break;
}
-case wxWindow_SetSize_2_0: { // wxWindow::SetSize
+case wxWindow_SetSize_2_0: { // wxWindow::SetSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSize((int) *width,(int) *height);
- break;
+ break;
}
-case wxWindow_SetSize_1: { // wxWindow::SetSize
+case wxWindow_SetSize_1: { // wxWindow::SetSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetSize(size);
- break;
+ break;
}
-case wxWindow_SetSize_2_1: { // wxWindow::SetSize
+case wxWindow_SetSize_2_1: { // wxWindow::SetSize
int sizeFlags=wxSIZE_AUTO;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
@@ -1386,16 +1386,16 @@ case wxWindow_SetSize_2_1: { // wxWindow::SetSize
int * rectH = (int *) bp; bp += 4;
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
sizeFlags = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetSize(rect,sizeFlags);
- break;
+ break;
}
-case wxWindow_SetSizeHints_3: { // wxWindow::SetSizeHints
+case wxWindow_SetSizeHints_3: { // wxWindow::SetSizeHints
int maxW=wxDefaultCoord;
int maxH=wxDefaultCoord;
int incW=wxDefaultCoord;
@@ -1404,7 +1404,7 @@ case wxWindow_SetSizeHints_3: { // wxWindow::SetSizeHints
int * minW = (int *) bp; bp += 4;
int * minH = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
maxW = (int)*(int *) bp; bp += 4;
} break;
@@ -1417,12 +1417,12 @@ case wxWindow_SetSizeHints_3: { // wxWindow::SetSizeHints
case 4: {bp += 4;
incH = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetSizeHints((int) *minW,(int) *minH,maxW,maxH,incW,incH);
- break;
+ break;
}
-case wxWindow_SetSizeHints_2: { // wxWindow::SetSizeHints
+case wxWindow_SetSizeHints_2: { // wxWindow::SetSizeHints
wxSize maxSize= wxDefaultSize;
wxSize incSize= wxDefaultSize;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
@@ -1430,7 +1430,7 @@ case wxWindow_SetSizeHints_2: { // wxWindow::SetSizeHints
int * minSizeH = (int *) bp; bp += 4;
wxSize minSize = wxSize(*minSizeW,*minSizeH);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * maxSizeW = (int *) bp; bp += 4;
int * maxSizeH = (int *) bp; bp += 4;
@@ -1443,371 +1443,371 @@ case wxWindow_SetSizeHints_2: { // wxWindow::SetSizeHints
incSize = wxSize(*incSizeW,*incSizeH);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetSizeHints(minSize,maxSize,incSize);
- break;
+ break;
}
-case wxWindow_SetSizer: { // wxWindow::SetSizer
+case wxWindow_SetSizer: { // wxWindow::SetSizer
bool deleteOld=true;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
deleteOld = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetSizer(sizer,deleteOld);
- break;
+ break;
}
-case wxWindow_SetSizerAndFit: { // wxWindow::SetSizerAndFit
+case wxWindow_SetSizerAndFit: { // wxWindow::SetSizerAndFit
bool deleteOld=true;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
deleteOld = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetSizerAndFit(sizer,deleteOld);
- break;
+ break;
}
-case wxWindow_SetThemeEnabled: { // wxWindow::SetThemeEnabled
+case wxWindow_SetThemeEnabled: { // wxWindow::SetThemeEnabled
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bool * enableTheme = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetThemeEnabled((bool) *enableTheme);
- break;
+ break;
}
-case wxWindow_SetToolTip_1_0: { // wxWindow::SetToolTip
+case wxWindow_SetToolTip_1_0: { // wxWindow::SetToolTip
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * tipLen = (int *) bp; bp += 4;
wxString tip = wxString(bp, wxConvUTF8);
bp += *tipLen+((8-((0+ *tipLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetToolTip(tip);
- break;
+ break;
}
-case wxWindow_SetToolTip_1_1: { // wxWindow::SetToolTip
+case wxWindow_SetToolTip_1_1: { // wxWindow::SetToolTip
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxToolTip *tip = (wxToolTip *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetToolTip(tip);
- break;
+ break;
}
-case wxWindow_SetVirtualSize_1: { // wxWindow::SetVirtualSize
+case wxWindow_SetVirtualSize_1: { // wxWindow::SetVirtualSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetVirtualSize(size);
- break;
+ break;
}
-case wxWindow_SetVirtualSize_2: { // wxWindow::SetVirtualSize
+case wxWindow_SetVirtualSize_2: { // wxWindow::SetVirtualSize
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetVirtualSize((int) *x,(int) *y);
- break;
+ break;
}
-case wxWindow_SetVirtualSizeHints_3: { // wxWindow::SetVirtualSizeHints
+case wxWindow_SetVirtualSizeHints_3: { // wxWindow::SetVirtualSizeHints
int maxW=wxDefaultCoord;
int maxH=wxDefaultCoord;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * minW = (int *) bp; bp += 4;
int * minH = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
maxW = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
maxH = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetVirtualSizeHints((int) *minW,(int) *minH,maxW,maxH);
- break;
+ break;
}
-case wxWindow_SetVirtualSizeHints_2: { // wxWindow::SetVirtualSizeHints
+case wxWindow_SetVirtualSizeHints_2: { // wxWindow::SetVirtualSizeHints
wxSize maxSize= wxDefaultSize;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * minSizeW = (int *) bp; bp += 4;
int * minSizeH = (int *) bp; bp += 4;
wxSize minSize = wxSize(*minSizeW,*minSizeH);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * maxSizeW = (int *) bp; bp += 4;
int * maxSizeH = (int *) bp; bp += 4;
maxSize = wxSize(*maxSizeW,*maxSizeH);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetVirtualSizeHints(minSize,maxSize);
- break;
+ break;
}
-case wxWindow_SetWindowStyle: { // wxWindow::SetWindowStyle
+case wxWindow_SetWindowStyle: { // wxWindow::SetWindowStyle
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWindowStyle((long) *style);
- break;
+ break;
}
-case wxWindow_SetWindowStyleFlag: { // wxWindow::SetWindowStyleFlag
+case wxWindow_SetWindowStyleFlag: { // wxWindow::SetWindowStyleFlag
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWindowStyleFlag((long) *style);
- break;
+ break;
}
-case wxWindow_SetWindowVariant: { // wxWindow::SetWindowVariant
+case wxWindow_SetWindowVariant: { // wxWindow::SetWindowVariant
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindowVariant variant = *(wxWindowVariant *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetWindowVariant((wxWindowVariant) variant);
- break;
+ break;
}
-case wxWindow_ShouldInheritColours: { // wxWindow::ShouldInheritColours
+case wxWindow_ShouldInheritColours: { // wxWindow::ShouldInheritColours
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ShouldInheritColours();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_Show: { // wxWindow::Show
+case wxWindow_Show: { // wxWindow::Show
bool show=true;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
show = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Show(show);
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_Thaw: { // wxWindow::Thaw
+case wxWindow_Thaw: { // wxWindow::Thaw
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Thaw();
- break;
+ break;
}
-case wxWindow_TransferDataFromWindow: { // wxWindow::TransferDataFromWindow
+case wxWindow_TransferDataFromWindow: { // wxWindow::TransferDataFromWindow
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->TransferDataFromWindow();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_TransferDataToWindow: { // wxWindow::TransferDataToWindow
+case wxWindow_TransferDataToWindow: { // wxWindow::TransferDataToWindow
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->TransferDataToWindow();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_Update: { // wxWindow::Update
+case wxWindow_Update: { // wxWindow::Update
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Update();
- break;
+ break;
}
-case wxWindow_UpdateWindowUI: { // wxWindow::UpdateWindowUI
+case wxWindow_UpdateWindowUI: { // wxWindow::UpdateWindowUI
long flags=wxUPDATE_UI_NONE;
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->UpdateWindowUI(flags);
- break;
+ break;
}
-case wxWindow_Validate: { // wxWindow::Validate
+case wxWindow_Validate: { // wxWindow::Validate
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Validate();
rt.addBool(Result);
- break;
+ break;
}
-case wxWindow_WarpPointer: { // wxWindow::WarpPointer
+case wxWindow_WarpPointer: { // wxWindow::WarpPointer
wxWindow *This = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->WarpPointer((int) *x,(int) *y);
- break;
+ break;
}
-case wxTopLevelWindow_GetIcon: { // wxTopLevelWindow::GetIcon
+case wxTopLevelWindow_GetIcon: { // wxTopLevelWindow::GetIcon
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxIcon * Result = &This->GetIcon();
rt.addRef(getRef((void *)Result,memenv), "wxIcon");
- break;
+ break;
}
-case wxTopLevelWindow_GetIcons: { // wxTopLevelWindow::GetIcons
+case wxTopLevelWindow_GetIcons: { // wxTopLevelWindow::GetIcons
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxIconBundle * Result = &This->GetIcons();
rt.addRef(getRef((void *)Result,memenv), "wxIconBundle");
- break;
+ break;
}
-case wxTopLevelWindow_GetTitle: { // wxTopLevelWindow::GetTitle
+case wxTopLevelWindow_GetTitle: { // wxTopLevelWindow::GetTitle
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetTitle();
rt.add(Result);
- break;
+ break;
}
-case wxTopLevelWindow_IsActive: { // wxTopLevelWindow::IsActive
+case wxTopLevelWindow_IsActive: { // wxTopLevelWindow::IsActive
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsActive();
rt.addBool(Result);
- break;
+ break;
}
-case wxTopLevelWindow_Iconize: { // wxTopLevelWindow::Iconize
+case wxTopLevelWindow_Iconize: { // wxTopLevelWindow::Iconize
bool iconize=true;
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
iconize = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Iconize(iconize);
- break;
+ break;
}
-case wxTopLevelWindow_IsFullScreen: { // wxTopLevelWindow::IsFullScreen
+case wxTopLevelWindow_IsFullScreen: { // wxTopLevelWindow::IsFullScreen
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsFullScreen();
rt.addBool(Result);
- break;
+ break;
}
-case wxTopLevelWindow_IsIconized: { // wxTopLevelWindow::IsIconized
+case wxTopLevelWindow_IsIconized: { // wxTopLevelWindow::IsIconized
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsIconized();
rt.addBool(Result);
- break;
+ break;
}
-case wxTopLevelWindow_IsMaximized: { // wxTopLevelWindow::IsMaximized
+case wxTopLevelWindow_IsMaximized: { // wxTopLevelWindow::IsMaximized
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsMaximized();
rt.addBool(Result);
- break;
+ break;
}
-case wxTopLevelWindow_Maximize: { // wxTopLevelWindow::Maximize
+case wxTopLevelWindow_Maximize: { // wxTopLevelWindow::Maximize
bool maximize=true;
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
maximize = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Maximize(maximize);
- break;
+ break;
}
-case wxTopLevelWindow_RequestUserAttention: { // wxTopLevelWindow::RequestUserAttention
+case wxTopLevelWindow_RequestUserAttention: { // wxTopLevelWindow::RequestUserAttention
int flags=wxUSER_ATTENTION_INFO;
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->RequestUserAttention(flags);
- break;
+ break;
}
-case wxTopLevelWindow_SetIcon: { // wxTopLevelWindow::SetIcon
+case wxTopLevelWindow_SetIcon: { // wxTopLevelWindow::SetIcon
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
wxIcon *icon = (wxIcon *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetIcon(*icon);
- break;
+ break;
}
-case wxTopLevelWindow_SetIcons: { // wxTopLevelWindow::SetIcons
+case wxTopLevelWindow_SetIcons: { // wxTopLevelWindow::SetIcons
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
wxIconBundle *icons = (wxIconBundle *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetIcons(*icons);
- break;
+ break;
}
-case wxTopLevelWindow_CenterOnScreen: { // wxTopLevelWindow::CenterOnScreen
+case wxTopLevelWindow_CenterOnScreen: { // wxTopLevelWindow::CenterOnScreen
int dir=wxBOTH;
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
dir = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->CenterOnScreen(dir);
- break;
+ break;
}
-case wxTopLevelWindow_CentreOnScreen: { // wxTopLevelWindow::CentreOnScreen
+case wxTopLevelWindow_CentreOnScreen: { // wxTopLevelWindow::CentreOnScreen
int dir=wxBOTH;
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
dir = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->CentreOnScreen(dir);
- break;
+ break;
}
-case wxTopLevelWindow_SetShape: { // wxTopLevelWindow::SetShape
+case wxTopLevelWindow_SetShape: { // wxTopLevelWindow::SetShape
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
wxRegion *region = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetShape(*region);
rt.addBool(Result);
- break;
+ break;
}
-case wxTopLevelWindow_SetTitle: { // wxTopLevelWindow::SetTitle
+case wxTopLevelWindow_SetTitle: { // wxTopLevelWindow::SetTitle
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((0+ *titleLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetTitle(title);
- break;
+ break;
}
-case wxTopLevelWindow_ShowFullScreen: { // wxTopLevelWindow::ShowFullScreen
+case wxTopLevelWindow_ShowFullScreen: { // wxTopLevelWindow::ShowFullScreen
long style=wxFULLSCREEN_ALL;
wxTopLevelWindow *This = (wxTopLevelWindow *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->ShowFullScreen((bool) *show,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxFrame_new_4: { // wxFrame::wxFrame
+case wxFrame_new_4: { // wxFrame::wxFrame
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxDEFAULT_FRAME_STYLE;
@@ -1816,7 +1816,7 @@ case wxFrame_new_4: { // wxFrame::wxFrame
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((4+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -1832,19 +1832,19 @@ case wxFrame_new_4: { // wxFrame::wxFrame
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxFrame * Result = new EwxFrame(parent,(wxWindowID) *id,title,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFrame");
- break;
+ break;
}
-case wxFrame_new_0: { // wxFrame::wxFrame
+case wxFrame_new_0: { // wxFrame::wxFrame
wxFrame * Result = new EwxFrame();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFrame");
- break;
+ break;
}
-case wxFrame_Create: { // wxFrame::Create
+case wxFrame_Create: { // wxFrame::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxDEFAULT_FRAME_STYLE;
@@ -1854,7 +1854,7 @@ case wxFrame_Create: { // wxFrame::Create
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((0+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -1870,19 +1870,19 @@ case wxFrame_Create: { // wxFrame::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,title,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxFrame_CreateStatusBar: { // wxFrame::CreateStatusBar
+case wxFrame_CreateStatusBar: { // wxFrame::CreateStatusBar
int number=1;
long style=wxST_SIZEGRIP|wxFULL_REPAINT_ON_RESIZE;
wxWindowID id=0;
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
number = (int)*(int *) bp; bp += 4;
} break;
@@ -1892,137 +1892,137 @@ case wxFrame_CreateStatusBar: { // wxFrame::CreateStatusBar
case 3: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxStatusBar * Result = (wxStatusBar*)This->CreateStatusBar(number,style,id);
rt.addRef(getRef((void *)Result,memenv), "wxStatusBar");
- break;
+ break;
}
-case wxFrame_CreateToolBar: { // wxFrame::CreateToolBar
+case wxFrame_CreateToolBar: { // wxFrame::CreateToolBar
long style=-1;
wxWindowID id=-1;
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBar * Result = (wxToolBar*)This->CreateToolBar(style,id);
rt.addRef(getRef((void *)Result,memenv), "wxToolBar");
- break;
+ break;
}
-case wxFrame_GetClientAreaOrigin: { // wxFrame::GetClientAreaOrigin
+case wxFrame_GetClientAreaOrigin: { // wxFrame::GetClientAreaOrigin
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetClientAreaOrigin();
rt.add(Result);
- break;
+ break;
}
-case wxFrame_GetMenuBar: { // wxFrame::GetMenuBar
+case wxFrame_GetMenuBar: { // wxFrame::GetMenuBar
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuBar * Result = (wxMenuBar*)This->GetMenuBar();
rt.addRef(getRef((void *)Result,memenv), "wxMenuBar");
- break;
+ break;
}
-case wxFrame_GetStatusBar: { // wxFrame::GetStatusBar
+case wxFrame_GetStatusBar: { // wxFrame::GetStatusBar
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxStatusBar * Result = (wxStatusBar*)This->GetStatusBar();
rt.addRef(getRef((void *)Result,memenv), "wxStatusBar");
- break;
+ break;
}
-case wxFrame_GetStatusBarPane: { // wxFrame::GetStatusBarPane
+case wxFrame_GetStatusBarPane: { // wxFrame::GetStatusBarPane
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetStatusBarPane();
rt.addInt(Result);
- break;
+ break;
}
-case wxFrame_GetToolBar: { // wxFrame::GetToolBar
+case wxFrame_GetToolBar: { // wxFrame::GetToolBar
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBar * Result = (wxToolBar*)This->GetToolBar();
rt.addRef(getRef((void *)Result,memenv), "wxToolBar");
- break;
+ break;
}
-case wxFrame_ProcessCommand: { // wxFrame::ProcessCommand
+case wxFrame_ProcessCommand: { // wxFrame::ProcessCommand
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
int * winid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ProcessCommand((int) *winid);
rt.addBool(Result);
- break;
+ break;
}
-case wxFrame_SendSizeEvent: { // wxFrame::SendSizeEvent
+case wxFrame_SendSizeEvent: { // wxFrame::SendSizeEvent
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SendSizeEvent();
- break;
+ break;
}
-case wxFrame_SetMenuBar: { // wxFrame::SetMenuBar
+case wxFrame_SetMenuBar: { // wxFrame::SetMenuBar
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
wxMenuBar *menubar = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMenuBar(menubar);
- break;
+ break;
}
-case wxFrame_SetStatusBar: { // wxFrame::SetStatusBar
+case wxFrame_SetStatusBar: { // wxFrame::SetStatusBar
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
wxStatusBar *statbar = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStatusBar(statbar);
- break;
+ break;
}
-case wxFrame_SetStatusBarPane: { // wxFrame::SetStatusBarPane
+case wxFrame_SetStatusBarPane: { // wxFrame::SetStatusBarPane
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStatusBarPane((int) *n);
- break;
+ break;
}
-case wxFrame_SetStatusText: { // wxFrame::SetStatusText
+case wxFrame_SetStatusText: { // wxFrame::SetStatusText
int number=0;
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
number = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetStatusText(text,number);
- break;
+ break;
}
-case wxFrame_SetStatusWidths: { // wxFrame::SetStatusWidths
+case wxFrame_SetStatusWidths: { // wxFrame::SetStatusWidths
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
int * widths_fieldLen = (int *) bp; bp += 4;
int * widths_field = (int *) bp; bp += *widths_fieldLen*4+((0+ *widths_fieldLen)%2 )*4;
if(!This) throw wxe_badarg(0);
This->SetStatusWidths(*widths_fieldLen,widths_field);
- break;
+ break;
}
-case wxFrame_SetToolBar: { // wxFrame::SetToolBar
+case wxFrame_SetToolBar: { // wxFrame::SetToolBar
wxFrame *This = (wxFrame *) getPtr(bp,memenv); bp += 4;
wxToolBar *toolbar = (wxToolBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetToolBar(toolbar);
- break;
+ break;
}
-case wxMiniFrame_new_0: { // wxMiniFrame::wxMiniFrame
+case wxMiniFrame_new_0: { // wxMiniFrame::wxMiniFrame
wxMiniFrame * Result = new EwxMiniFrame();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMiniFrame");
- break;
+ break;
}
-case wxMiniFrame_new_4: { // wxMiniFrame::wxMiniFrame
+case wxMiniFrame_new_4: { // wxMiniFrame::wxMiniFrame
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxCAPTION|wxRESIZE_BORDER;
@@ -2031,7 +2031,7 @@ case wxMiniFrame_new_4: { // wxMiniFrame::wxMiniFrame
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((4+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -2047,13 +2047,13 @@ case wxMiniFrame_new_4: { // wxMiniFrame::wxMiniFrame
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxMiniFrame * Result = new EwxMiniFrame(parent,(wxWindowID) *id,title,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMiniFrame");
- break;
+ break;
}
-case wxMiniFrame_Create: { // wxMiniFrame::Create
+case wxMiniFrame_Create: { // wxMiniFrame::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxCAPTION|wxRESIZE_BORDER;
@@ -2063,7 +2063,7 @@ case wxMiniFrame_Create: { // wxMiniFrame::Create
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((0+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -2079,19 +2079,19 @@ case wxMiniFrame_Create: { // wxMiniFrame::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,title,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxSplashScreen_new_0: { // wxSplashScreen::wxSplashScreen
+case wxSplashScreen_new_0: { // wxSplashScreen::wxSplashScreen
wxSplashScreen * Result = new EwxSplashScreen();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSplashScreen");
- break;
+ break;
}
-case wxSplashScreen_new_6: { // wxSplashScreen::wxSplashScreen
+case wxSplashScreen_new_6: { // wxSplashScreen::wxSplashScreen
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSIMPLE_BORDER|wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP;
@@ -2101,7 +2101,7 @@ case wxSplashScreen_new_6: { // wxSplashScreen::wxSplashScreen
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -2117,33 +2117,33 @@ case wxSplashScreen_new_6: { // wxSplashScreen::wxSplashScreen
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxSplashScreen * Result = new EwxSplashScreen(*bitmap,(long) *splashStyle,(int) *milliseconds,parent,(wxWindowID) *id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSplashScreen");
- break;
+ break;
}
-case wxSplashScreen_GetSplashStyle: { // wxSplashScreen::GetSplashStyle
+case wxSplashScreen_GetSplashStyle: { // wxSplashScreen::GetSplashStyle
wxSplashScreen *This = (wxSplashScreen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetSplashStyle();
rt.addInt(Result);
- break;
+ break;
}
-case wxSplashScreen_GetTimeout: { // wxSplashScreen::GetTimeout
+case wxSplashScreen_GetTimeout: { // wxSplashScreen::GetTimeout
wxSplashScreen *This = (wxSplashScreen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetTimeout();
rt.addInt(Result);
- break;
+ break;
}
-case wxPanel_new_0: { // wxPanel::wxPanel
+case wxPanel_new_0: { // wxPanel::wxPanel
wxPanel * Result = new EwxPanel();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPanel");
- break;
+ break;
}
-case wxPanel_new_6: { // wxPanel::wxPanel
+case wxPanel_new_6: { // wxPanel::wxPanel
long style=wxTAB_TRAVERSAL|wxNO_BORDER;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
@@ -2151,24 +2151,24 @@ case wxPanel_new_6: { // wxPanel::wxPanel
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxPanel * Result = new EwxPanel(parent,(int) *x,(int) *y,(int) *width,(int) *height,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPanel");
- break;
+ break;
}
-case wxPanel_new_2: { // wxPanel::wxPanel
+case wxPanel_new_2: { // wxPanel::wxPanel
wxWindowID winid=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxTAB_TRAVERSAL|wxNO_BORDER;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
winid = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -2187,32 +2187,32 @@ case wxPanel_new_2: { // wxPanel::wxPanel
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxPanel * Result = new EwxPanel(parent,winid,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPanel");
- break;
+ break;
}
-case wxPanel_InitDialog: { // wxPanel::InitDialog
+case wxPanel_InitDialog: { // wxPanel::InitDialog
wxPanel *This = (wxPanel *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->InitDialog();
- break;
+ break;
}
-case wxScrolledWindow_new_0: { // wxScrolledWindow::wxScrolledWindow
+case wxScrolledWindow_new_0: { // wxScrolledWindow::wxScrolledWindow
wxScrolledWindow * Result = new EwxScrolledWindow();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxScrolledWindow");
- break;
+ break;
}
-case wxScrolledWindow_new_2: { // wxScrolledWindow::wxScrolledWindow
+case wxScrolledWindow_new_2: { // wxScrolledWindow::wxScrolledWindow
wxWindowID winid=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=(wxHSCROLL|wxVSCROLL);
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
winid = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -2231,13 +2231,13 @@ case wxScrolledWindow_new_2: { // wxScrolledWindow::wxScrolledWindow
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxScrolledWindow * Result = new EwxScrolledWindow(parent,winid,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxScrolledWindow");
- break;
+ break;
}
-case wxScrolledWindow_CalcScrolledPosition_4: { // wxScrolledWindow::CalcScrolledPosition
+case wxScrolledWindow_CalcScrolledPosition_4: { // wxScrolledWindow::CalcScrolledPosition
int xx;
int yy;
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
@@ -2248,9 +2248,9 @@ case wxScrolledWindow_CalcScrolledPosition_4: { // wxScrolledWindow::CalcScrolle
rt.addInt(xx);
rt.addInt(yy);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxScrolledWindow_CalcScrolledPosition_1: { // wxScrolledWindow::CalcScrolledPosition
+case wxScrolledWindow_CalcScrolledPosition_1: { // wxScrolledWindow::CalcScrolledPosition
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -2258,9 +2258,9 @@ case wxScrolledWindow_CalcScrolledPosition_1: { // wxScrolledWindow::CalcScrolle
if(!This) throw wxe_badarg(0);
wxPoint Result = This->CalcScrolledPosition(pt);
rt.add(Result);
- break;
+ break;
}
-case wxScrolledWindow_CalcUnscrolledPosition_4: { // wxScrolledWindow::CalcUnscrolledPosition
+case wxScrolledWindow_CalcUnscrolledPosition_4: { // wxScrolledWindow::CalcUnscrolledPosition
int xx;
int yy;
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
@@ -2271,9 +2271,9 @@ case wxScrolledWindow_CalcUnscrolledPosition_4: { // wxScrolledWindow::CalcUnscr
rt.addInt(xx);
rt.addInt(yy);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxScrolledWindow_CalcUnscrolledPosition_1: { // wxScrolledWindow::CalcUnscrolledPosition
+case wxScrolledWindow_CalcUnscrolledPosition_1: { // wxScrolledWindow::CalcUnscrolledPosition
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -2281,17 +2281,17 @@ case wxScrolledWindow_CalcUnscrolledPosition_1: { // wxScrolledWindow::CalcUnscr
if(!This) throw wxe_badarg(0);
wxPoint Result = This->CalcUnscrolledPosition(pt);
rt.add(Result);
- break;
+ break;
}
-case wxScrolledWindow_EnableScrolling: { // wxScrolledWindow::EnableScrolling
+case wxScrolledWindow_EnableScrolling: { // wxScrolledWindow::EnableScrolling
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
bool * x_scrolling = (bool *) bp; bp += 4;
bool * y_scrolling = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableScrolling((bool) *x_scrolling,(bool) *y_scrolling);
- break;
+ break;
}
-case wxScrolledWindow_GetScrollPixelsPerUnit: { // wxScrolledWindow::GetScrollPixelsPerUnit
+case wxScrolledWindow_GetScrollPixelsPerUnit: { // wxScrolledWindow::GetScrollPixelsPerUnit
int pixelsPerUnitX;
int pixelsPerUnitY;
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
@@ -2300,9 +2300,9 @@ case wxScrolledWindow_GetScrollPixelsPerUnit: { // wxScrolledWindow::GetScrollPi
rt.addInt(pixelsPerUnitX);
rt.addInt(pixelsPerUnitY);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxScrolledWindow_GetViewStart: { // wxScrolledWindow::GetViewStart
+case wxScrolledWindow_GetViewStart: { // wxScrolledWindow::GetViewStart
int x;
int y;
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
@@ -2311,31 +2311,31 @@ case wxScrolledWindow_GetViewStart: { // wxScrolledWindow::GetViewStart
rt.addInt(x);
rt.addInt(y);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxScrolledWindow_DoPrepareDC: { // wxScrolledWindow::DoPrepareDC
+case wxScrolledWindow_DoPrepareDC: { // wxScrolledWindow::DoPrepareDC
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
wxDC *dc = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DoPrepareDC(*dc);
- break;
+ break;
}
-case wxScrolledWindow_PrepareDC: { // wxScrolledWindow::PrepareDC
+case wxScrolledWindow_PrepareDC: { // wxScrolledWindow::PrepareDC
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
wxDC *dc = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->PrepareDC(*dc);
- break;
+ break;
}
-case wxScrolledWindow_Scroll: { // wxScrolledWindow::Scroll
+case wxScrolledWindow_Scroll: { // wxScrolledWindow::Scroll
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Scroll((int) *x,(int) *y);
- break;
+ break;
}
-case wxScrolledWindow_SetScrollbars: { // wxScrolledWindow::SetScrollbars
+case wxScrolledWindow_SetScrollbars: { // wxScrolledWindow::SetScrollbars
int xPos=0;
int yPos=0;
bool noRefresh=false;
@@ -2345,7 +2345,7 @@ case wxScrolledWindow_SetScrollbars: { // wxScrolledWindow::SetScrollbars
int * noUnitsX = (int *) bp; bp += 4;
int * noUnitsY = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
xPos = (int)*(int *) bp; bp += 4;
} break;
@@ -2355,40 +2355,40 @@ case wxScrolledWindow_SetScrollbars: { // wxScrolledWindow::SetScrollbars
case 3: {bp += 4;
noRefresh = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetScrollbars((int) *pixelsPerUnitX,(int) *pixelsPerUnitY,(int) *noUnitsX,(int) *noUnitsY,xPos,yPos,noRefresh);
- break;
+ break;
}
-case wxScrolledWindow_SetScrollRate: { // wxScrolledWindow::SetScrollRate
+case wxScrolledWindow_SetScrollRate: { // wxScrolledWindow::SetScrollRate
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
int * xstep = (int *) bp; bp += 4;
int * ystep = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetScrollRate((int) *xstep,(int) *ystep);
- break;
+ break;
}
-case wxScrolledWindow_SetTargetWindow: { // wxScrolledWindow::SetTargetWindow
+case wxScrolledWindow_SetTargetWindow: { // wxScrolledWindow::SetTargetWindow
wxScrolledWindow *This = (wxScrolledWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *target = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetTargetWindow(target);
- break;
+ break;
}
-case wxSashWindow_new_0: { // wxSashWindow::wxSashWindow
+case wxSashWindow_new_0: { // wxSashWindow::wxSashWindow
wxSashWindow * Result = new EwxSashWindow();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSashWindow");
- break;
+ break;
}
-case wxSashWindow_new_2: { // wxSashWindow::wxSashWindow
+case wxSashWindow_new_2: { // wxSashWindow::wxSashWindow
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=(0x0040|0x0080)|wxCLIP_CHILDREN;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -2407,98 +2407,98 @@ case wxSashWindow_new_2: { // wxSashWindow::wxSashWindow
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxSashWindow * Result = new EwxSashWindow(parent,id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSashWindow");
- break;
+ break;
}
-case wxSashWindow_GetSashVisible: { // wxSashWindow::GetSashVisible
+case wxSashWindow_GetSashVisible: { // wxSashWindow::GetSashVisible
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
wxSashEdgePosition edge = *(wxSashEdgePosition *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
bool Result = This->GetSashVisible((wxSashEdgePosition) edge);
rt.addBool(Result);
- break;
+ break;
}
-case wxSashWindow_GetMaximumSizeX: { // wxSashWindow::GetMaximumSizeX
+case wxSashWindow_GetMaximumSizeX: { // wxSashWindow::GetMaximumSizeX
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMaximumSizeX();
rt.addInt(Result);
- break;
+ break;
}
-case wxSashWindow_GetMaximumSizeY: { // wxSashWindow::GetMaximumSizeY
+case wxSashWindow_GetMaximumSizeY: { // wxSashWindow::GetMaximumSizeY
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMaximumSizeY();
rt.addInt(Result);
- break;
+ break;
}
-case wxSashWindow_GetMinimumSizeX: { // wxSashWindow::GetMinimumSizeX
+case wxSashWindow_GetMinimumSizeX: { // wxSashWindow::GetMinimumSizeX
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMinimumSizeX();
rt.addInt(Result);
- break;
+ break;
}
-case wxSashWindow_GetMinimumSizeY: { // wxSashWindow::GetMinimumSizeY
+case wxSashWindow_GetMinimumSizeY: { // wxSashWindow::GetMinimumSizeY
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMinimumSizeY();
rt.addInt(Result);
- break;
+ break;
}
-case wxSashWindow_SetMaximumSizeX: { // wxSashWindow::SetMaximumSizeX
+case wxSashWindow_SetMaximumSizeX: { // wxSashWindow::SetMaximumSizeX
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
int * max = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMaximumSizeX((int) *max);
- break;
+ break;
}
-case wxSashWindow_SetMaximumSizeY: { // wxSashWindow::SetMaximumSizeY
+case wxSashWindow_SetMaximumSizeY: { // wxSashWindow::SetMaximumSizeY
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
int * max = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMaximumSizeY((int) *max);
- break;
+ break;
}
-case wxSashWindow_SetMinimumSizeX: { // wxSashWindow::SetMinimumSizeX
+case wxSashWindow_SetMinimumSizeX: { // wxSashWindow::SetMinimumSizeX
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
int * min = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMinimumSizeX((int) *min);
- break;
+ break;
}
-case wxSashWindow_SetMinimumSizeY: { // wxSashWindow::SetMinimumSizeY
+case wxSashWindow_SetMinimumSizeY: { // wxSashWindow::SetMinimumSizeY
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
int * min = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMinimumSizeY((int) *min);
- break;
+ break;
}
-case wxSashWindow_SetSashVisible: { // wxSashWindow::SetSashVisible
+case wxSashWindow_SetSashVisible: { // wxSashWindow::SetSashVisible
wxSashWindow *This = (wxSashWindow *) getPtr(bp,memenv); bp += 4;
wxSashEdgePosition edge = *(wxSashEdgePosition *) bp; bp += 4;;
bool * sash = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSashVisible((wxSashEdgePosition) edge,(bool) *sash);
- break;
+ break;
}
-case wxSashLayoutWindow_new_0: { // wxSashLayoutWindow::wxSashLayoutWindow
+case wxSashLayoutWindow_new_0: { // wxSashLayoutWindow::wxSashLayoutWindow
wxSashLayoutWindow * Result = new EwxSashLayoutWindow();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSashLayoutWindow");
- break;
+ break;
}
-case wxSashLayoutWindow_new_2: { // wxSashLayoutWindow::wxSashLayoutWindow
+case wxSashLayoutWindow_new_2: { // wxSashLayoutWindow::wxSashLayoutWindow
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSW_3D|wxCLIP_CHILDREN;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -2517,20 +2517,20 @@ case wxSashLayoutWindow_new_2: { // wxSashLayoutWindow::wxSashLayoutWindow
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxSashLayoutWindow * Result = new EwxSashLayoutWindow(parent,id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSashLayoutWindow");
- break;
+ break;
}
-case wxSashLayoutWindow_Create: { // wxSashLayoutWindow::Create
+case wxSashLayoutWindow_Create: { // wxSashLayoutWindow::Create
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSW_3D|wxCLIP_CHILDREN;
wxSashLayoutWindow *This = (wxSashLayoutWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -2549,62 +2549,62 @@ case wxSashLayoutWindow_Create: { // wxSashLayoutWindow::Create
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxSashLayoutWindow_GetAlignment: { // wxSashLayoutWindow::GetAlignment
+case wxSashLayoutWindow_GetAlignment: { // wxSashLayoutWindow::GetAlignment
wxSashLayoutWindow *This = (wxSashLayoutWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetAlignment();
rt.addInt(Result);
- break;
+ break;
}
-case wxSashLayoutWindow_GetOrientation: { // wxSashLayoutWindow::GetOrientation
+case wxSashLayoutWindow_GetOrientation: { // wxSashLayoutWindow::GetOrientation
wxSashLayoutWindow *This = (wxSashLayoutWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetOrientation();
rt.addInt(Result);
- break;
+ break;
}
-case wxSashLayoutWindow_SetAlignment: { // wxSashLayoutWindow::SetAlignment
+case wxSashLayoutWindow_SetAlignment: { // wxSashLayoutWindow::SetAlignment
wxSashLayoutWindow *This = (wxSashLayoutWindow *) getPtr(bp,memenv); bp += 4;
wxLayoutAlignment align = *(wxLayoutAlignment *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetAlignment((wxLayoutAlignment) align);
- break;
+ break;
}
-case wxSashLayoutWindow_SetDefaultSize: { // wxSashLayoutWindow::SetDefaultSize
+case wxSashLayoutWindow_SetDefaultSize: { // wxSashLayoutWindow::SetDefaultSize
wxSashLayoutWindow *This = (wxSashLayoutWindow *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetDefaultSize(size);
- break;
+ break;
}
-case wxSashLayoutWindow_SetOrientation: { // wxSashLayoutWindow::SetOrientation
+case wxSashLayoutWindow_SetOrientation: { // wxSashLayoutWindow::SetOrientation
wxSashLayoutWindow *This = (wxSashLayoutWindow *) getPtr(bp,memenv); bp += 4;
wxLayoutOrientation orient = *(wxLayoutOrientation *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetOrientation((wxLayoutOrientation) orient);
- break;
+ break;
}
-case wxGrid_new_0: { // wxGrid::wxGrid
+case wxGrid_new_0: { // wxGrid::wxGrid
wxGrid * Result = new EwxGrid();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGrid");
- break;
+ break;
}
-case wxGrid_new_3: { // wxGrid::wxGrid
+case wxGrid_new_3: { // wxGrid::wxGrid
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxWANTS_CHARS;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -2620,13 +2620,13 @@ case wxGrid_new_3: { // wxGrid::wxGrid
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxGrid * Result = new EwxGrid(parent,(wxWindowID) *id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGrid");
- break;
+ break;
}
-case wxGrid_new_4: { // wxGrid::wxGrid
+case wxGrid_new_4: { // wxGrid::wxGrid
int w=wxDefaultCoord;
int h=wxDefaultCoord;
long style=wxWANTS_CHARS;
@@ -2634,7 +2634,7 @@ case wxGrid_new_4: { // wxGrid::wxGrid
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
w = (int)*(int *) bp; bp += 4;
} break;
@@ -2644,113 +2644,113 @@ case wxGrid_new_4: { // wxGrid::wxGrid
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxGrid * Result = new EwxGrid(parent,(int) *x,(int) *y,w,h,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGrid");
- break;
+ break;
}
-case wxGrid_AppendCols: { // wxGrid::AppendCols
+case wxGrid_AppendCols: { // wxGrid::AppendCols
int numCols=1;
bool updateLabels=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
numCols = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
updateLabels = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AppendCols(numCols,updateLabels);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_AppendRows: { // wxGrid::AppendRows
+case wxGrid_AppendRows: { // wxGrid::AppendRows
int numRows=1;
bool updateLabels=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
numRows = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
updateLabels = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AppendRows(numRows,updateLabels);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_AutoSize: { // wxGrid::AutoSize
+case wxGrid_AutoSize: { // wxGrid::AutoSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoSize();
- break;
+ break;
}
-case wxGrid_AutoSizeColumn: { // wxGrid::AutoSizeColumn
+case wxGrid_AutoSizeColumn: { // wxGrid::AutoSizeColumn
bool setAsMin=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
setAsMin = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AutoSizeColumn((int) *col,setAsMin);
- break;
+ break;
}
-case wxGrid_AutoSizeColumns: { // wxGrid::AutoSizeColumns
+case wxGrid_AutoSizeColumns: { // wxGrid::AutoSizeColumns
bool setAsMin=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
setAsMin = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AutoSizeColumns(setAsMin);
- break;
+ break;
}
-case wxGrid_AutoSizeRow: { // wxGrid::AutoSizeRow
+case wxGrid_AutoSizeRow: { // wxGrid::AutoSizeRow
bool setAsMin=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
setAsMin = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AutoSizeRow((int) *row,setAsMin);
- break;
+ break;
}
-case wxGrid_AutoSizeRows: { // wxGrid::AutoSizeRows
+case wxGrid_AutoSizeRows: { // wxGrid::AutoSizeRows
bool setAsMin=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
setAsMin = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AutoSizeRows(setAsMin);
- break;
+ break;
}
-case wxGrid_BeginBatch: { // wxGrid::BeginBatch
+case wxGrid_BeginBatch: { // wxGrid::BeginBatch
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->BeginBatch();
- break;
+ break;
}
-case wxGrid_BlockToDeviceRect: { // wxGrid::BlockToDeviceRect
+case wxGrid_BlockToDeviceRect: { // wxGrid::BlockToDeviceRect
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * topLeftR = (int *) bp; bp += 4;
int * topLeftC = (int *) bp; bp += 4;
@@ -2761,46 +2761,46 @@ case wxGrid_BlockToDeviceRect: { // wxGrid::BlockToDeviceRect
if(!This) throw wxe_badarg(0);
wxRect Result = This->BlockToDeviceRect(topLeft,bottomRight);
rt.add(Result);
- break;
+ break;
}
-case wxGrid_CanDragColSize: { // wxGrid::CanDragColSize
+case wxGrid_CanDragColSize: { // wxGrid::CanDragColSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanDragColSize();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_CanDragRowSize: { // wxGrid::CanDragRowSize
+case wxGrid_CanDragRowSize: { // wxGrid::CanDragRowSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanDragRowSize();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_CanDragGridSize: { // wxGrid::CanDragGridSize
+case wxGrid_CanDragGridSize: { // wxGrid::CanDragGridSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanDragGridSize();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_CanEnableCellControl: { // wxGrid::CanEnableCellControl
+case wxGrid_CanEnableCellControl: { // wxGrid::CanEnableCellControl
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanEnableCellControl();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_CellToRect_2: { // wxGrid::CellToRect
+case wxGrid_CellToRect_2: { // wxGrid::CellToRect
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->CellToRect((int) *row,(int) *col);
rt.add(Result);
- break;
+ break;
}
-case wxGrid_CellToRect_1: { // wxGrid::CellToRect
+case wxGrid_CellToRect_1: { // wxGrid::CellToRect
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * coordsR = (int *) bp; bp += 4;
int * coordsC = (int *) bp; bp += 4;
@@ -2808,43 +2808,43 @@ case wxGrid_CellToRect_1: { // wxGrid::CellToRect
if(!This) throw wxe_badarg(0);
wxRect Result = This->CellToRect(coords);
rt.add(Result);
- break;
+ break;
}
-case wxGrid_ClearGrid: { // wxGrid::ClearGrid
+case wxGrid_ClearGrid: { // wxGrid::ClearGrid
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ClearGrid();
- break;
+ break;
}
-case wxGrid_ClearSelection: { // wxGrid::ClearSelection
+case wxGrid_ClearSelection: { // wxGrid::ClearSelection
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ClearSelection();
- break;
+ break;
}
-case wxGrid_CreateGrid: { // wxGrid::CreateGrid
+case wxGrid_CreateGrid: { // wxGrid::CreateGrid
wxGrid::wxGridSelectionModes selmode=wxGrid::wxGridSelectCells;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * numRows = (int *) bp; bp += 4;
int * numCols = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
selmode = *(wxGrid::wxGridSelectionModes *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->CreateGrid((int) *numRows,(int) *numCols,(wxGrid::wxGridSelectionModes) selmode);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_DeleteCols: { // wxGrid::DeleteCols
+case wxGrid_DeleteCols: { // wxGrid::DeleteCols
int pos=0;
int numCols=1;
bool updateLabels=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
pos = (int)*(int *) bp; bp += 4;
} break;
@@ -2854,19 +2854,19 @@ case wxGrid_DeleteCols: { // wxGrid::DeleteCols
case 3: {bp += 4;
updateLabels = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteCols(pos,numCols,updateLabels);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_DeleteRows: { // wxGrid::DeleteRows
+case wxGrid_DeleteRows: { // wxGrid::DeleteRows
int pos=0;
int numRows=1;
bool updateLabels=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
pos = (int)*(int *) bp; bp += 4;
} break;
@@ -2876,134 +2876,134 @@ case wxGrid_DeleteRows: { // wxGrid::DeleteRows
case 3: {bp += 4;
updateLabels = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteRows(pos,numRows,updateLabels);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_DisableCellEditControl: { // wxGrid::DisableCellEditControl
+case wxGrid_DisableCellEditControl: { // wxGrid::DisableCellEditControl
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DisableCellEditControl();
- break;
+ break;
}
-case wxGrid_DisableDragColSize: { // wxGrid::DisableDragColSize
+case wxGrid_DisableDragColSize: { // wxGrid::DisableDragColSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DisableDragColSize();
- break;
+ break;
}
-case wxGrid_DisableDragGridSize: { // wxGrid::DisableDragGridSize
+case wxGrid_DisableDragGridSize: { // wxGrid::DisableDragGridSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DisableDragGridSize();
- break;
+ break;
}
-case wxGrid_DisableDragRowSize: { // wxGrid::DisableDragRowSize
+case wxGrid_DisableDragRowSize: { // wxGrid::DisableDragRowSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DisableDragRowSize();
- break;
+ break;
}
-case wxGrid_EnableCellEditControl: { // wxGrid::EnableCellEditControl
+case wxGrid_EnableCellEditControl: { // wxGrid::EnableCellEditControl
bool enable=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->EnableCellEditControl(enable);
- break;
+ break;
}
-case wxGrid_EnableDragColSize: { // wxGrid::EnableDragColSize
+case wxGrid_EnableDragColSize: { // wxGrid::EnableDragColSize
bool enable=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->EnableDragColSize(enable);
- break;
+ break;
}
-case wxGrid_EnableDragGridSize: { // wxGrid::EnableDragGridSize
+case wxGrid_EnableDragGridSize: { // wxGrid::EnableDragGridSize
bool enable=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->EnableDragGridSize(enable);
- break;
+ break;
}
-case wxGrid_EnableDragRowSize: { // wxGrid::EnableDragRowSize
+case wxGrid_EnableDragRowSize: { // wxGrid::EnableDragRowSize
bool enable=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->EnableDragRowSize(enable);
- break;
+ break;
}
-case wxGrid_EnableEditing: { // wxGrid::EnableEditing
+case wxGrid_EnableEditing: { // wxGrid::EnableEditing
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bool * edit = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableEditing((bool) *edit);
- break;
+ break;
}
-case wxGrid_EnableGridLines: { // wxGrid::EnableGridLines
+case wxGrid_EnableGridLines: { // wxGrid::EnableGridLines
bool enable=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->EnableGridLines(enable);
- break;
+ break;
}
-case wxGrid_EndBatch: { // wxGrid::EndBatch
+case wxGrid_EndBatch: { // wxGrid::EndBatch
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->EndBatch();
- break;
+ break;
}
-case wxGrid_Fit: { // wxGrid::Fit
+case wxGrid_Fit: { // wxGrid::Fit
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Fit();
- break;
+ break;
}
-case wxGrid_ForceRefresh: { // wxGrid::ForceRefresh
+case wxGrid_ForceRefresh: { // wxGrid::ForceRefresh
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ForceRefresh();
- break;
+ break;
}
-case wxGrid_GetBatchCount: { // wxGrid::GetBatchCount
+case wxGrid_GetBatchCount: { // wxGrid::GetBatchCount
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetBatchCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetCellAlignment: { // wxGrid::GetCellAlignment
+case wxGrid_GetCellAlignment: { // wxGrid::GetCellAlignment
int horiz;
int vert;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
@@ -3014,63 +3014,63 @@ case wxGrid_GetCellAlignment: { // wxGrid::GetCellAlignment
rt.addInt(horiz);
rt.addInt(vert);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxGrid_GetCellBackgroundColour: { // wxGrid::GetCellBackgroundColour
+case wxGrid_GetCellBackgroundColour: { // wxGrid::GetCellBackgroundColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetCellBackgroundColour((int) *row,(int) *col);
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetCellEditor: { // wxGrid::GetCellEditor
+case wxGrid_GetCellEditor: { // wxGrid::GetCellEditor
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellEditor * Result = (wxGridCellEditor*)This->GetCellEditor((int) *row,(int) *col);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellEditor");
- break;
+ break;
}
-case wxGrid_GetCellFont: { // wxGrid::GetCellFont
+case wxGrid_GetCellFont: { // wxGrid::GetCellFont
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetCellFont((int) *row,(int) *col)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxGrid_GetCellRenderer: { // wxGrid::GetCellRenderer
+case wxGrid_GetCellRenderer: { // wxGrid::GetCellRenderer
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellRenderer * Result = (wxGridCellRenderer*)This->GetCellRenderer((int) *row,(int) *col);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellRenderer");
- break;
+ break;
}
-case wxGrid_GetCellTextColour: { // wxGrid::GetCellTextColour
+case wxGrid_GetCellTextColour: { // wxGrid::GetCellTextColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetCellTextColour((int) *row,(int) *col);
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetCellValue_2: { // wxGrid::GetCellValue
+case wxGrid_GetCellValue_2: { // wxGrid::GetCellValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetCellValue((int) *row,(int) *col);
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetCellValue_1: { // wxGrid::GetCellValue
+case wxGrid_GetCellValue_1: { // wxGrid::GetCellValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * coordsR = (int *) bp; bp += 4;
int * coordsC = (int *) bp; bp += 4;
@@ -3078,9 +3078,9 @@ case wxGrid_GetCellValue_1: { // wxGrid::GetCellValue
if(!This) throw wxe_badarg(0);
wxString Result = This->GetCellValue(coords);
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetColLabelAlignment: { // wxGrid::GetColLabelAlignment
+case wxGrid_GetColLabelAlignment: { // wxGrid::GetColLabelAlignment
int horiz;
int vert;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
@@ -3089,31 +3089,31 @@ case wxGrid_GetColLabelAlignment: { // wxGrid::GetColLabelAlignment
rt.addInt(horiz);
rt.addInt(vert);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxGrid_GetColLabelSize: { // wxGrid::GetColLabelSize
+case wxGrid_GetColLabelSize: { // wxGrid::GetColLabelSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColLabelSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetColLabelValue: { // wxGrid::GetColLabelValue
+case wxGrid_GetColLabelValue: { // wxGrid::GetColLabelValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetColLabelValue((int) *col);
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetColMinimalAcceptableWidth: { // wxGrid::GetColMinimalAcceptableWidth
+case wxGrid_GetColMinimalAcceptableWidth: { // wxGrid::GetColMinimalAcceptableWidth
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColMinimalAcceptableWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetDefaultCellAlignment: { // wxGrid::GetDefaultCellAlignment
+case wxGrid_GetDefaultCellAlignment: { // wxGrid::GetDefaultCellAlignment
int horiz;
int vert;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
@@ -3122,60 +3122,60 @@ case wxGrid_GetDefaultCellAlignment: { // wxGrid::GetDefaultCellAlignment
rt.addInt(horiz);
rt.addInt(vert);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxGrid_GetDefaultCellBackgroundColour: { // wxGrid::GetDefaultCellBackgroundColour
+case wxGrid_GetDefaultCellBackgroundColour: { // wxGrid::GetDefaultCellBackgroundColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetDefaultCellBackgroundColour();
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetDefaultCellFont: { // wxGrid::GetDefaultCellFont
+case wxGrid_GetDefaultCellFont: { // wxGrid::GetDefaultCellFont
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetDefaultCellFont()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxGrid_GetDefaultCellTextColour: { // wxGrid::GetDefaultCellTextColour
+case wxGrid_GetDefaultCellTextColour: { // wxGrid::GetDefaultCellTextColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetDefaultCellTextColour();
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetDefaultColLabelSize: { // wxGrid::GetDefaultColLabelSize
+case wxGrid_GetDefaultColLabelSize: { // wxGrid::GetDefaultColLabelSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetDefaultColLabelSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetDefaultColSize: { // wxGrid::GetDefaultColSize
+case wxGrid_GetDefaultColSize: { // wxGrid::GetDefaultColSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetDefaultColSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetDefaultEditor: { // wxGrid::GetDefaultEditor
+case wxGrid_GetDefaultEditor: { // wxGrid::GetDefaultEditor
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellEditor * Result = (wxGridCellEditor*)This->GetDefaultEditor();
rt.addRef(getRef((void *)Result,memenv), "wxGridCellEditor");
- break;
+ break;
}
-case wxGrid_GetDefaultEditorForCell_2: { // wxGrid::GetDefaultEditorForCell
+case wxGrid_GetDefaultEditorForCell_2: { // wxGrid::GetDefaultEditorForCell
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellEditor * Result = (wxGridCellEditor*)This->GetDefaultEditorForCell((int) *row,(int) *col);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellEditor");
- break;
+ break;
}
-case wxGrid_GetDefaultEditorForCell_1: { // wxGrid::GetDefaultEditorForCell
+case wxGrid_GetDefaultEditorForCell_1: { // wxGrid::GetDefaultEditorForCell
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * cR = (int *) bp; bp += 4;
int * cC = (int *) bp; bp += 4;
@@ -3183,9 +3183,9 @@ case wxGrid_GetDefaultEditorForCell_1: { // wxGrid::GetDefaultEditorForCell
if(!This) throw wxe_badarg(0);
wxGridCellEditor * Result = (wxGridCellEditor*)This->GetDefaultEditorForCell(c);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellEditor");
- break;
+ break;
}
-case wxGrid_GetDefaultEditorForType: { // wxGrid::GetDefaultEditorForType
+case wxGrid_GetDefaultEditorForType: { // wxGrid::GetDefaultEditorForType
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * typeNameLen = (int *) bp; bp += 4;
wxString typeName = wxString(bp, wxConvUTF8);
@@ -3193,25 +3193,25 @@ case wxGrid_GetDefaultEditorForType: { // wxGrid::GetDefaultEditorForType
if(!This) throw wxe_badarg(0);
wxGridCellEditor * Result = (wxGridCellEditor*)This->GetDefaultEditorForType(typeName);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellEditor");
- break;
+ break;
}
-case wxGrid_GetDefaultRenderer: { // wxGrid::GetDefaultRenderer
+case wxGrid_GetDefaultRenderer: { // wxGrid::GetDefaultRenderer
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellRenderer * Result = (wxGridCellRenderer*)This->GetDefaultRenderer();
rt.addRef(getRef((void *)Result,memenv), "wxGridCellRenderer");
- break;
+ break;
}
-case wxGrid_GetDefaultRendererForCell: { // wxGrid::GetDefaultRendererForCell
+case wxGrid_GetDefaultRendererForCell: { // wxGrid::GetDefaultRendererForCell
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellRenderer * Result = (wxGridCellRenderer*)This->GetDefaultRendererForCell((int) *row,(int) *col);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellRenderer");
- break;
+ break;
}
-case wxGrid_GetDefaultRendererForType: { // wxGrid::GetDefaultRendererForType
+case wxGrid_GetDefaultRendererForType: { // wxGrid::GetDefaultRendererForType
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * typeNameLen = (int *) bp; bp += 4;
wxString typeName = wxString(bp, wxConvUTF8);
@@ -3219,102 +3219,102 @@ case wxGrid_GetDefaultRendererForType: { // wxGrid::GetDefaultRendererForType
if(!This) throw wxe_badarg(0);
wxGridCellRenderer * Result = (wxGridCellRenderer*)This->GetDefaultRendererForType(typeName);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellRenderer");
- break;
+ break;
}
-case wxGrid_GetDefaultRowLabelSize: { // wxGrid::GetDefaultRowLabelSize
+case wxGrid_GetDefaultRowLabelSize: { // wxGrid::GetDefaultRowLabelSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetDefaultRowLabelSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetDefaultRowSize: { // wxGrid::GetDefaultRowSize
+case wxGrid_GetDefaultRowSize: { // wxGrid::GetDefaultRowSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetDefaultRowSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetGridCursorCol: { // wxGrid::GetGridCursorCol
+case wxGrid_GetGridCursorCol: { // wxGrid::GetGridCursorCol
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetGridCursorCol();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetGridCursorRow: { // wxGrid::GetGridCursorRow
+case wxGrid_GetGridCursorRow: { // wxGrid::GetGridCursorRow
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetGridCursorRow();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetGridLineColour: { // wxGrid::GetGridLineColour
+case wxGrid_GetGridLineColour: { // wxGrid::GetGridLineColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetGridLineColour();
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GridLinesEnabled: { // wxGrid::GridLinesEnabled
+case wxGrid_GridLinesEnabled: { // wxGrid::GridLinesEnabled
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GridLinesEnabled();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_GetLabelBackgroundColour: { // wxGrid::GetLabelBackgroundColour
+case wxGrid_GetLabelBackgroundColour: { // wxGrid::GetLabelBackgroundColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetLabelBackgroundColour();
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetLabelFont: { // wxGrid::GetLabelFont
+case wxGrid_GetLabelFont: { // wxGrid::GetLabelFont
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetLabelFont()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxGrid_GetLabelTextColour: { // wxGrid::GetLabelTextColour
+case wxGrid_GetLabelTextColour: { // wxGrid::GetLabelTextColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetLabelTextColour();
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetNumberCols: { // wxGrid::GetNumberCols
+case wxGrid_GetNumberCols: { // wxGrid::GetNumberCols
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetNumberCols();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetNumberRows: { // wxGrid::GetNumberRows
+case wxGrid_GetNumberRows: { // wxGrid::GetNumberRows
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetNumberRows();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetOrCreateCellAttr: { // wxGrid::GetOrCreateCellAttr
+case wxGrid_GetOrCreateCellAttr: { // wxGrid::GetOrCreateCellAttr
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellAttr * Result = (wxGridCellAttr*)This->GetOrCreateCellAttr((int) *row,(int) *col);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellAttr");
- break;
+ break;
}
-case wxGrid_GetRowMinimalAcceptableHeight: { // wxGrid::GetRowMinimalAcceptableHeight
+case wxGrid_GetRowMinimalAcceptableHeight: { // wxGrid::GetRowMinimalAcceptableHeight
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRowMinimalAcceptableHeight();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetRowLabelAlignment: { // wxGrid::GetRowLabelAlignment
+case wxGrid_GetRowLabelAlignment: { // wxGrid::GetRowLabelAlignment
int horiz;
int vert;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
@@ -3323,46 +3323,46 @@ case wxGrid_GetRowLabelAlignment: { // wxGrid::GetRowLabelAlignment
rt.addInt(horiz);
rt.addInt(vert);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxGrid_GetRowLabelSize: { // wxGrid::GetRowLabelSize
+case wxGrid_GetRowLabelSize: { // wxGrid::GetRowLabelSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRowLabelSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetRowLabelValue: { // wxGrid::GetRowLabelValue
+case wxGrid_GetRowLabelValue: { // wxGrid::GetRowLabelValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetRowLabelValue((int) *row);
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetRowSize: { // wxGrid::GetRowSize
+case wxGrid_GetRowSize: { // wxGrid::GetRowSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRowSize((int) *row);
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetScrollLineX: { // wxGrid::GetScrollLineX
+case wxGrid_GetScrollLineX: { // wxGrid::GetScrollLineX
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetScrollLineX();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetScrollLineY: { // wxGrid::GetScrollLineY
+case wxGrid_GetScrollLineY: { // wxGrid::GetScrollLineY
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetScrollLineY();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetSelectedCells: { // wxGrid::GetSelectedCells
+case wxGrid_GetSelectedCells: { // wxGrid::GetSelectedCells
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellCoordsArray Result = This->GetSelectedCells();
@@ -3370,30 +3370,30 @@ case wxGrid_GetSelectedCells: { // wxGrid::GetSelectedCells
rt.add(Result[i]);
}
rt.endList(Result.GetCount());
- break;
+ break;
}
-case wxGrid_GetSelectedCols: { // wxGrid::GetSelectedCols
+case wxGrid_GetSelectedCols: { // wxGrid::GetSelectedCols
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxArrayInt Result = This->GetSelectedCols();
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetSelectedRows: { // wxGrid::GetSelectedRows
+case wxGrid_GetSelectedRows: { // wxGrid::GetSelectedRows
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxArrayInt Result = This->GetSelectedRows();
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetSelectionBackground: { // wxGrid::GetSelectionBackground
+case wxGrid_GetSelectionBackground: { // wxGrid::GetSelectionBackground
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetSelectionBackground();
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetSelectionBlockTopLeft: { // wxGrid::GetSelectionBlockTopLeft
+case wxGrid_GetSelectionBlockTopLeft: { // wxGrid::GetSelectionBlockTopLeft
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellCoordsArray Result = This->GetSelectionBlockTopLeft();
@@ -3401,9 +3401,9 @@ case wxGrid_GetSelectionBlockTopLeft: { // wxGrid::GetSelectionBlockTopLeft
rt.add(Result[i]);
}
rt.endList(Result.GetCount());
- break;
+ break;
}
-case wxGrid_GetSelectionBlockBottomRight: { // wxGrid::GetSelectionBlockBottomRight
+case wxGrid_GetSelectionBlockBottomRight: { // wxGrid::GetSelectionBlockBottomRight
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGridCellCoordsArray Result = This->GetSelectionBlockBottomRight();
@@ -3411,63 +3411,63 @@ case wxGrid_GetSelectionBlockBottomRight: { // wxGrid::GetSelectionBlockBottomRi
rt.add(Result[i]);
}
rt.endList(Result.GetCount());
- break;
+ break;
}
-case wxGrid_GetSelectionForeground: { // wxGrid::GetSelectionForeground
+case wxGrid_GetSelectionForeground: { // wxGrid::GetSelectionForeground
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetSelectionForeground();
rt.add(Result);
- break;
+ break;
}
-case wxGrid_GetViewWidth: { // wxGrid::GetViewWidth
+case wxGrid_GetViewWidth: { // wxGrid::GetViewWidth
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetViewWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_GetGridWindow: { // wxGrid::GetGridWindow
+case wxGrid_GetGridWindow: { // wxGrid::GetGridWindow
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetGridWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxGrid_GetGridRowLabelWindow: { // wxGrid::GetGridRowLabelWindow
+case wxGrid_GetGridRowLabelWindow: { // wxGrid::GetGridRowLabelWindow
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetGridRowLabelWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxGrid_GetGridColLabelWindow: { // wxGrid::GetGridColLabelWindow
+case wxGrid_GetGridColLabelWindow: { // wxGrid::GetGridColLabelWindow
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetGridColLabelWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxGrid_GetGridCornerLabelWindow: { // wxGrid::GetGridCornerLabelWindow
+case wxGrid_GetGridCornerLabelWindow: { // wxGrid::GetGridCornerLabelWindow
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetGridCornerLabelWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxGrid_HideCellEditControl: { // wxGrid::HideCellEditControl
+case wxGrid_HideCellEditControl: { // wxGrid::HideCellEditControl
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->HideCellEditControl();
- break;
+ break;
}
-case wxGrid_InsertCols: { // wxGrid::InsertCols
+case wxGrid_InsertCols: { // wxGrid::InsertCols
int pos=0;
int numCols=1;
bool updateLabels=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
pos = (int)*(int *) bp; bp += 4;
} break;
@@ -3477,19 +3477,19 @@ case wxGrid_InsertCols: { // wxGrid::InsertCols
case 3: {bp += 4;
updateLabels = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertCols(pos,numCols,updateLabels);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_InsertRows: { // wxGrid::InsertRows
+case wxGrid_InsertRows: { // wxGrid::InsertRows
int pos=0;
int numRows=1;
bool updateLabels=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
pos = (int)*(int *) bp; bp += 4;
} break;
@@ -3499,43 +3499,43 @@ case wxGrid_InsertRows: { // wxGrid::InsertRows
case 3: {bp += 4;
updateLabels = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertRows(pos,numRows,updateLabels);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_IsCellEditControlEnabled: { // wxGrid::IsCellEditControlEnabled
+case wxGrid_IsCellEditControlEnabled: { // wxGrid::IsCellEditControlEnabled
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsCellEditControlEnabled();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_IsCurrentCellReadOnly: { // wxGrid::IsCurrentCellReadOnly
+case wxGrid_IsCurrentCellReadOnly: { // wxGrid::IsCurrentCellReadOnly
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsCurrentCellReadOnly();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_IsEditable: { // wxGrid::IsEditable
+case wxGrid_IsEditable: { // wxGrid::IsEditable
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEditable();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_IsInSelection_2: { // wxGrid::IsInSelection
+case wxGrid_IsInSelection_2: { // wxGrid::IsInSelection
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsInSelection((int) *row,(int) *col);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_IsInSelection_1: { // wxGrid::IsInSelection
+case wxGrid_IsInSelection_1: { // wxGrid::IsInSelection
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * coordsR = (int *) bp; bp += 4;
int * coordsC = (int *) bp; bp += 4;
@@ -3543,153 +3543,153 @@ case wxGrid_IsInSelection_1: { // wxGrid::IsInSelection
if(!This) throw wxe_badarg(0);
bool Result = This->IsInSelection(coords);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_IsReadOnly: { // wxGrid::IsReadOnly
+case wxGrid_IsReadOnly: { // wxGrid::IsReadOnly
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsReadOnly((int) *row,(int) *col);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_IsSelection: { // wxGrid::IsSelection
+case wxGrid_IsSelection: { // wxGrid::IsSelection
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSelection();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_IsVisible_3: { // wxGrid::IsVisible
+case wxGrid_IsVisible_3: { // wxGrid::IsVisible
bool wholeCellVisible=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
wholeCellVisible = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->IsVisible((int) *row,(int) *col,wholeCellVisible);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_IsVisible_2: { // wxGrid::IsVisible
+case wxGrid_IsVisible_2: { // wxGrid::IsVisible
bool wholeCellVisible=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * coordsR = (int *) bp; bp += 4;
int * coordsC = (int *) bp; bp += 4;
wxGridCellCoords coords = wxGridCellCoords(*coordsR,*coordsC);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
wholeCellVisible = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->IsVisible(coords,wholeCellVisible);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MakeCellVisible_2: { // wxGrid::MakeCellVisible
+case wxGrid_MakeCellVisible_2: { // wxGrid::MakeCellVisible
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->MakeCellVisible((int) *row,(int) *col);
- break;
+ break;
}
-case wxGrid_MakeCellVisible_1: { // wxGrid::MakeCellVisible
+case wxGrid_MakeCellVisible_1: { // wxGrid::MakeCellVisible
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * coordsR = (int *) bp; bp += 4;
int * coordsC = (int *) bp; bp += 4;
wxGridCellCoords coords = wxGridCellCoords(*coordsR,*coordsC);
if(!This) throw wxe_badarg(0);
This->MakeCellVisible(coords);
- break;
+ break;
}
-case wxGrid_MoveCursorDown: { // wxGrid::MoveCursorDown
+case wxGrid_MoveCursorDown: { // wxGrid::MoveCursorDown
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bool * expandSelection = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MoveCursorDown((bool) *expandSelection);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MoveCursorLeft: { // wxGrid::MoveCursorLeft
+case wxGrid_MoveCursorLeft: { // wxGrid::MoveCursorLeft
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bool * expandSelection = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MoveCursorLeft((bool) *expandSelection);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MoveCursorRight: { // wxGrid::MoveCursorRight
+case wxGrid_MoveCursorRight: { // wxGrid::MoveCursorRight
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bool * expandSelection = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MoveCursorRight((bool) *expandSelection);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MoveCursorUp: { // wxGrid::MoveCursorUp
+case wxGrid_MoveCursorUp: { // wxGrid::MoveCursorUp
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bool * expandSelection = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MoveCursorUp((bool) *expandSelection);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MoveCursorDownBlock: { // wxGrid::MoveCursorDownBlock
+case wxGrid_MoveCursorDownBlock: { // wxGrid::MoveCursorDownBlock
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bool * expandSelection = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MoveCursorDownBlock((bool) *expandSelection);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MoveCursorLeftBlock: { // wxGrid::MoveCursorLeftBlock
+case wxGrid_MoveCursorLeftBlock: { // wxGrid::MoveCursorLeftBlock
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bool * expandSelection = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MoveCursorLeftBlock((bool) *expandSelection);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MoveCursorRightBlock: { // wxGrid::MoveCursorRightBlock
+case wxGrid_MoveCursorRightBlock: { // wxGrid::MoveCursorRightBlock
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bool * expandSelection = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MoveCursorRightBlock((bool) *expandSelection);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MoveCursorUpBlock: { // wxGrid::MoveCursorUpBlock
+case wxGrid_MoveCursorUpBlock: { // wxGrid::MoveCursorUpBlock
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
bool * expandSelection = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MoveCursorUpBlock((bool) *expandSelection);
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MovePageDown: { // wxGrid::MovePageDown
+case wxGrid_MovePageDown: { // wxGrid::MovePageDown
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MovePageDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_MovePageUp: { // wxGrid::MovePageUp
+case wxGrid_MovePageUp: { // wxGrid::MovePageUp
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MovePageUp();
rt.addBool(Result);
- break;
+ break;
}
-case wxGrid_RegisterDataType: { // wxGrid::RegisterDataType
+case wxGrid_RegisterDataType: { // wxGrid::RegisterDataType
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * typeNameLen = (int *) bp; bp += 4;
wxString typeName = wxString(bp, wxConvUTF8);
@@ -3698,21 +3698,21 @@ case wxGrid_RegisterDataType: { // wxGrid::RegisterDataType
wxGridCellEditor *editor = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->RegisterDataType(typeName,renderer,editor);
- break;
+ break;
}
-case wxGrid_SaveEditControlValue: { // wxGrid::SaveEditControlValue
+case wxGrid_SaveEditControlValue: { // wxGrid::SaveEditControlValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SaveEditControlValue();
- break;
+ break;
}
-case wxGrid_SelectAll: { // wxGrid::SelectAll
+case wxGrid_SelectAll: { // wxGrid::SelectAll
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SelectAll();
- break;
+ break;
}
-case wxGrid_SelectBlock_5: { // wxGrid::SelectBlock
+case wxGrid_SelectBlock_5: { // wxGrid::SelectBlock
bool addToSelected=false;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * topRow = (int *) bp; bp += 4;
@@ -3720,16 +3720,16 @@ case wxGrid_SelectBlock_5: { // wxGrid::SelectBlock
int * bottomRow = (int *) bp; bp += 4;
int * rightCol = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
addToSelected = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SelectBlock((int) *topRow,(int) *leftCol,(int) *bottomRow,(int) *rightCol,addToSelected);
- break;
+ break;
}
-case wxGrid_SelectBlock_3: { // wxGrid::SelectBlock
+case wxGrid_SelectBlock_3: { // wxGrid::SelectBlock
bool addToSelected=false;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * topLeftR = (int *) bp; bp += 4;
@@ -3739,42 +3739,42 @@ case wxGrid_SelectBlock_3: { // wxGrid::SelectBlock
int * bottomRightC = (int *) bp; bp += 4;
wxGridCellCoords bottomRight = wxGridCellCoords(*bottomRightR,*bottomRightC);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
addToSelected = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SelectBlock(topLeft,bottomRight,addToSelected);
- break;
+ break;
}
-case wxGrid_SelectCol: { // wxGrid::SelectCol
+case wxGrid_SelectCol: { // wxGrid::SelectCol
bool addToSelected=false;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
addToSelected = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SelectCol((int) *col,addToSelected);
- break;
+ break;
}
-case wxGrid_SelectRow: { // wxGrid::SelectRow
+case wxGrid_SelectRow: { // wxGrid::SelectRow
bool addToSelected=false;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
addToSelected = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SelectRow((int) *row,addToSelected);
- break;
+ break;
}
-case wxGrid_SetCellAlignment_4: { // wxGrid::SetCellAlignment
+case wxGrid_SetCellAlignment_4: { // wxGrid::SetCellAlignment
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
@@ -3782,25 +3782,25 @@ case wxGrid_SetCellAlignment_4: { // wxGrid::SetCellAlignment
int * vert = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCellAlignment((int) *row,(int) *col,(int) *horiz,(int) *vert);
- break;
+ break;
}
-case wxGrid_SetCellAlignment_3: { // wxGrid::SetCellAlignment
+case wxGrid_SetCellAlignment_3: { // wxGrid::SetCellAlignment
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * align = (int *) bp; bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCellAlignment((int) *align,(int) *row,(int) *col);
- break;
+ break;
}
-case wxGrid_SetCellAlignment_1: { // wxGrid::SetCellAlignment
+case wxGrid_SetCellAlignment_1: { // wxGrid::SetCellAlignment
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * align = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCellAlignment((int) *align);
- break;
+ break;
}
-case wxGrid_SetCellBackgroundColour_3_0: { // wxGrid::SetCellBackgroundColour
+case wxGrid_SetCellBackgroundColour_3_0: { // wxGrid::SetCellBackgroundColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
@@ -3811,9 +3811,9 @@ case wxGrid_SetCellBackgroundColour_3_0: { // wxGrid::SetCellBackgroundColour
wxColour val = wxColour(*valR,*valG,*valB,*valA);
if(!This) throw wxe_badarg(0);
This->SetCellBackgroundColour((int) *row,(int) *col,val);
- break;
+ break;
}
-case wxGrid_SetCellBackgroundColour_1: { // wxGrid::SetCellBackgroundColour
+case wxGrid_SetCellBackgroundColour_1: { // wxGrid::SetCellBackgroundColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -3822,9 +3822,9 @@ case wxGrid_SetCellBackgroundColour_1: { // wxGrid::SetCellBackgroundColour
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetCellBackgroundColour(col);
- break;
+ break;
}
-case wxGrid_SetCellBackgroundColour_3_1: { // wxGrid::SetCellBackgroundColour
+case wxGrid_SetCellBackgroundColour_3_1: { // wxGrid::SetCellBackgroundColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -3835,36 +3835,36 @@ case wxGrid_SetCellBackgroundColour_3_1: { // wxGrid::SetCellBackgroundColour
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCellBackgroundColour(colour,(int) *row,(int) *col);
- break;
+ break;
}
-case wxGrid_SetCellEditor: { // wxGrid::SetCellEditor
+case wxGrid_SetCellEditor: { // wxGrid::SetCellEditor
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
wxGridCellEditor *editor = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCellEditor((int) *row,(int) *col,editor);
- break;
+ break;
}
-case wxGrid_SetCellFont: { // wxGrid::SetCellFont
+case wxGrid_SetCellFont: { // wxGrid::SetCellFont
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
wxFont *val = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCellFont((int) *row,(int) *col,*val);
- break;
+ break;
}
-case wxGrid_SetCellRenderer: { // wxGrid::SetCellRenderer
+case wxGrid_SetCellRenderer: { // wxGrid::SetCellRenderer
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
wxGridCellRenderer *renderer = (wxGridCellRenderer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCellRenderer((int) *row,(int) *col,renderer);
- break;
+ break;
}
-case wxGrid_SetCellTextColour_3_0: { // wxGrid::SetCellTextColour
+case wxGrid_SetCellTextColour_3_0: { // wxGrid::SetCellTextColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
@@ -3875,9 +3875,9 @@ case wxGrid_SetCellTextColour_3_0: { // wxGrid::SetCellTextColour
wxColour val = wxColour(*valR,*valG,*valB,*valA);
if(!This) throw wxe_badarg(0);
This->SetCellTextColour((int) *row,(int) *col,val);
- break;
+ break;
}
-case wxGrid_SetCellTextColour_3_1: { // wxGrid::SetCellTextColour
+case wxGrid_SetCellTextColour_3_1: { // wxGrid::SetCellTextColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * valR = (int *) bp; bp += 4;
int * valG = (int *) bp; bp += 4;
@@ -3888,9 +3888,9 @@ case wxGrid_SetCellTextColour_3_1: { // wxGrid::SetCellTextColour
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCellTextColour(val,(int) *row,(int) *col);
- break;
+ break;
}
-case wxGrid_SetCellTextColour_1: { // wxGrid::SetCellTextColour
+case wxGrid_SetCellTextColour_1: { // wxGrid::SetCellTextColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -3899,9 +3899,9 @@ case wxGrid_SetCellTextColour_1: { // wxGrid::SetCellTextColour
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetCellTextColour(col);
- break;
+ break;
}
-case wxGrid_SetCellValue_3_0: { // wxGrid::SetCellValue
+case wxGrid_SetCellValue_3_0: { // wxGrid::SetCellValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
@@ -3910,9 +3910,9 @@ case wxGrid_SetCellValue_3_0: { // wxGrid::SetCellValue
bp += *sLen+((8-((0+ *sLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetCellValue((int) *row,(int) *col,s);
- break;
+ break;
}
-case wxGrid_SetCellValue_2: { // wxGrid::SetCellValue
+case wxGrid_SetCellValue_2: { // wxGrid::SetCellValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * coordsR = (int *) bp; bp += 4;
int * coordsC = (int *) bp; bp += 4;
@@ -3922,9 +3922,9 @@ case wxGrid_SetCellValue_2: { // wxGrid::SetCellValue
bp += *sLen+((8-((0+ *sLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetCellValue(coords,s);
- break;
+ break;
}
-case wxGrid_SetCellValue_3_1: { // wxGrid::SetCellValue
+case wxGrid_SetCellValue_3_1: { // wxGrid::SetCellValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * valLen = (int *) bp; bp += 4;
wxString val = wxString(bp, wxConvUTF8);
@@ -3933,48 +3933,48 @@ case wxGrid_SetCellValue_3_1: { // wxGrid::SetCellValue
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCellValue(val,(int) *row,(int) *col);
- break;
+ break;
}
-case wxGrid_SetColAttr: { // wxGrid::SetColAttr
+case wxGrid_SetColAttr: { // wxGrid::SetColAttr
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
wxGridCellAttr *attr = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColAttr((int) *col,attr);
- break;
+ break;
}
-case wxGrid_SetColFormatBool: { // wxGrid::SetColFormatBool
+case wxGrid_SetColFormatBool: { // wxGrid::SetColFormatBool
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColFormatBool((int) *col);
- break;
+ break;
}
-case wxGrid_SetColFormatNumber: { // wxGrid::SetColFormatNumber
+case wxGrid_SetColFormatNumber: { // wxGrid::SetColFormatNumber
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColFormatNumber((int) *col);
- break;
+ break;
}
-case wxGrid_SetColFormatFloat: { // wxGrid::SetColFormatFloat
+case wxGrid_SetColFormatFloat: { // wxGrid::SetColFormatFloat
int width=-1;
int precision=-1;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
width = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
precision = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetColFormatFloat((int) *col,width,precision);
- break;
+ break;
}
-case wxGrid_SetColFormatCustom: { // wxGrid::SetColFormatCustom
+case wxGrid_SetColFormatCustom: { // wxGrid::SetColFormatCustom
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
int * typeNameLen = (int *) bp; bp += 4;
@@ -3982,24 +3982,24 @@ case wxGrid_SetColFormatCustom: { // wxGrid::SetColFormatCustom
bp += *typeNameLen+((8-((4+ *typeNameLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetColFormatCustom((int) *col,typeName);
- break;
+ break;
}
-case wxGrid_SetColLabelAlignment: { // wxGrid::SetColLabelAlignment
+case wxGrid_SetColLabelAlignment: { // wxGrid::SetColLabelAlignment
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * horiz = (int *) bp; bp += 4;
int * vert = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColLabelAlignment((int) *horiz,(int) *vert);
- break;
+ break;
}
-case wxGrid_SetColLabelSize: { // wxGrid::SetColLabelSize
+case wxGrid_SetColLabelSize: { // wxGrid::SetColLabelSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColLabelSize((int) *height);
- break;
+ break;
}
-case wxGrid_SetColLabelValue: { // wxGrid::SetColLabelValue
+case wxGrid_SetColLabelValue: { // wxGrid::SetColLabelValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
int * valLen = (int *) bp; bp += 4;
@@ -4007,40 +4007,40 @@ case wxGrid_SetColLabelValue: { // wxGrid::SetColLabelValue
bp += *valLen+((8-((4+ *valLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetColLabelValue((int) *col,val);
- break;
+ break;
}
-case wxGrid_SetColMinimalWidth: { // wxGrid::SetColMinimalWidth
+case wxGrid_SetColMinimalWidth: { // wxGrid::SetColMinimalWidth
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColMinimalWidth((int) *col,(int) *width);
- break;
+ break;
}
-case wxGrid_SetColMinimalAcceptableWidth: { // wxGrid::SetColMinimalAcceptableWidth
+case wxGrid_SetColMinimalAcceptableWidth: { // wxGrid::SetColMinimalAcceptableWidth
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColMinimalAcceptableWidth((int) *width);
- break;
+ break;
}
-case wxGrid_SetColSize: { // wxGrid::SetColSize
+case wxGrid_SetColSize: { // wxGrid::SetColSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColSize((int) *col,(int) *width);
- break;
+ break;
}
-case wxGrid_SetDefaultCellAlignment: { // wxGrid::SetDefaultCellAlignment
+case wxGrid_SetDefaultCellAlignment: { // wxGrid::SetDefaultCellAlignment
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * horiz = (int *) bp; bp += 4;
int * vert = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDefaultCellAlignment((int) *horiz,(int) *vert);
- break;
+ break;
}
-case wxGrid_SetDefaultCellBackgroundColour: { // wxGrid::SetDefaultCellBackgroundColour
+case wxGrid_SetDefaultCellBackgroundColour: { // wxGrid::SetDefaultCellBackgroundColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * valR = (int *) bp; bp += 4;
int * valG = (int *) bp; bp += 4;
@@ -4049,16 +4049,16 @@ case wxGrid_SetDefaultCellBackgroundColour: { // wxGrid::SetDefaultCellBackgroun
wxColour val = wxColour(*valR,*valG,*valB,*valA);
if(!This) throw wxe_badarg(0);
This->SetDefaultCellBackgroundColour(val);
- break;
+ break;
}
-case wxGrid_SetDefaultCellFont: { // wxGrid::SetDefaultCellFont
+case wxGrid_SetDefaultCellFont: { // wxGrid::SetDefaultCellFont
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
wxFont *val = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDefaultCellFont(*val);
- break;
+ break;
}
-case wxGrid_SetDefaultCellTextColour: { // wxGrid::SetDefaultCellTextColour
+case wxGrid_SetDefaultCellTextColour: { // wxGrid::SetDefaultCellTextColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * valR = (int *) bp; bp += 4;
int * valG = (int *) bp; bp += 4;
@@ -4067,57 +4067,57 @@ case wxGrid_SetDefaultCellTextColour: { // wxGrid::SetDefaultCellTextColour
wxColour val = wxColour(*valR,*valG,*valB,*valA);
if(!This) throw wxe_badarg(0);
This->SetDefaultCellTextColour(val);
- break;
+ break;
}
-case wxGrid_SetDefaultEditor: { // wxGrid::SetDefaultEditor
+case wxGrid_SetDefaultEditor: { // wxGrid::SetDefaultEditor
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
wxGridCellEditor *editor = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDefaultEditor(editor);
- break;
+ break;
}
-case wxGrid_SetDefaultRenderer: { // wxGrid::SetDefaultRenderer
+case wxGrid_SetDefaultRenderer: { // wxGrid::SetDefaultRenderer
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
wxGridCellRenderer *renderer = (wxGridCellRenderer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDefaultRenderer(renderer);
- break;
+ break;
}
-case wxGrid_SetDefaultColSize: { // wxGrid::SetDefaultColSize
+case wxGrid_SetDefaultColSize: { // wxGrid::SetDefaultColSize
bool resizeExistingCols=false;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
resizeExistingCols = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetDefaultColSize((int) *width,resizeExistingCols);
- break;
+ break;
}
-case wxGrid_SetDefaultRowSize: { // wxGrid::SetDefaultRowSize
+case wxGrid_SetDefaultRowSize: { // wxGrid::SetDefaultRowSize
bool resizeExistingRows=false;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * height = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
resizeExistingRows = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetDefaultRowSize((int) *height,resizeExistingRows);
- break;
+ break;
}
-case wxGrid_SetGridCursor: { // wxGrid::SetGridCursor
+case wxGrid_SetGridCursor: { // wxGrid::SetGridCursor
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetGridCursor((int) *row,(int) *col);
- break;
+ break;
}
-case wxGrid_SetGridLineColour: { // wxGrid::SetGridLineColour
+case wxGrid_SetGridLineColour: { // wxGrid::SetGridLineColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * valR = (int *) bp; bp += 4;
int * valG = (int *) bp; bp += 4;
@@ -4126,9 +4126,9 @@ case wxGrid_SetGridLineColour: { // wxGrid::SetGridLineColour
wxColour val = wxColour(*valR,*valG,*valB,*valA);
if(!This) throw wxe_badarg(0);
This->SetGridLineColour(val);
- break;
+ break;
}
-case wxGrid_SetLabelBackgroundColour: { // wxGrid::SetLabelBackgroundColour
+case wxGrid_SetLabelBackgroundColour: { // wxGrid::SetLabelBackgroundColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * valR = (int *) bp; bp += 4;
int * valG = (int *) bp; bp += 4;
@@ -4137,16 +4137,16 @@ case wxGrid_SetLabelBackgroundColour: { // wxGrid::SetLabelBackgroundColour
wxColour val = wxColour(*valR,*valG,*valB,*valA);
if(!This) throw wxe_badarg(0);
This->SetLabelBackgroundColour(val);
- break;
+ break;
}
-case wxGrid_SetLabelFont: { // wxGrid::SetLabelFont
+case wxGrid_SetLabelFont: { // wxGrid::SetLabelFont
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
wxFont *val = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLabelFont(*val);
- break;
+ break;
}
-case wxGrid_SetLabelTextColour: { // wxGrid::SetLabelTextColour
+case wxGrid_SetLabelTextColour: { // wxGrid::SetLabelTextColour
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * valR = (int *) bp; bp += 4;
int * valG = (int *) bp; bp += 4;
@@ -4155,55 +4155,55 @@ case wxGrid_SetLabelTextColour: { // wxGrid::SetLabelTextColour
wxColour val = wxColour(*valR,*valG,*valB,*valA);
if(!This) throw wxe_badarg(0);
This->SetLabelTextColour(val);
- break;
+ break;
}
-case wxGrid_SetMargins: { // wxGrid::SetMargins
+case wxGrid_SetMargins: { // wxGrid::SetMargins
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * extraWidth = (int *) bp; bp += 4;
int * extraHeight = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMargins((int) *extraWidth,(int) *extraHeight);
- break;
+ break;
}
-case wxGrid_SetReadOnly: { // wxGrid::SetReadOnly
+case wxGrid_SetReadOnly: { // wxGrid::SetReadOnly
bool isReadOnly=true;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
isReadOnly = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetReadOnly((int) *row,(int) *col,isReadOnly);
- break;
+ break;
}
-case wxGrid_SetRowAttr: { // wxGrid::SetRowAttr
+case wxGrid_SetRowAttr: { // wxGrid::SetRowAttr
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
wxGridCellAttr *attr = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRowAttr((int) *row,attr);
- break;
+ break;
}
-case wxGrid_SetRowLabelAlignment: { // wxGrid::SetRowLabelAlignment
+case wxGrid_SetRowLabelAlignment: { // wxGrid::SetRowLabelAlignment
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * horiz = (int *) bp; bp += 4;
int * vert = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRowLabelAlignment((int) *horiz,(int) *vert);
- break;
+ break;
}
-case wxGrid_SetRowLabelSize: { // wxGrid::SetRowLabelSize
+case wxGrid_SetRowLabelSize: { // wxGrid::SetRowLabelSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRowLabelSize((int) *width);
- break;
+ break;
}
-case wxGrid_SetRowLabelValue: { // wxGrid::SetRowLabelValue
+case wxGrid_SetRowLabelValue: { // wxGrid::SetRowLabelValue
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * valLen = (int *) bp; bp += 4;
@@ -4211,46 +4211,46 @@ case wxGrid_SetRowLabelValue: { // wxGrid::SetRowLabelValue
bp += *valLen+((8-((4+ *valLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetRowLabelValue((int) *row,val);
- break;
+ break;
}
-case wxGrid_SetRowMinimalHeight: { // wxGrid::SetRowMinimalHeight
+case wxGrid_SetRowMinimalHeight: { // wxGrid::SetRowMinimalHeight
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRowMinimalHeight((int) *row,(int) *width);
- break;
+ break;
}
-case wxGrid_SetRowMinimalAcceptableHeight: { // wxGrid::SetRowMinimalAcceptableHeight
+case wxGrid_SetRowMinimalAcceptableHeight: { // wxGrid::SetRowMinimalAcceptableHeight
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRowMinimalAcceptableHeight((int) *width);
- break;
+ break;
}
-case wxGrid_SetRowSize: { // wxGrid::SetRowSize
+case wxGrid_SetRowSize: { // wxGrid::SetRowSize
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRowSize((int) *row,(int) *height);
- break;
+ break;
}
-case wxGrid_SetScrollLineX: { // wxGrid::SetScrollLineX
+case wxGrid_SetScrollLineX: { // wxGrid::SetScrollLineX
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetScrollLineX((int) *x);
- break;
+ break;
}
-case wxGrid_SetScrollLineY: { // wxGrid::SetScrollLineY
+case wxGrid_SetScrollLineY: { // wxGrid::SetScrollLineY
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetScrollLineY((int) *y);
- break;
+ break;
}
-case wxGrid_SetSelectionBackground: { // wxGrid::SetSelectionBackground
+case wxGrid_SetSelectionBackground: { // wxGrid::SetSelectionBackground
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * cR = (int *) bp; bp += 4;
int * cG = (int *) bp; bp += 4;
@@ -4259,9 +4259,9 @@ case wxGrid_SetSelectionBackground: { // wxGrid::SetSelectionBackground
wxColour c = wxColour(*cR,*cG,*cB,*cA);
if(!This) throw wxe_badarg(0);
This->SetSelectionBackground(c);
- break;
+ break;
}
-case wxGrid_SetSelectionForeground: { // wxGrid::SetSelectionForeground
+case wxGrid_SetSelectionForeground: { // wxGrid::SetSelectionForeground
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * cR = (int *) bp; bp += 4;
int * cG = (int *) bp; bp += 4;
@@ -4270,60 +4270,60 @@ case wxGrid_SetSelectionForeground: { // wxGrid::SetSelectionForeground
wxColour c = wxColour(*cR,*cG,*cB,*cA);
if(!This) throw wxe_badarg(0);
This->SetSelectionForeground(c);
- break;
+ break;
}
-case wxGrid_SetSelectionMode: { // wxGrid::SetSelectionMode
+case wxGrid_SetSelectionMode: { // wxGrid::SetSelectionMode
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
wxGrid::wxGridSelectionModes selmode = *(wxGrid::wxGridSelectionModes *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetSelectionMode((wxGrid::wxGridSelectionModes) selmode);
- break;
+ break;
}
-case wxGrid_ShowCellEditControl: { // wxGrid::ShowCellEditControl
+case wxGrid_ShowCellEditControl: { // wxGrid::ShowCellEditControl
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ShowCellEditControl();
- break;
+ break;
}
-case wxGrid_XToCol: { // wxGrid::XToCol
+case wxGrid_XToCol: { // wxGrid::XToCol
bool clipToMinMax=false;
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
clipToMinMax = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
int Result = This->XToCol((int) *x,clipToMinMax);
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_XToEdgeOfCol: { // wxGrid::XToEdgeOfCol
+case wxGrid_XToEdgeOfCol: { // wxGrid::XToEdgeOfCol
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->XToEdgeOfCol((int) *x);
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_YToEdgeOfRow: { // wxGrid::YToEdgeOfRow
+case wxGrid_YToEdgeOfRow: { // wxGrid::YToEdgeOfRow
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->YToEdgeOfRow((int) *y);
rt.addInt(Result);
- break;
+ break;
}
-case wxGrid_YToRow: { // wxGrid::YToRow
+case wxGrid_YToRow: { // wxGrid::YToRow
wxGrid *This = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->YToRow((int) *y);
rt.addInt(Result);
- break;
+ break;
}
-case wxGridCellRenderer_Draw: { // wxGridCellRenderer::Draw
+case wxGridCellRenderer_Draw: { // wxGridCellRenderer::Draw
wxGridCellRenderer *This = (wxGridCellRenderer *) getPtr(bp,memenv); bp += 4;
wxGrid *grid = (wxGrid *) getPtr(bp,memenv); bp += 4;
wxGridCellAttr *attr = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
@@ -4338,9 +4338,9 @@ case wxGridCellRenderer_Draw: { // wxGridCellRenderer::Draw
bool * isSelected = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Draw(*grid,*attr,*dc,rect,(int) *row,(int) *col,(bool) *isSelected);
- break;
+ break;
}
-case wxGridCellRenderer_GetBestSize: { // wxGridCellRenderer::GetBestSize
+case wxGridCellRenderer_GetBestSize: { // wxGridCellRenderer::GetBestSize
wxGridCellRenderer *This = (wxGridCellRenderer *) getPtr(bp,memenv); bp += 4;
wxGrid *grid = (wxGrid *) getPtr(bp,memenv); bp += 4;
wxGridCellAttr *attr = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
@@ -4350,25 +4350,25 @@ case wxGridCellRenderer_GetBestSize: { // wxGridCellRenderer::GetBestSize
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetBestSize(*grid,*attr,*dc,(int) *row,(int) *col);
rt.add(Result);
- break;
+ break;
}
-case wxGridCellEditor_Create: { // wxGridCellEditor::Create
+case wxGridCellEditor_Create: { // wxGridCellEditor::Create
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
wxEvtHandler *evtHandler = (wxEvtHandler *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Create(parent,(wxWindowID) *id,evtHandler);
- break;
+ break;
}
-case wxGridCellEditor_IsCreated: { // wxGridCellEditor::IsCreated
+case wxGridCellEditor_IsCreated: { // wxGridCellEditor::IsCreated
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsCreated();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellEditor_SetSize: { // wxGridCellEditor::SetSize
+case wxGridCellEditor_SetSize: { // wxGridCellEditor::SetSize
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -4377,22 +4377,22 @@ case wxGridCellEditor_SetSize: { // wxGridCellEditor::SetSize
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
if(!This) throw wxe_badarg(0);
This->SetSize(rect);
- break;
+ break;
}
-case wxGridCellEditor_Show: { // wxGridCellEditor::Show
+case wxGridCellEditor_Show: { // wxGridCellEditor::Show
wxGridCellAttr * attr=(wxGridCellAttr *) NULL;
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
attr = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Show((bool) *show,attr);
- break;
+ break;
}
-case wxGridCellEditor_PaintBackground: { // wxGridCellEditor::PaintBackground
+case wxGridCellEditor_PaintBackground: { // wxGridCellEditor::PaintBackground
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
int * rectCellX = (int *) bp; bp += 4;
int * rectCellY = (int *) bp; bp += 4;
@@ -4402,18 +4402,18 @@ case wxGridCellEditor_PaintBackground: { // wxGridCellEditor::PaintBackground
wxGridCellAttr *attr = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->PaintBackground(rectCell,attr);
- break;
+ break;
}
-case wxGridCellEditor_BeginEdit: { // wxGridCellEditor::BeginEdit
+case wxGridCellEditor_BeginEdit: { // wxGridCellEditor::BeginEdit
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
wxGrid *grid = (wxGrid *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->BeginEdit((int) *row,(int) *col,grid);
- break;
+ break;
}
-case wxGridCellEditor_EndEdit: { // wxGridCellEditor::EndEdit
+case wxGridCellEditor_EndEdit: { // wxGridCellEditor::EndEdit
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
@@ -4421,64 +4421,64 @@ case wxGridCellEditor_EndEdit: { // wxGridCellEditor::EndEdit
if(!This) throw wxe_badarg(0);
bool Result = This->EndEdit((int) *row,(int) *col,grid);
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellEditor_Reset: { // wxGridCellEditor::Reset
+case wxGridCellEditor_Reset: { // wxGridCellEditor::Reset
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Reset();
- break;
+ break;
}
-case wxGridCellEditor_StartingKey: { // wxGridCellEditor::StartingKey
+case wxGridCellEditor_StartingKey: { // wxGridCellEditor::StartingKey
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
wxKeyEvent *event = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StartingKey(*event);
- break;
+ break;
}
-case wxGridCellEditor_StartingClick: { // wxGridCellEditor::StartingClick
+case wxGridCellEditor_StartingClick: { // wxGridCellEditor::StartingClick
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StartingClick();
- break;
+ break;
}
-case wxGridCellEditor_HandleReturn: { // wxGridCellEditor::HandleReturn
+case wxGridCellEditor_HandleReturn: { // wxGridCellEditor::HandleReturn
wxGridCellEditor *This = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
wxKeyEvent *event = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->HandleReturn(*event);
- break;
+ break;
}
-case wxGridCellBoolRenderer_new: { // wxGridCellBoolRenderer::wxGridCellBoolRenderer
+case wxGridCellBoolRenderer_new: { // wxGridCellBoolRenderer::wxGridCellBoolRenderer
wxGridCellBoolRenderer * Result = new wxGridCellBoolRenderer();
newPtr((void *) Result, 24, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellBoolRenderer");
- break;
+ break;
}
-case wxGridCellBoolRenderer_destroy: { // wxGridCellBoolRenderer::destroy
+case wxGridCellBoolRenderer_destroy: { // wxGridCellBoolRenderer::destroy
wxGridCellBoolRenderer *This = (wxGridCellBoolRenderer *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxGridCellBoolEditor_new: { // wxGridCellBoolEditor::wxGridCellBoolEditor
+case wxGridCellBoolEditor_new: { // wxGridCellBoolEditor::wxGridCellBoolEditor
wxGridCellBoolEditor * Result = new wxGridCellBoolEditor();
newPtr((void *) Result, 25, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellBoolEditor");
- break;
+ break;
}
-case wxGridCellBoolEditor_IsTrueValue: { // wxGridCellBoolEditor::IsTrueValue
+case wxGridCellBoolEditor_IsTrueValue: { // wxGridCellBoolEditor::IsTrueValue
int * valueLen = (int *) bp; bp += 4;
wxString value = wxString(bp, wxConvUTF8);
bp += *valueLen+((8-((4+ *valueLen) & 7)) & 7);
bool Result = wxGridCellBoolEditor::IsTrueValue(value);
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellBoolEditor_UseStringValues: { // wxGridCellBoolEditor::UseStringValues
+case wxGridCellBoolEditor_UseStringValues: { // wxGridCellBoolEditor::UseStringValues
wxString valueTrue= _T("1");
wxString valueFalse= wxEmptyString;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * valueTrueLen = (int *) bp; bp += 4;
valueTrue = wxString(bp, wxConvUTF8);
@@ -4489,140 +4489,140 @@ case wxGridCellBoolEditor_UseStringValues: { // wxGridCellBoolEditor::UseStringV
valueFalse = wxString(bp, wxConvUTF8);
bp += *valueFalseLen+((8-((0+ *valueFalseLen) & 7)) & 7);
} break;
- }};
+ }};
wxGridCellBoolEditor::UseStringValues(valueTrue,valueFalse);
- break;
+ break;
}
-case wxGridCellBoolEditor_destroy: { // wxGridCellBoolEditor::destroy
+case wxGridCellBoolEditor_destroy: { // wxGridCellBoolEditor::destroy
wxGridCellBoolEditor *This = (wxGridCellBoolEditor *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxGridCellFloatRenderer_new: { // wxGridCellFloatRenderer::wxGridCellFloatRenderer
+case wxGridCellFloatRenderer_new: { // wxGridCellFloatRenderer::wxGridCellFloatRenderer
int width=-1;
int precision=-1;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
width = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
precision = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxGridCellFloatRenderer * Result = new wxGridCellFloatRenderer(width,precision);
newPtr((void *) Result, 26, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellFloatRenderer");
- break;
+ break;
}
-case wxGridCellFloatRenderer_GetPrecision: { // wxGridCellFloatRenderer::GetPrecision
+case wxGridCellFloatRenderer_GetPrecision: { // wxGridCellFloatRenderer::GetPrecision
wxGridCellFloatRenderer *This = (wxGridCellFloatRenderer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPrecision();
rt.addInt(Result);
- break;
+ break;
}
-case wxGridCellFloatRenderer_GetWidth: { // wxGridCellFloatRenderer::GetWidth
+case wxGridCellFloatRenderer_GetWidth: { // wxGridCellFloatRenderer::GetWidth
wxGridCellFloatRenderer *This = (wxGridCellFloatRenderer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxGridCellFloatRenderer_SetParameters: { // wxGridCellFloatRenderer::SetParameters
+case wxGridCellFloatRenderer_SetParameters: { // wxGridCellFloatRenderer::SetParameters
wxGridCellFloatRenderer *This = (wxGridCellFloatRenderer *) getPtr(bp,memenv); bp += 4;
int * paramsLen = (int *) bp; bp += 4;
wxString params = wxString(bp, wxConvUTF8);
bp += *paramsLen+((8-((0+ *paramsLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetParameters(params);
- break;
+ break;
}
-case wxGridCellFloatRenderer_SetPrecision: { // wxGridCellFloatRenderer::SetPrecision
+case wxGridCellFloatRenderer_SetPrecision: { // wxGridCellFloatRenderer::SetPrecision
wxGridCellFloatRenderer *This = (wxGridCellFloatRenderer *) getPtr(bp,memenv); bp += 4;
int * precision = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPrecision((int) *precision);
- break;
+ break;
}
-case wxGridCellFloatRenderer_SetWidth: { // wxGridCellFloatRenderer::SetWidth
+case wxGridCellFloatRenderer_SetWidth: { // wxGridCellFloatRenderer::SetWidth
wxGridCellFloatRenderer *This = (wxGridCellFloatRenderer *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWidth((int) *width);
- break;
+ break;
}
-case wxGridCellFloatRenderer_destroy: { // wxGridCellFloatRenderer::destroy
+case wxGridCellFloatRenderer_destroy: { // wxGridCellFloatRenderer::destroy
wxGridCellFloatRenderer *This = (wxGridCellFloatRenderer *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxGridCellFloatEditor_new: { // wxGridCellFloatEditor::wxGridCellFloatEditor
+case wxGridCellFloatEditor_new: { // wxGridCellFloatEditor::wxGridCellFloatEditor
int width=-1;
int precision=-1;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
width = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
precision = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxGridCellFloatEditor * Result = new wxGridCellFloatEditor(width,precision);
newPtr((void *) Result, 27, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellFloatEditor");
- break;
+ break;
}
-case wxGridCellFloatEditor_SetParameters: { // wxGridCellFloatEditor::SetParameters
+case wxGridCellFloatEditor_SetParameters: { // wxGridCellFloatEditor::SetParameters
wxGridCellFloatEditor *This = (wxGridCellFloatEditor *) getPtr(bp,memenv); bp += 4;
int * paramsLen = (int *) bp; bp += 4;
wxString params = wxString(bp, wxConvUTF8);
bp += *paramsLen+((8-((0+ *paramsLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetParameters(params);
- break;
+ break;
}
-case wxGridCellFloatEditor_destroy: { // wxGridCellFloatEditor::destroy
+case wxGridCellFloatEditor_destroy: { // wxGridCellFloatEditor::destroy
wxGridCellFloatEditor *This = (wxGridCellFloatEditor *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxGridCellStringRenderer_new: { // wxGridCellStringRenderer::wxGridCellStringRenderer
+case wxGridCellStringRenderer_new: { // wxGridCellStringRenderer::wxGridCellStringRenderer
wxGridCellStringRenderer * Result = new wxGridCellStringRenderer();
newPtr((void *) Result, 28, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellStringRenderer");
- break;
+ break;
}
-case wxGridCellStringRenderer_destroy: { // wxGridCellStringRenderer::destroy
+case wxGridCellStringRenderer_destroy: { // wxGridCellStringRenderer::destroy
wxGridCellStringRenderer *This = (wxGridCellStringRenderer *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxGridCellTextEditor_new: { // wxGridCellTextEditor::wxGridCellTextEditor
+case wxGridCellTextEditor_new: { // wxGridCellTextEditor::wxGridCellTextEditor
wxGridCellTextEditor * Result = new wxGridCellTextEditor();
newPtr((void *) Result, 29, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellTextEditor");
- break;
+ break;
}
-case wxGridCellTextEditor_SetParameters: { // wxGridCellTextEditor::SetParameters
+case wxGridCellTextEditor_SetParameters: { // wxGridCellTextEditor::SetParameters
wxGridCellTextEditor *This = (wxGridCellTextEditor *) getPtr(bp,memenv); bp += 4;
int * paramsLen = (int *) bp; bp += 4;
wxString params = wxString(bp, wxConvUTF8);
bp += *paramsLen+((8-((0+ *paramsLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetParameters(params);
- break;
+ break;
}
-case wxGridCellTextEditor_destroy: { // wxGridCellTextEditor::destroy
+case wxGridCellTextEditor_destroy: { // wxGridCellTextEditor::destroy
wxGridCellTextEditor *This = (wxGridCellTextEditor *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxGridCellChoiceEditor_new: { // wxGridCellChoiceEditor::wxGridCellChoiceEditor
+case wxGridCellChoiceEditor_new: { // wxGridCellChoiceEditor::wxGridCellChoiceEditor
bool allowOthers=false;
int * choicesLen = (int *) bp; bp += 4;
wxArrayString choices;
@@ -4634,82 +4634,82 @@ case wxGridCellChoiceEditor_new: { // wxGridCellChoiceEditor::wxGridCellChoiceEd
choicesASz += *choicesTemp+4;
}
bp += (8-((4+ choicesASz) & 7 )) & 7;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
allowOthers = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
wxGridCellChoiceEditor * Result = new wxGridCellChoiceEditor(choices,allowOthers);
newPtr((void *) Result, 30, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellChoiceEditor");
- break;
+ break;
}
-case wxGridCellChoiceEditor_SetParameters: { // wxGridCellChoiceEditor::SetParameters
+case wxGridCellChoiceEditor_SetParameters: { // wxGridCellChoiceEditor::SetParameters
wxGridCellChoiceEditor *This = (wxGridCellChoiceEditor *) getPtr(bp,memenv); bp += 4;
int * paramsLen = (int *) bp; bp += 4;
wxString params = wxString(bp, wxConvUTF8);
bp += *paramsLen+((8-((0+ *paramsLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetParameters(params);
- break;
+ break;
}
-case wxGridCellChoiceEditor_destroy: { // wxGridCellChoiceEditor::destroy
+case wxGridCellChoiceEditor_destroy: { // wxGridCellChoiceEditor::destroy
wxGridCellChoiceEditor *This = (wxGridCellChoiceEditor *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxGridCellNumberRenderer_new: { // wxGridCellNumberRenderer::wxGridCellNumberRenderer
+case wxGridCellNumberRenderer_new: { // wxGridCellNumberRenderer::wxGridCellNumberRenderer
wxGridCellNumberRenderer * Result = new wxGridCellNumberRenderer();
newPtr((void *) Result, 31, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellNumberRenderer");
- break;
+ break;
}
-case wxGridCellNumberRenderer_destroy: { // wxGridCellNumberRenderer::destroy
+case wxGridCellNumberRenderer_destroy: { // wxGridCellNumberRenderer::destroy
wxGridCellNumberRenderer *This = (wxGridCellNumberRenderer *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxGridCellNumberEditor_new: { // wxGridCellNumberEditor::wxGridCellNumberEditor
+case wxGridCellNumberEditor_new: { // wxGridCellNumberEditor::wxGridCellNumberEditor
int min=-1;
int max=-1;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
min = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
max = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxGridCellNumberEditor * Result = new wxGridCellNumberEditor(min,max);
newPtr((void *) Result, 32, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellNumberEditor");
- break;
+ break;
}
-case wxGridCellNumberEditor_GetValue: { // wxGridCellNumberEditor::GetValue
+case wxGridCellNumberEditor_GetValue: { // wxGridCellNumberEditor::GetValue
wxGridCellNumberEditor *This = (wxGridCellNumberEditor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetValue();
rt.add(Result);
- break;
+ break;
}
-case wxGridCellNumberEditor_SetParameters: { // wxGridCellNumberEditor::SetParameters
+case wxGridCellNumberEditor_SetParameters: { // wxGridCellNumberEditor::SetParameters
wxGridCellNumberEditor *This = (wxGridCellNumberEditor *) getPtr(bp,memenv); bp += 4;
int * paramsLen = (int *) bp; bp += 4;
wxString params = wxString(bp, wxConvUTF8);
bp += *paramsLen+((8-((0+ *paramsLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetParameters(params);
- break;
+ break;
}
-case wxGridCellNumberEditor_destroy: { // wxGridCellNumberEditor::destroy
+case wxGridCellNumberEditor_destroy: { // wxGridCellNumberEditor::destroy
wxGridCellNumberEditor *This = (wxGridCellNumberEditor *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxGridCellAttr_SetTextColour: { // wxGridCellAttr::SetTextColour
+case wxGridCellAttr_SetTextColour: { // wxGridCellAttr::SetTextColour
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
int * colTextR = (int *) bp; bp += 4;
int * colTextG = (int *) bp; bp += 4;
@@ -4718,9 +4718,9 @@ case wxGridCellAttr_SetTextColour: { // wxGridCellAttr::SetTextColour
wxColour colText = wxColour(*colTextR,*colTextG,*colTextB,*colTextA);
if(!This) throw wxe_badarg(0);
This->SetTextColour(colText);
- break;
+ break;
}
-case wxGridCellAttr_SetBackgroundColour: { // wxGridCellAttr::SetBackgroundColour
+case wxGridCellAttr_SetBackgroundColour: { // wxGridCellAttr::SetBackgroundColour
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
int * colBackR = (int *) bp; bp += 4;
int * colBackG = (int *) bp; bp += 4;
@@ -4729,114 +4729,114 @@ case wxGridCellAttr_SetBackgroundColour: { // wxGridCellAttr::SetBackgroundColou
wxColour colBack = wxColour(*colBackR,*colBackG,*colBackB,*colBackA);
if(!This) throw wxe_badarg(0);
This->SetBackgroundColour(colBack);
- break;
+ break;
}
-case wxGridCellAttr_SetFont: { // wxGridCellAttr::SetFont
+case wxGridCellAttr_SetFont: { // wxGridCellAttr::SetFont
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFont(*font);
- break;
+ break;
}
-case wxGridCellAttr_SetAlignment: { // wxGridCellAttr::SetAlignment
+case wxGridCellAttr_SetAlignment: { // wxGridCellAttr::SetAlignment
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
int * hAlign = (int *) bp; bp += 4;
int * vAlign = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAlignment((int) *hAlign,(int) *vAlign);
- break;
+ break;
}
-case wxGridCellAttr_SetReadOnly: { // wxGridCellAttr::SetReadOnly
+case wxGridCellAttr_SetReadOnly: { // wxGridCellAttr::SetReadOnly
bool isReadOnly=true;
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
isReadOnly = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetReadOnly(isReadOnly);
- break;
+ break;
}
-case wxGridCellAttr_SetRenderer: { // wxGridCellAttr::SetRenderer
+case wxGridCellAttr_SetRenderer: { // wxGridCellAttr::SetRenderer
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
wxGridCellRenderer *renderer = (wxGridCellRenderer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRenderer(renderer);
- break;
+ break;
}
-case wxGridCellAttr_SetEditor: { // wxGridCellAttr::SetEditor
+case wxGridCellAttr_SetEditor: { // wxGridCellAttr::SetEditor
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
wxGridCellEditor *editor = (wxGridCellEditor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetEditor(editor);
- break;
+ break;
}
-case wxGridCellAttr_HasTextColour: { // wxGridCellAttr::HasTextColour
+case wxGridCellAttr_HasTextColour: { // wxGridCellAttr::HasTextColour
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasTextColour();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellAttr_HasBackgroundColour: { // wxGridCellAttr::HasBackgroundColour
+case wxGridCellAttr_HasBackgroundColour: { // wxGridCellAttr::HasBackgroundColour
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasBackgroundColour();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellAttr_HasFont: { // wxGridCellAttr::HasFont
+case wxGridCellAttr_HasFont: { // wxGridCellAttr::HasFont
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasFont();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellAttr_HasAlignment: { // wxGridCellAttr::HasAlignment
+case wxGridCellAttr_HasAlignment: { // wxGridCellAttr::HasAlignment
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasAlignment();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellAttr_HasRenderer: { // wxGridCellAttr::HasRenderer
+case wxGridCellAttr_HasRenderer: { // wxGridCellAttr::HasRenderer
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasRenderer();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellAttr_HasEditor: { // wxGridCellAttr::HasEditor
+case wxGridCellAttr_HasEditor: { // wxGridCellAttr::HasEditor
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasEditor();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellAttr_GetTextColour: { // wxGridCellAttr::GetTextColour
+case wxGridCellAttr_GetTextColour: { // wxGridCellAttr::GetTextColour
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetTextColour();
rt.add((*Result));
- break;
+ break;
}
-case wxGridCellAttr_GetBackgroundColour: { // wxGridCellAttr::GetBackgroundColour
+case wxGridCellAttr_GetBackgroundColour: { // wxGridCellAttr::GetBackgroundColour
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetBackgroundColour();
rt.add((*Result));
- break;
+ break;
}
-case wxGridCellAttr_GetFont: { // wxGridCellAttr::GetFont
+case wxGridCellAttr_GetFont: { // wxGridCellAttr::GetFont
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxFont * Result = &This->GetFont();
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxGridCellAttr_GetAlignment: { // wxGridCellAttr::GetAlignment
+case wxGridCellAttr_GetAlignment: { // wxGridCellAttr::GetAlignment
int hAlign;
int vAlign;
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
@@ -4845,9 +4845,9 @@ case wxGridCellAttr_GetAlignment: { // wxGridCellAttr::GetAlignment
rt.addInt(hAlign);
rt.addInt(vAlign);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxGridCellAttr_GetRenderer: { // wxGridCellAttr::GetRenderer
+case wxGridCellAttr_GetRenderer: { // wxGridCellAttr::GetRenderer
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
wxGrid *grid = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
@@ -4855,9 +4855,9 @@ case wxGridCellAttr_GetRenderer: { // wxGridCellAttr::GetRenderer
if(!This) throw wxe_badarg(0);
wxGridCellRenderer * Result = (wxGridCellRenderer*)This->GetRenderer(grid,(int) *row,(int) *col);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellRenderer");
- break;
+ break;
}
-case wxGridCellAttr_GetEditor: { // wxGridCellAttr::GetEditor
+case wxGridCellAttr_GetEditor: { // wxGridCellAttr::GetEditor
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
wxGrid *grid = (wxGrid *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
@@ -4865,23 +4865,23 @@ case wxGridCellAttr_GetEditor: { // wxGridCellAttr::GetEditor
if(!This) throw wxe_badarg(0);
wxGridCellEditor * Result = (wxGridCellEditor*)This->GetEditor(grid,(int) *row,(int) *col);
rt.addRef(getRef((void *)Result,memenv), "wxGridCellEditor");
- break;
+ break;
}
-case wxGridCellAttr_IsReadOnly: { // wxGridCellAttr::IsReadOnly
+case wxGridCellAttr_IsReadOnly: { // wxGridCellAttr::IsReadOnly
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsReadOnly();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridCellAttr_SetDefAttr: { // wxGridCellAttr::SetDefAttr
+case wxGridCellAttr_SetDefAttr: { // wxGridCellAttr::SetDefAttr
wxGridCellAttr *This = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
wxGridCellAttr *defAttr = (wxGridCellAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDefAttr(defAttr);
- break;
+ break;
}
-case wxDC_Blit: { // wxDC::Blit
+case wxDC_Blit: { // wxDC::Blit
int rop=wxCOPY;
bool useMask=false;
wxPoint srcPtMask= wxDefaultPosition;
@@ -4896,7 +4896,7 @@ case wxDC_Blit: { // wxDC::Blit
int * srcPtX = (int *) bp; bp += 4;
int * srcPtY = (int *) bp; bp += 4;
wxPoint srcPt = wxPoint(*srcPtX,*srcPtY);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
rop = (int)*(int *) bp; bp += 4;
} break;
@@ -4909,80 +4909,80 @@ case wxDC_Blit: { // wxDC::Blit
srcPtMask = wxPoint(*srcPtMaskX,*srcPtMaskY);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Blit(destPt,sz,source,srcPt,rop,useMask,srcPtMask);
rt.addBool(Result);
- break;
+ break;
}
-case wxDC_CalcBoundingBox: { // wxDC::CalcBoundingBox
+case wxDC_CalcBoundingBox: { // wxDC::CalcBoundingBox
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->CalcBoundingBox((wxCoord) *x,(wxCoord) *y);
- break;
+ break;
}
-case wxDC_Clear: { // wxDC::Clear
+case wxDC_Clear: { // wxDC::Clear
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Clear();
- break;
+ break;
}
-case wxDC_ComputeScaleAndOrigin: { // wxDC::ComputeScaleAndOrigin
+case wxDC_ComputeScaleAndOrigin: { // wxDC::ComputeScaleAndOrigin
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ComputeScaleAndOrigin();
- break;
+ break;
}
-case wxDC_CrossHair: { // wxDC::CrossHair
+case wxDC_CrossHair: { // wxDC::CrossHair
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
if(!This) throw wxe_badarg(0);
This->CrossHair(pt);
- break;
+ break;
}
-case wxDC_DestroyClippingRegion: { // wxDC::DestroyClippingRegion
+case wxDC_DestroyClippingRegion: { // wxDC::DestroyClippingRegion
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DestroyClippingRegion();
- break;
+ break;
}
-case wxDC_DeviceToLogicalX: { // wxDC::DeviceToLogicalX
+case wxDC_DeviceToLogicalX: { // wxDC::DeviceToLogicalX
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->DeviceToLogicalX((wxCoord) *x);
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_DeviceToLogicalXRel: { // wxDC::DeviceToLogicalXRel
+case wxDC_DeviceToLogicalXRel: { // wxDC::DeviceToLogicalXRel
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->DeviceToLogicalXRel((wxCoord) *x);
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_DeviceToLogicalY: { // wxDC::DeviceToLogicalY
+case wxDC_DeviceToLogicalY: { // wxDC::DeviceToLogicalY
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->DeviceToLogicalY((wxCoord) *y);
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_DeviceToLogicalYRel: { // wxDC::DeviceToLogicalYRel
+case wxDC_DeviceToLogicalYRel: { // wxDC::DeviceToLogicalYRel
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->DeviceToLogicalYRel((wxCoord) *y);
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_DrawArc: { // wxDC::DrawArc
+case wxDC_DrawArc: { // wxDC::DrawArc
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * pt1X = (int *) bp; bp += 4;
int * pt1Y = (int *) bp; bp += 4;
@@ -4995,25 +4995,25 @@ case wxDC_DrawArc: { // wxDC::DrawArc
wxPoint centre = wxPoint(*centreX,*centreY);
if(!This) throw wxe_badarg(0);
This->DrawArc(pt1,pt2,centre);
- break;
+ break;
}
-case wxDC_DrawBitmap: { // wxDC::DrawBitmap
+case wxDC_DrawBitmap: { // wxDC::DrawBitmap
bool useMask=false;
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
useMask = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->DrawBitmap(*bmp,pt,useMask);
- break;
+ break;
}
-case wxDC_DrawCheckMark: { // wxDC::DrawCheckMark
+case wxDC_DrawCheckMark: { // wxDC::DrawCheckMark
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -5022,9 +5022,9 @@ case wxDC_DrawCheckMark: { // wxDC::DrawCheckMark
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
if(!This) throw wxe_badarg(0);
This->DrawCheckMark(rect);
- break;
+ break;
}
-case wxDC_DrawCircle: { // wxDC::DrawCircle
+case wxDC_DrawCircle: { // wxDC::DrawCircle
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -5032,9 +5032,9 @@ case wxDC_DrawCircle: { // wxDC::DrawCircle
int * radius = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->DrawCircle(pt,(wxCoord) *radius);
- break;
+ break;
}
-case wxDC_DrawEllipse_2: { // wxDC::DrawEllipse
+case wxDC_DrawEllipse_2: { // wxDC::DrawEllipse
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -5044,9 +5044,9 @@ case wxDC_DrawEllipse_2: { // wxDC::DrawEllipse
wxSize sz = wxSize(*szW,*szH);
if(!This) throw wxe_badarg(0);
This->DrawEllipse(pt,sz);
- break;
+ break;
}
-case wxDC_DrawEllipse_1: { // wxDC::DrawEllipse
+case wxDC_DrawEllipse_1: { // wxDC::DrawEllipse
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -5055,9 +5055,9 @@ case wxDC_DrawEllipse_1: { // wxDC::DrawEllipse
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
if(!This) throw wxe_badarg(0);
This->DrawEllipse(rect);
- break;
+ break;
}
-case wxDC_DrawEllipticArc: { // wxDC::DrawEllipticArc
+case wxDC_DrawEllipticArc: { // wxDC::DrawEllipticArc
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -5070,9 +5070,9 @@ case wxDC_DrawEllipticArc: { // wxDC::DrawEllipticArc
double * ea = (double *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawEllipticArc(pt,sz,(double) *sa,(double) *ea);
- break;
+ break;
}
-case wxDC_DrawIcon: { // wxDC::DrawIcon
+case wxDC_DrawIcon: { // wxDC::DrawIcon
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
wxIcon *icon = (wxIcon *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
@@ -5080,9 +5080,9 @@ case wxDC_DrawIcon: { // wxDC::DrawIcon
wxPoint pt = wxPoint(*ptX,*ptY);
if(!This) throw wxe_badarg(0);
This->DrawIcon(*icon,pt);
- break;
+ break;
}
-case wxDC_DrawLabel: { // wxDC::DrawLabel
+case wxDC_DrawLabel: { // wxDC::DrawLabel
int alignment=wxALIGN_LEFT|wxALIGN_TOP;
int indexAccel=-1;
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
@@ -5094,19 +5094,19 @@ case wxDC_DrawLabel: { // wxDC::DrawLabel
int * rectW = (int *) bp; bp += 4;
int * rectH = (int *) bp; bp += 4;
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
alignment = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
indexAccel = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->DrawLabel(text,rect,alignment,indexAccel);
- break;
+ break;
}
-case wxDC_DrawLine: { // wxDC::DrawLine
+case wxDC_DrawLine: { // wxDC::DrawLine
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * pt1X = (int *) bp; bp += 4;
int * pt1Y = (int *) bp; bp += 4;
@@ -5116,9 +5116,9 @@ case wxDC_DrawLine: { // wxDC::DrawLine
wxPoint pt2 = wxPoint(*pt2X,*pt2Y);
if(!This) throw wxe_badarg(0);
This->DrawLine(pt1,pt2);
- break;
+ break;
}
-case wxDC_DrawLines: { // wxDC::DrawLines
+case wxDC_DrawLines: { // wxDC::DrawLines
wxCoord xoffset=0;
wxCoord yoffset=0;
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
@@ -5129,20 +5129,20 @@ case wxDC_DrawLines: { // wxDC::DrawLines
int x = * (int *) bp; bp += 4;
int y = * (int *) bp; bp += 4;
points[i] = wxPoint(x,y);}
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
xoffset = (wxCoord)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
yoffset = (wxCoord)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->DrawLines(*pointsLen,points,xoffset,yoffset);
driver_free(points);
- break;
+ break;
}
-case wxDC_DrawPolygon: { // wxDC::DrawPolygon
+case wxDC_DrawPolygon: { // wxDC::DrawPolygon
wxCoord xoffset=0;
wxCoord yoffset=0;
int fillStyle=wxODDEVEN_RULE;
@@ -5154,7 +5154,7 @@ case wxDC_DrawPolygon: { // wxDC::DrawPolygon
int x = * (int *) bp; bp += 4;
int y = * (int *) bp; bp += 4;
points[i] = wxPoint(x,y);}
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
xoffset = (wxCoord)*(int *) bp; bp += 4;
} break;
@@ -5164,22 +5164,22 @@ case wxDC_DrawPolygon: { // wxDC::DrawPolygon
case 3: {bp += 4;
fillStyle = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->DrawPolygon(*pointsLen,points,xoffset,yoffset,fillStyle);
driver_free(points);
- break;
+ break;
}
-case wxDC_DrawPoint: { // wxDC::DrawPoint
+case wxDC_DrawPoint: { // wxDC::DrawPoint
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
if(!This) throw wxe_badarg(0);
This->DrawPoint(pt);
- break;
+ break;
}
-case wxDC_DrawRectangle_2: { // wxDC::DrawRectangle
+case wxDC_DrawRectangle_2: { // wxDC::DrawRectangle
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -5189,9 +5189,9 @@ case wxDC_DrawRectangle_2: { // wxDC::DrawRectangle
wxSize sz = wxSize(*szW,*szH);
if(!This) throw wxe_badarg(0);
This->DrawRectangle(pt,sz);
- break;
+ break;
}
-case wxDC_DrawRectangle_1: { // wxDC::DrawRectangle
+case wxDC_DrawRectangle_1: { // wxDC::DrawRectangle
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -5200,9 +5200,9 @@ case wxDC_DrawRectangle_1: { // wxDC::DrawRectangle
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
if(!This) throw wxe_badarg(0);
This->DrawRectangle(rect);
- break;
+ break;
}
-case wxDC_DrawRotatedText: { // wxDC::DrawRotatedText
+case wxDC_DrawRotatedText: { // wxDC::DrawRotatedText
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
@@ -5213,9 +5213,9 @@ case wxDC_DrawRotatedText: { // wxDC::DrawRotatedText
double * angle = (double *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawRotatedText(text,pt,(double) *angle);
- break;
+ break;
}
-case wxDC_DrawRoundedRectangle_3: { // wxDC::DrawRoundedRectangle
+case wxDC_DrawRoundedRectangle_3: { // wxDC::DrawRoundedRectangle
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -5227,9 +5227,9 @@ case wxDC_DrawRoundedRectangle_3: { // wxDC::DrawRoundedRectangle
double * radius = (double *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawRoundedRectangle(pt,sz,(double) *radius);
- break;
+ break;
}
-case wxDC_DrawRoundedRectangle_2: { // wxDC::DrawRoundedRectangle
+case wxDC_DrawRoundedRectangle_2: { // wxDC::DrawRoundedRectangle
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * rX = (int *) bp; bp += 4;
int * rY = (int *) bp; bp += 4;
@@ -5240,9 +5240,9 @@ case wxDC_DrawRoundedRectangle_2: { // wxDC::DrawRoundedRectangle
double * radius = (double *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawRoundedRectangle(r,(double) *radius);
- break;
+ break;
}
-case wxDC_DrawText: { // wxDC::DrawText
+case wxDC_DrawText: { // wxDC::DrawText
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
@@ -5252,21 +5252,21 @@ case wxDC_DrawText: { // wxDC::DrawText
wxPoint pt = wxPoint(*ptX,*ptY);
if(!This) throw wxe_badarg(0);
This->DrawText(text,pt);
- break;
+ break;
}
-case wxDC_EndDoc: { // wxDC::EndDoc
+case wxDC_EndDoc: { // wxDC::EndDoc
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->EndDoc();
- break;
+ break;
}
-case wxDC_EndPage: { // wxDC::EndPage
+case wxDC_EndPage: { // wxDC::EndPage
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->EndPage();
- break;
+ break;
}
-case wxDC_FloodFill: { // wxDC::FloodFill
+case wxDC_FloodFill: { // wxDC::FloodFill
int style=wxFLOOD_SURFACE;
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
@@ -5278,52 +5278,52 @@ case wxDC_FloodFill: { // wxDC::FloodFill
int * colA = (int *) bp; bp += 4;
wxColour col = wxColour(*colR,*colG,*colB,*colA);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->FloodFill(pt,col,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxDC_GetBackground: { // wxDC::GetBackground
+case wxDC_GetBackground: { // wxDC::GetBackground
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxBrush * Result = &This->GetBackground();
rt.addRef(getRef((void *)Result,memenv), "wxBrush");
- break;
+ break;
}
-case wxDC_GetBackgroundMode: { // wxDC::GetBackgroundMode
+case wxDC_GetBackgroundMode: { // wxDC::GetBackgroundMode
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetBackgroundMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_GetBrush: { // wxDC::GetBrush
+case wxDC_GetBrush: { // wxDC::GetBrush
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxBrush * Result = &This->GetBrush();
rt.addRef(getRef((void *)Result,memenv), "wxBrush");
- break;
+ break;
}
-case wxDC_GetCharHeight: { // wxDC::GetCharHeight
+case wxDC_GetCharHeight: { // wxDC::GetCharHeight
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->GetCharHeight();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_GetCharWidth: { // wxDC::GetCharWidth
+case wxDC_GetCharWidth: { // wxDC::GetCharWidth
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->GetCharWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_GetClippingBox: { // wxDC::GetClippingBox
+case wxDC_GetClippingBox: { // wxDC::GetClippingBox
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -5332,37 +5332,37 @@ case wxDC_GetClippingBox: { // wxDC::GetClippingBox
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
if(!This) throw wxe_badarg(0);
This->GetClippingBox(rect);
- break;
+ break;
}
-case wxDC_GetFont: { // wxDC::GetFont
+case wxDC_GetFont: { // wxDC::GetFont
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxFont * Result = &This->GetFont();
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxDC_GetLayoutDirection: { // wxDC::GetLayoutDirection
+case wxDC_GetLayoutDirection: { // wxDC::GetLayoutDirection
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLayoutDirection();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_GetLogicalFunction: { // wxDC::GetLogicalFunction
+case wxDC_GetLogicalFunction: { // wxDC::GetLogicalFunction
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLogicalFunction();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_GetMapMode: { // wxDC::GetMapMode
+case wxDC_GetMapMode: { // wxDC::GetMapMode
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMapMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_GetMultiLineTextExtent_4: { // wxDC::GetMultiLineTextExtent
+case wxDC_GetMultiLineTextExtent_4: { // wxDC::GetMultiLineTextExtent
wxCoord width;
wxCoord height;
wxCoord heightLine;
@@ -5371,20 +5371,20 @@ case wxDC_GetMultiLineTextExtent_4: { // wxDC::GetMultiLineTextExtent
int * stringLen = (int *) bp; bp += 4;
wxString string = wxString(bp, wxConvUTF8);
bp += *stringLen+((8-((0+ *stringLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
font = (wxFont *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->GetMultiLineTextExtent(string,&width,&height,&heightLine,font);
rt.addInt(width);
rt.addInt(height);
rt.addInt(heightLine);
rt.addTupleCount(3);
- break;
+ break;
}
-case wxDC_GetMultiLineTextExtent_1: { // wxDC::GetMultiLineTextExtent
+case wxDC_GetMultiLineTextExtent_1: { // wxDC::GetMultiLineTextExtent
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * stringLen = (int *) bp; bp += 4;
wxString string = wxString(bp, wxConvUTF8);
@@ -5392,9 +5392,9 @@ case wxDC_GetMultiLineTextExtent_1: { // wxDC::GetMultiLineTextExtent
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetMultiLineTextExtent(string);
rt.add(Result);
- break;
+ break;
}
-case wxDC_GetPartialTextExtents: { // wxDC::GetPartialTextExtents
+case wxDC_GetPartialTextExtents: { // wxDC::GetPartialTextExtents
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
@@ -5406,16 +5406,16 @@ case wxDC_GetPartialTextExtents: { // wxDC::GetPartialTextExtents
if(!This) throw wxe_badarg(0);
bool Result = This->GetPartialTextExtents(text,widths);
rt.addBool(Result);
- break;
+ break;
}
-case wxDC_GetPen: { // wxDC::GetPen
+case wxDC_GetPen: { // wxDC::GetPen
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxPen * Result = &This->GetPen();
rt.addRef(getRef((void *)Result,memenv), "wxPen");
- break;
+ break;
}
-case wxDC_GetPixel: { // wxDC::GetPixel
+case wxDC_GetPixel: { // wxDC::GetPixel
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -5428,37 +5428,37 @@ case wxDC_GetPixel: { // wxDC::GetPixel
if(!This) throw wxe_badarg(0);
bool Result = This->GetPixel(pt,&col);
rt.addBool(Result);
- break;
+ break;
}
-case wxDC_GetPPI: { // wxDC::GetPPI
+case wxDC_GetPPI: { // wxDC::GetPPI
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetPPI();
rt.add(Result);
- break;
+ break;
}
-case wxDC_GetSize: { // wxDC::GetSize
+case wxDC_GetSize: { // wxDC::GetSize
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetSize();
rt.add(Result);
- break;
+ break;
}
-case wxDC_GetSizeMM: { // wxDC::GetSizeMM
+case wxDC_GetSizeMM: { // wxDC::GetSizeMM
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetSizeMM();
rt.add(Result);
- break;
+ break;
}
-case wxDC_GetTextBackground: { // wxDC::GetTextBackground
+case wxDC_GetTextBackground: { // wxDC::GetTextBackground
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetTextBackground();
rt.add((*Result));
- break;
+ break;
}
-case wxDC_GetTextExtent_4: { // wxDC::GetTextExtent
+case wxDC_GetTextExtent_4: { // wxDC::GetTextExtent
wxCoord x;
wxCoord y;
wxCoord descent;
@@ -5468,11 +5468,11 @@ case wxDC_GetTextExtent_4: { // wxDC::GetTextExtent
int * stringLen = (int *) bp; bp += 4;
wxString string = wxString(bp, wxConvUTF8);
bp += *stringLen+((8-((0+ *stringLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
theFont = (wxFont *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->GetTextExtent(string,&x,&y,&descent,&externalLeading,theFont);
rt.addInt(x);
@@ -5480,9 +5480,9 @@ theFont = (wxFont *) getPtr(bp,memenv); bp += 4;
rt.addInt(descent);
rt.addInt(externalLeading);
rt.addTupleCount(4);
- break;
+ break;
}
-case wxDC_GetTextExtent_1: { // wxDC::GetTextExtent
+case wxDC_GetTextExtent_1: { // wxDC::GetTextExtent
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * stringLen = (int *) bp; bp += 4;
wxString string = wxString(bp, wxConvUTF8);
@@ -5490,16 +5490,16 @@ case wxDC_GetTextExtent_1: { // wxDC::GetTextExtent
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetTextExtent(string);
rt.add(Result);
- break;
+ break;
}
-case wxDC_GetTextForeground: { // wxDC::GetTextForeground
+case wxDC_GetTextForeground: { // wxDC::GetTextForeground
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetTextForeground();
rt.add((*Result));
- break;
+ break;
}
-case wxDC_GetUserScale: { // wxDC::GetUserScale
+case wxDC_GetUserScale: { // wxDC::GetUserScale
double x;
double y;
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
@@ -5508,9 +5508,9 @@ case wxDC_GetUserScale: { // wxDC::GetUserScale
rt.addFloat(x);
rt.addFloat(y);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxDC_GradientFillConcentric_3: { // wxDC::GradientFillConcentric
+case wxDC_GradientFillConcentric_3: { // wxDC::GradientFillConcentric
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -5529,9 +5529,9 @@ case wxDC_GradientFillConcentric_3: { // wxDC::GradientFillConcentric
wxColour destColour = wxColour(*destColourR,*destColourG,*destColourB,*destColourA);
if(!This) throw wxe_badarg(0);
This->GradientFillConcentric(rect,initialColour,destColour);
- break;
+ break;
}
-case wxDC_GradientFillConcentric_4: { // wxDC::GradientFillConcentric
+case wxDC_GradientFillConcentric_4: { // wxDC::GradientFillConcentric
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -5553,9 +5553,9 @@ case wxDC_GradientFillConcentric_4: { // wxDC::GradientFillConcentric
wxPoint circleCenter = wxPoint(*circleCenterX,*circleCenterY);
if(!This) throw wxe_badarg(0);
This->GradientFillConcentric(rect,initialColour,destColour,circleCenter);
- break;
+ break;
}
-case wxDC_GradientFillLinear: { // wxDC::GradientFillLinear
+case wxDC_GradientFillLinear: { // wxDC::GradientFillLinear
wxDirection nDirection=wxEAST;
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
@@ -5574,118 +5574,118 @@ case wxDC_GradientFillLinear: { // wxDC::GradientFillLinear
int * destColourA = (int *) bp; bp += 4;
wxColour destColour = wxColour(*destColourR,*destColourG,*destColourB,*destColourA);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
nDirection = *(wxDirection *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->GradientFillLinear(rect,initialColour,destColour,(wxDirection) nDirection);
- break;
+ break;
}
-case wxDC_LogicalToDeviceX: { // wxDC::LogicalToDeviceX
+case wxDC_LogicalToDeviceX: { // wxDC::LogicalToDeviceX
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->LogicalToDeviceX((wxCoord) *x);
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_LogicalToDeviceXRel: { // wxDC::LogicalToDeviceXRel
+case wxDC_LogicalToDeviceXRel: { // wxDC::LogicalToDeviceXRel
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->LogicalToDeviceXRel((wxCoord) *x);
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_LogicalToDeviceY: { // wxDC::LogicalToDeviceY
+case wxDC_LogicalToDeviceY: { // wxDC::LogicalToDeviceY
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->LogicalToDeviceY((wxCoord) *y);
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_LogicalToDeviceYRel: { // wxDC::LogicalToDeviceYRel
+case wxDC_LogicalToDeviceYRel: { // wxDC::LogicalToDeviceYRel
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->LogicalToDeviceYRel((wxCoord) *y);
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_MaxX: { // wxDC::MaxX
+case wxDC_MaxX: { // wxDC::MaxX
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->MaxX();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_MaxY: { // wxDC::MaxY
+case wxDC_MaxY: { // wxDC::MaxY
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->MaxY();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_MinX: { // wxDC::MinX
+case wxDC_MinX: { // wxDC::MinX
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->MinX();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_MinY: { // wxDC::MinY
+case wxDC_MinY: { // wxDC::MinY
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->MinY();
rt.addInt(Result);
- break;
+ break;
}
-case wxDC_IsOk: { // wxDC::IsOk
+case wxDC_IsOk: { // wxDC::IsOk
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxDC_ResetBoundingBox: { // wxDC::ResetBoundingBox
+case wxDC_ResetBoundingBox: { // wxDC::ResetBoundingBox
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ResetBoundingBox();
- break;
+ break;
}
-case wxDC_SetAxisOrientation: { // wxDC::SetAxisOrientation
+case wxDC_SetAxisOrientation: { // wxDC::SetAxisOrientation
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
bool * xLeftRight = (bool *) bp; bp += 4;
bool * yBottomUp = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAxisOrientation((bool) *xLeftRight,(bool) *yBottomUp);
- break;
+ break;
}
-case wxDC_SetBackground: { // wxDC::SetBackground
+case wxDC_SetBackground: { // wxDC::SetBackground
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
wxBrush *brush = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBackground(*brush);
- break;
+ break;
}
-case wxDC_SetBackgroundMode: { // wxDC::SetBackgroundMode
+case wxDC_SetBackgroundMode: { // wxDC::SetBackgroundMode
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * mode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBackgroundMode((int) *mode);
- break;
+ break;
}
-case wxDC_SetBrush: { // wxDC::SetBrush
+case wxDC_SetBrush: { // wxDC::SetBrush
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
wxBrush *brush = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBrush(*brush);
- break;
+ break;
}
-case wxDC_SetClippingRegion_2: { // wxDC::SetClippingRegion
+case wxDC_SetClippingRegion_2: { // wxDC::SetClippingRegion
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -5695,9 +5695,9 @@ case wxDC_SetClippingRegion_2: { // wxDC::SetClippingRegion
wxSize sz = wxSize(*szW,*szH);
if(!This) throw wxe_badarg(0);
This->SetClippingRegion(pt,sz);
- break;
+ break;
}
-case wxDC_SetClippingRegion_1_1: { // wxDC::SetClippingRegion
+case wxDC_SetClippingRegion_1_1: { // wxDC::SetClippingRegion
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -5706,66 +5706,66 @@ case wxDC_SetClippingRegion_1_1: { // wxDC::SetClippingRegion
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
if(!This) throw wxe_badarg(0);
This->SetClippingRegion(rect);
- break;
+ break;
}
-case wxDC_SetClippingRegion_1_0: { // wxDC::SetClippingRegion
+case wxDC_SetClippingRegion_1_0: { // wxDC::SetClippingRegion
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
wxRegion *region = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetClippingRegion(*region);
- break;
+ break;
}
-case wxDC_SetDeviceOrigin: { // wxDC::SetDeviceOrigin
+case wxDC_SetDeviceOrigin: { // wxDC::SetDeviceOrigin
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDeviceOrigin((wxCoord) *x,(wxCoord) *y);
- break;
+ break;
}
-case wxDC_SetFont: { // wxDC::SetFont
+case wxDC_SetFont: { // wxDC::SetFont
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFont(*font);
- break;
+ break;
}
-case wxDC_SetLayoutDirection: { // wxDC::SetLayoutDirection
+case wxDC_SetLayoutDirection: { // wxDC::SetLayoutDirection
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
wxLayoutDirection dir = *(wxLayoutDirection *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetLayoutDirection((wxLayoutDirection) dir);
- break;
+ break;
}
-case wxDC_SetLogicalFunction: { // wxDC::SetLogicalFunction
+case wxDC_SetLogicalFunction: { // wxDC::SetLogicalFunction
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * function = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLogicalFunction((int) *function);
- break;
+ break;
}
-case wxDC_SetMapMode: { // wxDC::SetMapMode
+case wxDC_SetMapMode: { // wxDC::SetMapMode
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * mode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMapMode((int) *mode);
- break;
+ break;
}
-case wxDC_SetPalette: { // wxDC::SetPalette
+case wxDC_SetPalette: { // wxDC::SetPalette
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
wxPalette *palette = (wxPalette *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPalette(*palette);
- break;
+ break;
}
-case wxDC_SetPen: { // wxDC::SetPen
+case wxDC_SetPen: { // wxDC::SetPen
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
wxPen *pen = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPen(*pen);
- break;
+ break;
}
-case wxDC_SetTextBackground: { // wxDC::SetTextBackground
+case wxDC_SetTextBackground: { // wxDC::SetTextBackground
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -5774,9 +5774,9 @@ case wxDC_SetTextBackground: { // wxDC::SetTextBackground
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
if(!This) throw wxe_badarg(0);
This->SetTextBackground(colour);
- break;
+ break;
}
-case wxDC_SetTextForeground: { // wxDC::SetTextForeground
+case wxDC_SetTextForeground: { // wxDC::SetTextForeground
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -5785,18 +5785,18 @@ case wxDC_SetTextForeground: { // wxDC::SetTextForeground
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
if(!This) throw wxe_badarg(0);
This->SetTextForeground(colour);
- break;
+ break;
}
-case wxDC_SetUserScale: { // wxDC::SetUserScale
+case wxDC_SetUserScale: { // wxDC::SetUserScale
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
double * x = (double *) bp; bp += 8;
double * y = (double *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->SetUserScale((double) *x,(double) *y);
- break;
+ break;
}
-case wxDC_StartDoc: { // wxDC::StartDoc
+case wxDC_StartDoc: { // wxDC::StartDoc
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
int * messageLen = (int *) bp; bp += 4;
wxString message = wxString(bp, wxConvUTF8);
@@ -5804,277 +5804,277 @@ case wxDC_StartDoc: { // wxDC::StartDoc
if(!This) throw wxe_badarg(0);
bool Result = This->StartDoc(message);
rt.addBool(Result);
- break;
+ break;
}
-case wxDC_StartPage: { // wxDC::StartPage
+case wxDC_StartPage: { // wxDC::StartPage
wxDC *This = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StartPage();
- break;
+ break;
}
-case wxMirrorDC_new: { // wxMirrorDC::wxMirrorDC
+case wxMirrorDC_new: { // wxMirrorDC::wxMirrorDC
wxDC *dc = (wxDC *) getPtr(bp,memenv); bp += 4;
bool * mirror = (bool *) bp; bp += 4;
wxMirrorDC * Result = new EwxMirrorDC(*dc,(bool) *mirror);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMirrorDC");
- break;
+ break;
}
-case wxScreenDC_new: { // wxScreenDC::wxScreenDC
+case wxScreenDC_new: { // wxScreenDC::wxScreenDC
wxScreenDC * Result = new EwxScreenDC();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxScreenDC");
- break;
+ break;
}
-case wxPostScriptDC_new_0: { // wxPostScriptDC::wxPostScriptDC
+case wxPostScriptDC_new_0: { // wxPostScriptDC::wxPostScriptDC
wxPostScriptDC * Result = new EwxPostScriptDC();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPostScriptDC");
- break;
+ break;
}
-case wxPostScriptDC_new_1: { // wxPostScriptDC::wxPostScriptDC
+case wxPostScriptDC_new_1: { // wxPostScriptDC::wxPostScriptDC
wxPrintData *printData = (wxPrintData *) getPtr(bp,memenv); bp += 4;
wxPostScriptDC * Result = new EwxPostScriptDC(*printData);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPostScriptDC");
- break;
+ break;
}
-case wxPostScriptDC_SetResolution: { // wxPostScriptDC::SetResolution
+case wxPostScriptDC_SetResolution: { // wxPostScriptDC::SetResolution
int * ppi = (int *) bp; bp += 4;
wxPostScriptDC::SetResolution((int) *ppi);
- break;
+ break;
}
-case wxPostScriptDC_GetResolution: { // wxPostScriptDC::GetResolution
+case wxPostScriptDC_GetResolution: { // wxPostScriptDC::GetResolution
int Result = wxPostScriptDC::GetResolution();
rt.addInt(Result);
- break;
+ break;
}
-case wxWindowDC_new_0: { // wxWindowDC::wxWindowDC
+case wxWindowDC_new_0: { // wxWindowDC::wxWindowDC
wxWindowDC * Result = new EwxWindowDC();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxWindowDC");
- break;
+ break;
}
-case wxWindowDC_new_1: { // wxWindowDC::wxWindowDC
+case wxWindowDC_new_1: { // wxWindowDC::wxWindowDC
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindowDC * Result = new EwxWindowDC(win);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxWindowDC");
- break;
+ break;
}
-case wxClientDC_new_0: { // wxClientDC::wxClientDC
+case wxClientDC_new_0: { // wxClientDC::wxClientDC
wxClientDC * Result = new EwxClientDC();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxClientDC");
- break;
+ break;
}
-case wxClientDC_new_1: { // wxClientDC::wxClientDC
+case wxClientDC_new_1: { // wxClientDC::wxClientDC
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxClientDC * Result = new EwxClientDC(win);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxClientDC");
- break;
+ break;
}
-case wxPaintDC_new_0: { // wxPaintDC::wxPaintDC
+case wxPaintDC_new_0: { // wxPaintDC::wxPaintDC
wxPaintDC * Result = new EwxPaintDC();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPaintDC");
- break;
+ break;
}
-case wxPaintDC_new_1: { // wxPaintDC::wxPaintDC
+case wxPaintDC_new_1: { // wxPaintDC::wxPaintDC
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxPaintDC * Result = new EwxPaintDC(win);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPaintDC");
- break;
+ break;
}
-case wxMemoryDC_new_1_0: { // wxMemoryDC::wxMemoryDC
+case wxMemoryDC_new_1_0: { // wxMemoryDC::wxMemoryDC
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxMemoryDC * Result = new EwxMemoryDC(*bitmap);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMemoryDC");
- break;
+ break;
}
-case wxMemoryDC_new_1_1: { // wxMemoryDC::wxMemoryDC
+case wxMemoryDC_new_1_1: { // wxMemoryDC::wxMemoryDC
wxDC * dc = (wxDC *) getPtr(bp,memenv); bp += 4;
wxMemoryDC * Result = new EwxMemoryDC(dc);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMemoryDC");
- break;
+ break;
}
-case wxMemoryDC_new_0: { // wxMemoryDC::wxMemoryDC
+case wxMemoryDC_new_0: { // wxMemoryDC::wxMemoryDC
wxMemoryDC * Result = new EwxMemoryDC();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMemoryDC");
- break;
+ break;
}
-case wxMemoryDC_SelectObject: { // wxMemoryDC::SelectObject
+case wxMemoryDC_SelectObject: { // wxMemoryDC::SelectObject
wxMemoryDC *This = (wxMemoryDC *) getPtr(bp,memenv); bp += 4;
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SelectObject(*bmp);
- break;
+ break;
}
-case wxMemoryDC_SelectObjectAsSource: { // wxMemoryDC::SelectObjectAsSource
+case wxMemoryDC_SelectObjectAsSource: { // wxMemoryDC::SelectObjectAsSource
wxMemoryDC *This = (wxMemoryDC *) getPtr(bp,memenv); bp += 4;
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SelectObjectAsSource(*bmp);
- break;
+ break;
}
-case wxBufferedDC_new_0: { // wxBufferedDC::wxBufferedDC
+case wxBufferedDC_new_0: { // wxBufferedDC::wxBufferedDC
wxBufferedDC * Result = new EwxBufferedDC();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBufferedDC");
- break;
+ break;
}
-case wxBufferedDC_new_2: { // wxBufferedDC::wxBufferedDC
+case wxBufferedDC_new_2: { // wxBufferedDC::wxBufferedDC
wxBitmap * buffer= &wxNullBitmap;
int style=0x02;
wxDC *dc = (wxDC *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
buffer = (wxBitmap *) getPtr(bp,memenv); bp += 4;
} break;
case 2: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxBufferedDC * Result = new EwxBufferedDC(dc,*buffer,style);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBufferedDC");
- break;
+ break;
}
-case wxBufferedDC_new_3: { // wxBufferedDC::wxBufferedDC
+case wxBufferedDC_new_3: { // wxBufferedDC::wxBufferedDC
int style=0x02;
wxDC *dc = (wxDC *) getPtr(bp,memenv); bp += 4;
int * areaW = (int *) bp; bp += 4;
int * areaH = (int *) bp; bp += 4;
wxSize area = wxSize(*areaW,*areaH);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxBufferedDC * Result = new EwxBufferedDC(dc,area,style);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBufferedDC");
- break;
+ break;
}
-case wxBufferedDC_Init_2: { // wxBufferedDC::Init
+case wxBufferedDC_Init_2: { // wxBufferedDC::Init
wxBitmap * buffer= &wxNullBitmap;
int style=0x02;
wxBufferedDC *This = (wxBufferedDC *) getPtr(bp,memenv); bp += 4;
wxDC *dc = (wxDC *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
buffer = (wxBitmap *) getPtr(bp,memenv); bp += 4;
} break;
case 2: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Init(dc,*buffer,style);
- break;
+ break;
}
-case wxBufferedDC_Init_3: { // wxBufferedDC::Init
+case wxBufferedDC_Init_3: { // wxBufferedDC::Init
int style=0x02;
wxBufferedDC *This = (wxBufferedDC *) getPtr(bp,memenv); bp += 4;
wxDC *dc = (wxDC *) getPtr(bp,memenv); bp += 4;
int * areaW = (int *) bp; bp += 4;
int * areaH = (int *) bp; bp += 4;
wxSize area = wxSize(*areaW,*areaH);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Init(dc,area,style);
- break;
+ break;
}
-case wxBufferedPaintDC_new_3: { // wxBufferedPaintDC::wxBufferedPaintDC
+case wxBufferedPaintDC_new_3: { // wxBufferedPaintDC::wxBufferedPaintDC
int style=0x02;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxBitmap *buffer = (wxBitmap *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxBufferedPaintDC * Result = new EwxBufferedPaintDC(window,*buffer,style);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBufferedPaintDC");
- break;
+ break;
}
-case wxBufferedPaintDC_new_2: { // wxBufferedPaintDC::wxBufferedPaintDC
+case wxBufferedPaintDC_new_2: { // wxBufferedPaintDC::wxBufferedPaintDC
int style=0x02;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxBufferedPaintDC * Result = new EwxBufferedPaintDC(window,style);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBufferedPaintDC");
- break;
+ break;
}
#if wxUSE_GRAPHICS_CONTEXT
-case wxGraphicsObject_GetRenderer: { // wxGraphicsObject::GetRenderer
+case wxGraphicsObject_GetRenderer: { // wxGraphicsObject::GetRenderer
wxGraphicsObject *This = (wxGraphicsObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsRenderer * Result = (wxGraphicsRenderer*)This->GetRenderer();
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsRenderer");
- break;
+ break;
}
-case wxGraphicsObject_IsNull: { // wxGraphicsObject::IsNull
+case wxGraphicsObject_IsNull: { // wxGraphicsObject::IsNull
wxGraphicsObject *This = (wxGraphicsObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsNull();
rt.addBool(Result);
- break;
+ break;
}
#endif // wxUSE_GRAPHICS_CONTEXT
#if wxUSE_GRAPHICS_CONTEXT
-case wxGraphicsContext_Create_1_1: { // wxGraphicsContext::Create
+case wxGraphicsContext_Create_1_1: { // wxGraphicsContext::Create
wxWindowDC * dc = (wxWindowDC *) getPtr(bp,memenv); bp += 4;
wxGraphicsContext * Result = (wxGraphicsContext*)wxGraphicsContext::Create(*dc);
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsContext");
- break;
+ break;
}
-case wxGraphicsContext_Create_1_0: { // wxGraphicsContext::Create
+case wxGraphicsContext_Create_1_0: { // wxGraphicsContext::Create
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxGraphicsContext * Result = (wxGraphicsContext*)wxGraphicsContext::Create(window);
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsContext");
- break;
+ break;
}
-case wxGraphicsContext_Create_0: { // wxGraphicsContext::Create
+case wxGraphicsContext_Create_0: { // wxGraphicsContext::Create
wxGraphicsContext * Result = (wxGraphicsContext*)wxGraphicsContext::Create();
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsContext");
- break;
+ break;
}
-case wxGraphicsContext_CreatePen: { // wxGraphicsContext::CreatePen
+case wxGraphicsContext_CreatePen: { // wxGraphicsContext::CreatePen
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxPen *pen = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsPen * Result = new wxGraphicsPen(This->CreatePen(*pen)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsPen");
- break;
+ break;
}
-case wxGraphicsContext_CreateBrush: { // wxGraphicsContext::CreateBrush
+case wxGraphicsContext_CreateBrush: { // wxGraphicsContext::CreateBrush
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxBrush *brush = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsBrush * Result = new wxGraphicsBrush(This->CreateBrush(*brush)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsBrush");
- break;
+ break;
}
-case wxGraphicsContext_CreateRadialGradientBrush: { // wxGraphicsContext::CreateRadialGradientBrush
+case wxGraphicsContext_CreateRadialGradientBrush: { // wxGraphicsContext::CreateRadialGradientBrush
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * xo = (wxDouble *) bp; bp += 8;
@@ -6095,9 +6095,9 @@ case wxGraphicsContext_CreateRadialGradientBrush: { // wxGraphicsContext::Create
if(!This) throw wxe_badarg(0);
wxGraphicsBrush * Result = new wxGraphicsBrush(This->CreateRadialGradientBrush((wxDouble) *xo,(wxDouble) *yo,(wxDouble) *xc,(wxDouble) *yc,(wxDouble) *radius,oColor,cColor)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsBrush");
- break;
+ break;
}
-case wxGraphicsContext_CreateLinearGradientBrush: { // wxGraphicsContext::CreateLinearGradientBrush
+case wxGraphicsContext_CreateLinearGradientBrush: { // wxGraphicsContext::CreateLinearGradientBrush
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x1 = (wxDouble *) bp; bp += 8;
@@ -6117,13 +6117,13 @@ case wxGraphicsContext_CreateLinearGradientBrush: { // wxGraphicsContext::Create
if(!This) throw wxe_badarg(0);
wxGraphicsBrush * Result = new wxGraphicsBrush(This->CreateLinearGradientBrush((wxDouble) *x1,(wxDouble) *y1,(wxDouble) *x2,(wxDouble) *y2,c1,c2)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsBrush");
- break;
+ break;
}
-case wxGraphicsContext_CreateFont: { // wxGraphicsContext::CreateFont
+case wxGraphicsContext_CreateFont: { // wxGraphicsContext::CreateFont
wxColour col= *wxBLACK;
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -6132,13 +6132,13 @@ case wxGraphicsContext_CreateFont: { // wxGraphicsContext::CreateFont
col = wxColour(*colR,*colG,*colB,*colA);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxGraphicsFont * Result = new wxGraphicsFont(This->CreateFont(*font,col)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsFont");
- break;
+ break;
}
-case wxGraphicsContext_CreateMatrix: { // wxGraphicsContext::CreateMatrix
+case wxGraphicsContext_CreateMatrix: { // wxGraphicsContext::CreateMatrix
wxDouble a=1.0;
wxDouble b=0.0;
wxDouble c=0.0;
@@ -6147,7 +6147,7 @@ case wxGraphicsContext_CreateMatrix: { // wxGraphicsContext::CreateMatrix
wxDouble ty=0.0;
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bp += 4; /* Align */
a = * (wxDouble *) bp; bp += 8;
@@ -6172,27 +6172,27 @@ case wxGraphicsContext_CreateMatrix: { // wxGraphicsContext::CreateMatrix
bp += 4; /* Align */
ty = * (wxDouble *) bp; bp += 8;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxGraphicsMatrix * Result = new wxGraphicsMatrix(This->CreateMatrix(a,b,c,d,tx,ty)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsMatrix");
- break;
+ break;
}
-case wxGraphicsContext_CreatePath: { // wxGraphicsContext::CreatePath
+case wxGraphicsContext_CreatePath: { // wxGraphicsContext::CreatePath
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsPath * Result = new wxGraphicsPath(This->CreatePath()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsPath");
- break;
+ break;
}
-case wxGraphicsContext_Clip_1: { // wxGraphicsContext::Clip
+case wxGraphicsContext_Clip_1: { // wxGraphicsContext::Clip
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxRegion *region = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Clip(*region);
- break;
+ break;
}
-case wxGraphicsContext_Clip_4: { // wxGraphicsContext::Clip
+case wxGraphicsContext_Clip_4: { // wxGraphicsContext::Clip
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6201,15 +6201,15 @@ case wxGraphicsContext_Clip_4: { // wxGraphicsContext::Clip
wxDouble * h = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->Clip((wxDouble) *x,(wxDouble) *y,(wxDouble) *w,(wxDouble) *h);
- break;
+ break;
}
-case wxGraphicsContext_ResetClip: { // wxGraphicsContext::ResetClip
+case wxGraphicsContext_ResetClip: { // wxGraphicsContext::ResetClip
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ResetClip();
- break;
+ break;
}
-case wxGraphicsContext_DrawBitmap: { // wxGraphicsContext::DrawBitmap
+case wxGraphicsContext_DrawBitmap: { // wxGraphicsContext::DrawBitmap
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6218,9 +6218,9 @@ case wxGraphicsContext_DrawBitmap: { // wxGraphicsContext::DrawBitmap
wxDouble * h = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawBitmap(*bmp,(wxDouble) *x,(wxDouble) *y,(wxDouble) *w,(wxDouble) *h);
- break;
+ break;
}
-case wxGraphicsContext_DrawEllipse: { // wxGraphicsContext::DrawEllipse
+case wxGraphicsContext_DrawEllipse: { // wxGraphicsContext::DrawEllipse
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6229,9 +6229,9 @@ case wxGraphicsContext_DrawEllipse: { // wxGraphicsContext::DrawEllipse
wxDouble * h = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawEllipse((wxDouble) *x,(wxDouble) *y,(wxDouble) *w,(wxDouble) *h);
- break;
+ break;
}
-case wxGraphicsContext_DrawIcon: { // wxGraphicsContext::DrawIcon
+case wxGraphicsContext_DrawIcon: { // wxGraphicsContext::DrawIcon
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxIcon *icon = (wxIcon *) getPtr(bp,memenv); bp += 4;
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6240,38 +6240,38 @@ case wxGraphicsContext_DrawIcon: { // wxGraphicsContext::DrawIcon
wxDouble * h = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawIcon(*icon,(wxDouble) *x,(wxDouble) *y,(wxDouble) *w,(wxDouble) *h);
- break;
+ break;
}
-case wxGraphicsContext_DrawLines: { // wxGraphicsContext::DrawLines
+case wxGraphicsContext_DrawLines: { // wxGraphicsContext::DrawLines
int fillStyle=wxODDEVEN_RULE;
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
wxDouble * pointsX = (wxDouble *) bp; bp += 8;
wxDouble * pointsY = (wxDouble *) bp; bp += 8;
wxPoint2DDouble points = wxPoint2DDouble(*pointsX,*pointsY);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
fillStyle = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->DrawLines((size_t) *n,&points,fillStyle);
- break;
+ break;
}
-case wxGraphicsContext_DrawPath: { // wxGraphicsContext::DrawPath
+case wxGraphicsContext_DrawPath: { // wxGraphicsContext::DrawPath
int fillStyle=wxODDEVEN_RULE;
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxGraphicsPath *path = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
fillStyle = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->DrawPath(*path,fillStyle);
- break;
+ break;
}
-case wxGraphicsContext_DrawRectangle: { // wxGraphicsContext::DrawRectangle
+case wxGraphicsContext_DrawRectangle: { // wxGraphicsContext::DrawRectangle
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6280,9 +6280,9 @@ case wxGraphicsContext_DrawRectangle: { // wxGraphicsContext::DrawRectangle
wxDouble * h = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawRectangle((wxDouble) *x,(wxDouble) *y,(wxDouble) *w,(wxDouble) *h);
- break;
+ break;
}
-case wxGraphicsContext_DrawRoundedRectangle: { // wxGraphicsContext::DrawRoundedRectangle
+case wxGraphicsContext_DrawRoundedRectangle: { // wxGraphicsContext::DrawRoundedRectangle
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6292,9 +6292,9 @@ case wxGraphicsContext_DrawRoundedRectangle: { // wxGraphicsContext::DrawRounded
wxDouble * radius = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawRoundedRectangle((wxDouble) *x,(wxDouble) *y,(wxDouble) *w,(wxDouble) *h,(wxDouble) *radius);
- break;
+ break;
}
-case wxGraphicsContext_DrawText_3: { // wxGraphicsContext::DrawText
+case wxGraphicsContext_DrawText_3: { // wxGraphicsContext::DrawText
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
@@ -6303,9 +6303,9 @@ case wxGraphicsContext_DrawText_3: { // wxGraphicsContext::DrawText
wxDouble * y = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawText(str,(wxDouble) *x,(wxDouble) *y);
- break;
+ break;
}
-case wxGraphicsContext_DrawText_4_0: { // wxGraphicsContext::DrawText
+case wxGraphicsContext_DrawText_4_0: { // wxGraphicsContext::DrawText
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
@@ -6315,9 +6315,9 @@ case wxGraphicsContext_DrawText_4_0: { // wxGraphicsContext::DrawText
wxDouble * angle = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->DrawText(str,(wxDouble) *x,(wxDouble) *y,(wxDouble) *angle);
- break;
+ break;
}
-case wxGraphicsContext_DrawText_4_1: { // wxGraphicsContext::DrawText
+case wxGraphicsContext_DrawText_4_1: { // wxGraphicsContext::DrawText
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
@@ -6327,9 +6327,9 @@ case wxGraphicsContext_DrawText_4_1: { // wxGraphicsContext::DrawText
wxGraphicsBrush *backgroundBrush = (wxGraphicsBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DrawText(str,(wxDouble) *x,(wxDouble) *y,*backgroundBrush);
- break;
+ break;
}
-case wxGraphicsContext_DrawText_5: { // wxGraphicsContext::DrawText
+case wxGraphicsContext_DrawText_5: { // wxGraphicsContext::DrawText
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
@@ -6340,35 +6340,35 @@ case wxGraphicsContext_DrawText_5: { // wxGraphicsContext::DrawText
wxGraphicsBrush *backgroundBrush = (wxGraphicsBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DrawText(str,(wxDouble) *x,(wxDouble) *y,(wxDouble) *angle,*backgroundBrush);
- break;
+ break;
}
-case wxGraphicsContext_FillPath: { // wxGraphicsContext::FillPath
+case wxGraphicsContext_FillPath: { // wxGraphicsContext::FillPath
int fillStyle=wxODDEVEN_RULE;
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxGraphicsPath *path = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
fillStyle = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->FillPath(*path,fillStyle);
- break;
+ break;
}
-case wxGraphicsContext_StrokePath: { // wxGraphicsContext::StrokePath
+case wxGraphicsContext_StrokePath: { // wxGraphicsContext::StrokePath
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxGraphicsPath *path = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StrokePath(*path);
- break;
+ break;
}
-case wxGraphicsContext_GetNativeContext: { // wxGraphicsContext::GetNativeContext
+case wxGraphicsContext_GetNativeContext: { // wxGraphicsContext::GetNativeContext
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->GetNativeContext();
- break;
+ break;
}
-case wxGraphicsContext_GetPartialTextExtents: { // wxGraphicsContext::GetPartialTextExtents
+case wxGraphicsContext_GetPartialTextExtents: { // wxGraphicsContext::GetPartialTextExtents
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
@@ -6379,9 +6379,9 @@ case wxGraphicsContext_GetPartialTextExtents: { // wxGraphicsContext::GetPartial
for(int i=0; i < *widthsLen; i++) { widths.Add(*(int *) bp); bp += 4;}
if(!This) throw wxe_badarg(0);
This->GetPartialTextExtents(text,widths);
- break;
+ break;
}
-case wxGraphicsContext_GetTextExtent: { // wxGraphicsContext::GetTextExtent
+case wxGraphicsContext_GetTextExtent: { // wxGraphicsContext::GetTextExtent
wxDouble width;
wxDouble height;
wxDouble descent;
@@ -6397,77 +6397,77 @@ case wxGraphicsContext_GetTextExtent: { // wxGraphicsContext::GetTextExtent
rt.addFloat(descent);
rt.addFloat(externalLeading);
rt.addTupleCount(4);
- break;
+ break;
}
-case wxGraphicsContext_Rotate: { // wxGraphicsContext::Rotate
+case wxGraphicsContext_Rotate: { // wxGraphicsContext::Rotate
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * angle = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->Rotate((wxDouble) *angle);
- break;
+ break;
}
-case wxGraphicsContext_Scale: { // wxGraphicsContext::Scale
+case wxGraphicsContext_Scale: { // wxGraphicsContext::Scale
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * xScale = (wxDouble *) bp; bp += 8;
wxDouble * yScale = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->Scale((wxDouble) *xScale,(wxDouble) *yScale);
- break;
+ break;
}
-case wxGraphicsContext_Translate: { // wxGraphicsContext::Translate
+case wxGraphicsContext_Translate: { // wxGraphicsContext::Translate
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * dx = (wxDouble *) bp; bp += 8;
wxDouble * dy = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->Translate((wxDouble) *dx,(wxDouble) *dy);
- break;
+ break;
}
-case wxGraphicsContext_GetTransform: { // wxGraphicsContext::GetTransform
+case wxGraphicsContext_GetTransform: { // wxGraphicsContext::GetTransform
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsMatrix * Result = new wxGraphicsMatrix(This->GetTransform()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsMatrix");
- break;
+ break;
}
-case wxGraphicsContext_SetTransform: { // wxGraphicsContext::SetTransform
+case wxGraphicsContext_SetTransform: { // wxGraphicsContext::SetTransform
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxGraphicsMatrix *matrix = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetTransform(*matrix);
- break;
+ break;
}
-case wxGraphicsContext_ConcatTransform: { // wxGraphicsContext::ConcatTransform
+case wxGraphicsContext_ConcatTransform: { // wxGraphicsContext::ConcatTransform
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxGraphicsMatrix *matrix = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ConcatTransform(*matrix);
- break;
+ break;
}
-case wxGraphicsContext_SetBrush_1_1: { // wxGraphicsContext::SetBrush
+case wxGraphicsContext_SetBrush_1_1: { // wxGraphicsContext::SetBrush
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxGraphicsBrush * brush = (wxGraphicsBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBrush(*brush);
- break;
+ break;
}
-case wxGraphicsContext_SetBrush_1_0: { // wxGraphicsContext::SetBrush
+case wxGraphicsContext_SetBrush_1_0: { // wxGraphicsContext::SetBrush
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxBrush *brush = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBrush(*brush);
- break;
+ break;
}
-case wxGraphicsContext_SetFont_1: { // wxGraphicsContext::SetFont
+case wxGraphicsContext_SetFont_1: { // wxGraphicsContext::SetFont
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxGraphicsFont *font = (wxGraphicsFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFont(*font);
- break;
+ break;
}
-case wxGraphicsContext_SetFont_2: { // wxGraphicsContext::SetFont
+case wxGraphicsContext_SetFont_2: { // wxGraphicsContext::SetFont
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
@@ -6477,23 +6477,23 @@ case wxGraphicsContext_SetFont_2: { // wxGraphicsContext::SetFont
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
if(!This) throw wxe_badarg(0);
This->SetFont(*font,colour);
- break;
+ break;
}
-case wxGraphicsContext_SetPen_1_0: { // wxGraphicsContext::SetPen
+case wxGraphicsContext_SetPen_1_0: { // wxGraphicsContext::SetPen
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxGraphicsPen *pen = (wxGraphicsPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPen(*pen);
- break;
+ break;
}
-case wxGraphicsContext_SetPen_1_1: { // wxGraphicsContext::SetPen
+case wxGraphicsContext_SetPen_1_1: { // wxGraphicsContext::SetPen
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
wxPen * pen = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPen(*pen);
- break;
+ break;
}
-case wxGraphicsContext_StrokeLine: { // wxGraphicsContext::StrokeLine
+case wxGraphicsContext_StrokeLine: { // wxGraphicsContext::StrokeLine
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x1 = (wxDouble *) bp; bp += 8;
@@ -6502,9 +6502,9 @@ case wxGraphicsContext_StrokeLine: { // wxGraphicsContext::StrokeLine
wxDouble * y2 = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->StrokeLine((wxDouble) *x1,(wxDouble) *y1,(wxDouble) *x2,(wxDouble) *y2);
- break;
+ break;
}
-case wxGraphicsContext_StrokeLines_2: { // wxGraphicsContext::StrokeLines
+case wxGraphicsContext_StrokeLines_2: { // wxGraphicsContext::StrokeLines
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
wxDouble * pointsX = (wxDouble *) bp; bp += 8;
@@ -6512,9 +6512,9 @@ case wxGraphicsContext_StrokeLines_2: { // wxGraphicsContext::StrokeLines
wxPoint2DDouble points = wxPoint2DDouble(*pointsX,*pointsY);
if(!This) throw wxe_badarg(0);
This->StrokeLines((size_t) *n,&points);
- break;
+ break;
}
-case wxGraphicsContext_StrokeLines_3: { // wxGraphicsContext::StrokeLines
+case wxGraphicsContext_StrokeLines_3: { // wxGraphicsContext::StrokeLines
wxGraphicsContext *This = (wxGraphicsContext *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
wxDouble * beginPointsX = (wxDouble *) bp; bp += 8;
@@ -6525,18 +6525,18 @@ case wxGraphicsContext_StrokeLines_3: { // wxGraphicsContext::StrokeLines
wxPoint2DDouble endPoints = wxPoint2DDouble(*endPointsX,*endPointsY);
if(!This) throw wxe_badarg(0);
This->StrokeLines((size_t) *n,&beginPoints,&endPoints);
- break;
+ break;
}
#endif // wxUSE_GRAPHICS_CONTEXT
#if wxUSE_GRAPHICS_CONTEXT
-case wxGraphicsMatrix_Concat: { // wxGraphicsMatrix::Concat
+case wxGraphicsMatrix_Concat: { // wxGraphicsMatrix::Concat
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
wxGraphicsMatrix *t = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Concat(t);
- break;
+ break;
}
-case wxGraphicsMatrix_Get: { // wxGraphicsMatrix::Get
+case wxGraphicsMatrix_Get: { // wxGraphicsMatrix::Get
wxDouble a;
wxDouble b;
wxDouble c;
@@ -6553,62 +6553,62 @@ case wxGraphicsMatrix_Get: { // wxGraphicsMatrix::Get
rt.addFloat(tx);
rt.addFloat(ty);
rt.addTupleCount(6);
- break;
+ break;
}
-case wxGraphicsMatrix_GetNativeMatrix: { // wxGraphicsMatrix::GetNativeMatrix
+case wxGraphicsMatrix_GetNativeMatrix: { // wxGraphicsMatrix::GetNativeMatrix
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->GetNativeMatrix();
- break;
+ break;
}
-case wxGraphicsMatrix_Invert: { // wxGraphicsMatrix::Invert
+case wxGraphicsMatrix_Invert: { // wxGraphicsMatrix::Invert
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Invert();
- break;
+ break;
}
-case wxGraphicsMatrix_IsEqual: { // wxGraphicsMatrix::IsEqual
+case wxGraphicsMatrix_IsEqual: { // wxGraphicsMatrix::IsEqual
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
wxGraphicsMatrix *t = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEqual(t);
rt.addBool(Result);
- break;
+ break;
}
-case wxGraphicsMatrix_IsIdentity: { // wxGraphicsMatrix::IsIdentity
+case wxGraphicsMatrix_IsIdentity: { // wxGraphicsMatrix::IsIdentity
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsIdentity();
rt.addBool(Result);
- break;
+ break;
}
-case wxGraphicsMatrix_Rotate: { // wxGraphicsMatrix::Rotate
+case wxGraphicsMatrix_Rotate: { // wxGraphicsMatrix::Rotate
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * angle = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->Rotate((wxDouble) *angle);
- break;
+ break;
}
-case wxGraphicsMatrix_Scale: { // wxGraphicsMatrix::Scale
+case wxGraphicsMatrix_Scale: { // wxGraphicsMatrix::Scale
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * xScale = (wxDouble *) bp; bp += 8;
wxDouble * yScale = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->Scale((wxDouble) *xScale,(wxDouble) *yScale);
- break;
+ break;
}
-case wxGraphicsMatrix_Translate: { // wxGraphicsMatrix::Translate
+case wxGraphicsMatrix_Translate: { // wxGraphicsMatrix::Translate
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * dx = (wxDouble *) bp; bp += 8;
wxDouble * dy = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->Translate((wxDouble) *dx,(wxDouble) *dy);
- break;
+ break;
}
-case wxGraphicsMatrix_Set: { // wxGraphicsMatrix::Set
+case wxGraphicsMatrix_Set: { // wxGraphicsMatrix::Set
wxDouble a=1.0;
wxDouble b=0.0;
wxDouble c=0.0;
@@ -6617,7 +6617,7 @@ case wxGraphicsMatrix_Set: { // wxGraphicsMatrix::Set
wxDouble ty=0.0;
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bp += 4; /* Align */
a = * (wxDouble *) bp; bp += 8;
@@ -6642,12 +6642,12 @@ case wxGraphicsMatrix_Set: { // wxGraphicsMatrix::Set
bp += 4; /* Align */
ty = * (wxDouble *) bp; bp += 8;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Set(a,b,c,d,tx,ty);
- break;
+ break;
}
-case wxGraphicsMatrix_TransformPoint: { // wxGraphicsMatrix::TransformPoint
+case wxGraphicsMatrix_TransformPoint: { // wxGraphicsMatrix::TransformPoint
wxDouble x;
wxDouble y;
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
@@ -6656,9 +6656,9 @@ case wxGraphicsMatrix_TransformPoint: { // wxGraphicsMatrix::TransformPoint
rt.addFloat(x);
rt.addFloat(y);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxGraphicsMatrix_TransformDistance: { // wxGraphicsMatrix::TransformDistance
+case wxGraphicsMatrix_TransformDistance: { // wxGraphicsMatrix::TransformDistance
wxDouble dx;
wxDouble dy;
wxGraphicsMatrix *This = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
@@ -6667,20 +6667,20 @@ case wxGraphicsMatrix_TransformDistance: { // wxGraphicsMatrix::TransformDistanc
rt.addFloat(dx);
rt.addFloat(dy);
rt.addTupleCount(2);
- break;
+ break;
}
#endif // wxUSE_GRAPHICS_CONTEXT
#if wxUSE_GRAPHICS_CONTEXT
-case wxGraphicsPath_MoveToPoint_2: { // wxGraphicsPath::MoveToPoint
+case wxGraphicsPath_MoveToPoint_2: { // wxGraphicsPath::MoveToPoint
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
wxDouble * y = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->MoveToPoint((wxDouble) *x,(wxDouble) *y);
- break;
+ break;
}
-case wxGraphicsPath_MoveToPoint_1: { // wxGraphicsPath::MoveToPoint
+case wxGraphicsPath_MoveToPoint_1: { // wxGraphicsPath::MoveToPoint
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * pX = (wxDouble *) bp; bp += 8;
@@ -6688,9 +6688,9 @@ case wxGraphicsPath_MoveToPoint_1: { // wxGraphicsPath::MoveToPoint
wxPoint2DDouble p = wxPoint2DDouble(*pX,*pY);
if(!This) throw wxe_badarg(0);
This->MoveToPoint(p);
- break;
+ break;
}
-case wxGraphicsPath_AddArc_6: { // wxGraphicsPath::AddArc
+case wxGraphicsPath_AddArc_6: { // wxGraphicsPath::AddArc
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6701,9 +6701,9 @@ case wxGraphicsPath_AddArc_6: { // wxGraphicsPath::AddArc
bool * clockwise = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AddArc((wxDouble) *x,(wxDouble) *y,(wxDouble) *r,(wxDouble) *startAngle,(wxDouble) *endAngle,(bool) *clockwise);
- break;
+ break;
}
-case wxGraphicsPath_AddArc_5: { // wxGraphicsPath::AddArc
+case wxGraphicsPath_AddArc_5: { // wxGraphicsPath::AddArc
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * cX = (wxDouble *) bp; bp += 8;
@@ -6715,9 +6715,9 @@ case wxGraphicsPath_AddArc_5: { // wxGraphicsPath::AddArc
bool * clockwise = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AddArc(c,(wxDouble) *r,(wxDouble) *startAngle,(wxDouble) *endAngle,(bool) *clockwise);
- break;
+ break;
}
-case wxGraphicsPath_AddArcToPoint: { // wxGraphicsPath::AddArcToPoint
+case wxGraphicsPath_AddArcToPoint: { // wxGraphicsPath::AddArcToPoint
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x1 = (wxDouble *) bp; bp += 8;
@@ -6727,9 +6727,9 @@ case wxGraphicsPath_AddArcToPoint: { // wxGraphicsPath::AddArcToPoint
wxDouble * r = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->AddArcToPoint((wxDouble) *x1,(wxDouble) *y1,(wxDouble) *x2,(wxDouble) *y2,(wxDouble) *r);
- break;
+ break;
}
-case wxGraphicsPath_AddCircle: { // wxGraphicsPath::AddCircle
+case wxGraphicsPath_AddCircle: { // wxGraphicsPath::AddCircle
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6737,9 +6737,9 @@ case wxGraphicsPath_AddCircle: { // wxGraphicsPath::AddCircle
wxDouble * r = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->AddCircle((wxDouble) *x,(wxDouble) *y,(wxDouble) *r);
- break;
+ break;
}
-case wxGraphicsPath_AddCurveToPoint_6: { // wxGraphicsPath::AddCurveToPoint
+case wxGraphicsPath_AddCurveToPoint_6: { // wxGraphicsPath::AddCurveToPoint
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * cx1 = (wxDouble *) bp; bp += 8;
@@ -6750,9 +6750,9 @@ case wxGraphicsPath_AddCurveToPoint_6: { // wxGraphicsPath::AddCurveToPoint
wxDouble * y = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->AddCurveToPoint((wxDouble) *cx1,(wxDouble) *cy1,(wxDouble) *cx2,(wxDouble) *cy2,(wxDouble) *x,(wxDouble) *y);
- break;
+ break;
}
-case wxGraphicsPath_AddCurveToPoint_3: { // wxGraphicsPath::AddCurveToPoint
+case wxGraphicsPath_AddCurveToPoint_3: { // wxGraphicsPath::AddCurveToPoint
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * c1X = (wxDouble *) bp; bp += 8;
@@ -6766,9 +6766,9 @@ case wxGraphicsPath_AddCurveToPoint_3: { // wxGraphicsPath::AddCurveToPoint
wxPoint2DDouble e = wxPoint2DDouble(*eX,*eY);
if(!This) throw wxe_badarg(0);
This->AddCurveToPoint(c1,c2,e);
- break;
+ break;
}
-case wxGraphicsPath_AddEllipse: { // wxGraphicsPath::AddEllipse
+case wxGraphicsPath_AddEllipse: { // wxGraphicsPath::AddEllipse
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6777,18 +6777,18 @@ case wxGraphicsPath_AddEllipse: { // wxGraphicsPath::AddEllipse
wxDouble * h = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->AddEllipse((wxDouble) *x,(wxDouble) *y,(wxDouble) *w,(wxDouble) *h);
- break;
+ break;
}
-case wxGraphicsPath_AddLineToPoint_2: { // wxGraphicsPath::AddLineToPoint
+case wxGraphicsPath_AddLineToPoint_2: { // wxGraphicsPath::AddLineToPoint
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
wxDouble * y = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->AddLineToPoint((wxDouble) *x,(wxDouble) *y);
- break;
+ break;
}
-case wxGraphicsPath_AddLineToPoint_1: { // wxGraphicsPath::AddLineToPoint
+case wxGraphicsPath_AddLineToPoint_1: { // wxGraphicsPath::AddLineToPoint
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * pX = (wxDouble *) bp; bp += 8;
@@ -6796,16 +6796,16 @@ case wxGraphicsPath_AddLineToPoint_1: { // wxGraphicsPath::AddLineToPoint
wxPoint2DDouble p = wxPoint2DDouble(*pX,*pY);
if(!This) throw wxe_badarg(0);
This->AddLineToPoint(p);
- break;
+ break;
}
-case wxGraphicsPath_AddPath: { // wxGraphicsPath::AddPath
+case wxGraphicsPath_AddPath: { // wxGraphicsPath::AddPath
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
wxGraphicsPath *path = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AddPath(*path);
- break;
+ break;
}
-case wxGraphicsPath_AddQuadCurveToPoint: { // wxGraphicsPath::AddQuadCurveToPoint
+case wxGraphicsPath_AddQuadCurveToPoint: { // wxGraphicsPath::AddQuadCurveToPoint
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * cx = (wxDouble *) bp; bp += 8;
@@ -6814,9 +6814,9 @@ case wxGraphicsPath_AddQuadCurveToPoint: { // wxGraphicsPath::AddQuadCurveToPoin
wxDouble * y = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->AddQuadCurveToPoint((wxDouble) *cx,(wxDouble) *cy,(wxDouble) *x,(wxDouble) *y);
- break;
+ break;
}
-case wxGraphicsPath_AddRectangle: { // wxGraphicsPath::AddRectangle
+case wxGraphicsPath_AddRectangle: { // wxGraphicsPath::AddRectangle
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6825,9 +6825,9 @@ case wxGraphicsPath_AddRectangle: { // wxGraphicsPath::AddRectangle
wxDouble * h = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->AddRectangle((wxDouble) *x,(wxDouble) *y,(wxDouble) *w,(wxDouble) *h);
- break;
+ break;
}
-case wxGraphicsPath_AddRoundedRectangle: { // wxGraphicsPath::AddRoundedRectangle
+case wxGraphicsPath_AddRoundedRectangle: { // wxGraphicsPath::AddRoundedRectangle
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
@@ -6837,108 +6837,108 @@ case wxGraphicsPath_AddRoundedRectangle: { // wxGraphicsPath::AddRoundedRectangl
wxDouble * radius = (wxDouble *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->AddRoundedRectangle((wxDouble) *x,(wxDouble) *y,(wxDouble) *w,(wxDouble) *h,(wxDouble) *radius);
- break;
+ break;
}
-case wxGraphicsPath_CloseSubpath: { // wxGraphicsPath::CloseSubpath
+case wxGraphicsPath_CloseSubpath: { // wxGraphicsPath::CloseSubpath
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CloseSubpath();
- break;
+ break;
}
-case wxGraphicsPath_Contains_3: { // wxGraphicsPath::Contains
+case wxGraphicsPath_Contains_3: { // wxGraphicsPath::Contains
int fillStyle=wxODDEVEN_RULE;
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x = (wxDouble *) bp; bp += 8;
wxDouble * y = (wxDouble *) bp; bp += 8;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
fillStyle = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Contains((wxDouble) *x,(wxDouble) *y,fillStyle);
rt.addBool(Result);
- break;
+ break;
}
-case wxGraphicsPath_Contains_2: { // wxGraphicsPath::Contains
+case wxGraphicsPath_Contains_2: { // wxGraphicsPath::Contains
int fillStyle=wxODDEVEN_RULE;
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * cX = (wxDouble *) bp; bp += 8;
wxDouble * cY = (wxDouble *) bp; bp += 8;
wxPoint2DDouble c = wxPoint2DDouble(*cX,*cY);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
fillStyle = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Contains(c,fillStyle);
rt.addBool(Result);
- break;
+ break;
}
-case wxGraphicsPath_GetBox: { // wxGraphicsPath::GetBox
+case wxGraphicsPath_GetBox: { // wxGraphicsPath::GetBox
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect2DDouble Result = This->GetBox();
rt.add(Result);
- break;
+ break;
}
-case wxGraphicsPath_GetCurrentPoint: { // wxGraphicsPath::GetCurrentPoint
+case wxGraphicsPath_GetCurrentPoint: { // wxGraphicsPath::GetCurrentPoint
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint2DDouble Result = This->GetCurrentPoint();
rt.add(Result);
- break;
+ break;
}
-case wxGraphicsPath_Transform: { // wxGraphicsPath::Transform
+case wxGraphicsPath_Transform: { // wxGraphicsPath::Transform
wxGraphicsPath *This = (wxGraphicsPath *) getPtr(bp,memenv); bp += 4;
wxGraphicsMatrix *matrix = (wxGraphicsMatrix *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Transform(*matrix);
- break;
+ break;
}
#endif // wxUSE_GRAPHICS_CONTEXT
#if wxUSE_GRAPHICS_CONTEXT
-case wxGraphicsRenderer_GetDefaultRenderer: { // wxGraphicsRenderer::GetDefaultRenderer
+case wxGraphicsRenderer_GetDefaultRenderer: { // wxGraphicsRenderer::GetDefaultRenderer
wxGraphicsRenderer * Result = (wxGraphicsRenderer*)wxGraphicsRenderer::GetDefaultRenderer();
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsRenderer");
- break;
+ break;
}
-case wxGraphicsRenderer_CreateContext_1_1: { // wxGraphicsRenderer::CreateContext
+case wxGraphicsRenderer_CreateContext_1_1: { // wxGraphicsRenderer::CreateContext
wxGraphicsRenderer *This = (wxGraphicsRenderer *) getPtr(bp,memenv); bp += 4;
wxWindowDC * dc = (wxWindowDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsContext * Result = (wxGraphicsContext*)This->CreateContext(*dc);
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsContext");
- break;
+ break;
}
-case wxGraphicsRenderer_CreateContext_1_0: { // wxGraphicsRenderer::CreateContext
+case wxGraphicsRenderer_CreateContext_1_0: { // wxGraphicsRenderer::CreateContext
wxGraphicsRenderer *This = (wxGraphicsRenderer *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsContext * Result = (wxGraphicsContext*)This->CreateContext(window);
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsContext");
- break;
+ break;
}
-case wxGraphicsRenderer_CreatePen: { // wxGraphicsRenderer::CreatePen
+case wxGraphicsRenderer_CreatePen: { // wxGraphicsRenderer::CreatePen
wxGraphicsRenderer *This = (wxGraphicsRenderer *) getPtr(bp,memenv); bp += 4;
wxPen *pen = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsPen * Result = new wxGraphicsPen(This->CreatePen(*pen)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsPen");
- break;
+ break;
}
-case wxGraphicsRenderer_CreateBrush: { // wxGraphicsRenderer::CreateBrush
+case wxGraphicsRenderer_CreateBrush: { // wxGraphicsRenderer::CreateBrush
wxGraphicsRenderer *This = (wxGraphicsRenderer *) getPtr(bp,memenv); bp += 4;
wxBrush *brush = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsBrush * Result = new wxGraphicsBrush(This->CreateBrush(*brush)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsBrush");
- break;
+ break;
}
-case wxGraphicsRenderer_CreateLinearGradientBrush: { // wxGraphicsRenderer::CreateLinearGradientBrush
+case wxGraphicsRenderer_CreateLinearGradientBrush: { // wxGraphicsRenderer::CreateLinearGradientBrush
wxGraphicsRenderer *This = (wxGraphicsRenderer *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * x1 = (wxDouble *) bp; bp += 8;
@@ -6958,9 +6958,9 @@ case wxGraphicsRenderer_CreateLinearGradientBrush: { // wxGraphicsRenderer::Crea
if(!This) throw wxe_badarg(0);
wxGraphicsBrush * Result = new wxGraphicsBrush(This->CreateLinearGradientBrush((wxDouble) *x1,(wxDouble) *y1,(wxDouble) *x2,(wxDouble) *y2,c1,c2)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsBrush");
- break;
+ break;
}
-case wxGraphicsRenderer_CreateRadialGradientBrush: { // wxGraphicsRenderer::CreateRadialGradientBrush
+case wxGraphicsRenderer_CreateRadialGradientBrush: { // wxGraphicsRenderer::CreateRadialGradientBrush
wxGraphicsRenderer *This = (wxGraphicsRenderer *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxDouble * xo = (wxDouble *) bp; bp += 8;
@@ -6981,13 +6981,13 @@ case wxGraphicsRenderer_CreateRadialGradientBrush: { // wxGraphicsRenderer::Crea
if(!This) throw wxe_badarg(0);
wxGraphicsBrush * Result = new wxGraphicsBrush(This->CreateRadialGradientBrush((wxDouble) *xo,(wxDouble) *yo,(wxDouble) *xc,(wxDouble) *yc,(wxDouble) *radius,oColor,cColor)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsBrush");
- break;
+ break;
}
-case wxGraphicsRenderer_CreateFont: { // wxGraphicsRenderer::CreateFont
+case wxGraphicsRenderer_CreateFont: { // wxGraphicsRenderer::CreateFont
wxColour col= *wxBLACK;
wxGraphicsRenderer *This = (wxGraphicsRenderer *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -6996,13 +6996,13 @@ case wxGraphicsRenderer_CreateFont: { // wxGraphicsRenderer::CreateFont
col = wxColour(*colR,*colG,*colB,*colA);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxGraphicsFont * Result = new wxGraphicsFont(This->CreateFont(*font,col)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsFont");
- break;
+ break;
}
-case wxGraphicsRenderer_CreateMatrix: { // wxGraphicsRenderer::CreateMatrix
+case wxGraphicsRenderer_CreateMatrix: { // wxGraphicsRenderer::CreateMatrix
wxDouble a=1.0;
wxDouble b=0.0;
wxDouble c=0.0;
@@ -7011,7 +7011,7 @@ case wxGraphicsRenderer_CreateMatrix: { // wxGraphicsRenderer::CreateMatrix
wxDouble ty=0.0;
wxGraphicsRenderer *This = (wxGraphicsRenderer *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bp += 4; /* Align */
a = * (wxDouble *) bp; bp += 8;
@@ -7036,18 +7036,18 @@ case wxGraphicsRenderer_CreateMatrix: { // wxGraphicsRenderer::CreateMatrix
bp += 4; /* Align */
ty = * (wxDouble *) bp; bp += 8;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxGraphicsMatrix * Result = new wxGraphicsMatrix(This->CreateMatrix(a,b,c,d,tx,ty)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsMatrix");
- break;
+ break;
}
-case wxGraphicsRenderer_CreatePath: { // wxGraphicsRenderer::CreatePath
+case wxGraphicsRenderer_CreatePath: { // wxGraphicsRenderer::CreatePath
wxGraphicsRenderer *This = (wxGraphicsRenderer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGraphicsPath * Result = new wxGraphicsPath(This->CreatePath()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxGraphicsPath");
- break;
+ break;
}
#endif // wxUSE_GRAPHICS_CONTEXT
#if wxUSE_GRAPHICS_CONTEXT
@@ -7056,20 +7056,20 @@ case wxGraphicsRenderer_CreatePath: { // wxGraphicsRenderer::CreatePath
#endif // wxUSE_GRAPHICS_CONTEXT
#if wxUSE_GRAPHICS_CONTEXT
#endif // wxUSE_GRAPHICS_CONTEXT
-case wxMenuBar_new_1: { // wxMenuBar::wxMenuBar
+case wxMenuBar_new_1: { // wxMenuBar::wxMenuBar
int * style = (int *) bp; bp += 4;
wxMenuBar * Result = new EwxMenuBar((long) *style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMenuBar");
- break;
+ break;
}
-case wxMenuBar_new_0: { // wxMenuBar::wxMenuBar
+case wxMenuBar_new_0: { // wxMenuBar::wxMenuBar
wxMenuBar * Result = new EwxMenuBar();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMenuBar");
- break;
+ break;
}
-case wxMenuBar_Append: { // wxMenuBar::Append
+case wxMenuBar_Append: { // wxMenuBar::Append
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
wxMenu *menu = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * titleLen = (int *) bp; bp += 4;
@@ -7078,47 +7078,47 @@ case wxMenuBar_Append: { // wxMenuBar::Append
if(!This) throw wxe_badarg(0);
bool Result = This->Append(menu,title);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuBar_Check: { // wxMenuBar::Check
+case wxMenuBar_Check: { // wxMenuBar::Check
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
bool * check = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Check((int) *itemid,(bool) *check);
- break;
+ break;
}
-case wxMenuBar_Enable_2: { // wxMenuBar::Enable
+case wxMenuBar_Enable_2: { // wxMenuBar::Enable
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
bool * enable = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Enable((int) *itemid,(bool) *enable);
- break;
+ break;
}
-case wxMenuBar_Enable_1: { // wxMenuBar::Enable
+case wxMenuBar_Enable_1: { // wxMenuBar::Enable
bool enable=true;
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Enable(enable);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuBar_EnableTop: { // wxMenuBar::EnableTop
+case wxMenuBar_EnableTop: { // wxMenuBar::EnableTop
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableTop((size_t) *pos,(bool) *flag);
- break;
+ break;
}
-case wxMenuBar_FindMenu: { // wxMenuBar::FindMenu
+case wxMenuBar_FindMenu: { // wxMenuBar::FindMenu
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
@@ -7126,9 +7126,9 @@ case wxMenuBar_FindMenu: { // wxMenuBar::FindMenu
if(!This) throw wxe_badarg(0);
int Result = This->FindMenu(title);
rt.addInt(Result);
- break;
+ break;
}
-case wxMenuBar_FindMenuItem: { // wxMenuBar::FindMenuItem
+case wxMenuBar_FindMenuItem: { // wxMenuBar::FindMenuItem
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * menuStringLen = (int *) bp; bp += 4;
wxString menuString = wxString(bp, wxConvUTF8);
@@ -7139,64 +7139,64 @@ case wxMenuBar_FindMenuItem: { // wxMenuBar::FindMenuItem
if(!This) throw wxe_badarg(0);
int Result = This->FindMenuItem(menuString,itemString);
rt.addInt(Result);
- break;
+ break;
}
-case wxMenuBar_FindItem: { // wxMenuBar::FindItem
+case wxMenuBar_FindItem: { // wxMenuBar::FindItem
wxMenu ** menu = NULL;
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->FindItem((int) *id,menu);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenuBar_GetHelpString: { // wxMenuBar::GetHelpString
+case wxMenuBar_GetHelpString: { // wxMenuBar::GetHelpString
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetHelpString((int) *itemid);
rt.add(Result);
- break;
+ break;
}
-case wxMenuBar_GetLabel_1: { // wxMenuBar::GetLabel
+case wxMenuBar_GetLabel_1: { // wxMenuBar::GetLabel
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLabel((int) *itemid);
rt.add(Result);
- break;
+ break;
}
-case wxMenuBar_GetLabel_0: { // wxMenuBar::GetLabel
+case wxMenuBar_GetLabel_0: { // wxMenuBar::GetLabel
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLabel();
rt.add(Result);
- break;
+ break;
}
-case wxMenuBar_GetLabelTop: { // wxMenuBar::GetLabelTop
+case wxMenuBar_GetLabelTop: { // wxMenuBar::GetLabelTop
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLabelTop((size_t) *pos);
rt.add(Result);
- break;
+ break;
}
-case wxMenuBar_GetMenu: { // wxMenuBar::GetMenu
+case wxMenuBar_GetMenu: { // wxMenuBar::GetMenu
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxMenu * Result = (wxMenu*)This->GetMenu((size_t) *pos);
rt.addRef(getRef((void *)Result,memenv), "wxMenu");
- break;
+ break;
}
-case wxMenuBar_GetMenuCount: { // wxMenuBar::GetMenuCount
+case wxMenuBar_GetMenuCount: { // wxMenuBar::GetMenuCount
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->GetMenuCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxMenuBar_Insert: { // wxMenuBar::Insert
+case wxMenuBar_Insert: { // wxMenuBar::Insert
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
wxMenu *menu = (wxMenu *) getPtr(bp,memenv); bp += 4;
@@ -7206,40 +7206,40 @@ case wxMenuBar_Insert: { // wxMenuBar::Insert
if(!This) throw wxe_badarg(0);
bool Result = This->Insert((size_t) *pos,menu,title);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuBar_IsChecked: { // wxMenuBar::IsChecked
+case wxMenuBar_IsChecked: { // wxMenuBar::IsChecked
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsChecked((int) *itemid);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuBar_IsEnabled_1: { // wxMenuBar::IsEnabled
+case wxMenuBar_IsEnabled_1: { // wxMenuBar::IsEnabled
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEnabled((int) *itemid);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuBar_IsEnabled_0: { // wxMenuBar::IsEnabled
+case wxMenuBar_IsEnabled_0: { // wxMenuBar::IsEnabled
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEnabled();
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuBar_Remove: { // wxMenuBar::Remove
+case wxMenuBar_Remove: { // wxMenuBar::Remove
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxMenu * Result = (wxMenu*)This->Remove((size_t) *pos);
rt.addRef(getRef((void *)Result,memenv), "wxMenu");
- break;
+ break;
}
-case wxMenuBar_Replace: { // wxMenuBar::Replace
+case wxMenuBar_Replace: { // wxMenuBar::Replace
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
wxMenu *menu = (wxMenu *) getPtr(bp,memenv); bp += 4;
@@ -7249,9 +7249,9 @@ case wxMenuBar_Replace: { // wxMenuBar::Replace
if(!This) throw wxe_badarg(0);
wxMenu * Result = (wxMenu*)This->Replace((size_t) *pos,menu,title);
rt.addRef(getRef((void *)Result,memenv), "wxMenu");
- break;
+ break;
}
-case wxMenuBar_SetHelpString: { // wxMenuBar::SetHelpString
+case wxMenuBar_SetHelpString: { // wxMenuBar::SetHelpString
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * helpStringLen = (int *) bp; bp += 4;
@@ -7259,9 +7259,9 @@ case wxMenuBar_SetHelpString: { // wxMenuBar::SetHelpString
bp += *helpStringLen+((8-((4+ *helpStringLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetHelpString((int) *itemid,helpString);
- break;
+ break;
}
-case wxMenuBar_SetLabel_2: { // wxMenuBar::SetLabel
+case wxMenuBar_SetLabel_2: { // wxMenuBar::SetLabel
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * labelLen = (int *) bp; bp += 4;
@@ -7269,18 +7269,18 @@ case wxMenuBar_SetLabel_2: { // wxMenuBar::SetLabel
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetLabel((int) *itemid,label);
- break;
+ break;
}
-case wxMenuBar_SetLabel_1: { // wxMenuBar::SetLabel
+case wxMenuBar_SetLabel_1: { // wxMenuBar::SetLabel
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * sLen = (int *) bp; bp += 4;
wxString s = wxString(bp, wxConvUTF8);
bp += *sLen+((8-((0+ *sLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetLabel(s);
- break;
+ break;
}
-case wxMenuBar_SetLabelTop: { // wxMenuBar::SetLabelTop
+case wxMenuBar_SetLabelTop: { // wxMenuBar::SetLabelTop
wxMenuBar *This = (wxMenuBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
int * labelLen = (int *) bp; bp += 4;
@@ -7288,25 +7288,25 @@ case wxMenuBar_SetLabelTop: { // wxMenuBar::SetLabelTop
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetLabelTop((size_t) *pos,label);
- break;
+ break;
}
-case wxControl_GetLabel: { // wxControl::GetLabel
+case wxControl_GetLabel: { // wxControl::GetLabel
wxControl *This = (wxControl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLabel();
rt.add(Result);
- break;
+ break;
}
-case wxControl_SetLabel: { // wxControl::SetLabel
+case wxControl_SetLabel: { // wxControl::SetLabel
wxControl *This = (wxControl *) getPtr(bp,memenv); bp += 4;
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetLabel(label);
- break;
+ break;
}
-case wxControlWithItems_Append_1: { // wxControlWithItems::Append
+case wxControlWithItems_Append_1: { // wxControlWithItems::Append
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
int * itemLen = (int *) bp; bp += 4;
wxString item = wxString(bp, wxConvUTF8);
@@ -7314,20 +7314,20 @@ case wxControlWithItems_Append_1: { // wxControlWithItems::Append
if(!This) throw wxe_badarg(0);
int Result = This->Append(item);
rt.addInt(Result);
- break;
+ break;
}
-case wxControlWithItems_Append_2: { // wxControlWithItems::Append
+case wxControlWithItems_Append_2: { // wxControlWithItems::Append
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
int * itemLen = (int *) bp; bp += 4;
wxString item = wxString(bp, wxConvUTF8);
bp += *itemLen+((8-((0+ *itemLen) & 7)) & 7);
- wxeErlTerm * clientData = new wxeErlTerm(Ecmd.bin[0]);
+ wxeErlTerm * clientData = new wxeErlTerm(Ecmd.bin[0]);
if(!This) throw wxe_badarg(0);
int Result = This->Append(item,clientData);
rt.addInt(Result);
- break;
+ break;
}
-case wxControlWithItems_appendStrings_1: { // wxControlWithItems::Append
+case wxControlWithItems_appendStrings_1: { // wxControlWithItems::Append
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
int * stringsLen = (int *) bp; bp += 4;
wxArrayString strings;
@@ -7341,83 +7341,83 @@ case wxControlWithItems_appendStrings_1: { // wxControlWithItems::Append
bp += (8-((0+ stringsASz) & 7 )) & 7;
if(!This) throw wxe_badarg(0);
This->Append(strings);
- break;
+ break;
}
-case wxControlWithItems_Clear: { // wxControlWithItems::Clear
+case wxControlWithItems_Clear: { // wxControlWithItems::Clear
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Clear();
- break;
+ break;
}
-case wxControlWithItems_Delete: { // wxControlWithItems::Delete
+case wxControlWithItems_Delete: { // wxControlWithItems::Delete
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Delete((int) *n);
- break;
+ break;
}
-case wxControlWithItems_FindString: { // wxControlWithItems::FindString
+case wxControlWithItems_FindString: { // wxControlWithItems::FindString
bool bCase=false;
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
int * sLen = (int *) bp; bp += 4;
wxString s = wxString(bp, wxConvUTF8);
bp += *sLen+((8-((0+ *sLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bCase = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
int Result = This->FindString(s,bCase);
rt.addInt(Result);
- break;
+ break;
}
-case wxControlWithItems_getClientData: { // wxControlWithItems::GetClientObject
+case wxControlWithItems_getClientData: { // wxControlWithItems::GetClientObject
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxeErlTerm * Result = (wxeErlTerm*)This->GetClientObject((int) *n);
rt.addExt2Term(Result);
- break;
+ break;
}
-case wxControlWithItems_setClientData: { // wxControlWithItems::SetClientObject
+case wxControlWithItems_setClientData: { // wxControlWithItems::SetClientObject
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
- wxeErlTerm * clientData = new wxeErlTerm(Ecmd.bin[0]);
+ wxeErlTerm * clientData = new wxeErlTerm(Ecmd.bin[0]);
if(!This) throw wxe_badarg(0);
This->SetClientObject((int) *n,clientData);
- break;
+ break;
}
-case wxControlWithItems_GetCount: { // wxControlWithItems::GetCount
+case wxControlWithItems_GetCount: { // wxControlWithItems::GetCount
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCount();
rt.addUint(Result);
- break;
+ break;
}
-case wxControlWithItems_GetSelection: { // wxControlWithItems::GetSelection
+case wxControlWithItems_GetSelection: { // wxControlWithItems::GetSelection
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxControlWithItems_GetString: { // wxControlWithItems::GetString
+case wxControlWithItems_GetString: { // wxControlWithItems::GetString
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetString((int) *n);
rt.add(Result);
- break;
+ break;
}
-case wxControlWithItems_GetStringSelection: { // wxControlWithItems::GetStringSelection
+case wxControlWithItems_GetStringSelection: { // wxControlWithItems::GetStringSelection
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetStringSelection();
rt.add(Result);
- break;
+ break;
}
-case wxControlWithItems_Insert_2: { // wxControlWithItems::Insert
+case wxControlWithItems_Insert_2: { // wxControlWithItems::Insert
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
int * itemLen = (int *) bp; bp += 4;
wxString item = wxString(bp, wxConvUTF8);
@@ -7426,42 +7426,42 @@ case wxControlWithItems_Insert_2: { // wxControlWithItems::Insert
if(!This) throw wxe_badarg(0);
int Result = This->Insert(item,(int) *pos);
rt.addInt(Result);
- break;
+ break;
}
-case wxControlWithItems_Insert_3: { // wxControlWithItems::Insert
+case wxControlWithItems_Insert_3: { // wxControlWithItems::Insert
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
int * itemLen = (int *) bp; bp += 4;
wxString item = wxString(bp, wxConvUTF8);
bp += *itemLen+((8-((0+ *itemLen) & 7)) & 7);
unsigned int * pos = (unsigned int *) bp; bp += 4;
- wxeErlTerm * clientData = new wxeErlTerm(Ecmd.bin[0]);
+ wxeErlTerm * clientData = new wxeErlTerm(Ecmd.bin[0]);
if(!This) throw wxe_badarg(0);
int Result = This->Insert(item,(int) *pos,clientData);
rt.addInt(Result);
- break;
+ break;
}
-case wxControlWithItems_IsEmpty: { // wxControlWithItems::IsEmpty
+case wxControlWithItems_IsEmpty: { // wxControlWithItems::IsEmpty
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEmpty();
rt.addBool(Result);
- break;
+ break;
}
-case wxControlWithItems_Select: { // wxControlWithItems::Select
+case wxControlWithItems_Select: { // wxControlWithItems::Select
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Select((int) *n);
- break;
+ break;
}
-case wxControlWithItems_SetSelection: { // wxControlWithItems::SetSelection
+case wxControlWithItems_SetSelection: { // wxControlWithItems::SetSelection
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((int) *n);
- break;
+ break;
}
-case wxControlWithItems_SetString: { // wxControlWithItems::SetString
+case wxControlWithItems_SetString: { // wxControlWithItems::SetString
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
int * sLen = (int *) bp; bp += 4;
@@ -7469,9 +7469,9 @@ case wxControlWithItems_SetString: { // wxControlWithItems::SetString
bp += *sLen+((8-((4+ *sLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetString((int) *n,s);
- break;
+ break;
}
-case wxControlWithItems_SetStringSelection: { // wxControlWithItems::SetStringSelection
+case wxControlWithItems_SetStringSelection: { // wxControlWithItems::SetStringSelection
wxControlWithItems *This = (wxControlWithItems *) getPtr(bp,memenv); bp += 4;
int * sLen = (int *) bp; bp += 4;
wxString s = wxString(bp, wxConvUTF8);
@@ -7479,36 +7479,36 @@ case wxControlWithItems_SetStringSelection: { // wxControlWithItems::SetStringSe
if(!This) throw wxe_badarg(0);
bool Result = This->SetStringSelection(s);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenu_new_2: { // wxMenu::wxMenu
+case wxMenu_new_2: { // wxMenu::wxMenu
long style=0;
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((4+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxMenu * Result = new EwxMenu(title,style);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMenu");
- break;
+ break;
}
-case wxMenu_new_1: { // wxMenu::wxMenu
+case wxMenu_new_1: { // wxMenu::wxMenu
long style=0;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxMenu * Result = new EwxMenu(style);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMenu");
- break;
+ break;
}
-case wxMenu_Append_3: { // wxMenu::Append
+case wxMenu_Append_3: { // wxMenu::Append
wxString help= wxEmptyString;
wxItemKind kind=wxITEM_NORMAL;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
@@ -7516,7 +7516,7 @@ case wxMenu_Append_3: { // wxMenu::Append
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
@@ -7525,21 +7525,21 @@ case wxMenu_Append_3: { // wxMenu::Append
case 2: {bp += 4;
kind = *(wxItemKind *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Append((int) *itemid,text,help,(wxItemKind) kind);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Append_1: { // wxMenu::Append
+case wxMenu_Append_1: { // wxMenu::Append
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
wxMenuItem *item = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Append(item);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Append_4_0: { // wxMenu::Append
+case wxMenu_Append_4_0: { // wxMenu::Append
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
@@ -7551,9 +7551,9 @@ case wxMenu_Append_4_0: { // wxMenu::Append
bool * isCheckable = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Append((int) *itemid,text,help,(bool) *isCheckable);
- break;
+ break;
}
-case wxMenu_Append_4_1: { // wxMenu::Append
+case wxMenu_Append_4_1: { // wxMenu::Append
wxString help= wxEmptyString;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
@@ -7562,118 +7562,118 @@ case wxMenu_Append_4_1: { // wxMenu::Append
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
wxMenu *submenu = (wxMenu *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
bp += *helpLen+((8-((0+ *helpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Append((int) *itemid,text,submenu,help);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_AppendCheckItem: { // wxMenu::AppendCheckItem
+case wxMenu_AppendCheckItem: { // wxMenu::AppendCheckItem
wxString help= wxEmptyString;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
bp += *helpLen+((8-((0+ *helpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->AppendCheckItem((int) *itemid,text,help);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_AppendRadioItem: { // wxMenu::AppendRadioItem
+case wxMenu_AppendRadioItem: { // wxMenu::AppendRadioItem
wxString help= wxEmptyString;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
bp += *helpLen+((8-((0+ *helpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->AppendRadioItem((int) *itemid,text,help);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_AppendSeparator: { // wxMenu::AppendSeparator
+case wxMenu_AppendSeparator: { // wxMenu::AppendSeparator
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->AppendSeparator();
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Break: { // wxMenu::Break
+case wxMenu_Break: { // wxMenu::Break
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Break();
- break;
+ break;
}
-case wxMenu_Check: { // wxMenu::Check
+case wxMenu_Check: { // wxMenu::Check
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
bool * check = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Check((int) *itemid,(bool) *check);
- break;
+ break;
}
-case wxMenu_Delete_1_0: { // wxMenu::Delete
+case wxMenu_Delete_1_0: { // wxMenu::Delete
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Delete((int) *itemid);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenu_Delete_1_1: { // wxMenu::Delete
+case wxMenu_Delete_1_1: { // wxMenu::Delete
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
wxMenuItem *item = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Delete(item);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenu_Destroy_1_0: { // wxMenu::Destroy
+case wxMenu_Destroy_1_0: { // wxMenu::Destroy
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Destroy((int) *itemid);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenu_Destroy_1_1: { // wxMenu::Destroy
+case wxMenu_Destroy_1_1: { // wxMenu::Destroy
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
wxMenuItem *item = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Destroy(item);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenu_Enable: { // wxMenu::Enable
+case wxMenu_Enable: { // wxMenu::Enable
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
bool * enable = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Enable((int) *itemid,(bool) *enable);
- break;
+ break;
}
-case wxMenu_FindItem_1: { // wxMenu::FindItem
+case wxMenu_FindItem_1: { // wxMenu::FindItem
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemLen = (int *) bp; bp += 4;
wxString item = wxString(bp, wxConvUTF8);
@@ -7681,49 +7681,49 @@ case wxMenu_FindItem_1: { // wxMenu::FindItem
if(!This) throw wxe_badarg(0);
int Result = This->FindItem(item);
rt.addInt(Result);
- break;
+ break;
}
-case wxMenu_FindItem_2: { // wxMenu::FindItem
+case wxMenu_FindItem_2: { // wxMenu::FindItem
wxMenu ** menu = NULL;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->FindItem((int) *itemid,menu);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_FindItemByPosition: { // wxMenu::FindItemByPosition
+case wxMenu_FindItemByPosition: { // wxMenu::FindItemByPosition
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * position = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->FindItemByPosition((size_t) *position);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_GetHelpString: { // wxMenu::GetHelpString
+case wxMenu_GetHelpString: { // wxMenu::GetHelpString
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetHelpString((int) *itemid);
rt.add(Result);
- break;
+ break;
}
-case wxMenu_GetLabel: { // wxMenu::GetLabel
+case wxMenu_GetLabel: { // wxMenu::GetLabel
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLabel((int) *itemid);
rt.add(Result);
- break;
+ break;
}
-case wxMenu_GetMenuItemCount: { // wxMenu::GetMenuItemCount
+case wxMenu_GetMenuItemCount: { // wxMenu::GetMenuItemCount
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->GetMenuItemCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxMenu_GetMenuItems: { // wxMenu::GetMenuItems
+case wxMenu_GetMenuItems: { // wxMenu::GetMenuItems
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxMenuItemList Result = This->GetMenuItems();
@@ -7732,25 +7732,25 @@ case wxMenu_GetMenuItems: { // wxMenu::GetMenuItems
wxMenuItem * ResultTmp = *it;
rt.addRef(getRef((void *)ResultTmp,memenv), "wxMenuItem"); i++;}
rt.endList(Result.GetCount());
- break;
+ break;
}
-case wxMenu_GetTitle: { // wxMenu::GetTitle
+case wxMenu_GetTitle: { // wxMenu::GetTitle
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString Result = This->GetTitle();
rt.add(Result);
- break;
+ break;
}
-case wxMenu_Insert_2: { // wxMenu::Insert
+case wxMenu_Insert_2: { // wxMenu::Insert
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
wxMenuItem *item = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Insert((size_t) *pos,item);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Insert_3: { // wxMenu::Insert
+case wxMenu_Insert_3: { // wxMenu::Insert
wxString text= wxEmptyString;
wxString help= wxEmptyString;
wxItemKind kind=wxITEM_NORMAL;
@@ -7758,7 +7758,7 @@ case wxMenu_Insert_3: { // wxMenu::Insert
int * pos = (int *) bp; bp += 4;
int * itemid = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * textLen = (int *) bp; bp += 4;
text = wxString(bp, wxConvUTF8);
@@ -7772,13 +7772,13 @@ case wxMenu_Insert_3: { // wxMenu::Insert
case 3: {bp += 4;
kind = *(wxItemKind *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Insert((size_t) *pos,(int) *itemid,text,help,(wxItemKind) kind);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Insert_5_1: { // wxMenu::Insert
+case wxMenu_Insert_5_1: { // wxMenu::Insert
wxString help= wxEmptyString;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
@@ -7788,19 +7788,19 @@ case wxMenu_Insert_5_1: { // wxMenu::Insert
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
wxMenu *submenu = (wxMenu *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
bp += *helpLen+((8-((0+ *helpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Insert((size_t) *pos,(int) *itemid,text,submenu,help);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Insert_5_0: { // wxMenu::Insert
+case wxMenu_Insert_5_0: { // wxMenu::Insert
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
int * itemid = (int *) bp; bp += 4;
@@ -7813,9 +7813,9 @@ case wxMenu_Insert_5_0: { // wxMenu::Insert
bool * isCheckable = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Insert((size_t) *pos,(int) *itemid,text,help,(bool) *isCheckable);
- break;
+ break;
}
-case wxMenu_InsertCheckItem: { // wxMenu::InsertCheckItem
+case wxMenu_InsertCheckItem: { // wxMenu::InsertCheckItem
wxString help= wxEmptyString;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
@@ -7823,19 +7823,19 @@ case wxMenu_InsertCheckItem: { // wxMenu::InsertCheckItem
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
bp += *helpLen+((8-((0+ *helpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->InsertCheckItem((size_t) *pos,(int) *itemid,text,help);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_InsertRadioItem: { // wxMenu::InsertRadioItem
+case wxMenu_InsertRadioItem: { // wxMenu::InsertRadioItem
wxString help= wxEmptyString;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
@@ -7843,57 +7843,57 @@ case wxMenu_InsertRadioItem: { // wxMenu::InsertRadioItem
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
bp += *helpLen+((8-((0+ *helpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->InsertRadioItem((size_t) *pos,(int) *itemid,text,help);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_InsertSeparator: { // wxMenu::InsertSeparator
+case wxMenu_InsertSeparator: { // wxMenu::InsertSeparator
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->InsertSeparator((size_t) *pos);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_IsChecked: { // wxMenu::IsChecked
+case wxMenu_IsChecked: { // wxMenu::IsChecked
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsChecked((int) *itemid);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenu_IsEnabled: { // wxMenu::IsEnabled
+case wxMenu_IsEnabled: { // wxMenu::IsEnabled
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEnabled((int) *itemid);
rt.addBool(Result);
- break;
+ break;
}
-case wxMenu_Prepend_1: { // wxMenu::Prepend
+case wxMenu_Prepend_1: { // wxMenu::Prepend
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
wxMenuItem *item = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Prepend(item);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Prepend_2: { // wxMenu::Prepend
+case wxMenu_Prepend_2: { // wxMenu::Prepend
wxString text= wxEmptyString;
wxString help= wxEmptyString;
wxItemKind kind=wxITEM_NORMAL;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * textLen = (int *) bp; bp += 4;
text = wxString(bp, wxConvUTF8);
@@ -7907,13 +7907,13 @@ case wxMenu_Prepend_2: { // wxMenu::Prepend
case 3: {bp += 4;
kind = *(wxItemKind *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Prepend((int) *itemid,text,help,(wxItemKind) kind);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Prepend_4_1: { // wxMenu::Prepend
+case wxMenu_Prepend_4_1: { // wxMenu::Prepend
wxString help= wxEmptyString;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
@@ -7922,19 +7922,19 @@ case wxMenu_Prepend_4_1: { // wxMenu::Prepend
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
wxMenu *submenu = (wxMenu *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
bp += *helpLen+((8-((0+ *helpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Prepend((int) *itemid,text,submenu,help);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Prepend_4_0: { // wxMenu::Prepend
+case wxMenu_Prepend_4_0: { // wxMenu::Prepend
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
@@ -7946,70 +7946,70 @@ case wxMenu_Prepend_4_0: { // wxMenu::Prepend
bool * isCheckable = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Prepend((int) *itemid,text,help,(bool) *isCheckable);
- break;
+ break;
}
-case wxMenu_PrependCheckItem: { // wxMenu::PrependCheckItem
+case wxMenu_PrependCheckItem: { // wxMenu::PrependCheckItem
wxString help= wxEmptyString;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
bp += *helpLen+((8-((0+ *helpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->PrependCheckItem((int) *itemid,text,help);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_PrependRadioItem: { // wxMenu::PrependRadioItem
+case wxMenu_PrependRadioItem: { // wxMenu::PrependRadioItem
wxString help= wxEmptyString;
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * helpLen = (int *) bp; bp += 4;
help = wxString(bp, wxConvUTF8);
bp += *helpLen+((8-((0+ *helpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->PrependRadioItem((int) *itemid,text,help);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_PrependSeparator: { // wxMenu::PrependSeparator
+case wxMenu_PrependSeparator: { // wxMenu::PrependSeparator
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->PrependSeparator();
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Remove_1_0: { // wxMenu::Remove
+case wxMenu_Remove_1_0: { // wxMenu::Remove
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Remove((int) *itemid);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_Remove_1_1: { // wxMenu::Remove
+case wxMenu_Remove_1_1: { // wxMenu::Remove
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
wxMenuItem *item = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenuItem * Result = (wxMenuItem*)This->Remove(item);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenu_SetHelpString: { // wxMenu::SetHelpString
+case wxMenu_SetHelpString: { // wxMenu::SetHelpString
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * helpStringLen = (int *) bp; bp += 4;
@@ -8017,9 +8017,9 @@ case wxMenu_SetHelpString: { // wxMenu::SetHelpString
bp += *helpStringLen+((8-((4+ *helpStringLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetHelpString((int) *itemid,helpString);
- break;
+ break;
}
-case wxMenu_SetLabel: { // wxMenu::SetLabel
+case wxMenu_SetLabel: { // wxMenu::SetLabel
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * itemid = (int *) bp; bp += 4;
int * labelLen = (int *) bp; bp += 4;
@@ -8027,25 +8027,25 @@ case wxMenu_SetLabel: { // wxMenu::SetLabel
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetLabel((int) *itemid,label);
- break;
+ break;
}
-case wxMenu_SetTitle: { // wxMenu::SetTitle
+case wxMenu_SetTitle: { // wxMenu::SetTitle
wxMenu *This = (wxMenu *) getPtr(bp,memenv); bp += 4;
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((0+ *titleLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetTitle(title);
- break;
+ break;
}
-case wxMenuItem_new: { // wxMenuItem::wxMenuItem
+case wxMenuItem_new: { // wxMenuItem::wxMenuItem
wxMenu * parentMenu=(wxMenu *) NULL;
int id=wxID_SEPARATOR;
wxString text= wxEmptyString;
wxString help= wxEmptyString;
wxItemKind kind=wxITEM_NORMAL;
wxMenu * subMenu=(wxMenu *) NULL;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
parentMenu = (wxMenu *) getPtr(bp,memenv); bp += 4;
} break;
@@ -8068,192 +8068,192 @@ kind = *(wxItemKind *) bp; bp += 4;;
case 6: {bp += 4;
subMenu = (wxMenu *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxMenuItem * Result = new EwxMenuItem(parentMenu,id,text,help,(wxItemKind) kind,subMenu);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMenuItem");
- break;
+ break;
}
-case wxMenuItem_Check: { // wxMenuItem::Check
+case wxMenuItem_Check: { // wxMenuItem::Check
bool check=TRUE;
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
check = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Check(check);
- break;
+ break;
}
-case wxMenuItem_Enable: { // wxMenuItem::Enable
+case wxMenuItem_Enable: { // wxMenuItem::Enable
bool enable=TRUE;
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Enable(enable);
- break;
+ break;
}
-case wxMenuItem_GetBitmap: { // wxMenuItem::GetBitmap
+case wxMenuItem_GetBitmap: { // wxMenuItem::GetBitmap
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxBitmap * Result = &This->GetBitmap();
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxMenuItem_GetHelp: { // wxMenuItem::GetHelp
+case wxMenuItem_GetHelp: { // wxMenuItem::GetHelp
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString * Result = &This->GetHelp();
rt.add(Result);
- break;
+ break;
}
-case wxMenuItem_GetId: { // wxMenuItem::GetId
+case wxMenuItem_GetId: { // wxMenuItem::GetId
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetId();
rt.addInt(Result);
- break;
+ break;
}
-case wxMenuItem_GetKind: { // wxMenuItem::GetKind
+case wxMenuItem_GetKind: { // wxMenuItem::GetKind
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetKind();
rt.addInt(Result);
- break;
+ break;
}
-case wxMenuItem_GetLabel: { // wxMenuItem::GetLabel
+case wxMenuItem_GetLabel: { // wxMenuItem::GetLabel
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLabel();
rt.add(Result);
- break;
+ break;
}
-case wxMenuItem_GetLabelFromText: { // wxMenuItem::GetLabelFromText
+case wxMenuItem_GetLabelFromText: { // wxMenuItem::GetLabelFromText
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
wxString Result = wxMenuItem::GetLabelFromText(text);
rt.add(Result);
- break;
+ break;
}
-case wxMenuItem_GetMenu: { // wxMenuItem::GetMenu
+case wxMenuItem_GetMenu: { // wxMenuItem::GetMenu
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenu * Result = (wxMenu*)This->GetMenu();
rt.addRef(getRef((void *)Result,memenv), "wxMenu");
- break;
+ break;
}
-case wxMenuItem_GetText: { // wxMenuItem::GetText
+case wxMenuItem_GetText: { // wxMenuItem::GetText
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString * Result = &This->GetText();
rt.add(Result);
- break;
+ break;
}
-case wxMenuItem_GetSubMenu: { // wxMenuItem::GetSubMenu
+case wxMenuItem_GetSubMenu: { // wxMenuItem::GetSubMenu
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenu * Result = (wxMenu*)This->GetSubMenu();
rt.addRef(getRef((void *)Result,memenv), "wxMenu");
- break;
+ break;
}
-case wxMenuItem_IsCheckable: { // wxMenuItem::IsCheckable
+case wxMenuItem_IsCheckable: { // wxMenuItem::IsCheckable
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsCheckable();
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuItem_IsChecked: { // wxMenuItem::IsChecked
+case wxMenuItem_IsChecked: { // wxMenuItem::IsChecked
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsChecked();
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuItem_IsEnabled: { // wxMenuItem::IsEnabled
+case wxMenuItem_IsEnabled: { // wxMenuItem::IsEnabled
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEnabled();
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuItem_IsSeparator: { // wxMenuItem::IsSeparator
+case wxMenuItem_IsSeparator: { // wxMenuItem::IsSeparator
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSeparator();
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuItem_IsSubMenu: { // wxMenuItem::IsSubMenu
+case wxMenuItem_IsSubMenu: { // wxMenuItem::IsSubMenu
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSubMenu();
rt.addBool(Result);
- break;
+ break;
}
-case wxMenuItem_SetBitmap: { // wxMenuItem::SetBitmap
+case wxMenuItem_SetBitmap: { // wxMenuItem::SetBitmap
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBitmap(*bitmap);
- break;
+ break;
}
-case wxMenuItem_SetHelp: { // wxMenuItem::SetHelp
+case wxMenuItem_SetHelp: { // wxMenuItem::SetHelp
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
bp += *strLen+((8-((0+ *strLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetHelp(str);
- break;
+ break;
}
-case wxMenuItem_SetMenu: { // wxMenuItem::SetMenu
+case wxMenuItem_SetMenu: { // wxMenuItem::SetMenu
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
wxMenu *menu = (wxMenu *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMenu(menu);
- break;
+ break;
}
-case wxMenuItem_SetSubMenu: { // wxMenuItem::SetSubMenu
+case wxMenuItem_SetSubMenu: { // wxMenuItem::SetSubMenu
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
wxMenu *menu = (wxMenu *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSubMenu(menu);
- break;
+ break;
}
-case wxMenuItem_SetText: { // wxMenuItem::SetText
+case wxMenuItem_SetText: { // wxMenuItem::SetText
wxMenuItem *This = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
bp += *strLen+((8-((0+ *strLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetText(str);
- break;
+ break;
}
-case wxToolBar_AddControl: { // wxToolBar::AddControl
+case wxToolBar_AddControl: { // wxToolBar::AddControl
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
wxControl *control = (wxControl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddControl(control);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_AddSeparator: { // wxToolBar::AddSeparator
+case wxToolBar_AddSeparator: { // wxToolBar::AddSeparator
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddSeparator();
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_AddTool_5: { // wxToolBar::AddTool
+case wxToolBar_AddTool_5: { // wxToolBar::AddTool
wxItemKind kind=wxITEM_NORMAL;
wxString shortHelp= wxEmptyString;
wxString longHelp= wxEmptyString;
@@ -8265,7 +8265,7 @@ case wxToolBar_AddTool_5: { // wxToolBar::AddTool
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxBitmap *bmpDisabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
kind = *(wxItemKind *) bp; bp += 4;;
} break;
@@ -8282,13 +8282,13 @@ kind = *(wxItemKind *) bp; bp += 4;;
case 4: {bp += 4;
data = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddTool((int) *toolid,label,*bitmap,*bmpDisabled,(wxItemKind) kind,shortHelp,longHelp,data);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_AddTool_4_0: { // wxToolBar::AddTool
+case wxToolBar_AddTool_4_0: { // wxToolBar::AddTool
wxString shortHelp= wxEmptyString;
wxItemKind kind=wxITEM_NORMAL;
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
@@ -8298,7 +8298,7 @@ case wxToolBar_AddTool_4_0: { // wxToolBar::AddTool
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * shortHelpLen = (int *) bp; bp += 4;
shortHelp = wxString(bp, wxConvUTF8);
@@ -8307,21 +8307,21 @@ case wxToolBar_AddTool_4_0: { // wxToolBar::AddTool
case 2: {bp += 4;
kind = *(wxItemKind *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddTool((int) *toolid,label,*bitmap,shortHelp,(wxItemKind) kind);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_AddTool_1: { // wxToolBar::AddTool
+case wxToolBar_AddTool_1: { // wxToolBar::AddTool
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
wxToolBarToolBase *tool = (wxToolBarToolBase *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddTool(tool);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_AddTool_4_1: { // wxToolBar::AddTool
+case wxToolBar_AddTool_4_1: { // wxToolBar::AddTool
bool toggle=false;
wxObject * clientData=NULL;
wxString shortHelpString= wxEmptyString;
@@ -8330,7 +8330,7 @@ case wxToolBar_AddTool_4_1: { // wxToolBar::AddTool
int * toolid = (int *) bp; bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxBitmap *bmpDisabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
toggle = *(bool *) bp; bp += 4;
} break;
@@ -8347,20 +8347,20 @@ clientData = (wxObject *) getPtr(bp,memenv); bp += 4;
longHelpString = wxString(bp, wxConvUTF8);
bp += *longHelpStringLen+((8-((0+ *longHelpStringLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddTool((int) *toolid,*bitmap,*bmpDisabled,toggle,clientData,shortHelpString,longHelpString);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_AddTool_3: { // wxToolBar::AddTool
+case wxToolBar_AddTool_3: { // wxToolBar::AddTool
wxString shortHelpString= wxEmptyString;
wxString longHelpString= wxEmptyString;
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * shortHelpStringLen = (int *) bp; bp += 4;
shortHelpString = wxString(bp, wxConvUTF8);
@@ -8371,13 +8371,13 @@ case wxToolBar_AddTool_3: { // wxToolBar::AddTool
longHelpString = wxString(bp, wxConvUTF8);
bp += *longHelpStringLen+((8-((0+ *longHelpStringLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddTool((int) *toolid,*bitmap,shortHelpString,longHelpString);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_AddTool_6: { // wxToolBar::AddTool
+case wxToolBar_AddTool_6: { // wxToolBar::AddTool
wxCoord yPos=wxDefaultCoord;
wxObject * clientData=NULL;
wxString shortHelp= wxEmptyString;
@@ -8388,7 +8388,7 @@ case wxToolBar_AddTool_6: { // wxToolBar::AddTool
wxBitmap *bmpDisabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
bool * toggle = (bool *) bp; bp += 4;
int * xPos = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
yPos = (wxCoord)*(int *) bp; bp += 4;
} break;
@@ -8405,13 +8405,13 @@ clientData = (wxObject *) getPtr(bp,memenv); bp += 4;
longHelp = wxString(bp, wxConvUTF8);
bp += *longHelpLen+((8-((0+ *longHelpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddTool((int) *toolid,*bitmap,*bmpDisabled,(bool) *toggle,(wxCoord) *xPos,yPos,clientData,shortHelp,longHelp);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_AddCheckTool: { // wxToolBar::AddCheckTool
+case wxToolBar_AddCheckTool: { // wxToolBar::AddCheckTool
const wxBitmap * bmpDisabled= &wxNullBitmap;
wxString shortHelp= wxEmptyString;
wxString longHelp= wxEmptyString;
@@ -8423,7 +8423,7 @@ case wxToolBar_AddCheckTool: { // wxToolBar::AddCheckTool
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bmpDisabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
} break;
@@ -8440,13 +8440,13 @@ bmpDisabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
case 4: {bp += 4;
data = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddCheckTool((int) *toolid,label,*bitmap,*bmpDisabled,shortHelp,longHelp,data);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_AddRadioTool: { // wxToolBar::AddRadioTool
+case wxToolBar_AddRadioTool: { // wxToolBar::AddRadioTool
const wxBitmap * bmpDisabled= &wxNullBitmap;
wxString shortHelp= wxEmptyString;
wxString longHelp= wxEmptyString;
@@ -8458,7 +8458,7 @@ case wxToolBar_AddRadioTool: { // wxToolBar::AddRadioTool
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bmpDisabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
} break;
@@ -8475,154 +8475,154 @@ bmpDisabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
case 4: {bp += 4;
data = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddRadioTool((int) *toolid,label,*bitmap,*bmpDisabled,shortHelp,longHelp,data);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_DeleteTool: { // wxToolBar::DeleteTool
+case wxToolBar_DeleteTool: { // wxToolBar::DeleteTool
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteTool((int) *toolid);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolBar_DeleteToolByPos: { // wxToolBar::DeleteToolByPos
+case wxToolBar_DeleteToolByPos: { // wxToolBar::DeleteToolByPos
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteToolByPos((size_t) *pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolBar_EnableTool: { // wxToolBar::EnableTool
+case wxToolBar_EnableTool: { // wxToolBar::EnableTool
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
bool * enable = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableTool((int) *toolid,(bool) *enable);
- break;
+ break;
}
-case wxToolBar_FindById: { // wxToolBar::FindById
+case wxToolBar_FindById: { // wxToolBar::FindById
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->FindById((int) *toolid);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_FindControl: { // wxToolBar::FindControl
+case wxToolBar_FindControl: { // wxToolBar::FindControl
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxControl * Result = (wxControl*)This->FindControl((int) *toolid);
rt.addRef(getRef((void *)Result,memenv), "wxControl");
- break;
+ break;
}
-case wxToolBar_FindToolForPosition: { // wxToolBar::FindToolForPosition
+case wxToolBar_FindToolForPosition: { // wxToolBar::FindToolForPosition
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->FindToolForPosition((wxCoord) *x,(wxCoord) *y);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_GetToolSize: { // wxToolBar::GetToolSize
+case wxToolBar_GetToolSize: { // wxToolBar::GetToolSize
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetToolSize();
rt.add(Result);
- break;
+ break;
}
-case wxToolBar_GetToolBitmapSize: { // wxToolBar::GetToolBitmapSize
+case wxToolBar_GetToolBitmapSize: { // wxToolBar::GetToolBitmapSize
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetToolBitmapSize();
rt.add(Result);
- break;
+ break;
}
-case wxToolBar_GetMargins: { // wxToolBar::GetMargins
+case wxToolBar_GetMargins: { // wxToolBar::GetMargins
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetMargins();
rt.add(Result);
- break;
+ break;
}
-case wxToolBar_GetToolEnabled: { // wxToolBar::GetToolEnabled
+case wxToolBar_GetToolEnabled: { // wxToolBar::GetToolEnabled
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetToolEnabled((int) *toolid);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolBar_GetToolLongHelp: { // wxToolBar::GetToolLongHelp
+case wxToolBar_GetToolLongHelp: { // wxToolBar::GetToolLongHelp
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetToolLongHelp((int) *toolid);
rt.add(Result);
- break;
+ break;
}
-case wxToolBar_GetToolPacking: { // wxToolBar::GetToolPacking
+case wxToolBar_GetToolPacking: { // wxToolBar::GetToolPacking
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetToolPacking();
rt.addInt(Result);
- break;
+ break;
}
-case wxToolBar_GetToolPos: { // wxToolBar::GetToolPos
+case wxToolBar_GetToolPos: { // wxToolBar::GetToolPos
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetToolPos((int) *id);
rt.addInt(Result);
- break;
+ break;
}
-case wxToolBar_GetToolSeparation: { // wxToolBar::GetToolSeparation
+case wxToolBar_GetToolSeparation: { // wxToolBar::GetToolSeparation
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetToolSeparation();
rt.addInt(Result);
- break;
+ break;
}
-case wxToolBar_GetToolShortHelp: { // wxToolBar::GetToolShortHelp
+case wxToolBar_GetToolShortHelp: { // wxToolBar::GetToolShortHelp
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetToolShortHelp((int) *toolid);
rt.add(Result);
- break;
+ break;
}
-case wxToolBar_GetToolState: { // wxToolBar::GetToolState
+case wxToolBar_GetToolState: { // wxToolBar::GetToolState
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetToolState((int) *toolid);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolBar_InsertControl: { // wxToolBar::InsertControl
+case wxToolBar_InsertControl: { // wxToolBar::InsertControl
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
wxControl *control = (wxControl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->InsertControl((size_t) *pos,control);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_InsertSeparator: { // wxToolBar::InsertSeparator
+case wxToolBar_InsertSeparator: { // wxToolBar::InsertSeparator
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->InsertSeparator((size_t) *pos);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_InsertTool_5: { // wxToolBar::InsertTool
+case wxToolBar_InsertTool_5: { // wxToolBar::InsertTool
const wxBitmap * bmpDisabled= &wxNullBitmap;
wxItemKind kind=wxITEM_NORMAL;
wxString shortHelp= wxEmptyString;
@@ -8636,7 +8636,7 @@ case wxToolBar_InsertTool_5: { // wxToolBar::InsertTool
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bmpDisabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
} break;
@@ -8656,22 +8656,22 @@ kind = *(wxItemKind *) bp; bp += 4;;
case 5: {bp += 4;
clientData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->InsertTool((size_t) *pos,(int) *toolid,label,*bitmap,*bmpDisabled,(wxItemKind) kind,shortHelp,longHelp,clientData);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_InsertTool_2: { // wxToolBar::InsertTool
+case wxToolBar_InsertTool_2: { // wxToolBar::InsertTool
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
wxToolBarToolBase *tool = (wxToolBarToolBase *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->InsertTool((size_t) *pos,tool);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_InsertTool_4: { // wxToolBar::InsertTool
+case wxToolBar_InsertTool_4: { // wxToolBar::InsertTool
const wxBitmap * bmpDisabled= &wxNullBitmap;
bool toggle=false;
wxObject * clientData=NULL;
@@ -8681,7 +8681,7 @@ case wxToolBar_InsertTool_4: { // wxToolBar::InsertTool
int * pos = (int *) bp; bp += 4;
int * toolid = (int *) bp; bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bmpDisabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
} break;
@@ -8701,45 +8701,45 @@ clientData = (wxObject *) getPtr(bp,memenv); bp += 4;
longHelp = wxString(bp, wxConvUTF8);
bp += *longHelpLen+((8-((0+ *longHelpLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->InsertTool((size_t) *pos,(int) *toolid,*bitmap,*bmpDisabled,toggle,clientData,shortHelp,longHelp);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_Realize: { // wxToolBar::Realize
+case wxToolBar_Realize: { // wxToolBar::Realize
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Realize();
rt.addBool(Result);
- break;
+ break;
}
-case wxToolBar_RemoveTool: { // wxToolBar::RemoveTool
+case wxToolBar_RemoveTool: { // wxToolBar::RemoveTool
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxToolBarToolBase * Result = (wxToolBarToolBase*)This->RemoveTool((int) *toolid);
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxToolBar_SetMargins: { // wxToolBar::SetMargins
+case wxToolBar_SetMargins: { // wxToolBar::SetMargins
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMargins((int) *x,(int) *y);
- break;
+ break;
}
-case wxToolBar_SetToolBitmapSize: { // wxToolBar::SetToolBitmapSize
+case wxToolBar_SetToolBitmapSize: { // wxToolBar::SetToolBitmapSize
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetToolBitmapSize(size);
- break;
+ break;
}
-case wxToolBar_SetToolLongHelp: { // wxToolBar::SetToolLongHelp
+case wxToolBar_SetToolLongHelp: { // wxToolBar::SetToolLongHelp
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
int * helpStringLen = (int *) bp; bp += 4;
@@ -8747,16 +8747,16 @@ case wxToolBar_SetToolLongHelp: { // wxToolBar::SetToolLongHelp
bp += *helpStringLen+((8-((4+ *helpStringLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetToolLongHelp((int) *toolid,helpString);
- break;
+ break;
}
-case wxToolBar_SetToolPacking: { // wxToolBar::SetToolPacking
+case wxToolBar_SetToolPacking: { // wxToolBar::SetToolPacking
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * packing = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetToolPacking((int) *packing);
- break;
+ break;
}
-case wxToolBar_SetToolShortHelp: { // wxToolBar::SetToolShortHelp
+case wxToolBar_SetToolShortHelp: { // wxToolBar::SetToolShortHelp
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
int * helpStringLen = (int *) bp; bp += 4;
@@ -8764,66 +8764,66 @@ case wxToolBar_SetToolShortHelp: { // wxToolBar::SetToolShortHelp
bp += *helpStringLen+((8-((4+ *helpStringLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetToolShortHelp((int) *id,helpString);
- break;
+ break;
}
-case wxToolBar_SetToolSeparation: { // wxToolBar::SetToolSeparation
+case wxToolBar_SetToolSeparation: { // wxToolBar::SetToolSeparation
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * separation = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetToolSeparation((int) *separation);
- break;
+ break;
}
-case wxToolBar_ToggleTool: { // wxToolBar::ToggleTool
+case wxToolBar_ToggleTool: { // wxToolBar::ToggleTool
wxToolBar *This = (wxToolBar *) getPtr(bp,memenv); bp += 4;
int * toolid = (int *) bp; bp += 4;
bool * toggle = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ToggleTool((int) *toolid,(bool) *toggle);
- break;
+ break;
}
-case wxStatusBar_new_0: { // wxStatusBar::wxStatusBar
+case wxStatusBar_new_0: { // wxStatusBar::wxStatusBar
wxStatusBar * Result = new EwxStatusBar();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStatusBar");
- break;
+ break;
}
-case wxStatusBar_new_2: { // wxStatusBar::wxStatusBar
+case wxStatusBar_new_2: { // wxStatusBar::wxStatusBar
wxWindowID winid=wxID_ANY;
long style=wxST_SIZEGRIP;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
winid = (wxWindowID)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxStatusBar * Result = new EwxStatusBar(parent,winid,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStatusBar");
- break;
+ break;
}
-case wxStatusBar_Create: { // wxStatusBar::Create
+case wxStatusBar_Create: { // wxStatusBar::Create
wxWindowID winid=wxID_ANY;
long style=wxST_SIZEGRIP;
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
winid = (wxWindowID)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,winid,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxStatusBar_GetFieldRect: { // wxStatusBar::GetFieldRect
+case wxStatusBar_GetFieldRect: { // wxStatusBar::GetFieldRect
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
int * i = (int *) bp; bp += 4;
int * rectX = (int *) bp; bp += 4;
@@ -8834,241 +8834,241 @@ case wxStatusBar_GetFieldRect: { // wxStatusBar::GetFieldRect
if(!This) throw wxe_badarg(0);
bool Result = This->GetFieldRect((int) *i,rect);
rt.addBool(Result);
- break;
+ break;
}
-case wxStatusBar_GetFieldsCount: { // wxStatusBar::GetFieldsCount
+case wxStatusBar_GetFieldsCount: { // wxStatusBar::GetFieldsCount
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFieldsCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxStatusBar_GetStatusText: { // wxStatusBar::GetStatusText
+case wxStatusBar_GetStatusText: { // wxStatusBar::GetStatusText
int number=0;
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
number = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxString Result = This->GetStatusText(number);
rt.add(Result);
- break;
+ break;
}
-case wxStatusBar_PopStatusText: { // wxStatusBar::PopStatusText
+case wxStatusBar_PopStatusText: { // wxStatusBar::PopStatusText
int number=0;
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
number = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->PopStatusText(number);
- break;
+ break;
}
-case wxStatusBar_PushStatusText: { // wxStatusBar::PushStatusText
+case wxStatusBar_PushStatusText: { // wxStatusBar::PushStatusText
int number=0;
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
number = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->PushStatusText(text,number);
- break;
+ break;
}
-case wxStatusBar_SetFieldsCount: { // wxStatusBar::SetFieldsCount
+case wxStatusBar_SetFieldsCount: { // wxStatusBar::SetFieldsCount
int * widthsLen = 0;
int * widths = (int *) NULL;
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
int * number = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
widthsLen = (int *) bp; bp += 4;
widths = (int *) bp; bp += *widthsLen*4+((0+ *widthsLen)%2 )*4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetFieldsCount((int) *number,widths);
- break;
+ break;
}
-case wxStatusBar_SetMinHeight: { // wxStatusBar::SetMinHeight
+case wxStatusBar_SetMinHeight: { // wxStatusBar::SetMinHeight
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMinHeight((int) *height);
- break;
+ break;
}
-case wxStatusBar_SetStatusText: { // wxStatusBar::SetStatusText
+case wxStatusBar_SetStatusText: { // wxStatusBar::SetStatusText
int number=0;
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
number = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetStatusText(text,number);
- break;
+ break;
}
-case wxStatusBar_SetStatusWidths: { // wxStatusBar::SetStatusWidths
+case wxStatusBar_SetStatusWidths: { // wxStatusBar::SetStatusWidths
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
int * widths_fieldLen = (int *) bp; bp += 4;
int * widths_field = (int *) bp; bp += *widths_fieldLen*4+((0+ *widths_fieldLen)%2 )*4;
if(!This) throw wxe_badarg(0);
This->SetStatusWidths(*widths_fieldLen,widths_field);
- break;
+ break;
}
-case wxStatusBar_SetStatusStyles: { // wxStatusBar::SetStatusStyles
+case wxStatusBar_SetStatusStyles: { // wxStatusBar::SetStatusStyles
wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4;
int * stylesLen = (int *) bp; bp += 4;
int * styles = (int *) bp; bp += *stylesLen*4+((0+ *stylesLen)%2 )*4;
if(!This) throw wxe_badarg(0);
This->SetStatusStyles(*stylesLen,styles);
- break;
+ break;
}
-case wxBitmap_new_0: { // wxBitmap::wxBitmap
+case wxBitmap_new_0: { // wxBitmap::wxBitmap
wxBitmap * Result = new EwxBitmap();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmap_new_3: { // wxBitmap::wxBitmap
+case wxBitmap_new_3: { // wxBitmap::wxBitmap
int depth=-1;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
depth = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxBitmap * Result = new EwxBitmap((int) *width,(int) *height,depth);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmap_new_4: { // wxBitmap::wxBitmap
+case wxBitmap_new_4: { // wxBitmap::wxBitmap
int depth=1;
- const char * bits = (const char*) Ecmd.bin[0]->base;
+ const char * bits = (const char*) Ecmd.bin[0]->base;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
depth = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxBitmap * Result = new EwxBitmap(bits,(int) *width,(int) *height,depth);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmap_new_2_0: { // wxBitmap::wxBitmap
+case wxBitmap_new_2_0: { // wxBitmap::wxBitmap
wxBitmapType type=wxBITMAP_TYPE_XPM;
int * filenameLen = (int *) bp; bp += 4;
wxString filename = wxString(bp, wxConvUTF8);
bp += *filenameLen+((8-((4+ *filenameLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
type = *(wxBitmapType *) bp; bp += 4;;
} break;
- }};
+ }};
wxBitmap * Result = new EwxBitmap(filename,(wxBitmapType) type);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmap_new_2_1: { // wxBitmap::wxBitmap
+case wxBitmap_new_2_1: { // wxBitmap::wxBitmap
int depth=-1;
wxImage *image = (wxImage *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
depth = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxBitmap * Result = new EwxBitmap(*image,depth);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmap_ConvertToImage: { // wxBitmap::ConvertToImage
+case wxBitmap_ConvertToImage: { // wxBitmap::ConvertToImage
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->ConvertToImage()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxBitmap_CopyFromIcon: { // wxBitmap::CopyFromIcon
+case wxBitmap_CopyFromIcon: { // wxBitmap::CopyFromIcon
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxIcon *icon = (wxIcon *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CopyFromIcon(*icon);
rt.addBool(Result);
- break;
+ break;
}
-case wxBitmap_Create: { // wxBitmap::Create
+case wxBitmap_Create: { // wxBitmap::Create
int depth=-1;
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
depth = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create((int) *width,(int) *height,depth);
rt.addBool(Result);
- break;
+ break;
}
-case wxBitmap_GetDepth: { // wxBitmap::GetDepth
+case wxBitmap_GetDepth: { // wxBitmap::GetDepth
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetDepth();
rt.addInt(Result);
- break;
+ break;
}
-case wxBitmap_GetHeight: { // wxBitmap::GetHeight
+case wxBitmap_GetHeight: { // wxBitmap::GetHeight
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetHeight();
rt.addInt(Result);
- break;
+ break;
}
-case wxBitmap_GetPalette: { // wxBitmap::GetPalette
+case wxBitmap_GetPalette: { // wxBitmap::GetPalette
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPalette * Result = (wxPalette*)This->GetPalette();
rt.addRef(getRef((void *)Result,memenv), "wxPalette");
- break;
+ break;
}
-case wxBitmap_GetMask: { // wxBitmap::GetMask
+case wxBitmap_GetMask: { // wxBitmap::GetMask
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMask * Result = (wxMask*)This->GetMask();
rt.addRef(getRef((void *)Result,memenv), "wxMask");
- break;
+ break;
}
-case wxBitmap_GetWidth: { // wxBitmap::GetWidth
+case wxBitmap_GetWidth: { // wxBitmap::GetWidth
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxBitmap_GetSubBitmap: { // wxBitmap::GetSubBitmap
+case wxBitmap_GetSubBitmap: { // wxBitmap::GetSubBitmap
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -9078,32 +9078,32 @@ case wxBitmap_GetSubBitmap: { // wxBitmap::GetSubBitmap
if(!This) throw wxe_badarg(0);
wxBitmap * Result = new wxBitmap(This->GetSubBitmap(rect)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmap_LoadFile: { // wxBitmap::LoadFile
+case wxBitmap_LoadFile: { // wxBitmap::LoadFile
wxBitmapType type=wxBITMAP_TYPE_XPM;
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
bp += *nameLen+((8-((0+ *nameLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
type = *(wxBitmapType *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->LoadFile(name,(wxBitmapType) type);
rt.addBool(Result);
- break;
+ break;
}
-case wxBitmap_Ok: { // wxBitmap::Ok
+case wxBitmap_Ok: { // wxBitmap::Ok
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Ok();
rt.addBool(Result);
- break;
+ break;
}
-case wxBitmap_SaveFile: { // wxBitmap::SaveFile
+case wxBitmap_SaveFile: { // wxBitmap::SaveFile
const wxPalette * palette=(wxPalette *) NULL;
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
@@ -9111,65 +9111,65 @@ case wxBitmap_SaveFile: { // wxBitmap::SaveFile
bp += *nameLen+((8-((0+ *nameLen) & 7)) & 7);
wxBitmapType type = *(wxBitmapType *) bp; bp += 4;;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
palette = (wxPalette *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->SaveFile(name,(wxBitmapType) type,palette);
rt.addBool(Result);
- break;
+ break;
}
-case wxBitmap_SetDepth: { // wxBitmap::SetDepth
+case wxBitmap_SetDepth: { // wxBitmap::SetDepth
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * depth = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDepth((int) *depth);
- break;
+ break;
}
-case wxBitmap_SetHeight: { // wxBitmap::SetHeight
+case wxBitmap_SetHeight: { // wxBitmap::SetHeight
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetHeight((int) *height);
- break;
+ break;
}
-case wxBitmap_SetMask: { // wxBitmap::SetMask
+case wxBitmap_SetMask: { // wxBitmap::SetMask
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxMask *mask = (wxMask *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMask(mask);
- break;
+ break;
}
-case wxBitmap_SetPalette: { // wxBitmap::SetPalette
+case wxBitmap_SetPalette: { // wxBitmap::SetPalette
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxPalette *palette = (wxPalette *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPalette(*palette);
- break;
+ break;
}
-case wxBitmap_SetWidth: { // wxBitmap::SetWidth
+case wxBitmap_SetWidth: { // wxBitmap::SetWidth
wxBitmap *This = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWidth((int) *width);
- break;
+ break;
}
-case wxIcon_new_0: { // wxIcon::wxIcon
+case wxIcon_new_0: { // wxIcon::wxIcon
wxIcon * Result = new EwxIcon();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxIcon");
- break;
+ break;
}
-case wxIcon_new_2: { // wxIcon::wxIcon
+case wxIcon_new_2: { // wxIcon::wxIcon
wxBitmapType type=wxBITMAP_TYPE_XPM;
int desiredWidth=-1;
int desiredHeight=-1;
int * filenameLen = (int *) bp; bp += 4;
wxString filename = wxString(bp, wxConvUTF8);
bp += *filenameLen+((8-((4+ *filenameLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
type = *(wxBitmapType *) bp; bp += 4;;
} break;
@@ -9179,33 +9179,33 @@ type = *(wxBitmapType *) bp; bp += 4;;
case 3: {bp += 4;
desiredHeight = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxIcon * Result = new EwxIcon(filename,(wxBitmapType) type,desiredWidth,desiredHeight);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxIcon");
- break;
+ break;
}
-case wxIcon_new_1: { // wxIcon::wxIcon
+case wxIcon_new_1: { // wxIcon::wxIcon
wxIconLocation *loc = (wxIconLocation *) getPtr(bp,memenv); bp += 4;
wxIcon * Result = new EwxIcon(*loc);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxIcon");
- break;
+ break;
}
-case wxIcon_CopyFromBitmap: { // wxIcon::CopyFromBitmap
+case wxIcon_CopyFromBitmap: { // wxIcon::CopyFromBitmap
wxIcon *This = (wxIcon *) getPtr(bp,memenv); bp += 4;
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CopyFromBitmap(*bmp);
- break;
+ break;
}
-case wxIconBundle_new_0: { // wxIconBundle::wxIconBundle
+case wxIconBundle_new_0: { // wxIconBundle::wxIconBundle
wxIconBundle * Result = new wxIconBundle();
newPtr((void *) Result, 61, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxIconBundle");
- break;
+ break;
}
-case wxIconBundle_new_2: { // wxIconBundle::wxIconBundle
+case wxIconBundle_new_2: { // wxIconBundle::wxIconBundle
int * fileLen = (int *) bp; bp += 4;
wxString file = wxString(bp, wxConvUTF8);
bp += *fileLen+((8-((4+ *fileLen) & 7)) & 7);
@@ -9213,29 +9213,29 @@ case wxIconBundle_new_2: { // wxIconBundle::wxIconBundle
wxIconBundle * Result = new wxIconBundle(file,(long) *type);
newPtr((void *) Result, 61, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxIconBundle");
- break;
+ break;
}
-case wxIconBundle_new_1_0: { // wxIconBundle::wxIconBundle
+case wxIconBundle_new_1_0: { // wxIconBundle::wxIconBundle
wxIcon *icon = (wxIcon *) getPtr(bp,memenv); bp += 4;
wxIconBundle * Result = new wxIconBundle(*icon);
newPtr((void *) Result, 61, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxIconBundle");
- break;
+ break;
}
-case wxIconBundle_new_1_1: { // wxIconBundle::wxIconBundle
+case wxIconBundle_new_1_1: { // wxIconBundle::wxIconBundle
wxIconBundle * ic = (wxIconBundle *) getPtr(bp,memenv); bp += 4;
wxIconBundle * Result = new wxIconBundle(*ic);
newPtr((void *) Result, 61, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxIconBundle");
- break;
+ break;
}
-case wxIconBundle_destruct: { // wxIconBundle::~wxIconBundle
+case wxIconBundle_destruct: { // wxIconBundle::~wxIconBundle
wxIconBundle *This = (wxIconBundle *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxIconBundle_AddIcon_2: { // wxIconBundle::AddIcon
+case wxIconBundle_AddIcon_2: { // wxIconBundle::AddIcon
wxIconBundle *This = (wxIconBundle *) getPtr(bp,memenv); bp += 4;
int * fileLen = (int *) bp; bp += 4;
wxString file = wxString(bp, wxConvUTF8);
@@ -9243,16 +9243,16 @@ case wxIconBundle_AddIcon_2: { // wxIconBundle::AddIcon
int * type = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AddIcon(file,(long) *type);
- break;
+ break;
}
-case wxIconBundle_AddIcon_1: { // wxIconBundle::AddIcon
+case wxIconBundle_AddIcon_1: { // wxIconBundle::AddIcon
wxIconBundle *This = (wxIconBundle *) getPtr(bp,memenv); bp += 4;
wxIcon *icon = (wxIcon *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AddIcon(*icon);
- break;
+ break;
}
-case wxIconBundle_GetIcon_1_1: { // wxIconBundle::GetIcon
+case wxIconBundle_GetIcon_1_1: { // wxIconBundle::GetIcon
wxIconBundle *This = (wxIconBundle *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
@@ -9260,75 +9260,75 @@ case wxIconBundle_GetIcon_1_1: { // wxIconBundle::GetIcon
if(!This) throw wxe_badarg(0);
const wxIcon * Result = &This->GetIcon(size);
rt.addRef(getRef((void *)Result,memenv), "wxIcon");
- break;
+ break;
}
-case wxIconBundle_GetIcon_1_0: { // wxIconBundle::GetIcon
+case wxIconBundle_GetIcon_1_0: { // wxIconBundle::GetIcon
wxCoord size=wxDefaultCoord;
wxIconBundle *This = (wxIconBundle *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
size = (wxCoord)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
const wxIcon * Result = &This->GetIcon(size);
rt.addRef(getRef((void *)Result,memenv), "wxIcon");
- break;
+ break;
}
-case wxCursor_new_0: { // wxCursor::wxCursor
+case wxCursor_new_0: { // wxCursor::wxCursor
wxCursor * Result = new EwxCursor();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCursor");
- break;
+ break;
}
-case wxCursor_new_1_0: { // wxCursor::wxCursor
+case wxCursor_new_1_0: { // wxCursor::wxCursor
int * cursorId = (int *) bp; bp += 4;
wxCursor * Result = new EwxCursor((int) *cursorId);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCursor");
- break;
+ break;
}
-case wxCursor_new_1_1: { // wxCursor::wxCursor
+case wxCursor_new_1_1: { // wxCursor::wxCursor
wxImage *image = (wxImage *) getPtr(bp,memenv); bp += 4;
wxCursor * Result = new EwxCursor(*image);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCursor");
- break;
+ break;
}
-case wxCursor_new_4: { // wxCursor::wxCursor
+case wxCursor_new_4: { // wxCursor::wxCursor
int hotSpotX=-1;
int hotSpotY=-1;
- const char * bits = (const char*) Ecmd.bin[0]->base;
+ const char * bits = (const char*) Ecmd.bin[0]->base;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
hotSpotX = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
hotSpotY = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxCursor * Result = new EwxCursor(bits,(int) *width,(int) *height,hotSpotX,hotSpotY);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCursor");
- break;
+ break;
}
-case wxCursor_Ok: { // wxCursor::Ok
+case wxCursor_Ok: { // wxCursor::Ok
wxCursor *This = (wxCursor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Ok();
rt.addBool(Result);
- break;
+ break;
}
-case wxMask_new_0: { // wxMask::wxMask
+case wxMask_new_0: { // wxMask::wxMask
wxMask * Result = new EwxMask();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMask");
- break;
+ break;
}
-case wxMask_new_2_1: { // wxMask::wxMask
+case wxMask_new_2_1: { // wxMask::wxMask
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -9338,24 +9338,24 @@ case wxMask_new_2_1: { // wxMask::wxMask
wxMask * Result = new EwxMask(*bitmap,colour);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMask");
- break;
+ break;
}
-case wxMask_new_2_0: { // wxMask::wxMask
+case wxMask_new_2_0: { // wxMask::wxMask
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * paletteIndex = (int *) bp; bp += 4;
wxMask * Result = new EwxMask(*bitmap,(int) *paletteIndex);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMask");
- break;
+ break;
}
-case wxMask_new_1: { // wxMask::wxMask
+case wxMask_new_1: { // wxMask::wxMask
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxMask * Result = new EwxMask(*bitmap);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMask");
- break;
+ break;
}
-case wxMask_Create_2_1: { // wxMask::Create
+case wxMask_Create_2_1: { // wxMask::Create
wxMask *This = (wxMask *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
@@ -9366,98 +9366,98 @@ case wxMask_Create_2_1: { // wxMask::Create
if(!This) throw wxe_badarg(0);
bool Result = This->Create(*bitmap,colour);
rt.addBool(Result);
- break;
+ break;
}
-case wxMask_Create_2_0: { // wxMask::Create
+case wxMask_Create_2_0: { // wxMask::Create
wxMask *This = (wxMask *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * paletteIndex = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Create(*bitmap,(int) *paletteIndex);
rt.addBool(Result);
- break;
+ break;
}
-case wxMask_Create_1: { // wxMask::Create
+case wxMask_Create_1: { // wxMask::Create
wxMask *This = (wxMask *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Create(*bitmap);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_new_0: { // wxImage::wxImage
+case wxImage_new_0: { // wxImage::wxImage
wxImage * Result = new EwxImage();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_new_3_0: { // wxImage::wxImage
+case wxImage_new_3_0: { // wxImage::wxImage
bool clear=true;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
clear = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
wxImage * Result = new EwxImage((int) *width,(int) *height,clear);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_new_4: { // wxImage::wxImage
+case wxImage_new_4: { // wxImage::wxImage
bool static_data=false;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
- while( * (int*) bp) { switch (* (int*) bp) {
+ unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
static_data = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!static_data) {data = (unsigned char *) malloc(Ecmd.bin[0]->size);memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);};
wxImage * Result = new EwxImage((int) *width,(int) *height,data,static_data);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_new_5: { // wxImage::wxImage
+case wxImage_new_5: { // wxImage::wxImage
bool static_data=false;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
- unsigned char * alpha = (unsigned char*) Ecmd.bin[1]->base;
- while( * (int*) bp) { switch (* (int*) bp) {
+ unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
+ unsigned char * alpha = (unsigned char*) Ecmd.bin[1]->base;
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
static_data = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!static_data) { data = (unsigned char *) malloc(Ecmd.bin[0]->size); alpha = (unsigned char *) malloc(Ecmd.bin[1]->size); memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size); memcpy(alpha,Ecmd.bin[1]->base,Ecmd.bin[1]->size);};
wxImage * Result = new EwxImage((int) *width,(int) *height,data,alpha,static_data);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_new_2: { // wxImage::wxImage
+case wxImage_new_2: { // wxImage::wxImage
long type=wxBITMAP_TYPE_ANY;
int index=-1;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
bp += *nameLen+((8-((4+ *nameLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
type = (long)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
index = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxImage * Result = new EwxImage(name,type,index);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_new_3_1: { // wxImage::wxImage
+case wxImage_new_3_1: { // wxImage::wxImage
int index=-1;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -9465,61 +9465,61 @@ case wxImage_new_3_1: { // wxImage::wxImage
int * mimetypeLen = (int *) bp; bp += 4;
wxString mimetype = wxString(bp, wxConvUTF8);
bp += *mimetypeLen+((8-((4+ *mimetypeLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
index = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxImage * Result = new EwxImage(name,mimetype,index);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_Blur: { // wxImage::Blur
+case wxImage_Blur: { // wxImage::Blur
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * radius = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->Blur((int) *radius)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_BlurHorizontal: { // wxImage::BlurHorizontal
+case wxImage_BlurHorizontal: { // wxImage::BlurHorizontal
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * radius = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->BlurHorizontal((int) *radius)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_BlurVertical: { // wxImage::BlurVertical
+case wxImage_BlurVertical: { // wxImage::BlurVertical
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * radius = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->BlurVertical((int) *radius)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_ConvertAlphaToMask: { // wxImage::ConvertAlphaToMask
+case wxImage_ConvertAlphaToMask: { // wxImage::ConvertAlphaToMask
char threshold=wxIMAGE_ALPHA_THRESHOLD;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
threshold = (char)*(unsigned int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->ConvertAlphaToMask(threshold);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_ConvertToGreyscale: { // wxImage::ConvertToGreyscale
+case wxImage_ConvertToGreyscale: { // wxImage::ConvertToGreyscale
double lr=0.299;
double lg=0.587;
double lb=0.114;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bp += 4; /* Align */
lr = * (double *) bp; bp += 8;
@@ -9532,13 +9532,13 @@ case wxImage_ConvertToGreyscale: { // wxImage::ConvertToGreyscale
bp += 4; /* Align */
lb = * (double *) bp; bp += 8;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->ConvertToGreyscale(lr,lg,lb)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_ConvertToMono: { // wxImage::ConvertToMono
+case wxImage_ConvertToMono: { // wxImage::ConvertToMono
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
unsigned int * r = (unsigned int *) bp; bp += 4;
unsigned int * g = (unsigned int *) bp; bp += 4;
@@ -9546,75 +9546,75 @@ case wxImage_ConvertToMono: { // wxImage::ConvertToMono
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->ConvertToMono((char) *r,(char) *g,(char) *b)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_Copy: { // wxImage::Copy
+case wxImage_Copy: { // wxImage::Copy
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->Copy()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_Create_3: { // wxImage::Create
+case wxImage_Create_3: { // wxImage::Create
bool clear=true;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
clear = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create((int) *width,(int) *height,clear);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_Create_4: { // wxImage::Create
+case wxImage_Create_4: { // wxImage::Create
bool static_data=false;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
+ unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
static_data = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!static_data) {data = (unsigned char *) malloc(Ecmd.bin[0]->size);memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);};
if(!This) throw wxe_badarg(0);
bool Result = This->Create((int) *width,(int) *height,data,static_data);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_Create_5: { // wxImage::Create
+case wxImage_Create_5: { // wxImage::Create
bool static_data=false;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
- unsigned char * alpha = (unsigned char*) Ecmd.bin[1]->base;
+ unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
+ unsigned char * alpha = (unsigned char*) Ecmd.bin[1]->base;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
static_data = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!static_data) { data = (unsigned char *) malloc(Ecmd.bin[0]->size); alpha = (unsigned char *) malloc(Ecmd.bin[1]->size); memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size); memcpy(alpha,Ecmd.bin[1]->base,Ecmd.bin[1]->size);};
if(!This) throw wxe_badarg(0);
bool Result = This->Create((int) *width,(int) *height,data,alpha,static_data);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_Destroy: { // wxImage::Destroy
+case wxImage_Destroy: { // wxImage::Destroy
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Destroy();
- break;
+ break;
}
-case wxImage_FindFirstUnusedColour: { // wxImage::FindFirstUnusedColour
+case wxImage_FindFirstUnusedColour: { // wxImage::FindFirstUnusedColour
unsigned char r;
unsigned char g;
unsigned char b;
@@ -9623,7 +9623,7 @@ case wxImage_FindFirstUnusedColour: { // wxImage::FindFirstUnusedColour
char startB=0;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
startR = (char)*(unsigned int *) bp; bp += 4;
} break;
@@ -9633,7 +9633,7 @@ case wxImage_FindFirstUnusedColour: { // wxImage::FindFirstUnusedColour
case 3: {bp += 4;
startB = (char)*(unsigned int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->FindFirstUnusedColour(&r,&g,&b,startR,startG,startB);
rt.addBool(Result);
@@ -9641,101 +9641,101 @@ case wxImage_FindFirstUnusedColour: { // wxImage::FindFirstUnusedColour
rt.addUint(g);
rt.addUint(b);
rt.addTupleCount(4);
- break;
+ break;
}
-case wxImage_GetImageExtWildcard: { // wxImage::GetImageExtWildcard
+case wxImage_GetImageExtWildcard: { // wxImage::GetImageExtWildcard
wxString Result = wxImage::GetImageExtWildcard();
rt.add(Result);
- break;
+ break;
}
-case wxImage_GetAlpha_2: { // wxImage::GetAlpha
+case wxImage_GetAlpha_2: { // wxImage::GetAlpha
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
char Result = This->GetAlpha((int) *x,(int) *y);
rt.addUint(Result);
- break;
+ break;
}
-case wxImage_GetAlpha_0: { // wxImage::GetAlpha
+case wxImage_GetAlpha_0: { // wxImage::GetAlpha
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
char * Result = (char*)This->GetAlpha();
if(Result) {
rt.addBinary(Result, (This->GetWidth()*This->GetHeight()));
} else {rt.addAtom("null");};
- break;
+ break;
}
-case wxImage_GetBlue: { // wxImage::GetBlue
+case wxImage_GetBlue: { // wxImage::GetBlue
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
char Result = This->GetBlue((int) *x,(int) *y);
rt.addUint(Result);
- break;
+ break;
}
-case wxImage_GetData: { // wxImage::GetData
+case wxImage_GetData: { // wxImage::GetData
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
char * Result = (char*)This->GetData();
if(Result) {
rt.addBinary(Result, (This->GetWidth()*This->GetHeight()*3));
} else {rt.addAtom("null");};
- break;
+ break;
}
-case wxImage_GetGreen: { // wxImage::GetGreen
+case wxImage_GetGreen: { // wxImage::GetGreen
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
char Result = This->GetGreen((int) *x,(int) *y);
rt.addUint(Result);
- break;
+ break;
}
-case wxImage_GetImageCount: { // wxImage::GetImageCount
+case wxImage_GetImageCount: { // wxImage::GetImageCount
long type=wxBITMAP_TYPE_ANY;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
bp += *nameLen+((8-((4+ *nameLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
type = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
int Result = wxImage::GetImageCount(name,type);
rt.addInt(Result);
- break;
+ break;
}
-case wxImage_GetHeight: { // wxImage::GetHeight
+case wxImage_GetHeight: { // wxImage::GetHeight
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetHeight();
rt.addInt(Result);
- break;
+ break;
}
-case wxImage_GetMaskBlue: { // wxImage::GetMaskBlue
+case wxImage_GetMaskBlue: { // wxImage::GetMaskBlue
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
char Result = This->GetMaskBlue();
rt.addUint(Result);
- break;
+ break;
}
-case wxImage_GetMaskGreen: { // wxImage::GetMaskGreen
+case wxImage_GetMaskGreen: { // wxImage::GetMaskGreen
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
char Result = This->GetMaskGreen();
rt.addUint(Result);
- break;
+ break;
}
-case wxImage_GetMaskRed: { // wxImage::GetMaskRed
+case wxImage_GetMaskRed: { // wxImage::GetMaskRed
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
char Result = This->GetMaskRed();
rt.addUint(Result);
- break;
+ break;
}
-case wxImage_GetOrFindMaskColour: { // wxImage::GetOrFindMaskColour
+case wxImage_GetOrFindMaskColour: { // wxImage::GetOrFindMaskColour
unsigned char r;
unsigned char g;
unsigned char b;
@@ -9747,25 +9747,25 @@ case wxImage_GetOrFindMaskColour: { // wxImage::GetOrFindMaskColour
rt.addUint(g);
rt.addUint(b);
rt.addTupleCount(4);
- break;
+ break;
}
-case wxImage_GetPalette: { // wxImage::GetPalette
+case wxImage_GetPalette: { // wxImage::GetPalette
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxPalette * Result = &This->GetPalette();
rt.addRef(getRef((void *)Result,memenv), "wxPalette");
- break;
+ break;
}
-case wxImage_GetRed: { // wxImage::GetRed
+case wxImage_GetRed: { // wxImage::GetRed
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
char Result = This->GetRed((int) *x,(int) *y);
rt.addUint(Result);
- break;
+ break;
}
-case wxImage_GetSubImage: { // wxImage::GetSubImage
+case wxImage_GetSubImage: { // wxImage::GetSubImage
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -9775,30 +9775,30 @@ case wxImage_GetSubImage: { // wxImage::GetSubImage
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->GetSubImage(rect)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_GetWidth: { // wxImage::GetWidth
+case wxImage_GetWidth: { // wxImage::GetWidth
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxImage_HasAlpha: { // wxImage::HasAlpha
+case wxImage_HasAlpha: { // wxImage::HasAlpha
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasAlpha();
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_HasMask: { // wxImage::HasMask
+case wxImage_HasMask: { // wxImage::HasMask
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasMask();
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_GetOption: { // wxImage::GetOption
+case wxImage_GetOption: { // wxImage::GetOption
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -9806,9 +9806,9 @@ case wxImage_GetOption: { // wxImage::GetOption
if(!This) throw wxe_badarg(0);
wxString Result = This->GetOption(name);
rt.add(Result);
- break;
+ break;
}
-case wxImage_GetOptionInt: { // wxImage::GetOptionInt
+case wxImage_GetOptionInt: { // wxImage::GetOptionInt
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -9816,9 +9816,9 @@ case wxImage_GetOptionInt: { // wxImage::GetOptionInt
if(!This) throw wxe_badarg(0);
int Result = This->GetOptionInt(name);
rt.addInt(Result);
- break;
+ break;
}
-case wxImage_HasOption: { // wxImage::HasOption
+case wxImage_HasOption: { // wxImage::HasOption
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -9826,55 +9826,55 @@ case wxImage_HasOption: { // wxImage::HasOption
if(!This) throw wxe_badarg(0);
bool Result = This->HasOption(name);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_InitAlpha: { // wxImage::InitAlpha
+case wxImage_InitAlpha: { // wxImage::InitAlpha
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->InitAlpha();
- break;
+ break;
}
-case wxImage_InitStandardHandlers: { // wxImage::InitStandardHandlers
+case wxImage_InitStandardHandlers: { // wxImage::InitStandardHandlers
wxImage::InitStandardHandlers();
- break;
+ break;
}
-case wxImage_IsTransparent: { // wxImage::IsTransparent
+case wxImage_IsTransparent: { // wxImage::IsTransparent
char threshold=wxIMAGE_ALPHA_THRESHOLD;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
threshold = (char)*(unsigned int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->IsTransparent((int) *x,(int) *y,threshold);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_LoadFile_2: { // wxImage::LoadFile
+case wxImage_LoadFile_2: { // wxImage::LoadFile
long type=wxBITMAP_TYPE_ANY;
int index=-1;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
bp += *nameLen+((8-((0+ *nameLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
type = (long)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
index = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->LoadFile(name,type,index);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_LoadFile_3: { // wxImage::LoadFile
+case wxImage_LoadFile_3: { // wxImage::LoadFile
int index=-1;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
@@ -9883,46 +9883,46 @@ case wxImage_LoadFile_3: { // wxImage::LoadFile
int * mimetypeLen = (int *) bp; bp += 4;
wxString mimetype = wxString(bp, wxConvUTF8);
bp += *mimetypeLen+((8-((4+ *mimetypeLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
index = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->LoadFile(name,mimetype,index);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_Ok: { // wxImage::Ok
+case wxImage_Ok: { // wxImage::Ok
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Ok();
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_RemoveHandler: { // wxImage::RemoveHandler
+case wxImage_RemoveHandler: { // wxImage::RemoveHandler
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
bp += *nameLen+((8-((4+ *nameLen) & 7)) & 7);
bool Result = wxImage::RemoveHandler(name);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_Mirror: { // wxImage::Mirror
+case wxImage_Mirror: { // wxImage::Mirror
bool horizontally=true;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
horizontally = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->Mirror(horizontally)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_Replace: { // wxImage::Replace
+case wxImage_Replace: { // wxImage::Replace
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
unsigned int * r1 = (unsigned int *) bp; bp += 4;
unsigned int * g1 = (unsigned int *) bp; bp += 4;
@@ -9932,25 +9932,25 @@ case wxImage_Replace: { // wxImage::Replace
unsigned int * b2 = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Replace((char) *r1,(char) *g1,(char) *b1,(char) *r2,(char) *g2,(char) *b2);
- break;
+ break;
}
-case wxImage_Rescale: { // wxImage::Rescale
+case wxImage_Rescale: { // wxImage::Rescale
int quality=wxIMAGE_QUALITY_NORMAL;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
quality = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxImage * Result = &This->Rescale((int) *width,(int) *height,quality);
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_Resize: { // wxImage::Resize
+case wxImage_Resize: { // wxImage::Resize
int r=-1;
int g=-1;
int b=-1;
@@ -9962,7 +9962,7 @@ case wxImage_Resize: { // wxImage::Resize
int * posY = (int *) bp; bp += 4;
wxPoint pos = wxPoint(*posX,*posY);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
r = (int)*(int *) bp; bp += 4;
} break;
@@ -9972,13 +9972,13 @@ case wxImage_Resize: { // wxImage::Resize
case 3: {bp += 4;
b = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxImage * Result = &This->Resize(size,pos,r,g,b);
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_Rotate: { // wxImage::Rotate
+case wxImage_Rotate: { // wxImage::Rotate
bool interpolating=true;
wxPoint *offset_after_rotation=(wxPoint *) NULL; wxPoint offset_after_rotationTmp;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
@@ -9987,7 +9987,7 @@ case wxImage_Rotate: { // wxImage::Rotate
int * centre_of_rotationX = (int *) bp; bp += 4;
int * centre_of_rotationY = (int *) bp; bp += 4;
wxPoint centre_of_rotation = wxPoint(*centre_of_rotationX,*centre_of_rotationY);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
interpolating = *(bool *) bp; bp += 4;
} break;
@@ -9997,35 +9997,35 @@ case wxImage_Rotate: { // wxImage::Rotate
offset_after_rotationTmp = wxPoint(*offset_after_rotationX,*offset_after_rotationY); offset_after_rotation = & offset_after_rotationTmp;
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->Rotate((double) *angle,centre_of_rotation,interpolating,offset_after_rotation)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_RotateHue: { // wxImage::RotateHue
+case wxImage_RotateHue: { // wxImage::RotateHue
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
double * angle = (double *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->RotateHue((double) *angle);
- break;
+ break;
}
-case wxImage_Rotate90: { // wxImage::Rotate90
+case wxImage_Rotate90: { // wxImage::Rotate90
bool clockwise=true;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
clockwise = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->Rotate90(clockwise)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_SaveFile_1: { // wxImage::SaveFile
+case wxImage_SaveFile_1: { // wxImage::SaveFile
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -10033,9 +10033,9 @@ case wxImage_SaveFile_1: { // wxImage::SaveFile
if(!This) throw wxe_badarg(0);
bool Result = This->SaveFile(name);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_SaveFile_2_0: { // wxImage::SaveFile
+case wxImage_SaveFile_2_0: { // wxImage::SaveFile
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -10044,9 +10044,9 @@ case wxImage_SaveFile_2_0: { // wxImage::SaveFile
if(!This) throw wxe_badarg(0);
bool Result = This->SaveFile(name,(int) *type);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_SaveFile_2_1: { // wxImage::SaveFile
+case wxImage_SaveFile_2_1: { // wxImage::SaveFile
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -10057,25 +10057,25 @@ case wxImage_SaveFile_2_1: { // wxImage::SaveFile
if(!This) throw wxe_badarg(0);
bool Result = This->SaveFile(name,mimetype);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_Scale: { // wxImage::Scale
+case wxImage_Scale: { // wxImage::Scale
int quality=wxIMAGE_QUALITY_NORMAL;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
quality = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->Scale((int) *width,(int) *height,quality)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_Size: { // wxImage::Size
+case wxImage_Size: { // wxImage::Size
int r=-1;
int g=-1;
int b=-1;
@@ -10087,7 +10087,7 @@ case wxImage_Size: { // wxImage::Size
int * posY = (int *) bp; bp += 4;
wxPoint pos = wxPoint(*posX,*posY);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
r = (int)*(int *) bp; bp += 4;
} break;
@@ -10097,91 +10097,91 @@ case wxImage_Size: { // wxImage::Size
case 3: {bp += 4;
b = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxImage * Result = new wxImage(This->Size(size,pos,r,g,b)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxImage");
- break;
+ break;
}
-case wxImage_SetAlpha_3: { // wxImage::SetAlpha
+case wxImage_SetAlpha_3: { // wxImage::SetAlpha
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
unsigned int * alpha = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAlpha((int) *x,(int) *y,(char) *alpha);
- break;
+ break;
}
-case wxImage_SetAlpha_2: { // wxImage::SetAlpha
+case wxImage_SetAlpha_2: { // wxImage::SetAlpha
bool static_data=false;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
- unsigned char * alpha = (unsigned char*) Ecmd.bin[0]->base;
+ unsigned char * alpha = (unsigned char*) Ecmd.bin[0]->base;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
static_data = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!static_data) {alpha = (unsigned char *) malloc(Ecmd.bin[0]->size);memcpy(alpha,Ecmd.bin[0]->base,Ecmd.bin[0]->size);};
if(!This) throw wxe_badarg(0);
This->SetAlpha(alpha,static_data);
- break;
+ break;
}
-case wxImage_SetData_2: { // wxImage::SetData
+case wxImage_SetData_2: { // wxImage::SetData
bool static_data=false;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
- unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
+ unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
static_data = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!static_data) {data = (unsigned char *) malloc(Ecmd.bin[0]->size);memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);};
if(!This) throw wxe_badarg(0);
This->SetData(data,static_data);
- break;
+ break;
}
-case wxImage_SetData_4: { // wxImage::SetData
+case wxImage_SetData_4: { // wxImage::SetData
bool static_data=false;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
- unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
+ unsigned char * data = (unsigned char*) Ecmd.bin[0]->base;
int * new_width = (int *) bp; bp += 4;
int * new_height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
static_data = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!static_data) {data = (unsigned char *) malloc(Ecmd.bin[0]->size);memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);};
if(!This) throw wxe_badarg(0);
This->SetData(data,(int) *new_width,(int) *new_height,static_data);
- break;
+ break;
}
-case wxImage_SetMask: { // wxImage::SetMask
+case wxImage_SetMask: { // wxImage::SetMask
bool mask=true;
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
mask = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetMask(mask);
- break;
+ break;
}
-case wxImage_SetMaskColour: { // wxImage::SetMaskColour
+case wxImage_SetMaskColour: { // wxImage::SetMaskColour
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
unsigned int * r = (unsigned int *) bp; bp += 4;
unsigned int * g = (unsigned int *) bp; bp += 4;
unsigned int * b = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMaskColour((char) *r,(char) *g,(char) *b);
- break;
+ break;
}
-case wxImage_SetMaskFromImage: { // wxImage::SetMaskFromImage
+case wxImage_SetMaskFromImage: { // wxImage::SetMaskFromImage
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
wxImage *mask = (wxImage *) getPtr(bp,memenv); bp += 4;
unsigned int * mr = (unsigned int *) bp; bp += 4;
@@ -10190,9 +10190,9 @@ case wxImage_SetMaskFromImage: { // wxImage::SetMaskFromImage
if(!This) throw wxe_badarg(0);
bool Result = This->SetMaskFromImage(*mask,(char) *mr,(char) *mg,(char) *mb);
rt.addBool(Result);
- break;
+ break;
}
-case wxImage_SetOption_2_1: { // wxImage::SetOption
+case wxImage_SetOption_2_1: { // wxImage::SetOption
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -10202,9 +10202,9 @@ case wxImage_SetOption_2_1: { // wxImage::SetOption
bp += *valueLen+((8-((4+ *valueLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetOption(name,value);
- break;
+ break;
}
-case wxImage_SetOption_2_0: { // wxImage::SetOption
+case wxImage_SetOption_2_0: { // wxImage::SetOption
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -10212,16 +10212,16 @@ case wxImage_SetOption_2_0: { // wxImage::SetOption
int * value = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetOption(name,(int) *value);
- break;
+ break;
}
-case wxImage_SetPalette: { // wxImage::SetPalette
+case wxImage_SetPalette: { // wxImage::SetPalette
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
wxPalette *palette = (wxPalette *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPalette(*palette);
- break;
+ break;
}
-case wxImage_SetRGB_5: { // wxImage::SetRGB
+case wxImage_SetRGB_5: { // wxImage::SetRGB
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -10230,9 +10230,9 @@ case wxImage_SetRGB_5: { // wxImage::SetRGB
unsigned int * b = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRGB((int) *x,(int) *y,(char) *r,(char) *g,(char) *b);
- break;
+ break;
}
-case wxImage_SetRGB_4: { // wxImage::SetRGB
+case wxImage_SetRGB_4: { // wxImage::SetRGB
wxImage *This = (wxImage *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -10244,74 +10244,74 @@ case wxImage_SetRGB_4: { // wxImage::SetRGB
unsigned int * b = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRGB(rect,(char) *r,(char) *g,(char) *b);
- break;
+ break;
}
-case wxBrush_new_0: { // wxBrush::wxBrush
+case wxBrush_new_0: { // wxBrush::wxBrush
wxBrush * Result = new EwxBrush();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBrush");
- break;
+ break;
}
-case wxBrush_new_2: { // wxBrush::wxBrush
+case wxBrush_new_2: { // wxBrush::wxBrush
int style=wxSOLID;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
int * colourB = (int *) bp; bp += 4;
int * colourA = (int *) bp; bp += 4;
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxBrush * Result = new EwxBrush(colour,style);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBrush");
- break;
+ break;
}
-case wxBrush_new_1: { // wxBrush::wxBrush
+case wxBrush_new_1: { // wxBrush::wxBrush
wxBitmap *stippleBitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxBrush * Result = new EwxBrush(*stippleBitmap);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBrush");
- break;
+ break;
}
-case wxBrush_GetColour: { // wxBrush::GetColour
+case wxBrush_GetColour: { // wxBrush::GetColour
wxBrush *This = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour * Result = &This->GetColour();
rt.add((*Result));
- break;
+ break;
}
-case wxBrush_GetStipple: { // wxBrush::GetStipple
+case wxBrush_GetStipple: { // wxBrush::GetStipple
wxBrush *This = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxBitmap * Result = (wxBitmap*)This->GetStipple();
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBrush_GetStyle: { // wxBrush::GetStyle
+case wxBrush_GetStyle: { // wxBrush::GetStyle
wxBrush *This = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetStyle();
rt.addInt(Result);
- break;
+ break;
}
-case wxBrush_IsHatch: { // wxBrush::IsHatch
+case wxBrush_IsHatch: { // wxBrush::IsHatch
wxBrush *This = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsHatch();
rt.addBool(Result);
- break;
+ break;
}
-case wxBrush_IsOk: { // wxBrush::IsOk
+case wxBrush_IsOk: { // wxBrush::IsOk
wxBrush *This = (wxBrush *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxBrush_SetColour_1: { // wxBrush::SetColour
+case wxBrush_SetColour_1: { // wxBrush::SetColour
wxBrush *This = (wxBrush *) getPtr(bp,memenv); bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -10320,38 +10320,38 @@ case wxBrush_SetColour_1: { // wxBrush::SetColour
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetColour(col);
- break;
+ break;
}
-case wxBrush_SetColour_3: { // wxBrush::SetColour
+case wxBrush_SetColour_3: { // wxBrush::SetColour
wxBrush *This = (wxBrush *) getPtr(bp,memenv); bp += 4;
unsigned int * r = (unsigned int *) bp; bp += 4;
unsigned int * g = (unsigned int *) bp; bp += 4;
unsigned int * b = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColour((char) *r,(char) *g,(char) *b);
- break;
+ break;
}
-case wxBrush_SetStipple: { // wxBrush::SetStipple
+case wxBrush_SetStipple: { // wxBrush::SetStipple
wxBrush *This = (wxBrush *) getPtr(bp,memenv); bp += 4;
wxBitmap *stipple = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStipple(*stipple);
- break;
+ break;
}
-case wxBrush_SetStyle: { // wxBrush::SetStyle
+case wxBrush_SetStyle: { // wxBrush::SetStyle
wxBrush *This = (wxBrush *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStyle((int) *style);
- break;
+ break;
}
-case wxPen_new_0: { // wxPen::wxPen
+case wxPen_new_0: { // wxPen::wxPen
wxPen * Result = new EwxPen();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPen");
- break;
+ break;
}
-case wxPen_new_2: { // wxPen::wxPen
+case wxPen_new_2: { // wxPen::wxPen
int width=1;
int style=wxSOLID;
int * colourR = (int *) bp; bp += 4;
@@ -10359,69 +10359,69 @@ case wxPen_new_2: { // wxPen::wxPen
int * colourB = (int *) bp; bp += 4;
int * colourA = (int *) bp; bp += 4;
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
width = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxPen * Result = new EwxPen(colour,width,style);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPen");
- break;
+ break;
}
-case wxPen_GetCap: { // wxPen::GetCap
+case wxPen_GetCap: { // wxPen::GetCap
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCap();
rt.addInt(Result);
- break;
+ break;
}
-case wxPen_GetColour: { // wxPen::GetColour
+case wxPen_GetColour: { // wxPen::GetColour
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour * Result = &This->GetColour();
rt.add((*Result));
- break;
+ break;
}
-case wxPen_GetJoin: { // wxPen::GetJoin
+case wxPen_GetJoin: { // wxPen::GetJoin
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetJoin();
rt.addInt(Result);
- break;
+ break;
}
-case wxPen_GetStyle: { // wxPen::GetStyle
+case wxPen_GetStyle: { // wxPen::GetStyle
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetStyle();
rt.addInt(Result);
- break;
+ break;
}
-case wxPen_GetWidth: { // wxPen::GetWidth
+case wxPen_GetWidth: { // wxPen::GetWidth
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxPen_IsOk: { // wxPen::IsOk
+case wxPen_IsOk: { // wxPen::IsOk
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxPen_SetCap: { // wxPen::SetCap
+case wxPen_SetCap: { // wxPen::SetCap
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
int * capStyle = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCap((int) *capStyle);
- break;
+ break;
}
-case wxPen_SetColour_1: { // wxPen::SetColour
+case wxPen_SetColour_1: { // wxPen::SetColour
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -10430,45 +10430,45 @@ case wxPen_SetColour_1: { // wxPen::SetColour
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
if(!This) throw wxe_badarg(0);
This->SetColour(colour);
- break;
+ break;
}
-case wxPen_SetColour_3: { // wxPen::SetColour
+case wxPen_SetColour_3: { // wxPen::SetColour
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
unsigned int * red = (unsigned int *) bp; bp += 4;
unsigned int * green = (unsigned int *) bp; bp += 4;
unsigned int * blue = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColour((char) *red,(char) *green,(char) *blue);
- break;
+ break;
}
-case wxPen_SetJoin: { // wxPen::SetJoin
+case wxPen_SetJoin: { // wxPen::SetJoin
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
int * joinStyle = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetJoin((int) *joinStyle);
- break;
+ break;
}
-case wxPen_SetStyle: { // wxPen::SetStyle
+case wxPen_SetStyle: { // wxPen::SetStyle
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStyle((int) *style);
- break;
+ break;
}
-case wxPen_SetWidth: { // wxPen::SetWidth
+case wxPen_SetWidth: { // wxPen::SetWidth
wxPen *This = (wxPen *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWidth((int) *width);
- break;
+ break;
}
-case wxRegion_new_0: { // wxRegion::wxRegion
+case wxRegion_new_0: { // wxRegion::wxRegion
wxRegion * Result = new EwxRegion();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxRegion");
- break;
+ break;
}
-case wxRegion_new_4: { // wxRegion::wxRegion
+case wxRegion_new_4: { // wxRegion::wxRegion
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
int * w = (int *) bp; bp += 4;
@@ -10476,9 +10476,9 @@ case wxRegion_new_4: { // wxRegion::wxRegion
wxRegion * Result = new EwxRegion((wxCoord) *x,(wxCoord) *y,(wxCoord) *w,(wxCoord) *h);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxRegion");
- break;
+ break;
}
-case wxRegion_new_2: { // wxRegion::wxRegion
+case wxRegion_new_2: { // wxRegion::wxRegion
int * topLeftX = (int *) bp; bp += 4;
int * topLeftY = (int *) bp; bp += 4;
wxPoint topLeft = wxPoint(*topLeftX,*topLeftY);
@@ -10488,9 +10488,9 @@ case wxRegion_new_2: { // wxRegion::wxRegion
wxRegion * Result = new EwxRegion(topLeft,bottomRight);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxRegion");
- break;
+ break;
}
-case wxRegion_new_1_1: { // wxRegion::wxRegion
+case wxRegion_new_1_1: { // wxRegion::wxRegion
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
int * rectW = (int *) bp; bp += 4;
@@ -10499,31 +10499,31 @@ case wxRegion_new_1_1: { // wxRegion::wxRegion
wxRegion * Result = new EwxRegion(rect);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxRegion");
- break;
+ break;
}
-case wxRegion_new_1_0: { // wxRegion::wxRegion
+case wxRegion_new_1_0: { // wxRegion::wxRegion
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxRegion * Result = new EwxRegion(*bmp);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxRegion");
- break;
+ break;
}
-case wxRegion_Clear: { // wxRegion::Clear
+case wxRegion_Clear: { // wxRegion::Clear
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Clear();
- break;
+ break;
}
-case wxRegion_Contains_2: { // wxRegion::Contains
+case wxRegion_Contains_2: { // wxRegion::Contains
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->Contains((wxCoord) *x,(wxCoord) *y);
rt.addInt(Result);
- break;
+ break;
}
-case wxRegion_Contains_1_0: { // wxRegion::Contains
+case wxRegion_Contains_1_0: { // wxRegion::Contains
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -10531,9 +10531,9 @@ case wxRegion_Contains_1_0: { // wxRegion::Contains
if(!This) throw wxe_badarg(0);
int Result = This->Contains(pt);
rt.addInt(Result);
- break;
+ break;
}
-case wxRegion_Contains_4: { // wxRegion::Contains
+case wxRegion_Contains_4: { // wxRegion::Contains
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -10542,9 +10542,9 @@ case wxRegion_Contains_4: { // wxRegion::Contains
if(!This) throw wxe_badarg(0);
int Result = This->Contains((wxCoord) *x,(wxCoord) *y,(wxCoord) *w,(wxCoord) *h);
rt.addInt(Result);
- break;
+ break;
}
-case wxRegion_Contains_1_1: { // wxRegion::Contains
+case wxRegion_Contains_1_1: { // wxRegion::Contains
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -10554,23 +10554,23 @@ case wxRegion_Contains_1_1: { // wxRegion::Contains
if(!This) throw wxe_badarg(0);
int Result = This->Contains(rect);
rt.addInt(Result);
- break;
+ break;
}
-case wxRegion_ConvertToBitmap: { // wxRegion::ConvertToBitmap
+case wxRegion_ConvertToBitmap: { // wxRegion::ConvertToBitmap
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxBitmap * Result = new wxBitmap(This->ConvertToBitmap()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxRegion_GetBox: { // wxRegion::GetBox
+case wxRegion_GetBox: { // wxRegion::GetBox
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetBox();
rt.add(Result);
- break;
+ break;
}
-case wxRegion_Intersect_4: { // wxRegion::Intersect
+case wxRegion_Intersect_4: { // wxRegion::Intersect
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -10579,9 +10579,9 @@ case wxRegion_Intersect_4: { // wxRegion::Intersect
if(!This) throw wxe_badarg(0);
bool Result = This->Intersect((wxCoord) *x,(wxCoord) *y,(wxCoord) *w,(wxCoord) *h);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Intersect_1_1: { // wxRegion::Intersect
+case wxRegion_Intersect_1_1: { // wxRegion::Intersect
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -10591,24 +10591,24 @@ case wxRegion_Intersect_1_1: { // wxRegion::Intersect
if(!This) throw wxe_badarg(0);
bool Result = This->Intersect(rect);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Intersect_1_0: { // wxRegion::Intersect
+case wxRegion_Intersect_1_0: { // wxRegion::Intersect
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
wxRegion *region = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Intersect(*region);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_IsEmpty: { // wxRegion::IsEmpty
+case wxRegion_IsEmpty: { // wxRegion::IsEmpty
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEmpty();
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Subtract_4: { // wxRegion::Subtract
+case wxRegion_Subtract_4: { // wxRegion::Subtract
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -10617,9 +10617,9 @@ case wxRegion_Subtract_4: { // wxRegion::Subtract
if(!This) throw wxe_badarg(0);
bool Result = This->Subtract((wxCoord) *x,(wxCoord) *y,(wxCoord) *w,(wxCoord) *h);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Subtract_1_1: { // wxRegion::Subtract
+case wxRegion_Subtract_1_1: { // wxRegion::Subtract
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -10629,26 +10629,26 @@ case wxRegion_Subtract_1_1: { // wxRegion::Subtract
if(!This) throw wxe_badarg(0);
bool Result = This->Subtract(rect);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Subtract_1_0: { // wxRegion::Subtract
+case wxRegion_Subtract_1_0: { // wxRegion::Subtract
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
wxRegion *region = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Subtract(*region);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Offset_2: { // wxRegion::Offset
+case wxRegion_Offset_2: { // wxRegion::Offset
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Offset((wxCoord) *x,(wxCoord) *y);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Offset_1: { // wxRegion::Offset
+case wxRegion_Offset_1: { // wxRegion::Offset
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -10656,9 +10656,9 @@ case wxRegion_Offset_1: { // wxRegion::Offset
if(!This) throw wxe_badarg(0);
bool Result = This->Offset(pt);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Union_4: { // wxRegion::Union
+case wxRegion_Union_4: { // wxRegion::Union
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -10667,9 +10667,9 @@ case wxRegion_Union_4: { // wxRegion::Union
if(!This) throw wxe_badarg(0);
bool Result = This->Union((wxCoord) *x,(wxCoord) *y,(wxCoord) *w,(wxCoord) *h);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Union_1_2: { // wxRegion::Union
+case wxRegion_Union_1_2: { // wxRegion::Union
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -10679,25 +10679,25 @@ case wxRegion_Union_1_2: { // wxRegion::Union
if(!This) throw wxe_badarg(0);
bool Result = This->Union(rect);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Union_1_1: { // wxRegion::Union
+case wxRegion_Union_1_1: { // wxRegion::Union
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
wxRegion * region = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Union(*region);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Union_1_0: { // wxRegion::Union
+case wxRegion_Union_1_0: { // wxRegion::Union
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Union(*bmp);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Union_3: { // wxRegion::Union
+case wxRegion_Union_3: { // wxRegion::Union
int tolerance=0;
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
@@ -10706,17 +10706,17 @@ case wxRegion_Union_3: { // wxRegion::Union
int * transpB = (int *) bp; bp += 4;
int * transpA = (int *) bp; bp += 4;
wxColour transp = wxColour(*transpR,*transpG,*transpB,*transpA);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
tolerance = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Union(*bmp,transp,tolerance);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Xor_4: { // wxRegion::Xor
+case wxRegion_Xor_4: { // wxRegion::Xor
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -10725,9 +10725,9 @@ case wxRegion_Xor_4: { // wxRegion::Xor
if(!This) throw wxe_badarg(0);
bool Result = This->Xor((wxCoord) *x,(wxCoord) *y,(wxCoord) *w,(wxCoord) *h);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Xor_1_1: { // wxRegion::Xor
+case wxRegion_Xor_1_1: { // wxRegion::Xor
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -10737,23 +10737,23 @@ case wxRegion_Xor_1_1: { // wxRegion::Xor
if(!This) throw wxe_badarg(0);
bool Result = This->Xor(rect);
rt.addBool(Result);
- break;
+ break;
}
-case wxRegion_Xor_1_0: { // wxRegion::Xor
+case wxRegion_Xor_1_0: { // wxRegion::Xor
wxRegion *This = (wxRegion *) getPtr(bp,memenv); bp += 4;
wxRegion *region = (wxRegion *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Xor(*region);
rt.addBool(Result);
- break;
+ break;
}
-case wxAcceleratorTable_new_0: { // wxAcceleratorTable::wxAcceleratorTable
+case wxAcceleratorTable_new_0: { // wxAcceleratorTable::wxAcceleratorTable
wxAcceleratorTable * Result = new EwxAcceleratorTable();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxAcceleratorTable");
- break;
+ break;
}
-case wxAcceleratorTable_new_2: { // wxAcceleratorTable::wxAcceleratorTable
+case wxAcceleratorTable_new_2: { // wxAcceleratorTable::wxAcceleratorTable
int * n = (int *) bp; bp += 4;
int * entriesLen = (int *) bp; bp += 4;
wxAcceleratorEntry *entries;
@@ -10763,21 +10763,21 @@ case wxAcceleratorTable_new_2: { // wxAcceleratorTable::wxAcceleratorTable
newPtr((void *) Result, 1, memenv);
driver_free(entries);
rt.addRef(getRef((void *)Result,memenv), "wxAcceleratorTable");
- break;
+ break;
}
-case wxAcceleratorTable_Ok: { // wxAcceleratorTable::Ok
+case wxAcceleratorTable_Ok: { // wxAcceleratorTable::Ok
wxAcceleratorTable *This = (wxAcceleratorTable *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Ok();
rt.addBool(Result);
- break;
+ break;
}
-case wxAcceleratorEntry_new_1_0: { // wxAcceleratorEntry::wxAcceleratorEntry
+case wxAcceleratorEntry_new_1_0: { // wxAcceleratorEntry::wxAcceleratorEntry
int flags=0;
int keyCode=0;
int cmd=0;
wxMenuItem * item=NULL;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
@@ -10790,71 +10790,71 @@ case wxAcceleratorEntry_new_1_0: { // wxAcceleratorEntry::wxAcceleratorEntry
case 4: {bp += 4;
item = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxAcceleratorEntry * Result = new wxAcceleratorEntry(flags,keyCode,cmd,item);
newPtr((void *) Result, 69, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxAcceleratorEntry");
- break;
+ break;
}
-case wxAcceleratorEntry_new_1_1: { // wxAcceleratorEntry::wxAcceleratorEntry
+case wxAcceleratorEntry_new_1_1: { // wxAcceleratorEntry::wxAcceleratorEntry
wxAcceleratorEntry *entry = (wxAcceleratorEntry *) getPtr(bp,memenv); bp += 4;
wxAcceleratorEntry * Result = new wxAcceleratorEntry(*entry);
newPtr((void *) Result, 69, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxAcceleratorEntry");
- break;
+ break;
}
-case wxAcceleratorEntry_GetCommand: { // wxAcceleratorEntry::GetCommand
+case wxAcceleratorEntry_GetCommand: { // wxAcceleratorEntry::GetCommand
wxAcceleratorEntry *This = (wxAcceleratorEntry *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCommand();
rt.addInt(Result);
- break;
+ break;
}
-case wxAcceleratorEntry_GetFlags: { // wxAcceleratorEntry::GetFlags
+case wxAcceleratorEntry_GetFlags: { // wxAcceleratorEntry::GetFlags
wxAcceleratorEntry *This = (wxAcceleratorEntry *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFlags();
rt.addInt(Result);
- break;
+ break;
}
-case wxAcceleratorEntry_GetKeyCode: { // wxAcceleratorEntry::GetKeyCode
+case wxAcceleratorEntry_GetKeyCode: { // wxAcceleratorEntry::GetKeyCode
wxAcceleratorEntry *This = (wxAcceleratorEntry *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetKeyCode();
rt.addInt(Result);
- break;
+ break;
}
-case wxAcceleratorEntry_Set: { // wxAcceleratorEntry::Set
+case wxAcceleratorEntry_Set: { // wxAcceleratorEntry::Set
wxMenuItem * item=NULL;
wxAcceleratorEntry *This = (wxAcceleratorEntry *) getPtr(bp,memenv); bp += 4;
int * flags = (int *) bp; bp += 4;
int * keyCode = (int *) bp; bp += 4;
int * cmd = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
item = (wxMenuItem *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Set((int) *flags,(int) *keyCode,(int) *cmd,item);
- break;
+ break;
}
-case wxAcceleratorEntry_destroy: { // wxAcceleratorEntry::destroy
+case wxAcceleratorEntry_destroy: { // wxAcceleratorEntry::destroy
wxAcceleratorEntry *This = (wxAcceleratorEntry *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxCaret_new_3: { // wxCaret::wxCaret
+case wxCaret_new_3: { // wxCaret::wxCaret
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
wxCaret * Result = new EwxCaret(window,(int) *width,(int) *height);
newPtr((void *) Result, 70, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCaret");
- break;
+ break;
}
-case wxCaret_new_2: { // wxCaret::wxCaret
+case wxCaret_new_2: { // wxCaret::wxCaret
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
@@ -10862,15 +10862,15 @@ case wxCaret_new_2: { // wxCaret::wxCaret
wxCaret * Result = new EwxCaret(window,size);
newPtr((void *) Result, 70, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCaret");
- break;
+ break;
}
-case wxCaret_destruct: { // wxCaret::~wxCaret
+case wxCaret_destruct: { // wxCaret::~wxCaret
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxCaret_Create_3: { // wxCaret::Create
+case wxCaret_Create_3: { // wxCaret::Create
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
@@ -10878,9 +10878,9 @@ case wxCaret_Create_3: { // wxCaret::Create
if(!This) throw wxe_badarg(0);
bool Result = This->Create(window,(int) *width,(int) *height);
rt.addBool(Result);
- break;
+ break;
}
-case wxCaret_Create_2: { // wxCaret::Create
+case wxCaret_Create_2: { // wxCaret::Create
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
@@ -10889,114 +10889,114 @@ case wxCaret_Create_2: { // wxCaret::Create
if(!This) throw wxe_badarg(0);
bool Result = This->Create(window,size);
rt.addBool(Result);
- break;
+ break;
}
-case wxCaret_GetBlinkTime: { // wxCaret::GetBlinkTime
+case wxCaret_GetBlinkTime: { // wxCaret::GetBlinkTime
int Result = wxCaret::GetBlinkTime();
rt.addInt(Result);
- break;
+ break;
}
-case wxCaret_GetPosition: { // wxCaret::GetPosition
+case wxCaret_GetPosition: { // wxCaret::GetPosition
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPosition();
rt.add(Result);
- break;
+ break;
}
-case wxCaret_GetSize: { // wxCaret::GetSize
+case wxCaret_GetSize: { // wxCaret::GetSize
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetSize();
rt.add(Result);
- break;
+ break;
}
-case wxCaret_GetWindow: { // wxCaret::GetWindow
+case wxCaret_GetWindow: { // wxCaret::GetWindow
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxCaret_Hide: { // wxCaret::Hide
+case wxCaret_Hide: { // wxCaret::Hide
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Hide();
- break;
+ break;
}
-case wxCaret_IsOk: { // wxCaret::IsOk
+case wxCaret_IsOk: { // wxCaret::IsOk
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxCaret_IsVisible: { // wxCaret::IsVisible
+case wxCaret_IsVisible: { // wxCaret::IsVisible
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsVisible();
rt.addBool(Result);
- break;
+ break;
}
-case wxCaret_Move_2: { // wxCaret::Move
+case wxCaret_Move_2: { // wxCaret::Move
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Move((int) *x,(int) *y);
- break;
+ break;
}
-case wxCaret_Move_1: { // wxCaret::Move
+case wxCaret_Move_1: { // wxCaret::Move
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
if(!This) throw wxe_badarg(0);
This->Move(pt);
- break;
+ break;
}
-case wxCaret_SetBlinkTime: { // wxCaret::SetBlinkTime
+case wxCaret_SetBlinkTime: { // wxCaret::SetBlinkTime
int * milliseconds = (int *) bp; bp += 4;
wxCaret::SetBlinkTime((int) *milliseconds);
- break;
+ break;
}
-case wxCaret_SetSize_2: { // wxCaret::SetSize
+case wxCaret_SetSize_2: { // wxCaret::SetSize
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSize((int) *width,(int) *height);
- break;
+ break;
}
-case wxCaret_SetSize_1: { // wxCaret::SetSize
+case wxCaret_SetSize_1: { // wxCaret::SetSize
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetSize(size);
- break;
+ break;
}
-case wxCaret_Show: { // wxCaret::Show
+case wxCaret_Show: { // wxCaret::Show
bool show=true;
wxCaret *This = (wxCaret *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
show = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Show(show);
- break;
+ break;
}
-case wxSizer_Add_2_1: { // wxSizer::Add
+case wxSizer_Add_2_1: { // wxSizer::Add
int proportion=0;
int flag=0;
int border=0;
wxObject * userData=NULL;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -11009,20 +11009,20 @@ case wxSizer_Add_2_1: { // wxSizer::Add
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(window,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Add_2_0: { // wxSizer::Add
+case wxSizer_Add_2_0: { // wxSizer::Add
int proportion=0;
int flag=0;
int border=0;
wxObject * userData=NULL;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -11035,13 +11035,13 @@ case wxSizer_Add_2_0: { // wxSizer::Add
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(sizer,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Add_3: { // wxSizer::Add
+case wxSizer_Add_3: { // wxSizer::Add
int proportion=0;
int flag=0;
int border=0;
@@ -11050,7 +11050,7 @@ case wxSizer_Add_3: { // wxSizer::Add
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -11063,112 +11063,112 @@ case wxSizer_Add_3: { // wxSizer::Add
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add((int) *width,(int) *height,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Add_2_3: { // wxSizer::Add
+case wxSizer_Add_2_3: { // wxSizer::Add
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxSizerFlags *flags = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(window,*flags);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Add_2_2: { // wxSizer::Add
+case wxSizer_Add_2_2: { // wxSizer::Add
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizerFlags *flags = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(sizer,*flags);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_AddSpacer: { // wxSizer::AddSpacer
+case wxSizer_AddSpacer: { // wxSizer::AddSpacer
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * size = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->AddSpacer((int) *size);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_AddStretchSpacer: { // wxSizer::AddStretchSpacer
+case wxSizer_AddStretchSpacer: { // wxSizer::AddStretchSpacer
int prop=1;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
prop = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->AddStretchSpacer(prop);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_CalcMin: { // wxSizer::CalcMin
+case wxSizer_CalcMin: { // wxSizer::CalcMin
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->CalcMin();
rt.add(Result);
- break;
+ break;
}
-case wxSizer_Clear: { // wxSizer::Clear
+case wxSizer_Clear: { // wxSizer::Clear
bool delete_windows=false;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
delete_windows = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Clear(delete_windows);
- break;
+ break;
}
-case wxSizer_Detach_1_2: { // wxSizer::Detach
+case wxSizer_Detach_1_2: { // wxSizer::Detach
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Detach(window);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Detach_1_1: { // wxSizer::Detach
+case wxSizer_Detach_1_1: { // wxSizer::Detach
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Detach(sizer);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Detach_1_0: { // wxSizer::Detach
+case wxSizer_Detach_1_0: { // wxSizer::Detach
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Detach((int) *index);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Fit: { // wxSizer::Fit
+case wxSizer_Fit: { // wxSizer::Fit
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->Fit(window);
rt.add(Result);
- break;
+ break;
}
-case wxSizer_FitInside: { // wxSizer::FitInside
+case wxSizer_FitInside: { // wxSizer::FitInside
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->FitInside(window);
- break;
+ break;
}
-case wxSizer_GetChildren: { // wxSizer::GetChildren
+case wxSizer_GetChildren: { // wxSizer::GetChildren
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItemList Result = This->GetChildren();
@@ -11177,102 +11177,102 @@ case wxSizer_GetChildren: { // wxSizer::GetChildren
wxSizerItem * ResultTmp = *it;
rt.addRef(getRef((void *)ResultTmp,memenv), "wxSizerItem"); i++;}
rt.endList(Result.GetCount());
- break;
+ break;
}
-case wxSizer_GetItem_2_1: { // wxSizer::GetItem
+case wxSizer_GetItem_2_1: { // wxSizer::GetItem
bool recursive=false;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
recursive = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->GetItem(window,recursive);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_GetItem_2_0: { // wxSizer::GetItem
+case wxSizer_GetItem_2_0: { // wxSizer::GetItem
bool recursive=false;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
recursive = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->GetItem(sizer,recursive);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_GetItem_1: { // wxSizer::GetItem
+case wxSizer_GetItem_1: { // wxSizer::GetItem
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->GetItem((size_t) *index);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_GetSize: { // wxSizer::GetSize
+case wxSizer_GetSize: { // wxSizer::GetSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetSize();
rt.add(Result);
- break;
+ break;
}
-case wxSizer_GetPosition: { // wxSizer::GetPosition
+case wxSizer_GetPosition: { // wxSizer::GetPosition
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPosition();
rt.add(Result);
- break;
+ break;
}
-case wxSizer_GetMinSize: { // wxSizer::GetMinSize
+case wxSizer_GetMinSize: { // wxSizer::GetMinSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetMinSize();
rt.add(Result);
- break;
+ break;
}
-case wxSizer_Hide_2_0: { // wxSizer::Hide
+case wxSizer_Hide_2_0: { // wxSizer::Hide
bool recursive=false;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
recursive = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Hide(sizer,recursive);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Hide_2_1: { // wxSizer::Hide
+case wxSizer_Hide_2_1: { // wxSizer::Hide
bool recursive=false;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
recursive = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Hide(window,recursive);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Hide_1: { // wxSizer::Hide
+case wxSizer_Hide_1: { // wxSizer::Hide
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Hide((size_t) *index);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Insert_3_1: { // wxSizer::Insert
+case wxSizer_Insert_3_1: { // wxSizer::Insert
int proportion=0;
int flag=0;
int border=0;
@@ -11281,7 +11281,7 @@ case wxSizer_Insert_3_1: { // wxSizer::Insert
int * index = (int *) bp; bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -11294,13 +11294,13 @@ case wxSizer_Insert_3_1: { // wxSizer::Insert
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Insert((size_t) *index,window,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Insert_3_0: { // wxSizer::Insert
+case wxSizer_Insert_3_0: { // wxSizer::Insert
int proportion=0;
int flag=0;
int border=0;
@@ -11309,7 +11309,7 @@ case wxSizer_Insert_3_0: { // wxSizer::Insert
int * index = (int *) bp; bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -11322,13 +11322,13 @@ case wxSizer_Insert_3_0: { // wxSizer::Insert
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Insert((size_t) *index,sizer,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Insert_4: { // wxSizer::Insert
+case wxSizer_Insert_4: { // wxSizer::Insert
int proportion=0;
int flag=0;
int border=0;
@@ -11337,7 +11337,7 @@ case wxSizer_Insert_4: { // wxSizer::Insert
int * index = (int *) bp; bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -11350,13 +11350,13 @@ case wxSizer_Insert_4: { // wxSizer::Insert
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Insert((size_t) *index,(int) *width,(int) *height,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Insert_3_3: { // wxSizer::Insert
+case wxSizer_Insert_3_3: { // wxSizer::Insert
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
@@ -11364,9 +11364,9 @@ case wxSizer_Insert_3_3: { // wxSizer::Insert
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Insert((size_t) *index,window,*flags);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Insert_3_2: { // wxSizer::Insert
+case wxSizer_Insert_3_2: { // wxSizer::Insert
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
@@ -11374,78 +11374,78 @@ case wxSizer_Insert_3_2: { // wxSizer::Insert
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Insert((size_t) *index,sizer,*flags);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Insert_2: { // wxSizer::Insert
+case wxSizer_Insert_2: { // wxSizer::Insert
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
wxSizerItem *item = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Insert((size_t) *index,item);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_InsertSpacer: { // wxSizer::InsertSpacer
+case wxSizer_InsertSpacer: { // wxSizer::InsertSpacer
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
int * size = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->InsertSpacer((size_t) *index,(int) *size);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_InsertStretchSpacer: { // wxSizer::InsertStretchSpacer
+case wxSizer_InsertStretchSpacer: { // wxSizer::InsertStretchSpacer
int prop=1;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
prop = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->InsertStretchSpacer((size_t) *index,prop);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_IsShown_1_2: { // wxSizer::IsShown
+case wxSizer_IsShown_1_2: { // wxSizer::IsShown
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsShown(window);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_IsShown_1_1: { // wxSizer::IsShown
+case wxSizer_IsShown_1_1: { // wxSizer::IsShown
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsShown(sizer);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_IsShown_1_0: { // wxSizer::IsShown
+case wxSizer_IsShown_1_0: { // wxSizer::IsShown
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsShown((size_t) *index);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Layout: { // wxSizer::Layout
+case wxSizer_Layout: { // wxSizer::Layout
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Layout();
- break;
+ break;
}
-case wxSizer_Prepend_2_1: { // wxSizer::Prepend
+case wxSizer_Prepend_2_1: { // wxSizer::Prepend
int proportion=0;
int flag=0;
int border=0;
wxObject * userData=NULL;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -11458,20 +11458,20 @@ case wxSizer_Prepend_2_1: { // wxSizer::Prepend
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Prepend(window,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Prepend_2_0: { // wxSizer::Prepend
+case wxSizer_Prepend_2_0: { // wxSizer::Prepend
int proportion=0;
int flag=0;
int border=0;
wxObject * userData=NULL;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -11484,13 +11484,13 @@ case wxSizer_Prepend_2_0: { // wxSizer::Prepend
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Prepend(sizer,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Prepend_3: { // wxSizer::Prepend
+case wxSizer_Prepend_3: { // wxSizer::Prepend
int proportion=0;
int flag=0;
int border=0;
@@ -11499,7 +11499,7 @@ case wxSizer_Prepend_3: { // wxSizer::Prepend
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -11512,124 +11512,124 @@ case wxSizer_Prepend_3: { // wxSizer::Prepend
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Prepend((int) *width,(int) *height,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Prepend_2_3: { // wxSizer::Prepend
+case wxSizer_Prepend_2_3: { // wxSizer::Prepend
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxSizerFlags *flags = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Prepend(window,*flags);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Prepend_2_2: { // wxSizer::Prepend
+case wxSizer_Prepend_2_2: { // wxSizer::Prepend
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizerFlags *flags = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Prepend(sizer,*flags);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_Prepend_1: { // wxSizer::Prepend
+case wxSizer_Prepend_1: { // wxSizer::Prepend
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizerItem *item = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Prepend(item);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_PrependSpacer: { // wxSizer::PrependSpacer
+case wxSizer_PrependSpacer: { // wxSizer::PrependSpacer
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * size = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->PrependSpacer((int) *size);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_PrependStretchSpacer: { // wxSizer::PrependStretchSpacer
+case wxSizer_PrependStretchSpacer: { // wxSizer::PrependStretchSpacer
int prop=1;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
prop = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->PrependStretchSpacer(prop);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizer_RecalcSizes: { // wxSizer::RecalcSizes
+case wxSizer_RecalcSizes: { // wxSizer::RecalcSizes
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->RecalcSizes();
- break;
+ break;
}
-case wxSizer_Remove_1_1: { // wxSizer::Remove
+case wxSizer_Remove_1_1: { // wxSizer::Remove
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Remove(sizer);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Remove_1_0: { // wxSizer::Remove
+case wxSizer_Remove_1_0: { // wxSizer::Remove
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Remove((int) *index);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Replace_3_1: { // wxSizer::Replace
+case wxSizer_Replace_3_1: { // wxSizer::Replace
bool recursive=false;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * oldwin = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindow * newwin = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
recursive = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Replace(oldwin,newwin,recursive);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Replace_3_0: { // wxSizer::Replace
+case wxSizer_Replace_3_0: { // wxSizer::Replace
bool recursive=false;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *oldsz = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *newsz = (wxSizer *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
recursive = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Replace(oldsz,newsz,recursive);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Replace_2: { // wxSizer::Replace
+case wxSizer_Replace_2: { // wxSizer::Replace
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
wxSizerItem *newitem = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Replace((size_t) *index,newitem);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_SetDimension: { // wxSizer::SetDimension
+case wxSizer_SetDimension: { // wxSizer::SetDimension
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -11637,26 +11637,26 @@ case wxSizer_SetDimension: { // wxSizer::SetDimension
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDimension((int) *x,(int) *y,(int) *width,(int) *height);
- break;
+ break;
}
-case wxSizer_SetMinSize_2: { // wxSizer::SetMinSize
+case wxSizer_SetMinSize_2: { // wxSizer::SetMinSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMinSize((int) *width,(int) *height);
- break;
+ break;
}
-case wxSizer_SetMinSize_1: { // wxSizer::SetMinSize
+case wxSizer_SetMinSize_1: { // wxSizer::SetMinSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetMinSize(size);
- break;
+ break;
}
-case wxSizer_SetItemMinSize_3_2: { // wxSizer::SetItemMinSize
+case wxSizer_SetItemMinSize_3_2: { // wxSizer::SetItemMinSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
@@ -11664,9 +11664,9 @@ case wxSizer_SetItemMinSize_3_2: { // wxSizer::SetItemMinSize
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemMinSize(window,(int) *width,(int) *height);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_SetItemMinSize_2_2: { // wxSizer::SetItemMinSize
+case wxSizer_SetItemMinSize_2_2: { // wxSizer::SetItemMinSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
@@ -11675,9 +11675,9 @@ case wxSizer_SetItemMinSize_2_2: { // wxSizer::SetItemMinSize
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemMinSize(window,size);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_SetItemMinSize_3_1: { // wxSizer::SetItemMinSize
+case wxSizer_SetItemMinSize_3_1: { // wxSizer::SetItemMinSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
@@ -11685,9 +11685,9 @@ case wxSizer_SetItemMinSize_3_1: { // wxSizer::SetItemMinSize
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemMinSize(sizer,(int) *width,(int) *height);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_SetItemMinSize_2_1: { // wxSizer::SetItemMinSize
+case wxSizer_SetItemMinSize_2_1: { // wxSizer::SetItemMinSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
@@ -11696,9 +11696,9 @@ case wxSizer_SetItemMinSize_2_1: { // wxSizer::SetItemMinSize
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemMinSize(sizer,size);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_SetItemMinSize_3_0: { // wxSizer::SetItemMinSize
+case wxSizer_SetItemMinSize_3_0: { // wxSizer::SetItemMinSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
int * width = (int *) bp; bp += 4;
@@ -11706,9 +11706,9 @@ case wxSizer_SetItemMinSize_3_0: { // wxSizer::SetItemMinSize
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemMinSize((size_t) *index,(int) *width,(int) *height);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_SetItemMinSize_2_0: { // wxSizer::SetItemMinSize
+case wxSizer_SetItemMinSize_2_0: { // wxSizer::SetItemMinSize
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
int * sizeW = (int *) bp; bp += 4;
@@ -11717,172 +11717,172 @@ case wxSizer_SetItemMinSize_2_0: { // wxSizer::SetItemMinSize
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemMinSize((size_t) *index,size);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_SetSizeHints: { // wxSizer::SetSizeHints
+case wxSizer_SetSizeHints: { // wxSizer::SetSizeHints
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSizeHints(window);
- break;
+ break;
}
-case wxSizer_SetVirtualSizeHints: { // wxSizer::SetVirtualSizeHints
+case wxSizer_SetVirtualSizeHints: { // wxSizer::SetVirtualSizeHints
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetVirtualSizeHints(window);
- break;
+ break;
}
-case wxSizer_Show_2_2: { // wxSizer::Show
+case wxSizer_Show_2_2: { // wxSizer::Show
bool show=true;
bool recursive=false;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
show = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
recursive = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Show(window,show,recursive);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Show_2_1: { // wxSizer::Show
+case wxSizer_Show_2_1: { // wxSizer::Show
bool show=true;
bool recursive=false;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
show = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
recursive = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Show(sizer,show,recursive);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Show_2_0: { // wxSizer::Show
+case wxSizer_Show_2_0: { // wxSizer::Show
bool show=true;
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
show = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Show((size_t) *index,show);
rt.addBool(Result);
- break;
+ break;
}
-case wxSizer_Show_1: { // wxSizer::Show
+case wxSizer_Show_1: { // wxSizer::Show
wxSizer *This = (wxSizer *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Show((bool) *show);
- break;
+ break;
}
-case wxSizerFlags_new: { // wxSizerFlags::wxSizerFlags
+case wxSizerFlags_new: { // wxSizerFlags::wxSizerFlags
int proportion=0;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxSizerFlags * Result = new wxSizerFlags(proportion);
newPtr((void *) Result, 72, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_Align: { // wxSizerFlags::Align
+case wxSizerFlags_Align: { // wxSizerFlags::Align
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
int * alignment = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerFlags * Result = &This->Align((int) *alignment);
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_Border_2: { // wxSizerFlags::Border
+case wxSizerFlags_Border_2: { // wxSizerFlags::Border
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
int * direction = (int *) bp; bp += 4;
int * borderInPixels = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerFlags * Result = &This->Border((int) *direction,(int) *borderInPixels);
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_Border_1: { // wxSizerFlags::Border
+case wxSizerFlags_Border_1: { // wxSizerFlags::Border
int direction=wxALL;
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
direction = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerFlags * Result = &This->Border(direction);
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_Center: { // wxSizerFlags::Center
+case wxSizerFlags_Center: { // wxSizerFlags::Center
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerFlags * Result = &This->Center();
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_Centre: { // wxSizerFlags::Centre
+case wxSizerFlags_Centre: { // wxSizerFlags::Centre
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerFlags * Result = &This->Centre();
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_Expand: { // wxSizerFlags::Expand
+case wxSizerFlags_Expand: { // wxSizerFlags::Expand
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerFlags * Result = &This->Expand();
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_Left: { // wxSizerFlags::Left
+case wxSizerFlags_Left: { // wxSizerFlags::Left
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerFlags * Result = &This->Left();
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_Proportion: { // wxSizerFlags::Proportion
+case wxSizerFlags_Proportion: { // wxSizerFlags::Proportion
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
int * proportion = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerFlags * Result = &This->Proportion((int) *proportion);
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_Right: { // wxSizerFlags::Right
+case wxSizerFlags_Right: { // wxSizerFlags::Right
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerFlags * Result = &This->Right();
rt.addRef(getRef((void *)Result,memenv), "wxSizerFlags");
- break;
+ break;
}
-case wxSizerFlags_destroy: { // wxSizerFlags::destroy
+case wxSizerFlags_destroy: { // wxSizerFlags::destroy
wxSizerFlags *This = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxSizerItem_new_5_1: { // wxSizerItem::wxSizerItem
+case wxSizerItem_new_5_1: { // wxSizerItem::wxSizerItem
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * proportion = (int *) bp; bp += 4;
int * flag = (int *) bp; bp += 4;
@@ -11891,17 +11891,17 @@ case wxSizerItem_new_5_1: { // wxSizerItem::wxSizerItem
wxSizerItem * Result = new EwxSizerItem(window,(int) *proportion,(int) *flag,(int) *border,userData);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizerItem_new_2_1: { // wxSizerItem::wxSizerItem
+case wxSizerItem_new_2_1: { // wxSizerItem::wxSizerItem
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxSizerFlags *flags = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
wxSizerItem * Result = new EwxSizerItem(window,*flags);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizerItem_new_5_0: { // wxSizerItem::wxSizerItem
+case wxSizerItem_new_5_0: { // wxSizerItem::wxSizerItem
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * proportion = (int *) bp; bp += 4;
int * flag = (int *) bp; bp += 4;
@@ -11910,17 +11910,17 @@ case wxSizerItem_new_5_0: { // wxSizerItem::wxSizerItem
wxSizerItem * Result = new EwxSizerItem(sizer,(int) *proportion,(int) *flag,(int) *border,userData);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizerItem_new_2_0: { // wxSizerItem::wxSizerItem
+case wxSizerItem_new_2_0: { // wxSizerItem::wxSizerItem
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
wxSizerFlags *flags = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
wxSizerItem * Result = new EwxSizerItem(sizer,*flags);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizerItem_new_6: { // wxSizerItem::wxSizerItem
+case wxSizerItem_new_6: { // wxSizerItem::wxSizerItem
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
int * proportion = (int *) bp; bp += 4;
@@ -11930,162 +11930,162 @@ case wxSizerItem_new_6: { // wxSizerItem::wxSizerItem
wxSizerItem * Result = new EwxSizerItem((int) *width,(int) *height,(int) *proportion,(int) *flag,(int) *border,userData);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizerItem_new_3: { // wxSizerItem::wxSizerItem
+case wxSizerItem_new_3: { // wxSizerItem::wxSizerItem
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
wxSizerFlags *flags = (wxSizerFlags *) getPtr(bp,memenv); bp += 4;
wxSizerItem * Result = new EwxSizerItem((int) *width,(int) *height,*flags);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizerItem_new_0: { // wxSizerItem::wxSizerItem
+case wxSizerItem_new_0: { // wxSizerItem::wxSizerItem
wxSizerItem * Result = new EwxSizerItem();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxSizerItem_CalcMin: { // wxSizerItem::CalcMin
+case wxSizerItem_CalcMin: { // wxSizerItem::CalcMin
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->CalcMin();
rt.add(Result);
- break;
+ break;
}
-case wxSizerItem_DeleteWindows: { // wxSizerItem::DeleteWindows
+case wxSizerItem_DeleteWindows: { // wxSizerItem::DeleteWindows
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DeleteWindows();
- break;
+ break;
}
-case wxSizerItem_DetachSizer: { // wxSizerItem::DetachSizer
+case wxSizerItem_DetachSizer: { // wxSizerItem::DetachSizer
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DetachSizer();
- break;
+ break;
}
-case wxSizerItem_GetBorder: { // wxSizerItem::GetBorder
+case wxSizerItem_GetBorder: { // wxSizerItem::GetBorder
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetBorder();
rt.addInt(Result);
- break;
+ break;
}
-case wxSizerItem_GetFlag: { // wxSizerItem::GetFlag
+case wxSizerItem_GetFlag: { // wxSizerItem::GetFlag
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFlag();
rt.addInt(Result);
- break;
+ break;
}
-case wxSizerItem_GetMinSize: { // wxSizerItem::GetMinSize
+case wxSizerItem_GetMinSize: { // wxSizerItem::GetMinSize
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetMinSize();
rt.add(Result);
- break;
+ break;
}
-case wxSizerItem_GetPosition: { // wxSizerItem::GetPosition
+case wxSizerItem_GetPosition: { // wxSizerItem::GetPosition
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPosition();
rt.add(Result);
- break;
+ break;
}
-case wxSizerItem_GetProportion: { // wxSizerItem::GetProportion
+case wxSizerItem_GetProportion: { // wxSizerItem::GetProportion
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetProportion();
rt.addInt(Result);
- break;
+ break;
}
-case wxSizerItem_GetRatio: { // wxSizerItem::GetRatio
+case wxSizerItem_GetRatio: { // wxSizerItem::GetRatio
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
float Result = This->GetRatio();
rt.addFloat(Result);
- break;
+ break;
}
-case wxSizerItem_GetRect: { // wxSizerItem::GetRect
+case wxSizerItem_GetRect: { // wxSizerItem::GetRect
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetRect();
rt.add(Result);
- break;
+ break;
}
-case wxSizerItem_GetSize: { // wxSizerItem::GetSize
+case wxSizerItem_GetSize: { // wxSizerItem::GetSize
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetSize();
rt.add(Result);
- break;
+ break;
}
-case wxSizerItem_GetSizer: { // wxSizerItem::GetSizer
+case wxSizerItem_GetSizer: { // wxSizerItem::GetSizer
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizer * Result = (wxSizer*)This->GetSizer();
rt.addRef(getRef((void *)Result,memenv), "wxSizer");
- break;
+ break;
}
-case wxSizerItem_GetSpacer: { // wxSizerItem::GetSpacer
+case wxSizerItem_GetSpacer: { // wxSizerItem::GetSpacer
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetSpacer();
rt.add(Result);
- break;
+ break;
}
-case wxSizerItem_GetUserData: { // wxSizerItem::GetUserData
+case wxSizerItem_GetUserData: { // wxSizerItem::GetUserData
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxObject * Result = (wxObject*)This->GetUserData();
rt.addRef(getRef((void *)Result,memenv), "wx");
- break;
+ break;
}
-case wxSizerItem_GetWindow: { // wxSizerItem::GetWindow
+case wxSizerItem_GetWindow: { // wxSizerItem::GetWindow
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxSizerItem_IsSizer: { // wxSizerItem::IsSizer
+case wxSizerItem_IsSizer: { // wxSizerItem::IsSizer
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSizer();
rt.addBool(Result);
- break;
+ break;
}
-case wxSizerItem_IsShown: { // wxSizerItem::IsShown
+case wxSizerItem_IsShown: { // wxSizerItem::IsShown
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsShown();
rt.addBool(Result);
- break;
+ break;
}
-case wxSizerItem_IsSpacer: { // wxSizerItem::IsSpacer
+case wxSizerItem_IsSpacer: { // wxSizerItem::IsSpacer
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSpacer();
rt.addBool(Result);
- break;
+ break;
}
-case wxSizerItem_IsWindow: { // wxSizerItem::IsWindow
+case wxSizerItem_IsWindow: { // wxSizerItem::IsWindow
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsWindow();
rt.addBool(Result);
- break;
+ break;
}
-case wxSizerItem_SetBorder: { // wxSizerItem::SetBorder
+case wxSizerItem_SetBorder: { // wxSizerItem::SetBorder
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * border = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBorder((int) *border);
- break;
+ break;
}
-case wxSizerItem_SetDimension: { // wxSizerItem::SetDimension
+case wxSizerItem_SetDimension: { // wxSizerItem::SetDimension
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -12095,155 +12095,155 @@ case wxSizerItem_SetDimension: { // wxSizerItem::SetDimension
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetDimension(pos,size);
- break;
+ break;
}
-case wxSizerItem_SetFlag: { // wxSizerItem::SetFlag
+case wxSizerItem_SetFlag: { // wxSizerItem::SetFlag
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * flag = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFlag((int) *flag);
- break;
+ break;
}
-case wxSizerItem_SetInitSize: { // wxSizerItem::SetInitSize
+case wxSizerItem_SetInitSize: { // wxSizerItem::SetInitSize
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetInitSize((int) *x,(int) *y);
- break;
+ break;
}
-case wxSizerItem_SetMinSize_1: { // wxSizerItem::SetMinSize
+case wxSizerItem_SetMinSize_1: { // wxSizerItem::SetMinSize
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetMinSize(size);
- break;
+ break;
}
-case wxSizerItem_SetMinSize_2: { // wxSizerItem::SetMinSize
+case wxSizerItem_SetMinSize_2: { // wxSizerItem::SetMinSize
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMinSize((int) *x,(int) *y);
- break;
+ break;
}
-case wxSizerItem_SetProportion: { // wxSizerItem::SetProportion
+case wxSizerItem_SetProportion: { // wxSizerItem::SetProportion
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * proportion = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetProportion((int) *proportion);
- break;
+ break;
}
-case wxSizerItem_SetRatio_2: { // wxSizerItem::SetRatio
+case wxSizerItem_SetRatio_2: { // wxSizerItem::SetRatio
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRatio((int) *width,(int) *height);
- break;
+ break;
}
-case wxSizerItem_SetRatio_1_1: { // wxSizerItem::SetRatio
+case wxSizerItem_SetRatio_1_1: { // wxSizerItem::SetRatio
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetRatio(size);
- break;
+ break;
}
-case wxSizerItem_SetRatio_1_0: { // wxSizerItem::SetRatio
+case wxSizerItem_SetRatio_1_0: { // wxSizerItem::SetRatio
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
float * ratio = (float *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRatio((float) *ratio);
- break;
+ break;
}
-case wxSizerItem_SetSizer: { // wxSizerItem::SetSizer
+case wxSizerItem_SetSizer: { // wxSizerItem::SetSizer
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSizer(sizer);
- break;
+ break;
}
-case wxSizerItem_SetSpacer_1: { // wxSizerItem::SetSpacer
+case wxSizerItem_SetSpacer_1: { // wxSizerItem::SetSpacer
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetSpacer(size);
- break;
+ break;
}
-case wxSizerItem_SetSpacer_2: { // wxSizerItem::SetSpacer
+case wxSizerItem_SetSpacer_2: { // wxSizerItem::SetSpacer
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSpacer((int) *width,(int) *height);
- break;
+ break;
}
-case wxSizerItem_SetWindow: { // wxSizerItem::SetWindow
+case wxSizerItem_SetWindow: { // wxSizerItem::SetWindow
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWindow(window);
- break;
+ break;
}
-case wxSizerItem_Show: { // wxSizerItem::Show
+case wxSizerItem_Show: { // wxSizerItem::Show
wxSizerItem *This = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Show((bool) *show);
- break;
+ break;
}
-case wxBoxSizer_new: { // wxBoxSizer::wxBoxSizer
+case wxBoxSizer_new: { // wxBoxSizer::wxBoxSizer
int * orient = (int *) bp; bp += 4;
wxBoxSizer * Result = new EwxBoxSizer((int) *orient);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBoxSizer");
- break;
+ break;
}
-case wxBoxSizer_GetOrientation: { // wxBoxSizer::GetOrientation
+case wxBoxSizer_GetOrientation: { // wxBoxSizer::GetOrientation
wxBoxSizer *This = (wxBoxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetOrientation();
rt.addInt(Result);
- break;
+ break;
}
-case wxStaticBoxSizer_new_2: { // wxStaticBoxSizer::wxStaticBoxSizer
+case wxStaticBoxSizer_new_2: { // wxStaticBoxSizer::wxStaticBoxSizer
wxStaticBox *box = (wxStaticBox *) getPtr(bp,memenv); bp += 4;
int * orient = (int *) bp; bp += 4;
wxStaticBoxSizer * Result = new EwxStaticBoxSizer(box,(int) *orient);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticBoxSizer");
- break;
+ break;
}
-case wxStaticBoxSizer_new_3: { // wxStaticBoxSizer::wxStaticBoxSizer
+case wxStaticBoxSizer_new_3: { // wxStaticBoxSizer::wxStaticBoxSizer
wxString label= wxEmptyString;
int * orient = (int *) bp; bp += 4;
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * labelLen = (int *) bp; bp += 4;
label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
} break;
- }};
+ }};
wxStaticBoxSizer * Result = new EwxStaticBoxSizer((int) *orient,win,label);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticBoxSizer");
- break;
+ break;
}
-case wxStaticBoxSizer_GetStaticBox: { // wxStaticBoxSizer::GetStaticBox
+case wxStaticBoxSizer_GetStaticBox: { // wxStaticBoxSizer::GetStaticBox
wxStaticBoxSizer *This = (wxStaticBoxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxStaticBox * Result = (wxStaticBox*)This->GetStaticBox();
rt.addRef(getRef((void *)Result,memenv), "wxStaticBox");
- break;
+ break;
}
-case wxGridSizer_new_4: { // wxGridSizer::wxGridSizer
+case wxGridSizer_new_4: { // wxGridSizer::wxGridSizer
int * rows = (int *) bp; bp += 4;
int * cols = (int *) bp; bp += 4;
int * vgap = (int *) bp; bp += 4;
@@ -12251,83 +12251,83 @@ case wxGridSizer_new_4: { // wxGridSizer::wxGridSizer
wxGridSizer * Result = new EwxGridSizer((int) *rows,(int) *cols,(int) *vgap,(int) *hgap);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridSizer");
- break;
+ break;
}
-case wxGridSizer_new_2: { // wxGridSizer::wxGridSizer
+case wxGridSizer_new_2: { // wxGridSizer::wxGridSizer
int vgap=0;
int hgap=0;
int * cols = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
vgap = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
hgap = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxGridSizer * Result = new EwxGridSizer((int) *cols,vgap,hgap);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridSizer");
- break;
+ break;
}
-case wxGridSizer_GetCols: { // wxGridSizer::GetCols
+case wxGridSizer_GetCols: { // wxGridSizer::GetCols
wxGridSizer *This = (wxGridSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCols();
rt.addInt(Result);
- break;
+ break;
}
-case wxGridSizer_GetHGap: { // wxGridSizer::GetHGap
+case wxGridSizer_GetHGap: { // wxGridSizer::GetHGap
wxGridSizer *This = (wxGridSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetHGap();
rt.addInt(Result);
- break;
+ break;
}
-case wxGridSizer_GetRows: { // wxGridSizer::GetRows
+case wxGridSizer_GetRows: { // wxGridSizer::GetRows
wxGridSizer *This = (wxGridSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRows();
rt.addInt(Result);
- break;
+ break;
}
-case wxGridSizer_GetVGap: { // wxGridSizer::GetVGap
+case wxGridSizer_GetVGap: { // wxGridSizer::GetVGap
wxGridSizer *This = (wxGridSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetVGap();
rt.addInt(Result);
- break;
+ break;
}
-case wxGridSizer_SetCols: { // wxGridSizer::SetCols
+case wxGridSizer_SetCols: { // wxGridSizer::SetCols
wxGridSizer *This = (wxGridSizer *) getPtr(bp,memenv); bp += 4;
int * cols = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCols((int) *cols);
- break;
+ break;
}
-case wxGridSizer_SetHGap: { // wxGridSizer::SetHGap
+case wxGridSizer_SetHGap: { // wxGridSizer::SetHGap
wxGridSizer *This = (wxGridSizer *) getPtr(bp,memenv); bp += 4;
int * gap = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetHGap((int) *gap);
- break;
+ break;
}
-case wxGridSizer_SetRows: { // wxGridSizer::SetRows
+case wxGridSizer_SetRows: { // wxGridSizer::SetRows
wxGridSizer *This = (wxGridSizer *) getPtr(bp,memenv); bp += 4;
int * rows = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRows((int) *rows);
- break;
+ break;
}
-case wxGridSizer_SetVGap: { // wxGridSizer::SetVGap
+case wxGridSizer_SetVGap: { // wxGridSizer::SetVGap
wxGridSizer *This = (wxGridSizer *) getPtr(bp,memenv); bp += 4;
int * gap = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetVGap((int) *gap);
- break;
+ break;
}
-case wxFlexGridSizer_new_4: { // wxFlexGridSizer::wxFlexGridSizer
+case wxFlexGridSizer_new_4: { // wxFlexGridSizer::wxFlexGridSizer
int * rows = (int *) bp; bp += 4;
int * cols = (int *) bp; bp += 4;
int * vgap = (int *) bp; bp += 4;
@@ -12335,111 +12335,111 @@ case wxFlexGridSizer_new_4: { // wxFlexGridSizer::wxFlexGridSizer
wxFlexGridSizer * Result = new EwxFlexGridSizer((int) *rows,(int) *cols,(int) *vgap,(int) *hgap);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFlexGridSizer");
- break;
+ break;
}
-case wxFlexGridSizer_new_2: { // wxFlexGridSizer::wxFlexGridSizer
+case wxFlexGridSizer_new_2: { // wxFlexGridSizer::wxFlexGridSizer
int vgap=0;
int hgap=0;
int * cols = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
vgap = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
hgap = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxFlexGridSizer * Result = new EwxFlexGridSizer((int) *cols,vgap,hgap);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFlexGridSizer");
- break;
+ break;
}
-case wxFlexGridSizer_AddGrowableCol: { // wxFlexGridSizer::AddGrowableCol
+case wxFlexGridSizer_AddGrowableCol: { // wxFlexGridSizer::AddGrowableCol
int proportion=0;
wxFlexGridSizer *This = (wxFlexGridSizer *) getPtr(bp,memenv); bp += 4;
int * idx = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AddGrowableCol((size_t) *idx,proportion);
- break;
+ break;
}
-case wxFlexGridSizer_AddGrowableRow: { // wxFlexGridSizer::AddGrowableRow
+case wxFlexGridSizer_AddGrowableRow: { // wxFlexGridSizer::AddGrowableRow
int proportion=0;
wxFlexGridSizer *This = (wxFlexGridSizer *) getPtr(bp,memenv); bp += 4;
int * idx = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AddGrowableRow((size_t) *idx,proportion);
- break;
+ break;
}
-case wxFlexGridSizer_GetFlexibleDirection: { // wxFlexGridSizer::GetFlexibleDirection
+case wxFlexGridSizer_GetFlexibleDirection: { // wxFlexGridSizer::GetFlexibleDirection
wxFlexGridSizer *This = (wxFlexGridSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFlexibleDirection();
rt.addInt(Result);
- break;
+ break;
}
-case wxFlexGridSizer_GetNonFlexibleGrowMode: { // wxFlexGridSizer::GetNonFlexibleGrowMode
+case wxFlexGridSizer_GetNonFlexibleGrowMode: { // wxFlexGridSizer::GetNonFlexibleGrowMode
wxFlexGridSizer *This = (wxFlexGridSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetNonFlexibleGrowMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxFlexGridSizer_RemoveGrowableCol: { // wxFlexGridSizer::RemoveGrowableCol
+case wxFlexGridSizer_RemoveGrowableCol: { // wxFlexGridSizer::RemoveGrowableCol
wxFlexGridSizer *This = (wxFlexGridSizer *) getPtr(bp,memenv); bp += 4;
int * idx = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->RemoveGrowableCol((size_t) *idx);
- break;
+ break;
}
-case wxFlexGridSizer_RemoveGrowableRow: { // wxFlexGridSizer::RemoveGrowableRow
+case wxFlexGridSizer_RemoveGrowableRow: { // wxFlexGridSizer::RemoveGrowableRow
wxFlexGridSizer *This = (wxFlexGridSizer *) getPtr(bp,memenv); bp += 4;
int * idx = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->RemoveGrowableRow((size_t) *idx);
- break;
+ break;
}
-case wxFlexGridSizer_SetFlexibleDirection: { // wxFlexGridSizer::SetFlexibleDirection
+case wxFlexGridSizer_SetFlexibleDirection: { // wxFlexGridSizer::SetFlexibleDirection
wxFlexGridSizer *This = (wxFlexGridSizer *) getPtr(bp,memenv); bp += 4;
int * direction = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFlexibleDirection((int) *direction);
- break;
+ break;
}
-case wxFlexGridSizer_SetNonFlexibleGrowMode: { // wxFlexGridSizer::SetNonFlexibleGrowMode
+case wxFlexGridSizer_SetNonFlexibleGrowMode: { // wxFlexGridSizer::SetNonFlexibleGrowMode
wxFlexGridSizer *This = (wxFlexGridSizer *) getPtr(bp,memenv); bp += 4;
wxFlexSizerGrowMode mode = *(wxFlexSizerGrowMode *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetNonFlexibleGrowMode((wxFlexSizerGrowMode) mode);
- break;
+ break;
}
-case wxGridBagSizer_new: { // wxGridBagSizer::wxGridBagSizer
+case wxGridBagSizer_new: { // wxGridBagSizer::wxGridBagSizer
int vgap=0;
int hgap=0;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
vgap = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
hgap = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxGridBagSizer * Result = new EwxGridBagSizer(vgap,hgap);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGridBagSizer");
- break;
+ break;
}
-case wxGridBagSizer_Add_3_2: { // wxGridBagSizer::Add
+case wxGridBagSizer_Add_3_2: { // wxGridBagSizer::Add
wxGBSpan span= wxDefaultSpan;
int flag=0;
int border=0;
@@ -12449,7 +12449,7 @@ case wxGridBagSizer_Add_3_2: { // wxGridBagSizer::Add
int * posR = (int *) bp; bp += 4;
int * posC = (int *) bp; bp += 4;
wxGBPosition pos = wxGBPosition(*posR,*posC);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * spanRS = (int *) bp; bp += 4;
int * spanCS = (int *) bp; bp += 4;
@@ -12465,13 +12465,13 @@ case wxGridBagSizer_Add_3_2: { // wxGridBagSizer::Add
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(window,pos,span,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_Add_3_1: { // wxGridBagSizer::Add
+case wxGridBagSizer_Add_3_1: { // wxGridBagSizer::Add
wxGBSpan span= wxDefaultSpan;
int flag=0;
int border=0;
@@ -12481,7 +12481,7 @@ case wxGridBagSizer_Add_3_1: { // wxGridBagSizer::Add
int * posR = (int *) bp; bp += 4;
int * posC = (int *) bp; bp += 4;
wxGBPosition pos = wxGBPosition(*posR,*posC);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * spanRS = (int *) bp; bp += 4;
int * spanCS = (int *) bp; bp += 4;
@@ -12497,13 +12497,13 @@ case wxGridBagSizer_Add_3_1: { // wxGridBagSizer::Add
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(sizer,pos,span,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_Add_4: { // wxGridBagSizer::Add
+case wxGridBagSizer_Add_4: { // wxGridBagSizer::Add
wxGBSpan span= wxDefaultSpan;
int flag=0;
int border=0;
@@ -12515,7 +12515,7 @@ case wxGridBagSizer_Add_4: { // wxGridBagSizer::Add
int * posC = (int *) bp; bp += 4;
wxGBPosition pos = wxGBPosition(*posR,*posC);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * spanRS = (int *) bp; bp += 4;
int * spanCS = (int *) bp; bp += 4;
@@ -12531,28 +12531,28 @@ case wxGridBagSizer_Add_4: { // wxGridBagSizer::Add
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add((int) *width,(int) *height,pos,span,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_Add_1_0: { // wxGridBagSizer::Add
+case wxGridBagSizer_Add_1_0: { // wxGridBagSizer::Add
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxGBSizerItem *item = (wxGBSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(item);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_Add_2_1: { // wxGridBagSizer::Add
+case wxGridBagSizer_Add_2_1: { // wxGridBagSizer::Add
int proportion=0;
int flag=0;
int border=0;
wxObject * userData=NULL;
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -12565,20 +12565,20 @@ case wxGridBagSizer_Add_2_1: { // wxGridBagSizer::Add
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(window,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_Add_2_0: { // wxGridBagSizer::Add
+case wxGridBagSizer_Add_2_0: { // wxGridBagSizer::Add
int proportion=0;
int flag=0;
int border=0;
wxObject * userData=NULL;
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -12591,13 +12591,13 @@ case wxGridBagSizer_Add_2_0: { // wxGridBagSizer::Add
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(sizer,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_Add_3_0: { // wxGridBagSizer::Add
+case wxGridBagSizer_Add_3_0: { // wxGridBagSizer::Add
int proportion=0;
int flag=0;
int border=0;
@@ -12606,7 +12606,7 @@ case wxGridBagSizer_Add_3_0: { // wxGridBagSizer::Add
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
proportion = (int)*(int *) bp; bp += 4;
} break;
@@ -12619,42 +12619,42 @@ case wxGridBagSizer_Add_3_0: { // wxGridBagSizer::Add
case 4: {bp += 4;
userData = (wxObject *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add((int) *width,(int) *height,proportion,flag,border,userData);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_Add_1_1: { // wxGridBagSizer::Add
+case wxGridBagSizer_Add_1_1: { // wxGridBagSizer::Add
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxSizerItem * item = (wxSizerItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSizerItem * Result = (wxSizerItem*)This->Add(item);
rt.addRef(getRef((void *)Result,memenv), "wxSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_CalcMin: { // wxGridBagSizer::CalcMin
+case wxGridBagSizer_CalcMin: { // wxGridBagSizer::CalcMin
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->CalcMin();
rt.add(Result);
- break;
+ break;
}
-case wxGridBagSizer_CheckForIntersection_2: { // wxGridBagSizer::CheckForIntersection
+case wxGridBagSizer_CheckForIntersection_2: { // wxGridBagSizer::CheckForIntersection
wxGBSizerItem * excludeItem=NULL;
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxGBSizerItem *item = (wxGBSizerItem *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
excludeItem = (wxGBSizerItem *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->CheckForIntersection(item,excludeItem);
rt.addBool(Result);
- break;
+ break;
}
-case wxGridBagSizer_CheckForIntersection_3: { // wxGridBagSizer::CheckForIntersection
+case wxGridBagSizer_CheckForIntersection_3: { // wxGridBagSizer::CheckForIntersection
wxGBSizerItem * excludeItem=NULL;
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
int * posR = (int *) bp; bp += 4;
@@ -12664,33 +12664,33 @@ case wxGridBagSizer_CheckForIntersection_3: { // wxGridBagSizer::CheckForInterse
int * spanCS = (int *) bp; bp += 4;
wxGBSpan span = wxGBSpan(*spanRS,*spanCS);
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
excludeItem = (wxGBSizerItem *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->CheckForIntersection(pos,span,excludeItem);
rt.addBool(Result);
- break;
+ break;
}
-case wxGridBagSizer_FindItem_1_1: { // wxGridBagSizer::FindItem
+case wxGridBagSizer_FindItem_1_1: { // wxGridBagSizer::FindItem
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGBSizerItem * Result = (wxGBSizerItem*)This->FindItem(window);
rt.addRef(getRef((void *)Result,memenv), "wxGBSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_FindItem_1_0: { // wxGridBagSizer::FindItem
+case wxGridBagSizer_FindItem_1_0: { // wxGridBagSizer::FindItem
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGBSizerItem * Result = (wxGBSizerItem*)This->FindItem(sizer);
rt.addRef(getRef((void *)Result,memenv), "wxGBSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_FindItemAtPoint: { // wxGridBagSizer::FindItemAtPoint
+case wxGridBagSizer_FindItemAtPoint: { // wxGridBagSizer::FindItemAtPoint
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -12698,9 +12698,9 @@ case wxGridBagSizer_FindItemAtPoint: { // wxGridBagSizer::FindItemAtPoint
if(!This) throw wxe_badarg(0);
wxGBSizerItem * Result = (wxGBSizerItem*)This->FindItemAtPoint(pt);
rt.addRef(getRef((void *)Result,memenv), "wxGBSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_FindItemAtPosition: { // wxGridBagSizer::FindItemAtPosition
+case wxGridBagSizer_FindItemAtPosition: { // wxGridBagSizer::FindItemAtPosition
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
int * posR = (int *) bp; bp += 4;
int * posC = (int *) bp; bp += 4;
@@ -12708,90 +12708,90 @@ case wxGridBagSizer_FindItemAtPosition: { // wxGridBagSizer::FindItemAtPosition
if(!This) throw wxe_badarg(0);
wxGBSizerItem * Result = (wxGBSizerItem*)This->FindItemAtPosition(pos);
rt.addRef(getRef((void *)Result,memenv), "wxGBSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_FindItemWithData: { // wxGridBagSizer::FindItemWithData
+case wxGridBagSizer_FindItemWithData: { // wxGridBagSizer::FindItemWithData
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxObject *userData = (wxObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGBSizerItem * Result = (wxGBSizerItem*)This->FindItemWithData(userData);
rt.addRef(getRef((void *)Result,memenv), "wxGBSizerItem");
- break;
+ break;
}
-case wxGridBagSizer_GetCellSize: { // wxGridBagSizer::GetCellSize
+case wxGridBagSizer_GetCellSize: { // wxGridBagSizer::GetCellSize
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetCellSize((int) *row,(int) *col);
rt.add(Result);
- break;
+ break;
}
-case wxGridBagSizer_GetEmptyCellSize: { // wxGridBagSizer::GetEmptyCellSize
+case wxGridBagSizer_GetEmptyCellSize: { // wxGridBagSizer::GetEmptyCellSize
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetEmptyCellSize();
rt.add(Result);
- break;
+ break;
}
-case wxGridBagSizer_GetItemPosition_1_2: { // wxGridBagSizer::GetItemPosition
+case wxGridBagSizer_GetItemPosition_1_2: { // wxGridBagSizer::GetItemPosition
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGBPosition Result = This->GetItemPosition(window);
rt.add(Result);
- break;
+ break;
}
-case wxGridBagSizer_GetItemPosition_1_1: { // wxGridBagSizer::GetItemPosition
+case wxGridBagSizer_GetItemPosition_1_1: { // wxGridBagSizer::GetItemPosition
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGBPosition Result = This->GetItemPosition(sizer);
rt.add(Result);
- break;
+ break;
}
-case wxGridBagSizer_GetItemPosition_1_0: { // wxGridBagSizer::GetItemPosition
+case wxGridBagSizer_GetItemPosition_1_0: { // wxGridBagSizer::GetItemPosition
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxGBPosition Result = This->GetItemPosition((size_t) *index);
rt.add(Result);
- break;
+ break;
}
-case wxGridBagSizer_GetItemSpan_1_2: { // wxGridBagSizer::GetItemSpan
+case wxGridBagSizer_GetItemSpan_1_2: { // wxGridBagSizer::GetItemSpan
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGBSpan Result = This->GetItemSpan(window);
rt.add(Result);
- break;
+ break;
}
-case wxGridBagSizer_GetItemSpan_1_1: { // wxGridBagSizer::GetItemSpan
+case wxGridBagSizer_GetItemSpan_1_1: { // wxGridBagSizer::GetItemSpan
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGBSpan Result = This->GetItemSpan(sizer);
rt.add(Result);
- break;
+ break;
}
-case wxGridBagSizer_GetItemSpan_1_0: { // wxGridBagSizer::GetItemSpan
+case wxGridBagSizer_GetItemSpan_1_0: { // wxGridBagSizer::GetItemSpan
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxGBSpan Result = This->GetItemSpan((size_t) *index);
rt.add(Result);
- break;
+ break;
}
-case wxGridBagSizer_SetEmptyCellSize: { // wxGridBagSizer::SetEmptyCellSize
+case wxGridBagSizer_SetEmptyCellSize: { // wxGridBagSizer::SetEmptyCellSize
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
int * szW = (int *) bp; bp += 4;
int * szH = (int *) bp; bp += 4;
wxSize sz = wxSize(*szW,*szH);
if(!This) throw wxe_badarg(0);
This->SetEmptyCellSize(sz);
- break;
+ break;
}
-case wxGridBagSizer_SetItemPosition_2_2: { // wxGridBagSizer::SetItemPosition
+case wxGridBagSizer_SetItemPosition_2_2: { // wxGridBagSizer::SetItemPosition
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * posR = (int *) bp; bp += 4;
@@ -12800,9 +12800,9 @@ case wxGridBagSizer_SetItemPosition_2_2: { // wxGridBagSizer::SetItemPosition
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemPosition(window,pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxGridBagSizer_SetItemPosition_2_1: { // wxGridBagSizer::SetItemPosition
+case wxGridBagSizer_SetItemPosition_2_1: { // wxGridBagSizer::SetItemPosition
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * posR = (int *) bp; bp += 4;
@@ -12811,9 +12811,9 @@ case wxGridBagSizer_SetItemPosition_2_1: { // wxGridBagSizer::SetItemPosition
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemPosition(sizer,pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxGridBagSizer_SetItemPosition_2_0: { // wxGridBagSizer::SetItemPosition
+case wxGridBagSizer_SetItemPosition_2_0: { // wxGridBagSizer::SetItemPosition
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
int * posR = (int *) bp; bp += 4;
@@ -12822,9 +12822,9 @@ case wxGridBagSizer_SetItemPosition_2_0: { // wxGridBagSizer::SetItemPosition
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemPosition((size_t) *index,pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxGridBagSizer_SetItemSpan_2_2: { // wxGridBagSizer::SetItemSpan
+case wxGridBagSizer_SetItemSpan_2_2: { // wxGridBagSizer::SetItemSpan
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxWindow * window = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * spanRS = (int *) bp; bp += 4;
@@ -12833,9 +12833,9 @@ case wxGridBagSizer_SetItemSpan_2_2: { // wxGridBagSizer::SetItemSpan
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemSpan(window,span);
rt.addBool(Result);
- break;
+ break;
}
-case wxGridBagSizer_SetItemSpan_2_1: { // wxGridBagSizer::SetItemSpan
+case wxGridBagSizer_SetItemSpan_2_1: { // wxGridBagSizer::SetItemSpan
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
wxSizer *sizer = (wxSizer *) getPtr(bp,memenv); bp += 4;
int * spanRS = (int *) bp; bp += 4;
@@ -12844,9 +12844,9 @@ case wxGridBagSizer_SetItemSpan_2_1: { // wxGridBagSizer::SetItemSpan
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemSpan(sizer,span);
rt.addBool(Result);
- break;
+ break;
}
-case wxGridBagSizer_SetItemSpan_2_0: { // wxGridBagSizer::SetItemSpan
+case wxGridBagSizer_SetItemSpan_2_0: { // wxGridBagSizer::SetItemSpan
wxGridBagSizer *This = (wxGridBagSizer *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
int * spanRS = (int *) bp; bp += 4;
@@ -12855,64 +12855,64 @@ case wxGridBagSizer_SetItemSpan_2_0: { // wxGridBagSizer::SetItemSpan
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemSpan((size_t) *index,span);
rt.addBool(Result);
- break;
+ break;
}
-case wxStdDialogButtonSizer_new: { // wxStdDialogButtonSizer::wxStdDialogButtonSizer
+case wxStdDialogButtonSizer_new: { // wxStdDialogButtonSizer::wxStdDialogButtonSizer
wxStdDialogButtonSizer * Result = new EwxStdDialogButtonSizer();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStdDialogButtonSizer");
- break;
+ break;
}
-case wxStdDialogButtonSizer_AddButton: { // wxStdDialogButtonSizer::AddButton
+case wxStdDialogButtonSizer_AddButton: { // wxStdDialogButtonSizer::AddButton
wxStdDialogButtonSizer *This = (wxStdDialogButtonSizer *) getPtr(bp,memenv); bp += 4;
wxButton *button = (wxButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AddButton(button);
- break;
+ break;
}
-case wxStdDialogButtonSizer_Realize: { // wxStdDialogButtonSizer::Realize
+case wxStdDialogButtonSizer_Realize: { // wxStdDialogButtonSizer::Realize
wxStdDialogButtonSizer *This = (wxStdDialogButtonSizer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Realize();
- break;
+ break;
}
-case wxStdDialogButtonSizer_SetAffirmativeButton: { // wxStdDialogButtonSizer::SetAffirmativeButton
+case wxStdDialogButtonSizer_SetAffirmativeButton: { // wxStdDialogButtonSizer::SetAffirmativeButton
wxStdDialogButtonSizer *This = (wxStdDialogButtonSizer *) getPtr(bp,memenv); bp += 4;
wxButton *button = (wxButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAffirmativeButton(button);
- break;
+ break;
}
-case wxStdDialogButtonSizer_SetCancelButton: { // wxStdDialogButtonSizer::SetCancelButton
+case wxStdDialogButtonSizer_SetCancelButton: { // wxStdDialogButtonSizer::SetCancelButton
wxStdDialogButtonSizer *This = (wxStdDialogButtonSizer *) getPtr(bp,memenv); bp += 4;
wxButton *button = (wxButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCancelButton(button);
- break;
+ break;
}
-case wxStdDialogButtonSizer_SetNegativeButton: { // wxStdDialogButtonSizer::SetNegativeButton
+case wxStdDialogButtonSizer_SetNegativeButton: { // wxStdDialogButtonSizer::SetNegativeButton
wxStdDialogButtonSizer *This = (wxStdDialogButtonSizer *) getPtr(bp,memenv); bp += 4;
wxButton *button = (wxButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetNegativeButton(button);
- break;
+ break;
}
-case wxFont_new_0: { // wxFont::wxFont
+case wxFont_new_0: { // wxFont::wxFont
wxFont * Result = new EwxFont();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxFont_new_1: { // wxFont::wxFont
+case wxFont_new_1: { // wxFont::wxFont
int * fontnameLen = (int *) bp; bp += 4;
wxString fontname = wxString(bp, wxConvUTF8);
bp += *fontnameLen+((8-((4+ *fontnameLen) & 7)) & 7);
wxFont * Result = new EwxFont(fontname);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxFont_new_5: { // wxFont::wxFont
+case wxFont_new_5: { // wxFont::wxFont
bool underlined=false;
wxString face= wxEmptyString;
wxFontEncoding encoding=wxFONTENCODING_DEFAULT;
@@ -12920,7 +12920,7 @@ case wxFont_new_5: { // wxFont::wxFont
wxFontFamily family = *(wxFontFamily *) bp; bp += 4;;
wxFontStyle style = *(wxFontStyle *) bp; bp += 4;;
int * weight = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
underlined = *(bool *) bp; bp += 4;
} break;
@@ -12932,93 +12932,93 @@ case wxFont_new_5: { // wxFont::wxFont
case 3: {bp += 4;
encoding = *(wxFontEncoding *) bp; bp += 4;;
} break;
- }};
+ }};
wxFont * Result = new EwxFont((int) *size,(wxFontFamily) family,(wxFontStyle) style,(int) *weight,underlined,face,(wxFontEncoding) encoding);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxFont_IsFixedWidth: { // wxFont::IsFixedWidth
+case wxFont_IsFixedWidth: { // wxFont::IsFixedWidth
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsFixedWidth();
rt.addBool(Result);
- break;
+ break;
}
-case wxFont_GetDefaultEncoding: { // wxFont::GetDefaultEncoding
+case wxFont_GetDefaultEncoding: { // wxFont::GetDefaultEncoding
int Result = wxFont::GetDefaultEncoding();
rt.addInt(Result);
- break;
+ break;
}
-case wxFont_GetFaceName: { // wxFont::GetFaceName
+case wxFont_GetFaceName: { // wxFont::GetFaceName
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetFaceName();
rt.add(Result);
- break;
+ break;
}
-case wxFont_GetFamily: { // wxFont::GetFamily
+case wxFont_GetFamily: { // wxFont::GetFamily
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFamily();
rt.addInt(Result);
- break;
+ break;
}
-case wxFont_GetNativeFontInfoDesc: { // wxFont::GetNativeFontInfoDesc
+case wxFont_GetNativeFontInfoDesc: { // wxFont::GetNativeFontInfoDesc
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetNativeFontInfoDesc();
rt.add(Result);
- break;
+ break;
}
-case wxFont_GetNativeFontInfoUserDesc: { // wxFont::GetNativeFontInfoUserDesc
+case wxFont_GetNativeFontInfoUserDesc: { // wxFont::GetNativeFontInfoUserDesc
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetNativeFontInfoUserDesc();
rt.add(Result);
- break;
+ break;
}
-case wxFont_GetPointSize: { // wxFont::GetPointSize
+case wxFont_GetPointSize: { // wxFont::GetPointSize
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPointSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxFont_GetStyle: { // wxFont::GetStyle
+case wxFont_GetStyle: { // wxFont::GetStyle
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetStyle();
rt.addInt(Result);
- break;
+ break;
}
-case wxFont_GetUnderlined: { // wxFont::GetUnderlined
+case wxFont_GetUnderlined: { // wxFont::GetUnderlined
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetUnderlined();
rt.addBool(Result);
- break;
+ break;
}
-case wxFont_GetWeight: { // wxFont::GetWeight
+case wxFont_GetWeight: { // wxFont::GetWeight
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWeight();
rt.addInt(Result);
- break;
+ break;
}
-case wxFont_Ok: { // wxFont::Ok
+case wxFont_Ok: { // wxFont::Ok
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Ok();
rt.addBool(Result);
- break;
+ break;
}
-case wxFont_SetDefaultEncoding: { // wxFont::SetDefaultEncoding
+case wxFont_SetDefaultEncoding: { // wxFont::SetDefaultEncoding
wxFontEncoding encoding = *(wxFontEncoding *) bp; bp += 4;;
wxFont::SetDefaultEncoding((wxFontEncoding) encoding);
- break;
+ break;
}
-case wxFont_SetFaceName: { // wxFont::SetFaceName
+case wxFont_SetFaceName: { // wxFont::SetFaceName
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
int * faceNameLen = (int *) bp; bp += 4;
wxString faceName = wxString(bp, wxConvUTF8);
@@ -13026,86 +13026,86 @@ case wxFont_SetFaceName: { // wxFont::SetFaceName
if(!This) throw wxe_badarg(0);
bool Result = This->SetFaceName(faceName);
rt.addBool(Result);
- break;
+ break;
}
-case wxFont_SetFamily: { // wxFont::SetFamily
+case wxFont_SetFamily: { // wxFont::SetFamily
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
wxFontFamily family = *(wxFontFamily *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetFamily((wxFontFamily) family);
- break;
+ break;
}
-case wxFont_SetPointSize: { // wxFont::SetPointSize
+case wxFont_SetPointSize: { // wxFont::SetPointSize
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
int * pointSize = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPointSize((int) *pointSize);
- break;
+ break;
}
-case wxFont_SetStyle: { // wxFont::SetStyle
+case wxFont_SetStyle: { // wxFont::SetStyle
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
wxFontStyle style = *(wxFontStyle *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetStyle((wxFontStyle) style);
- break;
+ break;
}
-case wxFont_SetUnderlined: { // wxFont::SetUnderlined
+case wxFont_SetUnderlined: { // wxFont::SetUnderlined
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
bool * underlined = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetUnderlined((bool) *underlined);
- break;
+ break;
}
-case wxFont_SetWeight: { // wxFont::SetWeight
+case wxFont_SetWeight: { // wxFont::SetWeight
wxFont *This = (wxFont *) getPtr(bp,memenv); bp += 4;
int * weight = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWeight((int) *weight);
- break;
+ break;
}
-case wxToolTip_Enable: { // wxToolTip::Enable
+case wxToolTip_Enable: { // wxToolTip::Enable
bool * flag = (bool *) bp; bp += 4;
wxToolTip::Enable((bool) *flag);
- break;
+ break;
}
-case wxToolTip_SetDelay: { // wxToolTip::SetDelay
+case wxToolTip_SetDelay: { // wxToolTip::SetDelay
int * msecs = (int *) bp; bp += 4;
wxToolTip::SetDelay((long) *msecs);
- break;
+ break;
}
-case wxToolTip_new: { // wxToolTip::wxToolTip
+case wxToolTip_new: { // wxToolTip::wxToolTip
int * tipLen = (int *) bp; bp += 4;
wxString tip = wxString(bp, wxConvUTF8);
bp += *tipLen+((8-((4+ *tipLen) & 7)) & 7);
wxToolTip * Result = new EwxToolTip(tip);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxToolTip");
- break;
+ break;
}
-case wxToolTip_SetTip: { // wxToolTip::SetTip
+case wxToolTip_SetTip: { // wxToolTip::SetTip
wxToolTip *This = (wxToolTip *) getPtr(bp,memenv); bp += 4;
int * tipLen = (int *) bp; bp += 4;
wxString tip = wxString(bp, wxConvUTF8);
bp += *tipLen+((8-((0+ *tipLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetTip(tip);
- break;
+ break;
}
-case wxToolTip_GetTip: { // wxToolTip::GetTip
+case wxToolTip_GetTip: { // wxToolTip::GetTip
wxToolTip *This = (wxToolTip *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetTip();
rt.add(Result);
- break;
+ break;
}
-case wxToolTip_GetWindow: { // wxToolTip::GetWindow
+case wxToolTip_GetWindow: { // wxToolTip::GetWindow
wxToolTip *This = (wxToolTip *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxButton_new_3: { // wxButton::wxButton
+case wxButton_new_3: { // wxButton::wxButton
wxString label= wxEmptyString;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -13113,7 +13113,7 @@ case wxButton_new_3: { // wxButton::wxButton
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * labelLen = (int *) bp; bp += 4;
label = wxString(bp, wxConvUTF8);
@@ -13137,19 +13137,19 @@ case wxButton_new_3: { // wxButton::wxButton
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxButton * Result = new EwxButton(parent,(wxWindowID) *id,label,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxButton");
- break;
+ break;
}
-case wxButton_new_0: { // wxButton::wxButton
+case wxButton_new_0: { // wxButton::wxButton
wxButton * Result = new EwxButton();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxButton");
- break;
+ break;
}
-case wxButton_Create: { // wxButton::Create
+case wxButton_Create: { // wxButton::Create
wxString label= wxEmptyString;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -13159,7 +13159,7 @@ case wxButton_Create: { // wxButton::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * labelLen = (int *) bp; bp += 4;
label = wxString(bp, wxConvUTF8);
@@ -13183,33 +13183,33 @@ case wxButton_Create: { // wxButton::Create
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,label,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxButton_GetDefaultSize: { // wxButton::GetDefaultSize
+case wxButton_GetDefaultSize: { // wxButton::GetDefaultSize
wxSize Result = wxButton::GetDefaultSize();
rt.add(Result);
- break;
+ break;
}
-case wxButton_SetDefault: { // wxButton::SetDefault
+case wxButton_SetDefault: { // wxButton::SetDefault
wxButton *This = (wxButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDefault();
- break;
+ break;
}
-case wxButton_SetLabel: { // wxButton::SetLabel
+case wxButton_SetLabel: { // wxButton::SetLabel
wxButton *This = (wxButton *) getPtr(bp,memenv); bp += 4;
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetLabel(label);
- break;
+ break;
}
-case wxBitmapButton_new_4: { // wxBitmapButton::wxBitmapButton
+case wxBitmapButton_new_4: { // wxBitmapButton::wxBitmapButton
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxBU_AUTODRAW;
@@ -13218,7 +13218,7 @@ case wxBitmapButton_new_4: { // wxBitmapButton::wxBitmapButton
int * id = (int *) bp; bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -13237,19 +13237,19 @@ case wxBitmapButton_new_4: { // wxBitmapButton::wxBitmapButton
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxBitmapButton * Result = new EwxBitmapButton(parent,(wxWindowID) *id,*bitmap,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBitmapButton");
- break;
+ break;
}
-case wxBitmapButton_new_0: { // wxBitmapButton::wxBitmapButton
+case wxBitmapButton_new_0: { // wxBitmapButton::wxBitmapButton
wxBitmapButton * Result = new EwxBitmapButton();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBitmapButton");
- break;
+ break;
}
-case wxBitmapButton_Create: { // wxBitmapButton::Create
+case wxBitmapButton_Create: { // wxBitmapButton::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxBU_AUTODRAW;
@@ -13258,7 +13258,7 @@ case wxBitmapButton_Create: { // wxBitmapButton::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -13277,75 +13277,75 @@ case wxBitmapButton_Create: { // wxBitmapButton::Create
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,*bitmap,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxBitmapButton_GetBitmapDisabled: { // wxBitmapButton::GetBitmapDisabled
+case wxBitmapButton_GetBitmapDisabled: { // wxBitmapButton::GetBitmapDisabled
wxBitmapButton *This = (wxBitmapButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxBitmap * Result = &This->GetBitmapDisabled();
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmapButton_GetBitmapFocus: { // wxBitmapButton::GetBitmapFocus
+case wxBitmapButton_GetBitmapFocus: { // wxBitmapButton::GetBitmapFocus
wxBitmapButton *This = (wxBitmapButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxBitmap * Result = &This->GetBitmapFocus();
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmapButton_GetBitmapLabel: { // wxBitmapButton::GetBitmapLabel
+case wxBitmapButton_GetBitmapLabel: { // wxBitmapButton::GetBitmapLabel
wxBitmapButton *This = (wxBitmapButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxBitmap * Result = &This->GetBitmapLabel();
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmapButton_GetBitmapSelected: { // wxBitmapButton::GetBitmapSelected
+case wxBitmapButton_GetBitmapSelected: { // wxBitmapButton::GetBitmapSelected
wxBitmapButton *This = (wxBitmapButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxBitmap * Result = &This->GetBitmapSelected();
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmapButton_SetBitmapDisabled: { // wxBitmapButton::SetBitmapDisabled
+case wxBitmapButton_SetBitmapDisabled: { // wxBitmapButton::SetBitmapDisabled
wxBitmapButton *This = (wxBitmapButton *) getPtr(bp,memenv); bp += 4;
wxBitmap *disabled = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBitmapDisabled(*disabled);
- break;
+ break;
}
-case wxBitmapButton_SetBitmapFocus: { // wxBitmapButton::SetBitmapFocus
+case wxBitmapButton_SetBitmapFocus: { // wxBitmapButton::SetBitmapFocus
wxBitmapButton *This = (wxBitmapButton *) getPtr(bp,memenv); bp += 4;
wxBitmap *focus = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBitmapFocus(*focus);
- break;
+ break;
}
-case wxBitmapButton_SetBitmapLabel: { // wxBitmapButton::SetBitmapLabel
+case wxBitmapButton_SetBitmapLabel: { // wxBitmapButton::SetBitmapLabel
wxBitmapButton *This = (wxBitmapButton *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBitmapLabel(*bitmap);
- break;
+ break;
}
-case wxBitmapButton_SetBitmapSelected: { // wxBitmapButton::SetBitmapSelected
+case wxBitmapButton_SetBitmapSelected: { // wxBitmapButton::SetBitmapSelected
wxBitmapButton *This = (wxBitmapButton *) getPtr(bp,memenv); bp += 4;
wxBitmap *sel = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBitmapSelected(*sel);
- break;
+ break;
}
-case wxToggleButton_new_0: { // wxToggleButton::wxToggleButton
+case wxToggleButton_new_0: { // wxToggleButton::wxToggleButton
wxToggleButton * Result = new EwxToggleButton();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxToggleButton");
- break;
+ break;
}
-case wxToggleButton_new_4: { // wxToggleButton::wxToggleButton
+case wxToggleButton_new_4: { // wxToggleButton::wxToggleButton
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -13355,7 +13355,7 @@ case wxToggleButton_new_4: { // wxToggleButton::wxToggleButton
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -13374,13 +13374,13 @@ case wxToggleButton_new_4: { // wxToggleButton::wxToggleButton
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxToggleButton * Result = new EwxToggleButton(parent,(wxWindowID) *id,label,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxToggleButton");
- break;
+ break;
}
-case wxToggleButton_Create: { // wxToggleButton::Create
+case wxToggleButton_Create: { // wxToggleButton::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -13391,7 +13391,7 @@ case wxToggleButton_Create: { // wxToggleButton::Create
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -13410,40 +13410,40 @@ case wxToggleButton_Create: { // wxToggleButton::Create
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,label,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxToggleButton_GetValue: { // wxToggleButton::GetValue
+case wxToggleButton_GetValue: { // wxToggleButton::GetValue
wxToggleButton *This = (wxToggleButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetValue();
rt.addBool(Result);
- break;
+ break;
}
-case wxToggleButton_SetValue: { // wxToggleButton::SetValue
+case wxToggleButton_SetValue: { // wxToggleButton::SetValue
wxToggleButton *This = (wxToggleButton *) getPtr(bp,memenv); bp += 4;
bool * state = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetValue((bool) *state);
- break;
+ break;
}
-case wxCalendarCtrl_new_0: { // wxCalendarCtrl::wxCalendarCtrl
+case wxCalendarCtrl_new_0: { // wxCalendarCtrl::wxCalendarCtrl
wxCalendarCtrl * Result = new EwxCalendarCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCalendarCtrl");
- break;
+ break;
}
-case wxCalendarCtrl_new_3: { // wxCalendarCtrl::wxCalendarCtrl
+case wxCalendarCtrl_new_3: { // wxCalendarCtrl::wxCalendarCtrl
wxDateTime date= wxDefaultDateTime;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxCAL_SHOW_HOLIDAYS|wxWANTS_CHARS;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * dateD = (int *) bp; bp += 4;
int * dateMo = (int *) bp; bp += 4;
@@ -13469,13 +13469,13 @@ case wxCalendarCtrl_new_3: { // wxCalendarCtrl::wxCalendarCtrl
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxCalendarCtrl * Result = new EwxCalendarCtrl(parent,(wxWindowID) *id,date,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCalendarCtrl");
- break;
+ break;
}
-case wxCalendarCtrl_Create: { // wxCalendarCtrl::Create
+case wxCalendarCtrl_Create: { // wxCalendarCtrl::Create
wxDateTime date= wxDefaultDateTime;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -13484,7 +13484,7 @@ case wxCalendarCtrl_Create: { // wxCalendarCtrl::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * dateD = (int *) bp; bp += 4;
int * dateMo = (int *) bp; bp += 4;
@@ -13510,13 +13510,13 @@ case wxCalendarCtrl_Create: { // wxCalendarCtrl::Create
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,date,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxCalendarCtrl_SetDate: { // wxCalendarCtrl::SetDate
+case wxCalendarCtrl_SetDate: { // wxCalendarCtrl::SetDate
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
int * dateD = (int *) bp; bp += 4;
int * dateMo = (int *) bp; bp += 4;
@@ -13528,55 +13528,55 @@ case wxCalendarCtrl_SetDate: { // wxCalendarCtrl::SetDate
if(!This) throw wxe_badarg(0);
bool Result = This->SetDate(date);
rt.addBool(Result);
- break;
+ break;
}
-case wxCalendarCtrl_GetDate: { // wxCalendarCtrl::GetDate
+case wxCalendarCtrl_GetDate: { // wxCalendarCtrl::GetDate
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxDateTime * Result = &This->GetDate();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarCtrl_EnableYearChange: { // wxCalendarCtrl::EnableYearChange
+case wxCalendarCtrl_EnableYearChange: { // wxCalendarCtrl::EnableYearChange
bool enable=true;
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->EnableYearChange(enable);
- break;
+ break;
}
-case wxCalendarCtrl_EnableMonthChange: { // wxCalendarCtrl::EnableMonthChange
+case wxCalendarCtrl_EnableMonthChange: { // wxCalendarCtrl::EnableMonthChange
bool enable=true;
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->EnableMonthChange(enable);
- break;
+ break;
}
-case wxCalendarCtrl_EnableHolidayDisplay: { // wxCalendarCtrl::EnableHolidayDisplay
+case wxCalendarCtrl_EnableHolidayDisplay: { // wxCalendarCtrl::EnableHolidayDisplay
bool display=true;
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
display = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->EnableHolidayDisplay(display);
- break;
+ break;
}
-case wxCalendarCtrl_SetHeaderColours: { // wxCalendarCtrl::SetHeaderColours
+case wxCalendarCtrl_SetHeaderColours: { // wxCalendarCtrl::SetHeaderColours
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
int * colFgR = (int *) bp; bp += 4;
int * colFgG = (int *) bp; bp += 4;
@@ -13590,23 +13590,23 @@ case wxCalendarCtrl_SetHeaderColours: { // wxCalendarCtrl::SetHeaderColours
wxColour colBg = wxColour(*colBgR,*colBgG,*colBgB,*colBgA);
if(!This) throw wxe_badarg(0);
This->SetHeaderColours(colFg,colBg);
- break;
+ break;
}
-case wxCalendarCtrl_GetHeaderColourFg: { // wxCalendarCtrl::GetHeaderColourFg
+case wxCalendarCtrl_GetHeaderColourFg: { // wxCalendarCtrl::GetHeaderColourFg
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetHeaderColourFg();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarCtrl_GetHeaderColourBg: { // wxCalendarCtrl::GetHeaderColourBg
+case wxCalendarCtrl_GetHeaderColourBg: { // wxCalendarCtrl::GetHeaderColourBg
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetHeaderColourBg();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarCtrl_SetHighlightColours: { // wxCalendarCtrl::SetHighlightColours
+case wxCalendarCtrl_SetHighlightColours: { // wxCalendarCtrl::SetHighlightColours
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
int * colFgR = (int *) bp; bp += 4;
int * colFgG = (int *) bp; bp += 4;
@@ -13620,23 +13620,23 @@ case wxCalendarCtrl_SetHighlightColours: { // wxCalendarCtrl::SetHighlightColour
wxColour colBg = wxColour(*colBgR,*colBgG,*colBgB,*colBgA);
if(!This) throw wxe_badarg(0);
This->SetHighlightColours(colFg,colBg);
- break;
+ break;
}
-case wxCalendarCtrl_GetHighlightColourFg: { // wxCalendarCtrl::GetHighlightColourFg
+case wxCalendarCtrl_GetHighlightColourFg: { // wxCalendarCtrl::GetHighlightColourFg
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetHighlightColourFg();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarCtrl_GetHighlightColourBg: { // wxCalendarCtrl::GetHighlightColourBg
+case wxCalendarCtrl_GetHighlightColourBg: { // wxCalendarCtrl::GetHighlightColourBg
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetHighlightColourBg();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarCtrl_SetHolidayColours: { // wxCalendarCtrl::SetHolidayColours
+case wxCalendarCtrl_SetHolidayColours: { // wxCalendarCtrl::SetHolidayColours
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
int * colFgR = (int *) bp; bp += 4;
int * colFgG = (int *) bp; bp += 4;
@@ -13650,53 +13650,53 @@ case wxCalendarCtrl_SetHolidayColours: { // wxCalendarCtrl::SetHolidayColours
wxColour colBg = wxColour(*colBgR,*colBgG,*colBgB,*colBgA);
if(!This) throw wxe_badarg(0);
This->SetHolidayColours(colFg,colBg);
- break;
+ break;
}
-case wxCalendarCtrl_GetHolidayColourFg: { // wxCalendarCtrl::GetHolidayColourFg
+case wxCalendarCtrl_GetHolidayColourFg: { // wxCalendarCtrl::GetHolidayColourFg
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetHolidayColourFg();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarCtrl_GetHolidayColourBg: { // wxCalendarCtrl::GetHolidayColourBg
+case wxCalendarCtrl_GetHolidayColourBg: { // wxCalendarCtrl::GetHolidayColourBg
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetHolidayColourBg();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarCtrl_GetAttr: { // wxCalendarCtrl::GetAttr
+case wxCalendarCtrl_GetAttr: { // wxCalendarCtrl::GetAttr
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
int * day = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxCalendarDateAttr * Result = (wxCalendarDateAttr*)This->GetAttr((size_t) *day);
rt.addRef(getRef((void *)Result,memenv), "wxCalendarDateAttr");
- break;
+ break;
}
-case wxCalendarCtrl_SetAttr: { // wxCalendarCtrl::SetAttr
+case wxCalendarCtrl_SetAttr: { // wxCalendarCtrl::SetAttr
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
int * day = (int *) bp; bp += 4;
wxCalendarDateAttr *attr = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAttr((size_t) *day,attr);
- break;
+ break;
}
-case wxCalendarCtrl_SetHoliday: { // wxCalendarCtrl::SetHoliday
+case wxCalendarCtrl_SetHoliday: { // wxCalendarCtrl::SetHoliday
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
int * day = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetHoliday((size_t) *day);
- break;
+ break;
}
-case wxCalendarCtrl_ResetAttr: { // wxCalendarCtrl::ResetAttr
+case wxCalendarCtrl_ResetAttr: { // wxCalendarCtrl::ResetAttr
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
int * day = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ResetAttr((size_t) *day);
- break;
+ break;
}
-case wxCalendarCtrl_HitTest: { // wxCalendarCtrl::HitTest
+case wxCalendarCtrl_HitTest: { // wxCalendarCtrl::HitTest
wxDateTime date;
wxDateTime::WeekDay wd;
wxCalendarCtrl *This = (wxCalendarCtrl *) getPtr(bp,memenv); bp += 4;
@@ -13709,15 +13709,15 @@ case wxCalendarCtrl_HitTest: { // wxCalendarCtrl::HitTest
rt.add(date);
rt.addInt(wd);
rt.addTupleCount(3);
- break;
+ break;
}
-case wxCalendarDateAttr_new_0: { // wxCalendarDateAttr::wxCalendarDateAttr
+case wxCalendarDateAttr_new_0: { // wxCalendarDateAttr::wxCalendarDateAttr
wxCalendarDateAttr * Result = new wxCalendarDateAttr();
newPtr((void *) Result, 88, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCalendarDateAttr");
- break;
+ break;
}
-case wxCalendarDateAttr_new_2_1: { // wxCalendarDateAttr::wxCalendarDateAttr
+case wxCalendarDateAttr_new_2_1: { // wxCalendarDateAttr::wxCalendarDateAttr
wxColour colBack= wxNullColour;
wxColour colBorder= wxNullColour;
const wxFont * font= &wxNullFont;
@@ -13727,7 +13727,7 @@ case wxCalendarDateAttr_new_2_1: { // wxCalendarDateAttr::wxCalendarDateAttr
int * colTextB = (int *) bp; bp += 4;
int * colTextA = (int *) bp; bp += 4;
wxColour colText = wxColour(*colTextR,*colTextG,*colTextB,*colTextA);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * colBackR = (int *) bp; bp += 4;
int * colBackG = (int *) bp; bp += 4;
@@ -13750,17 +13750,17 @@ font = (wxFont *) getPtr(bp,memenv); bp += 4;
case 4: {bp += 4;
border = *(wxCalendarDateBorder *) bp; bp += 4;;
} break;
- }};
+ }};
wxCalendarDateAttr * Result = new wxCalendarDateAttr(colText,colBack,colBorder,*font,(wxCalendarDateBorder) border);
newPtr((void *) Result, 88, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCalendarDateAttr");
- break;
+ break;
}
-case wxCalendarDateAttr_new_2_0: { // wxCalendarDateAttr::wxCalendarDateAttr
+case wxCalendarDateAttr_new_2_0: { // wxCalendarDateAttr::wxCalendarDateAttr
wxColour colBorder= wxNullColour;
wxCalendarDateBorder border = *(wxCalendarDateBorder *) bp; bp += 4;;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * colBorderR = (int *) bp; bp += 4;
int * colBorderG = (int *) bp; bp += 4;
@@ -13769,13 +13769,13 @@ case wxCalendarDateAttr_new_2_0: { // wxCalendarDateAttr::wxCalendarDateAttr
colBorder = wxColour(*colBorderR,*colBorderG,*colBorderB,*colBorderA);
bp += 4; /* Align */
} break;
- }};
+ }};
wxCalendarDateAttr * Result = new wxCalendarDateAttr((wxCalendarDateBorder) border,colBorder);
newPtr((void *) Result, 88, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCalendarDateAttr");
- break;
+ break;
}
-case wxCalendarDateAttr_SetTextColour: { // wxCalendarDateAttr::SetTextColour
+case wxCalendarDateAttr_SetTextColour: { // wxCalendarDateAttr::SetTextColour
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
int * colTextR = (int *) bp; bp += 4;
int * colTextG = (int *) bp; bp += 4;
@@ -13784,9 +13784,9 @@ case wxCalendarDateAttr_SetTextColour: { // wxCalendarDateAttr::SetTextColour
wxColour colText = wxColour(*colTextR,*colTextG,*colTextB,*colTextA);
if(!This) throw wxe_badarg(0);
This->SetTextColour(colText);
- break;
+ break;
}
-case wxCalendarDateAttr_SetBackgroundColour: { // wxCalendarDateAttr::SetBackgroundColour
+case wxCalendarDateAttr_SetBackgroundColour: { // wxCalendarDateAttr::SetBackgroundColour
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
int * colBackR = (int *) bp; bp += 4;
int * colBackG = (int *) bp; bp += 4;
@@ -13795,9 +13795,9 @@ case wxCalendarDateAttr_SetBackgroundColour: { // wxCalendarDateAttr::SetBackgro
wxColour colBack = wxColour(*colBackR,*colBackG,*colBackB,*colBackA);
if(!This) throw wxe_badarg(0);
This->SetBackgroundColour(colBack);
- break;
+ break;
}
-case wxCalendarDateAttr_SetBorderColour: { // wxCalendarDateAttr::SetBorderColour
+case wxCalendarDateAttr_SetBorderColour: { // wxCalendarDateAttr::SetBorderColour
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -13806,113 +13806,113 @@ case wxCalendarDateAttr_SetBorderColour: { // wxCalendarDateAttr::SetBorderColou
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetBorderColour(col);
- break;
+ break;
}
-case wxCalendarDateAttr_SetFont: { // wxCalendarDateAttr::SetFont
+case wxCalendarDateAttr_SetFont: { // wxCalendarDateAttr::SetFont
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFont(*font);
- break;
+ break;
}
-case wxCalendarDateAttr_SetBorder: { // wxCalendarDateAttr::SetBorder
+case wxCalendarDateAttr_SetBorder: { // wxCalendarDateAttr::SetBorder
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
wxCalendarDateBorder border = *(wxCalendarDateBorder *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetBorder((wxCalendarDateBorder) border);
- break;
+ break;
}
-case wxCalendarDateAttr_SetHoliday: { // wxCalendarDateAttr::SetHoliday
+case wxCalendarDateAttr_SetHoliday: { // wxCalendarDateAttr::SetHoliday
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
bool * holiday = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetHoliday((bool) *holiday);
- break;
+ break;
}
-case wxCalendarDateAttr_HasTextColour: { // wxCalendarDateAttr::HasTextColour
+case wxCalendarDateAttr_HasTextColour: { // wxCalendarDateAttr::HasTextColour
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasTextColour();
rt.addBool(Result);
- break;
+ break;
}
-case wxCalendarDateAttr_HasBackgroundColour: { // wxCalendarDateAttr::HasBackgroundColour
+case wxCalendarDateAttr_HasBackgroundColour: { // wxCalendarDateAttr::HasBackgroundColour
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasBackgroundColour();
rt.addBool(Result);
- break;
+ break;
}
-case wxCalendarDateAttr_HasBorderColour: { // wxCalendarDateAttr::HasBorderColour
+case wxCalendarDateAttr_HasBorderColour: { // wxCalendarDateAttr::HasBorderColour
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasBorderColour();
rt.addBool(Result);
- break;
+ break;
}
-case wxCalendarDateAttr_HasFont: { // wxCalendarDateAttr::HasFont
+case wxCalendarDateAttr_HasFont: { // wxCalendarDateAttr::HasFont
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasFont();
rt.addBool(Result);
- break;
+ break;
}
-case wxCalendarDateAttr_HasBorder: { // wxCalendarDateAttr::HasBorder
+case wxCalendarDateAttr_HasBorder: { // wxCalendarDateAttr::HasBorder
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasBorder();
rt.addBool(Result);
- break;
+ break;
}
-case wxCalendarDateAttr_IsHoliday: { // wxCalendarDateAttr::IsHoliday
+case wxCalendarDateAttr_IsHoliday: { // wxCalendarDateAttr::IsHoliday
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsHoliday();
rt.addBool(Result);
- break;
+ break;
}
-case wxCalendarDateAttr_GetTextColour: { // wxCalendarDateAttr::GetTextColour
+case wxCalendarDateAttr_GetTextColour: { // wxCalendarDateAttr::GetTextColour
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetTextColour();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarDateAttr_GetBackgroundColour: { // wxCalendarDateAttr::GetBackgroundColour
+case wxCalendarDateAttr_GetBackgroundColour: { // wxCalendarDateAttr::GetBackgroundColour
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetBackgroundColour();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarDateAttr_GetBorderColour: { // wxCalendarDateAttr::GetBorderColour
+case wxCalendarDateAttr_GetBorderColour: { // wxCalendarDateAttr::GetBorderColour
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetBorderColour();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarDateAttr_GetFont: { // wxCalendarDateAttr::GetFont
+case wxCalendarDateAttr_GetFont: { // wxCalendarDateAttr::GetFont
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxFont * Result = &This->GetFont();
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxCalendarDateAttr_GetBorder: { // wxCalendarDateAttr::GetBorder
+case wxCalendarDateAttr_GetBorder: { // wxCalendarDateAttr::GetBorder
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetBorder();
rt.addInt(Result);
- break;
+ break;
}
-case wxCalendarDateAttr_destroy: { // wxCalendarDateAttr::destroy
+case wxCalendarDateAttr_destroy: { // wxCalendarDateAttr::destroy
wxCalendarDateAttr *This = (wxCalendarDateAttr *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxCheckBox_new_4: { // wxCheckBox::wxCheckBox
+case wxCheckBox_new_4: { // wxCheckBox::wxCheckBox
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -13922,7 +13922,7 @@ case wxCheckBox_new_4: { // wxCheckBox::wxCheckBox
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -13941,19 +13941,19 @@ case wxCheckBox_new_4: { // wxCheckBox::wxCheckBox
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxCheckBox * Result = new EwxCheckBox(parent,(wxWindowID) *id,label,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCheckBox");
- break;
+ break;
}
-case wxCheckBox_new_0: { // wxCheckBox::wxCheckBox
+case wxCheckBox_new_0: { // wxCheckBox::wxCheckBox
wxCheckBox * Result = new EwxCheckBox();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCheckBox");
- break;
+ break;
}
-case wxCheckBox_Create: { // wxCheckBox::Create
+case wxCheckBox_Create: { // wxCheckBox::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -13964,7 +13964,7 @@ case wxCheckBox_Create: { // wxCheckBox::Create
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -13983,68 +13983,68 @@ case wxCheckBox_Create: { // wxCheckBox::Create
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,label,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxCheckBox_GetValue: { // wxCheckBox::GetValue
+case wxCheckBox_GetValue: { // wxCheckBox::GetValue
wxCheckBox *This = (wxCheckBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetValue();
rt.addBool(Result);
- break;
+ break;
}
-case wxCheckBox_Get3StateValue: { // wxCheckBox::Get3StateValue
+case wxCheckBox_Get3StateValue: { // wxCheckBox::Get3StateValue
wxCheckBox *This = (wxCheckBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->Get3StateValue();
rt.addInt(Result);
- break;
+ break;
}
-case wxCheckBox_Is3rdStateAllowedForUser: { // wxCheckBox::Is3rdStateAllowedForUser
+case wxCheckBox_Is3rdStateAllowedForUser: { // wxCheckBox::Is3rdStateAllowedForUser
wxCheckBox *This = (wxCheckBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Is3rdStateAllowedForUser();
rt.addBool(Result);
- break;
+ break;
}
-case wxCheckBox_Is3State: { // wxCheckBox::Is3State
+case wxCheckBox_Is3State: { // wxCheckBox::Is3State
wxCheckBox *This = (wxCheckBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Is3State();
rt.addBool(Result);
- break;
+ break;
}
-case wxCheckBox_IsChecked: { // wxCheckBox::IsChecked
+case wxCheckBox_IsChecked: { // wxCheckBox::IsChecked
wxCheckBox *This = (wxCheckBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsChecked();
rt.addBool(Result);
- break;
+ break;
}
-case wxCheckBox_SetValue: { // wxCheckBox::SetValue
+case wxCheckBox_SetValue: { // wxCheckBox::SetValue
wxCheckBox *This = (wxCheckBox *) getPtr(bp,memenv); bp += 4;
bool * state = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetValue((bool) *state);
- break;
+ break;
}
-case wxCheckBox_Set3StateValue: { // wxCheckBox::Set3StateValue
+case wxCheckBox_Set3StateValue: { // wxCheckBox::Set3StateValue
wxCheckBox *This = (wxCheckBox *) getPtr(bp,memenv); bp += 4;
wxCheckBoxState state = *(wxCheckBoxState *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->Set3StateValue((wxCheckBoxState) state);
- break;
+ break;
}
-case wxCheckListBox_new_0: { // wxCheckListBox::wxCheckListBox
+case wxCheckListBox_new_0: { // wxCheckListBox::wxCheckListBox
wxCheckListBox * Result = new EwxCheckListBox();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCheckListBox");
- break;
+ break;
}
-case wxCheckListBox_new_3: { // wxCheckListBox::wxCheckListBox
+case wxCheckListBox_new_3: { // wxCheckListBox::wxCheckListBox
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
wxArrayString choices;
@@ -14052,7 +14052,7 @@ case wxCheckListBox_new_3: { // wxCheckListBox::wxCheckListBox
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -14082,34 +14082,34 @@ case wxCheckListBox_new_3: { // wxCheckListBox::wxCheckListBox
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxCheckListBox * Result = new EwxCheckListBox(parent,(wxWindowID) *id,pos,size,choices,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxCheckListBox");
- break;
+ break;
}
-case wxCheckListBox_Check: { // wxCheckListBox::Check
+case wxCheckListBox_Check: { // wxCheckListBox::Check
bool check=true;
wxCheckListBox *This = (wxCheckListBox *) getPtr(bp,memenv); bp += 4;
unsigned int * index = (unsigned int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
check = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Check((int) *index,check);
- break;
+ break;
}
-case wxCheckListBox_IsChecked: { // wxCheckListBox::IsChecked
+case wxCheckListBox_IsChecked: { // wxCheckListBox::IsChecked
wxCheckListBox *This = (wxCheckListBox *) getPtr(bp,memenv); bp += 4;
unsigned int * index = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsChecked((int) *index);
rt.addBool(Result);
- break;
+ break;
}
-case wxChoice_new_3: { // wxChoice::wxChoice
+case wxChoice_new_3: { // wxChoice::wxChoice
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
wxArrayString choices;
@@ -14117,7 +14117,7 @@ case wxChoice_new_3: { // wxChoice::wxChoice
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -14147,19 +14147,19 @@ case wxChoice_new_3: { // wxChoice::wxChoice
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxChoice * Result = new EwxChoice(parent,(wxWindowID) *id,pos,size,choices,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxChoice");
- break;
+ break;
}
-case wxChoice_new_0: { // wxChoice::wxChoice
+case wxChoice_new_0: { // wxChoice::wxChoice
wxChoice * Result = new EwxChoice();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxChoice");
- break;
+ break;
}
-case wxChoice_Create: { // wxChoice::Create
+case wxChoice_Create: { // wxChoice::Create
long style=0;
const wxValidator * validator= &wxDefaultValidator;
wxChoice *This = (wxChoice *) getPtr(bp,memenv); bp += 4;
@@ -14181,53 +14181,53 @@ case wxChoice_Create: { // wxChoice::Create
choicesASz += *choicesTemp+4;
}
bp += (8-((0+ choicesASz) & 7 )) & 7;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,pos,size,choices,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxChoice_Delete: { // wxChoice::Delete
+case wxChoice_Delete: { // wxChoice::Delete
wxChoice *This = (wxChoice *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Delete((int) *n);
- break;
+ break;
}
-case wxChoice_GetColumns: { // wxChoice::GetColumns
+case wxChoice_GetColumns: { // wxChoice::GetColumns
wxChoice *This = (wxChoice *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColumns();
rt.addInt(Result);
- break;
+ break;
}
-case wxChoice_SetColumns: { // wxChoice::SetColumns
+case wxChoice_SetColumns: { // wxChoice::SetColumns
int n=1;
wxChoice *This = (wxChoice *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
n = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetColumns(n);
- break;
+ break;
}
-case wxComboBox_new_0: { // wxComboBox::wxComboBox
+case wxComboBox_new_0: { // wxComboBox::wxComboBox
wxComboBox * Result = new EwxComboBox();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxComboBox");
- break;
+ break;
}
-case wxComboBox_new_3: { // wxComboBox::wxComboBox
+case wxComboBox_new_3: { // wxComboBox::wxComboBox
wxString value= wxEmptyString;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -14236,7 +14236,7 @@ case wxComboBox_new_3: { // wxComboBox::wxComboBox
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * valueLen = (int *) bp; bp += 4;
value = wxString(bp, wxConvUTF8);
@@ -14271,13 +14271,13 @@ case wxComboBox_new_3: { // wxComboBox::wxComboBox
case 6: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxComboBox * Result = new EwxComboBox(parent,(wxWindowID) *id,value,pos,size,choices,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxComboBox");
- break;
+ break;
}
-case wxComboBox_Create: { // wxComboBox::Create
+case wxComboBox_Create: { // wxComboBox::Create
long style=0;
const wxValidator * validator= &wxDefaultValidator;
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
@@ -14302,100 +14302,100 @@ case wxComboBox_Create: { // wxComboBox::Create
choicesASz += *choicesTemp+4;
}
bp += (8-((4+ choicesASz) & 7 )) & 7;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,value,pos,size,choices,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxComboBox_CanCopy: { // wxComboBox::CanCopy
+case wxComboBox_CanCopy: { // wxComboBox::CanCopy
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanCopy();
rt.addBool(Result);
- break;
+ break;
}
-case wxComboBox_CanCut: { // wxComboBox::CanCut
+case wxComboBox_CanCut: { // wxComboBox::CanCut
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanCut();
rt.addBool(Result);
- break;
+ break;
}
-case wxComboBox_CanPaste: { // wxComboBox::CanPaste
+case wxComboBox_CanPaste: { // wxComboBox::CanPaste
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanPaste();
rt.addBool(Result);
- break;
+ break;
}
-case wxComboBox_CanRedo: { // wxComboBox::CanRedo
+case wxComboBox_CanRedo: { // wxComboBox::CanRedo
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanRedo();
rt.addBool(Result);
- break;
+ break;
}
-case wxComboBox_CanUndo: { // wxComboBox::CanUndo
+case wxComboBox_CanUndo: { // wxComboBox::CanUndo
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanUndo();
rt.addBool(Result);
- break;
+ break;
}
-case wxComboBox_Copy: { // wxComboBox::Copy
+case wxComboBox_Copy: { // wxComboBox::Copy
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Copy();
- break;
+ break;
}
-case wxComboBox_Cut: { // wxComboBox::Cut
+case wxComboBox_Cut: { // wxComboBox::Cut
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Cut();
- break;
+ break;
}
-case wxComboBox_GetInsertionPoint: { // wxComboBox::GetInsertionPoint
+case wxComboBox_GetInsertionPoint: { // wxComboBox::GetInsertionPoint
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetInsertionPoint();
rt.addInt(Result);
- break;
+ break;
}
-case wxComboBox_GetLastPosition: { // wxComboBox::GetLastPosition
+case wxComboBox_GetLastPosition: { // wxComboBox::GetLastPosition
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTextPos Result = This->GetLastPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxComboBox_GetValue: { // wxComboBox::GetValue
+case wxComboBox_GetValue: { // wxComboBox::GetValue
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetValue();
rt.add(Result);
- break;
+ break;
}
-case wxComboBox_Paste: { // wxComboBox::Paste
+case wxComboBox_Paste: { // wxComboBox::Paste
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Paste();
- break;
+ break;
}
-case wxComboBox_Redo: { // wxComboBox::Redo
+case wxComboBox_Redo: { // wxComboBox::Redo
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Redo();
- break;
+ break;
}
-case wxComboBox_Replace: { // wxComboBox::Replace
+case wxComboBox_Replace: { // wxComboBox::Replace
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
int * from = (int *) bp; bp += 4;
int * to = (int *) bp; bp += 4;
@@ -14404,66 +14404,66 @@ case wxComboBox_Replace: { // wxComboBox::Replace
bp += *valueLen+((8-((0+ *valueLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->Replace((long) *from,(long) *to,value);
- break;
+ break;
}
-case wxComboBox_Remove: { // wxComboBox::Remove
+case wxComboBox_Remove: { // wxComboBox::Remove
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
int * from = (int *) bp; bp += 4;
int * to = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Remove((long) *from,(long) *to);
- break;
+ break;
}
-case wxComboBox_SetInsertionPoint: { // wxComboBox::SetInsertionPoint
+case wxComboBox_SetInsertionPoint: { // wxComboBox::SetInsertionPoint
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetInsertionPoint((long) *pos);
- break;
+ break;
}
-case wxComboBox_SetInsertionPointEnd: { // wxComboBox::SetInsertionPointEnd
+case wxComboBox_SetInsertionPointEnd: { // wxComboBox::SetInsertionPointEnd
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetInsertionPointEnd();
- break;
+ break;
}
-case wxComboBox_SetSelection_1: { // wxComboBox::SetSelection
+case wxComboBox_SetSelection_1: { // wxComboBox::SetSelection
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((int) *n);
- break;
+ break;
}
-case wxComboBox_SetSelection_2: { // wxComboBox::SetSelection
+case wxComboBox_SetSelection_2: { // wxComboBox::SetSelection
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
int * from = (int *) bp; bp += 4;
int * to = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((long) *from,(long) *to);
- break;
+ break;
}
-case wxComboBox_SetValue: { // wxComboBox::SetValue
+case wxComboBox_SetValue: { // wxComboBox::SetValue
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
int * valueLen = (int *) bp; bp += 4;
wxString value = wxString(bp, wxConvUTF8);
bp += *valueLen+((8-((0+ *valueLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetValue(value);
- break;
+ break;
}
-case wxComboBox_Undo: { // wxComboBox::Undo
+case wxComboBox_Undo: { // wxComboBox::Undo
wxComboBox *This = (wxComboBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Undo();
- break;
+ break;
}
-case wxGauge_new_0: { // wxGauge::wxGauge
+case wxGauge_new_0: { // wxGauge::wxGauge
wxGauge * Result = new EwxGauge();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGauge");
- break;
+ break;
}
-case wxGauge_new_4: { // wxGauge::wxGauge
+case wxGauge_new_4: { // wxGauge::wxGauge
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxGA_HORIZONTAL;
@@ -14472,7 +14472,7 @@ case wxGauge_new_4: { // wxGauge::wxGauge
int * id = (int *) bp; bp += 4;
int * range = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -14491,13 +14491,13 @@ case wxGauge_new_4: { // wxGauge::wxGauge
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxGauge * Result = new EwxGauge(parent,(wxWindowID) *id,(int) *range,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGauge");
- break;
+ break;
}
-case wxGauge_Create: { // wxGauge::Create
+case wxGauge_Create: { // wxGauge::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxGA_HORIZONTAL;
@@ -14506,7 +14506,7 @@ case wxGauge_Create: { // wxGauge::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
int * range = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -14525,88 +14525,88 @@ case wxGauge_Create: { // wxGauge::Create
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,(int) *range,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxGauge_GetBezelFace: { // wxGauge::GetBezelFace
+case wxGauge_GetBezelFace: { // wxGauge::GetBezelFace
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetBezelFace();
rt.addInt(Result);
- break;
+ break;
}
-case wxGauge_GetRange: { // wxGauge::GetRange
+case wxGauge_GetRange: { // wxGauge::GetRange
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRange();
rt.addInt(Result);
- break;
+ break;
}
-case wxGauge_GetShadowWidth: { // wxGauge::GetShadowWidth
+case wxGauge_GetShadowWidth: { // wxGauge::GetShadowWidth
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetShadowWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxGauge_GetValue: { // wxGauge::GetValue
+case wxGauge_GetValue: { // wxGauge::GetValue
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetValue();
rt.addInt(Result);
- break;
+ break;
}
-case wxGauge_IsVertical: { // wxGauge::IsVertical
+case wxGauge_IsVertical: { // wxGauge::IsVertical
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsVertical();
rt.addBool(Result);
- break;
+ break;
}
-case wxGauge_SetBezelFace: { // wxGauge::SetBezelFace
+case wxGauge_SetBezelFace: { // wxGauge::SetBezelFace
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
int * w = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBezelFace((int) *w);
- break;
+ break;
}
-case wxGauge_SetRange: { // wxGauge::SetRange
+case wxGauge_SetRange: { // wxGauge::SetRange
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
int * r = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRange((int) *r);
- break;
+ break;
}
-case wxGauge_SetShadowWidth: { // wxGauge::SetShadowWidth
+case wxGauge_SetShadowWidth: { // wxGauge::SetShadowWidth
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
int * w = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetShadowWidth((int) *w);
- break;
+ break;
}
-case wxGauge_SetValue: { // wxGauge::SetValue
+case wxGauge_SetValue: { // wxGauge::SetValue
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetValue((int) *pos);
- break;
+ break;
}
-case wxGauge_Pulse: { // wxGauge::Pulse
+case wxGauge_Pulse: { // wxGauge::Pulse
wxGauge *This = (wxGauge *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Pulse();
- break;
+ break;
}
-case wxGenericDirCtrl_new_0: { // wxGenericDirCtrl::wxGenericDirCtrl
+case wxGenericDirCtrl_new_0: { // wxGenericDirCtrl::wxGenericDirCtrl
wxGenericDirCtrl * Result = new EwxGenericDirCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGenericDirCtrl");
- break;
+ break;
}
-case wxGenericDirCtrl_new_2: { // wxGenericDirCtrl::wxGenericDirCtrl
+case wxGenericDirCtrl_new_2: { // wxGenericDirCtrl::wxGenericDirCtrl
wxWindowID id=wxID_ANY;
wxString dir= wxDirDialogDefaultFolderStr;
wxPoint pos= wxDefaultPosition;
@@ -14616,7 +14616,7 @@ case wxGenericDirCtrl_new_2: { // wxGenericDirCtrl::wxGenericDirCtrl
int defaultFilter=0;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(const int *) bp; bp += 4;
} break;
@@ -14648,13 +14648,13 @@ case wxGenericDirCtrl_new_2: { // wxGenericDirCtrl::wxGenericDirCtrl
case 7: {bp += 4;
defaultFilter = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxGenericDirCtrl * Result = new EwxGenericDirCtrl(parent,id,dir,pos,size,style,filter,defaultFilter);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGenericDirCtrl");
- break;
+ break;
}
-case wxGenericDirCtrl_Create: { // wxGenericDirCtrl::Create
+case wxGenericDirCtrl_Create: { // wxGenericDirCtrl::Create
wxWindowID id=wxID_ANY;
wxString dir= wxDirDialogDefaultFolderStr;
wxPoint pos= wxDefaultPosition;
@@ -14664,7 +14664,7 @@ case wxGenericDirCtrl_Create: { // wxGenericDirCtrl::Create
int defaultFilter=0;
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(const int *) bp; bp += 4;
} break;
@@ -14696,25 +14696,25 @@ case wxGenericDirCtrl_Create: { // wxGenericDirCtrl::Create
case 7: {bp += 4;
defaultFilter = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,id,dir,pos,size,style,filter,defaultFilter);
rt.addBool(Result);
- break;
+ break;
}
-case wxGenericDirCtrl_Init: { // wxGenericDirCtrl::Init
+case wxGenericDirCtrl_Init: { // wxGenericDirCtrl::Init
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Init();
- break;
+ break;
}
-case wxGenericDirCtrl_CollapseTree: { // wxGenericDirCtrl::CollapseTree
+case wxGenericDirCtrl_CollapseTree: { // wxGenericDirCtrl::CollapseTree
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CollapseTree();
- break;
+ break;
}
-case wxGenericDirCtrl_ExpandPath: { // wxGenericDirCtrl::ExpandPath
+case wxGenericDirCtrl_ExpandPath: { // wxGenericDirCtrl::ExpandPath
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
int * pathLen = (int *) bp; bp += 4;
wxString path = wxString(bp, wxConvUTF8);
@@ -14722,98 +14722,98 @@ case wxGenericDirCtrl_ExpandPath: { // wxGenericDirCtrl::ExpandPath
if(!This) throw wxe_badarg(0);
bool Result = This->ExpandPath(path);
rt.addBool(Result);
- break;
+ break;
}
-case wxGenericDirCtrl_GetDefaultPath: { // wxGenericDirCtrl::GetDefaultPath
+case wxGenericDirCtrl_GetDefaultPath: { // wxGenericDirCtrl::GetDefaultPath
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetDefaultPath();
rt.add(Result);
- break;
+ break;
}
-case wxGenericDirCtrl_GetPath: { // wxGenericDirCtrl::GetPath
+case wxGenericDirCtrl_GetPath: { // wxGenericDirCtrl::GetPath
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPath();
rt.add(Result);
- break;
+ break;
}
-case wxGenericDirCtrl_GetFilePath: { // wxGenericDirCtrl::GetFilePath
+case wxGenericDirCtrl_GetFilePath: { // wxGenericDirCtrl::GetFilePath
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetFilePath();
rt.add(Result);
- break;
+ break;
}
-case wxGenericDirCtrl_GetFilter: { // wxGenericDirCtrl::GetFilter
+case wxGenericDirCtrl_GetFilter: { // wxGenericDirCtrl::GetFilter
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetFilter();
rt.add(Result);
- break;
+ break;
}
-case wxGenericDirCtrl_GetFilterIndex: { // wxGenericDirCtrl::GetFilterIndex
+case wxGenericDirCtrl_GetFilterIndex: { // wxGenericDirCtrl::GetFilterIndex
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFilterIndex();
rt.addInt(Result);
- break;
+ break;
}
-case wxGenericDirCtrl_GetRootId: { // wxGenericDirCtrl::GetRootId
+case wxGenericDirCtrl_GetRootId: { // wxGenericDirCtrl::GetRootId
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetRootId();
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxGenericDirCtrl_GetTreeCtrl: { // wxGenericDirCtrl::GetTreeCtrl
+case wxGenericDirCtrl_GetTreeCtrl: { // wxGenericDirCtrl::GetTreeCtrl
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTreeCtrl * Result = (wxTreeCtrl*)This->GetTreeCtrl();
rt.addRef(getRef((void *)Result,memenv), "wxTreeCtrl");
- break;
+ break;
}
-case wxGenericDirCtrl_ReCreateTree: { // wxGenericDirCtrl::ReCreateTree
+case wxGenericDirCtrl_ReCreateTree: { // wxGenericDirCtrl::ReCreateTree
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ReCreateTree();
- break;
+ break;
}
-case wxGenericDirCtrl_SetDefaultPath: { // wxGenericDirCtrl::SetDefaultPath
+case wxGenericDirCtrl_SetDefaultPath: { // wxGenericDirCtrl::SetDefaultPath
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
int * pathLen = (int *) bp; bp += 4;
wxString path = wxString(bp, wxConvUTF8);
bp += *pathLen+((8-((0+ *pathLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetDefaultPath(path);
- break;
+ break;
}
-case wxGenericDirCtrl_SetFilter: { // wxGenericDirCtrl::SetFilter
+case wxGenericDirCtrl_SetFilter: { // wxGenericDirCtrl::SetFilter
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
int * filterLen = (int *) bp; bp += 4;
wxString filter = wxString(bp, wxConvUTF8);
bp += *filterLen+((8-((0+ *filterLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetFilter(filter);
- break;
+ break;
}
-case wxGenericDirCtrl_SetFilterIndex: { // wxGenericDirCtrl::SetFilterIndex
+case wxGenericDirCtrl_SetFilterIndex: { // wxGenericDirCtrl::SetFilterIndex
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFilterIndex((int) *n);
- break;
+ break;
}
-case wxGenericDirCtrl_SetPath: { // wxGenericDirCtrl::SetPath
+case wxGenericDirCtrl_SetPath: { // wxGenericDirCtrl::SetPath
wxGenericDirCtrl *This = (wxGenericDirCtrl *) getPtr(bp,memenv); bp += 4;
int * pathLen = (int *) bp; bp += 4;
wxString path = wxString(bp, wxConvUTF8);
bp += *pathLen+((8-((0+ *pathLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetPath(path);
- break;
+ break;
}
-case wxStaticBox_new_4: { // wxStaticBox::wxStaticBox
+case wxStaticBox_new_4: { // wxStaticBox::wxStaticBox
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -14822,7 +14822,7 @@ case wxStaticBox_new_4: { // wxStaticBox::wxStaticBox
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -14838,19 +14838,19 @@ case wxStaticBox_new_4: { // wxStaticBox::wxStaticBox
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxStaticBox * Result = new EwxStaticBox(parent,(wxWindowID) *id,label,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticBox");
- break;
+ break;
}
-case wxStaticBox_new_0: { // wxStaticBox::wxStaticBox
+case wxStaticBox_new_0: { // wxStaticBox::wxStaticBox
wxStaticBox * Result = new EwxStaticBox();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticBox");
- break;
+ break;
}
-case wxStaticBox_Create: { // wxStaticBox::Create
+case wxStaticBox_Create: { // wxStaticBox::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -14860,7 +14860,7 @@ case wxStaticBox_Create: { // wxStaticBox::Create
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -14876,20 +14876,20 @@ case wxStaticBox_Create: { // wxStaticBox::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,label,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxStaticLine_new_2: { // wxStaticLine::wxStaticLine
+case wxStaticLine_new_2: { // wxStaticLine::wxStaticLine
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxLI_HORIZONTAL;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -14908,26 +14908,26 @@ case wxStaticLine_new_2: { // wxStaticLine::wxStaticLine
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxStaticLine * Result = new EwxStaticLine(parent,id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticLine");
- break;
+ break;
}
-case wxStaticLine_new_0: { // wxStaticLine::wxStaticLine
+case wxStaticLine_new_0: { // wxStaticLine::wxStaticLine
wxStaticLine * Result = new EwxStaticLine();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticLine");
- break;
+ break;
}
-case wxStaticLine_Create: { // wxStaticLine::Create
+case wxStaticLine_Create: { // wxStaticLine::Create
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxLI_HORIZONTAL;
wxStaticLine *This = (wxStaticLine *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -14946,25 +14946,25 @@ case wxStaticLine_Create: { // wxStaticLine::Create
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxStaticLine_IsVertical: { // wxStaticLine::IsVertical
+case wxStaticLine_IsVertical: { // wxStaticLine::IsVertical
wxStaticLine *This = (wxStaticLine *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsVertical();
rt.addBool(Result);
- break;
+ break;
}
-case wxStaticLine_GetDefaultSize: { // wxStaticLine::GetDefaultSize
+case wxStaticLine_GetDefaultSize: { // wxStaticLine::GetDefaultSize
int Result = wxStaticLine::GetDefaultSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxListBox_new_3: { // wxListBox::wxListBox
+case wxListBox_new_3: { // wxListBox::wxListBox
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
wxArrayString choices;
@@ -14972,7 +14972,7 @@ case wxListBox_new_3: { // wxListBox::wxListBox
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -15002,19 +15002,19 @@ case wxListBox_new_3: { // wxListBox::wxListBox
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxListBox * Result = new EwxListBox(parent,(wxWindowID) *id,pos,size,choices,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxListBox");
- break;
+ break;
}
-case wxListBox_new_0: { // wxListBox::wxListBox
+case wxListBox_new_0: { // wxListBox::wxListBox
wxListBox * Result = new EwxListBox();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxListBox");
- break;
+ break;
}
-case wxListBox_Create: { // wxListBox::Create
+case wxListBox_Create: { // wxListBox::Create
long style=0;
const wxValidator * validator= &wxDefaultValidator;
wxListBox *This = (wxListBox *) getPtr(bp,memenv); bp += 4;
@@ -15036,27 +15036,27 @@ case wxListBox_Create: { // wxListBox::Create
choicesASz += *choicesTemp+4;
}
bp += (8-((0+ choicesASz) & 7 )) & 7;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,pos,size,choices,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxListBox_Deselect: { // wxListBox::Deselect
+case wxListBox_Deselect: { // wxListBox::Deselect
wxListBox *This = (wxListBox *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Deselect((int) *n);
- break;
+ break;
}
-case wxListBox_GetSelections: { // wxListBox::GetSelections
+case wxListBox_GetSelections: { // wxListBox::GetSelections
wxArrayInt aSelections;
wxListBox *This = (wxListBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
@@ -15064,9 +15064,9 @@ case wxListBox_GetSelections: { // wxListBox::GetSelections
rt.addInt(Result);
rt.add(aSelections);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxListBox_InsertItems: { // wxListBox::InsertItems
+case wxListBox_InsertItems: { // wxListBox::InsertItems
wxListBox *This = (wxListBox *) getPtr(bp,memenv); bp += 4;
int * itemsLen = (int *) bp; bp += 4;
wxArrayString items;
@@ -15081,17 +15081,17 @@ case wxListBox_InsertItems: { // wxListBox::InsertItems
unsigned int * pos = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->InsertItems(items,(int) *pos);
- break;
+ break;
}
-case wxListBox_IsSelected: { // wxListBox::IsSelected
+case wxListBox_IsSelected: { // wxListBox::IsSelected
wxListBox *This = (wxListBox *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSelected((int) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxListBox_Set: { // wxListBox::Set
+case wxListBox_Set: { // wxListBox::Set
wxListBox *This = (wxListBox *) getPtr(bp,memenv); bp += 4;
int * itemsLen = (int *) bp; bp += 4;
wxArrayString items;
@@ -15105,9 +15105,9 @@ case wxListBox_Set: { // wxListBox::Set
bp += (8-((0+ itemsASz) & 7 )) & 7;
if(!This) throw wxe_badarg(0);
This->Set(items,NULL);
- break;
+ break;
}
-case wxListBox_HitTest: { // wxListBox::HitTest
+case wxListBox_HitTest: { // wxListBox::HitTest
wxListBox *This = (wxListBox *) getPtr(bp,memenv); bp += 4;
int * pointX = (int *) bp; bp += 4;
int * pointY = (int *) bp; bp += 4;
@@ -15115,31 +15115,31 @@ case wxListBox_HitTest: { // wxListBox::HitTest
if(!This) throw wxe_badarg(0);
int Result = This->HitTest(point);
rt.addInt(Result);
- break;
+ break;
}
-case wxListBox_SetFirstItem_1_0: { // wxListBox::SetFirstItem
+case wxListBox_SetFirstItem_1_0: { // wxListBox::SetFirstItem
wxListBox *This = (wxListBox *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFirstItem((int) *n);
- break;
+ break;
}
-case wxListBox_SetFirstItem_1_1: { // wxListBox::SetFirstItem
+case wxListBox_SetFirstItem_1_1: { // wxListBox::SetFirstItem
wxListBox *This = (wxListBox *) getPtr(bp,memenv); bp += 4;
int * sLen = (int *) bp; bp += 4;
wxString s = wxString(bp, wxConvUTF8);
bp += *sLen+((8-((0+ *sLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetFirstItem(s);
- break;
+ break;
}
-case wxListCtrl_new_0: { // wxListCtrl::wxListCtrl
+case wxListCtrl_new_0: { // wxListCtrl::wxListCtrl
wxListCtrl * Result = new EwxListCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxListCtrl");
- break;
+ break;
}
-case wxListCtrl_new_2: { // wxListCtrl::wxListCtrl
+case wxListCtrl_new_2: { // wxListCtrl::wxListCtrl
wxWindowID winid=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -15147,7 +15147,7 @@ case wxListCtrl_new_2: { // wxListCtrl::wxListCtrl
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
winid = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -15169,41 +15169,41 @@ case wxListCtrl_new_2: { // wxListCtrl::wxListCtrl
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxListCtrl * Result = new EwxListCtrl(parent,winid,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxListCtrl");
- break;
+ break;
}
-case wxListCtrl_Arrange: { // wxListCtrl::Arrange
+case wxListCtrl_Arrange: { // wxListCtrl::Arrange
int flag=wxLIST_ALIGN_DEFAULT;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flag = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Arrange(flag);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_AssignImageList: { // wxListCtrl::AssignImageList
+case wxListCtrl_AssignImageList: { // wxListCtrl::AssignImageList
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
int * which = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AssignImageList(imageList,(int) *which);
- break;
+ break;
}
-case wxListCtrl_ClearAll: { // wxListCtrl::ClearAll
+case wxListCtrl_ClearAll: { // wxListCtrl::ClearAll
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ClearAll();
- break;
+ break;
}
-case wxListCtrl_Create: { // wxListCtrl::Create
+case wxListCtrl_Create: { // wxListCtrl::Create
wxWindowID winid=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -15211,7 +15211,7 @@ case wxListCtrl_Create: { // wxListCtrl::Create
const wxValidator * validator= &wxDefaultValidator;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
winid = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -15233,69 +15233,69 @@ case wxListCtrl_Create: { // wxListCtrl::Create
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,winid,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_DeleteAllItems: { // wxListCtrl::DeleteAllItems
+case wxListCtrl_DeleteAllItems: { // wxListCtrl::DeleteAllItems
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteAllItems();
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_DeleteColumn: { // wxListCtrl::DeleteColumn
+case wxListCtrl_DeleteColumn: { // wxListCtrl::DeleteColumn
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteColumn((int) *col);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_DeleteItem: { // wxListCtrl::DeleteItem
+case wxListCtrl_DeleteItem: { // wxListCtrl::DeleteItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteItem((long) *item);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_EditLabel: { // wxListCtrl::EditLabel
+case wxListCtrl_EditLabel: { // wxListCtrl::EditLabel
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxTextCtrl * Result = (wxTextCtrl*)This->EditLabel((long) *item);
rt.addRef(getRef((void *)Result,memenv), "wxTextCtrl");
- break;
+ break;
}
-case wxListCtrl_EnsureVisible: { // wxListCtrl::EnsureVisible
+case wxListCtrl_EnsureVisible: { // wxListCtrl::EnsureVisible
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->EnsureVisible((long) *item);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_FindItem_3_0: { // wxListCtrl::FindItem
+case wxListCtrl_FindItem_3_0: { // wxListCtrl::FindItem
bool partial=false;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * start = (int *) bp; bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
bp += *strLen+((8-((4+ *strLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
partial = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
long Result = This->FindItem((long) *start,str,partial);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_FindItem_3_1: { // wxListCtrl::FindItem
+case wxListCtrl_FindItem_3_1: { // wxListCtrl::FindItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * start = (int *) bp; bp += 4;
int * ptX = (int *) bp; bp += 4;
@@ -15305,87 +15305,94 @@ case wxListCtrl_FindItem_3_1: { // wxListCtrl::FindItem
if(!This) throw wxe_badarg(0);
long Result = This->FindItem((long) *start,pt,(int) *direction);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetColumn: { // wxListCtrl::GetColumn
+case wxListCtrl_GetColumn: { // wxListCtrl::GetColumn
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
wxListItem *item = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetColumn((int) *col,*item);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_GetColumnCount: { // wxListCtrl::GetColumnCount
+case wxListCtrl_GetColumnCount: { // wxListCtrl::GetColumnCount
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColumnCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetColumnWidth: { // wxListCtrl::GetColumnWidth
+case wxListCtrl_GetColumnWidth: { // wxListCtrl::GetColumnWidth
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColumnWidth((int) *col);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetCountPerPage: { // wxListCtrl::GetCountPerPage
+case wxListCtrl_GetCountPerPage: { // wxListCtrl::GetCountPerPage
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCountPerPage();
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetImageList: { // wxListCtrl::GetImageList
+case wxListCtrl_GetEditControl: { // wxListCtrl::GetEditControl
+ wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
+ if(!This) throw wxe_badarg(0);
+ wxTextCtrl * Result = (wxTextCtrl*)This->GetEditControl();
+ rt.addRef(getRef((void *)Result,memenv), "wxTextCtrl");
+ break;
+}
+case wxListCtrl_GetImageList: { // wxListCtrl::GetImageList
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * which = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxImageList * Result = (wxImageList*)This->GetImageList((int) *which);
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxListCtrl_GetItem: { // wxListCtrl::GetItem
+case wxListCtrl_GetItem: { // wxListCtrl::GetItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
wxListItem *info = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetItem(*info);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_GetItemBackgroundColour: { // wxListCtrl::GetItemBackgroundColour
+case wxListCtrl_GetItemBackgroundColour: { // wxListCtrl::GetItemBackgroundColour
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetItemBackgroundColour((long) *item);
rt.add(Result);
- break;
+ break;
}
-case wxListCtrl_GetItemCount: { // wxListCtrl::GetItemCount
+case wxListCtrl_GetItemCount: { // wxListCtrl::GetItemCount
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetItemCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetItemData: { // wxListCtrl::GetItemData
+case wxListCtrl_GetItemData: { // wxListCtrl::GetItemData
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxUIntPtr Result = This->GetItemData((long) *item);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetItemFont: { // wxListCtrl::GetItemFont
+case wxListCtrl_GetItemFont: { // wxListCtrl::GetItemFont
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetItemFont((long) *item)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxListCtrl_GetItemPosition: { // wxListCtrl::GetItemPosition
+case wxListCtrl_GetItemPosition: { // wxListCtrl::GetItemPosition
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * posX = (int *) bp; bp += 4;
@@ -15394,9 +15401,9 @@ case wxListCtrl_GetItemPosition: { // wxListCtrl::GetItemPosition
if(!This) throw wxe_badarg(0);
bool Result = This->GetItemPosition((long) *item,pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_GetItemRect: { // wxListCtrl::GetItemRect
+case wxListCtrl_GetItemRect: { // wxListCtrl::GetItemRect
int code=wxLIST_RECT_BOUNDS;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
@@ -15405,95 +15412,95 @@ case wxListCtrl_GetItemRect: { // wxListCtrl::GetItemRect
int * rectW = (int *) bp; bp += 4;
int * rectH = (int *) bp; bp += 4;
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
code = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->GetItemRect((long) *item,rect,code);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_GetItemSpacing: { // wxListCtrl::GetItemSpacing
+case wxListCtrl_GetItemSpacing: { // wxListCtrl::GetItemSpacing
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetItemSpacing();
rt.add(Result);
- break;
+ break;
}
-case wxListCtrl_GetItemState: { // wxListCtrl::GetItemState
+case wxListCtrl_GetItemState: { // wxListCtrl::GetItemState
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * stateMask = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetItemState((long) *item,(long) *stateMask);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetItemText: { // wxListCtrl::GetItemText
+case wxListCtrl_GetItemText: { // wxListCtrl::GetItemText
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetItemText((long) *item);
rt.add(Result);
- break;
+ break;
}
-case wxListCtrl_GetItemTextColour: { // wxListCtrl::GetItemTextColour
+case wxListCtrl_GetItemTextColour: { // wxListCtrl::GetItemTextColour
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetItemTextColour((long) *item);
rt.add(Result);
- break;
+ break;
}
-case wxListCtrl_GetNextItem: { // wxListCtrl::GetNextItem
+case wxListCtrl_GetNextItem: { // wxListCtrl::GetNextItem
int geometry=wxLIST_NEXT_ALL;
int state=wxLIST_STATE_DONTCARE;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
geometry = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
state = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
long Result = This->GetNextItem((long) *item,geometry,state);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetSelectedItemCount: { // wxListCtrl::GetSelectedItemCount
+case wxListCtrl_GetSelectedItemCount: { // wxListCtrl::GetSelectedItemCount
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelectedItemCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetTextColour: { // wxListCtrl::GetTextColour
+case wxListCtrl_GetTextColour: { // wxListCtrl::GetTextColour
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetTextColour();
rt.add(Result);
- break;
+ break;
}
-case wxListCtrl_GetTopItem: { // wxListCtrl::GetTopItem
+case wxListCtrl_GetTopItem: { // wxListCtrl::GetTopItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetTopItem();
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_GetViewRect: { // wxListCtrl::GetViewRect
+case wxListCtrl_GetViewRect: { // wxListCtrl::GetViewRect
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetViewRect();
rt.add(Result);
- break;
+ break;
}
-case wxListCtrl_HitTest: { // wxListCtrl::HitTest
+case wxListCtrl_HitTest: { // wxListCtrl::HitTest
int flags;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * pointX = (int *) bp; bp += 4;
@@ -15504,18 +15511,18 @@ case wxListCtrl_HitTest: { // wxListCtrl::HitTest
rt.addInt(Result);
rt.addInt(flags);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxListCtrl_InsertColumn_2: { // wxListCtrl::InsertColumn
+case wxListCtrl_InsertColumn_2: { // wxListCtrl::InsertColumn
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
wxListItem *info = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->InsertColumn((long) *col,*info);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_InsertColumn_3: { // wxListCtrl::InsertColumn
+case wxListCtrl_InsertColumn_3: { // wxListCtrl::InsertColumn
int format=wxLIST_FORMAT_LEFT;
int width=-1;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
@@ -15523,28 +15530,28 @@ case wxListCtrl_InsertColumn_3: { // wxListCtrl::InsertColumn
int * headingLen = (int *) bp; bp += 4;
wxString heading = wxString(bp, wxConvUTF8);
bp += *headingLen+((8-((4+ *headingLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
format = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
width = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
long Result = This->InsertColumn((long) *col,heading,format,width);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_InsertItem_1: { // wxListCtrl::InsertItem
+case wxListCtrl_InsertItem_1: { // wxListCtrl::InsertItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
wxListItem *info = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->InsertItem(*info);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_InsertItem_2_1: { // wxListCtrl::InsertItem
+case wxListCtrl_InsertItem_2_1: { // wxListCtrl::InsertItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
int * labelLen = (int *) bp; bp += 4;
@@ -15553,18 +15560,18 @@ case wxListCtrl_InsertItem_2_1: { // wxListCtrl::InsertItem
if(!This) throw wxe_badarg(0);
long Result = This->InsertItem((long) *index,label);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_InsertItem_2_0: { // wxListCtrl::InsertItem
+case wxListCtrl_InsertItem_2_0: { // wxListCtrl::InsertItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
int * imageIndex = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->InsertItem((long) *index,(int) *imageIndex);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_InsertItem_3: { // wxListCtrl::InsertItem
+case wxListCtrl_InsertItem_3: { // wxListCtrl::InsertItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
int * labelLen = (int *) bp; bp += 4;
@@ -15574,33 +15581,33 @@ case wxListCtrl_InsertItem_3: { // wxListCtrl::InsertItem
if(!This) throw wxe_badarg(0);
long Result = This->InsertItem((long) *index,label,(int) *imageIndex);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_RefreshItem: { // wxListCtrl::RefreshItem
+case wxListCtrl_RefreshItem: { // wxListCtrl::RefreshItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->RefreshItem((long) *item);
- break;
+ break;
}
-case wxListCtrl_RefreshItems: { // wxListCtrl::RefreshItems
+case wxListCtrl_RefreshItems: { // wxListCtrl::RefreshItems
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * itemFrom = (int *) bp; bp += 4;
int * itemTo = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->RefreshItems((long) *itemFrom,(long) *itemTo);
- break;
+ break;
}
-case wxListCtrl_ScrollList: { // wxListCtrl::ScrollList
+case wxListCtrl_ScrollList: { // wxListCtrl::ScrollList
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * dx = (int *) bp; bp += 4;
int * dy = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ScrollList((int) *dx,(int) *dy);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetBackgroundColour: { // wxListCtrl::SetBackgroundColour
+case wxListCtrl_SetBackgroundColour: { // wxListCtrl::SetBackgroundColour
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -15610,43 +15617,43 @@ case wxListCtrl_SetBackgroundColour: { // wxListCtrl::SetBackgroundColour
if(!This) throw wxe_badarg(0);
bool Result = This->SetBackgroundColour(colour);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetColumn: { // wxListCtrl::SetColumn
+case wxListCtrl_SetColumn: { // wxListCtrl::SetColumn
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
wxListItem *item = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetColumn((int) *col,*item);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetColumnWidth: { // wxListCtrl::SetColumnWidth
+case wxListCtrl_SetColumnWidth: { // wxListCtrl::SetColumnWidth
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetColumnWidth((int) *col,(int) *width);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetImageList: { // wxListCtrl::SetImageList
+case wxListCtrl_SetImageList: { // wxListCtrl::SetImageList
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
int * which = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetImageList(imageList,(int) *which);
- break;
+ break;
}
-case wxListCtrl_SetItem_1: { // wxListCtrl::SetItem
+case wxListCtrl_SetItem_1: { // wxListCtrl::SetItem
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
wxListItem *info = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetItem(*info);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetItem_4: { // wxListCtrl::SetItem
+case wxListCtrl_SetItem_4: { // wxListCtrl::SetItem
int imageId=-1;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
@@ -15654,17 +15661,17 @@ case wxListCtrl_SetItem_4: { // wxListCtrl::SetItem
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
long Result = This->SetItem((long) *index,(int) *col,label,imageId);
rt.addInt(Result);
- break;
+ break;
}
-case wxListCtrl_SetItemBackgroundColour: { // wxListCtrl::SetItemBackgroundColour
+case wxListCtrl_SetItemBackgroundColour: { // wxListCtrl::SetItemBackgroundColour
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * colR = (int *) bp; bp += 4;
@@ -15674,49 +15681,49 @@ case wxListCtrl_SetItemBackgroundColour: { // wxListCtrl::SetItemBackgroundColou
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetItemBackgroundColour((long) *item,col);
- break;
+ break;
}
-case wxListCtrl_SetItemCount: { // wxListCtrl::SetItemCount
+case wxListCtrl_SetItemCount: { // wxListCtrl::SetItemCount
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * count = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetItemCount((long) *count);
- break;
+ break;
}
-case wxListCtrl_SetItemData: { // wxListCtrl::SetItemData
+case wxListCtrl_SetItemData: { // wxListCtrl::SetItemData
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * data = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemData((long) *item,(long) *data);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetItemFont: { // wxListCtrl::SetItemFont
+case wxListCtrl_SetItemFont: { // wxListCtrl::SetItemFont
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
wxFont *f = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetItemFont((long) *item,*f);
- break;
+ break;
}
-case wxListCtrl_SetItemImage: { // wxListCtrl::SetItemImage
+case wxListCtrl_SetItemImage: { // wxListCtrl::SetItemImage
int selImage=-1;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * image = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
selImage = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemImage((long) *item,(int) *image,selImage);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetItemColumnImage: { // wxListCtrl::SetItemColumnImage
+case wxListCtrl_SetItemColumnImage: { // wxListCtrl::SetItemColumnImage
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * column = (int *) bp; bp += 4;
@@ -15724,9 +15731,9 @@ case wxListCtrl_SetItemColumnImage: { // wxListCtrl::SetItemColumnImage
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemColumnImage((long) *item,(long) *column,(int) *image);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetItemPosition: { // wxListCtrl::SetItemPosition
+case wxListCtrl_SetItemPosition: { // wxListCtrl::SetItemPosition
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * posX = (int *) bp; bp += 4;
@@ -15735,9 +15742,9 @@ case wxListCtrl_SetItemPosition: { // wxListCtrl::SetItemPosition
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemPosition((long) *item,pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetItemState: { // wxListCtrl::SetItemState
+case wxListCtrl_SetItemState: { // wxListCtrl::SetItemState
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * state = (int *) bp; bp += 4;
@@ -15745,9 +15752,9 @@ case wxListCtrl_SetItemState: { // wxListCtrl::SetItemState
if(!This) throw wxe_badarg(0);
bool Result = This->SetItemState((long) *item,(long) *state,(long) *stateMask);
rt.addBool(Result);
- break;
+ break;
}
-case wxListCtrl_SetItemText: { // wxListCtrl::SetItemText
+case wxListCtrl_SetItemText: { // wxListCtrl::SetItemText
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * strLen = (int *) bp; bp += 4;
@@ -15755,9 +15762,9 @@ case wxListCtrl_SetItemText: { // wxListCtrl::SetItemText
bp += *strLen+((8-((4+ *strLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetItemText((long) *item,str);
- break;
+ break;
}
-case wxListCtrl_SetItemTextColour: { // wxListCtrl::SetItemTextColour
+case wxListCtrl_SetItemTextColour: { // wxListCtrl::SetItemTextColour
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
int * colR = (int *) bp; bp += 4;
@@ -15767,22 +15774,22 @@ case wxListCtrl_SetItemTextColour: { // wxListCtrl::SetItemTextColour
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetItemTextColour((long) *item,col);
- break;
+ break;
}
-case wxListCtrl_SetSingleStyle: { // wxListCtrl::SetSingleStyle
+case wxListCtrl_SetSingleStyle: { // wxListCtrl::SetSingleStyle
bool add=true;
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
add = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetSingleStyle((long) *style,add);
- break;
+ break;
}
-case wxListCtrl_SetTextColour: { // wxListCtrl::SetTextColour
+case wxListCtrl_SetTextColour: { // wxListCtrl::SetTextColour
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -15791,14 +15798,14 @@ case wxListCtrl_SetTextColour: { // wxListCtrl::SetTextColour
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetTextColour(col);
- break;
+ break;
}
-case wxListCtrl_SetWindowStyleFlag: { // wxListCtrl::SetWindowStyleFlag
+case wxListCtrl_SetWindowStyleFlag: { // wxListCtrl::SetWindowStyleFlag
wxListCtrl *This = (wxListCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWindowStyleFlag((long) *style);
- break;
+ break;
}
case wxListCtrl_SortItems: { // wxListCtrl::SortItems taylormade
@@ -15823,175 +15830,175 @@ case wxListCtrl_SortItems: { // wxListCtrl::SortItems taylormade
rt.addBool(Result);
break;
}
-case wxListView_ClearColumnImage: { // wxListView::ClearColumnImage
+case wxListView_ClearColumnImage: { // wxListView::ClearColumnImage
wxListView *This = (wxListView *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ClearColumnImage((int) *col);
- break;
+ break;
}
-case wxListView_Focus: { // wxListView::Focus
+case wxListView_Focus: { // wxListView::Focus
wxListView *This = (wxListView *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Focus((long) *index);
- break;
+ break;
}
-case wxListView_GetFirstSelected: { // wxListView::GetFirstSelected
+case wxListView_GetFirstSelected: { // wxListView::GetFirstSelected
wxListView *This = (wxListView *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetFirstSelected();
rt.addInt(Result);
- break;
+ break;
}
-case wxListView_GetFocusedItem: { // wxListView::GetFocusedItem
+case wxListView_GetFocusedItem: { // wxListView::GetFocusedItem
wxListView *This = (wxListView *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetFocusedItem();
rt.addInt(Result);
- break;
+ break;
}
-case wxListView_GetNextSelected: { // wxListView::GetNextSelected
+case wxListView_GetNextSelected: { // wxListView::GetNextSelected
wxListView *This = (wxListView *) getPtr(bp,memenv); bp += 4;
int * item = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetNextSelected((long) *item);
rt.addInt(Result);
- break;
+ break;
}
-case wxListView_IsSelected: { // wxListView::IsSelected
+case wxListView_IsSelected: { // wxListView::IsSelected
wxListView *This = (wxListView *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSelected((long) *index);
rt.addBool(Result);
- break;
+ break;
}
-case wxListView_Select: { // wxListView::Select
+case wxListView_Select: { // wxListView::Select
bool on=true;
wxListView *This = (wxListView *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
on = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Select((long) *n,on);
- break;
+ break;
}
-case wxListView_SetColumnImage: { // wxListView::SetColumnImage
+case wxListView_SetColumnImage: { // wxListView::SetColumnImage
wxListView *This = (wxListView *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
int * image = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColumnImage((int) *col,(int) *image);
- break;
+ break;
}
-case wxListItem_new_0: { // wxListItem::wxListItem
+case wxListItem_new_0: { // wxListItem::wxListItem
wxListItem * Result = new EwxListItem();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxListItem");
- break;
+ break;
}
-case wxListItem_new_1: { // wxListItem::wxListItem
+case wxListItem_new_1: { // wxListItem::wxListItem
wxListItem *item = (wxListItem *) getPtr(bp,memenv); bp += 4;
wxListItem * Result = new EwxListItem(*item);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxListItem");
- break;
+ break;
}
-case wxListItem_Clear: { // wxListItem::Clear
+case wxListItem_Clear: { // wxListItem::Clear
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Clear();
- break;
+ break;
}
-case wxListItem_GetAlign: { // wxListItem::GetAlign
+case wxListItem_GetAlign: { // wxListItem::GetAlign
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetAlign();
rt.addInt(Result);
- break;
+ break;
}
-case wxListItem_GetBackgroundColour: { // wxListItem::GetBackgroundColour
+case wxListItem_GetBackgroundColour: { // wxListItem::GetBackgroundColour
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetBackgroundColour();
rt.add(Result);
- break;
+ break;
}
-case wxListItem_GetColumn: { // wxListItem::GetColumn
+case wxListItem_GetColumn: { // wxListItem::GetColumn
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColumn();
rt.addInt(Result);
- break;
+ break;
}
-case wxListItem_GetFont: { // wxListItem::GetFont
+case wxListItem_GetFont: { // wxListItem::GetFont
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetFont()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxListItem_GetId: { // wxListItem::GetId
+case wxListItem_GetId: { // wxListItem::GetId
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetId();
rt.addInt(Result);
- break;
+ break;
}
-case wxListItem_GetImage: { // wxListItem::GetImage
+case wxListItem_GetImage: { // wxListItem::GetImage
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetImage();
rt.addInt(Result);
- break;
+ break;
}
-case wxListItem_GetMask: { // wxListItem::GetMask
+case wxListItem_GetMask: { // wxListItem::GetMask
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetMask();
rt.addInt(Result);
- break;
+ break;
}
-case wxListItem_GetState: { // wxListItem::GetState
+case wxListItem_GetState: { // wxListItem::GetState
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetState();
rt.addInt(Result);
- break;
+ break;
}
-case wxListItem_GetText: { // wxListItem::GetText
+case wxListItem_GetText: { // wxListItem::GetText
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString * Result = &This->GetText();
rt.add(Result);
- break;
+ break;
}
-case wxListItem_GetTextColour: { // wxListItem::GetTextColour
+case wxListItem_GetTextColour: { // wxListItem::GetTextColour
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetTextColour();
rt.add(Result);
- break;
+ break;
}
-case wxListItem_GetWidth: { // wxListItem::GetWidth
+case wxListItem_GetWidth: { // wxListItem::GetWidth
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxListItem_SetAlign: { // wxListItem::SetAlign
+case wxListItem_SetAlign: { // wxListItem::SetAlign
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
wxListColumnFormat align = *(wxListColumnFormat *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetAlign((wxListColumnFormat) align);
- break;
+ break;
}
-case wxListItem_SetBackgroundColour: { // wxListItem::SetBackgroundColour
+case wxListItem_SetBackgroundColour: { // wxListItem::SetBackgroundColour
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * colBackR = (int *) bp; bp += 4;
int * colBackG = (int *) bp; bp += 4;
@@ -16000,67 +16007,67 @@ case wxListItem_SetBackgroundColour: { // wxListItem::SetBackgroundColour
wxColour colBack = wxColour(*colBackR,*colBackG,*colBackB,*colBackA);
if(!This) throw wxe_badarg(0);
This->SetBackgroundColour(colBack);
- break;
+ break;
}
-case wxListItem_SetColumn: { // wxListItem::SetColumn
+case wxListItem_SetColumn: { // wxListItem::SetColumn
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * col = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColumn((int) *col);
- break;
+ break;
}
-case wxListItem_SetFont: { // wxListItem::SetFont
+case wxListItem_SetFont: { // wxListItem::SetFont
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFont(*font);
- break;
+ break;
}
-case wxListItem_SetId: { // wxListItem::SetId
+case wxListItem_SetId: { // wxListItem::SetId
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetId((long) *id);
- break;
+ break;
}
-case wxListItem_SetImage: { // wxListItem::SetImage
+case wxListItem_SetImage: { // wxListItem::SetImage
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * image = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetImage((int) *image);
- break;
+ break;
}
-case wxListItem_SetMask: { // wxListItem::SetMask
+case wxListItem_SetMask: { // wxListItem::SetMask
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * mask = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMask((long) *mask);
- break;
+ break;
}
-case wxListItem_SetState: { // wxListItem::SetState
+case wxListItem_SetState: { // wxListItem::SetState
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * state = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetState((long) *state);
- break;
+ break;
}
-case wxListItem_SetStateMask: { // wxListItem::SetStateMask
+case wxListItem_SetStateMask: { // wxListItem::SetStateMask
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * stateMask = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStateMask((long) *stateMask);
- break;
+ break;
}
-case wxListItem_SetText: { // wxListItem::SetText
+case wxListItem_SetText: { // wxListItem::SetText
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetText(text);
- break;
+ break;
}
-case wxListItem_SetTextColour: { // wxListItem::SetTextColour
+case wxListItem_SetTextColour: { // wxListItem::SetTextColour
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * colTextR = (int *) bp; bp += 4;
int * colTextG = (int *) bp; bp += 4;
@@ -16069,57 +16076,57 @@ case wxListItem_SetTextColour: { // wxListItem::SetTextColour
wxColour colText = wxColour(*colTextR,*colTextG,*colTextB,*colTextA);
if(!This) throw wxe_badarg(0);
This->SetTextColour(colText);
- break;
+ break;
}
-case wxListItem_SetWidth: { // wxListItem::SetWidth
+case wxListItem_SetWidth: { // wxListItem::SetWidth
wxListItem *This = (wxListItem *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWidth((int) *width);
- break;
+ break;
}
-case wxImageList_new_0: { // wxImageList::wxImageList
+case wxImageList_new_0: { // wxImageList::wxImageList
wxImageList * Result = new EwxImageList();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxImageList_new_3: { // wxImageList::wxImageList
+case wxImageList_new_3: { // wxImageList::wxImageList
bool mask=true;
int initialCount=1;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
mask = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
initialCount = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxImageList * Result = new EwxImageList((int) *width,(int) *height,mask,initialCount);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxImageList_Add_1: { // wxImageList::Add
+case wxImageList_Add_1: { // wxImageList::Add
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->Add(*bitmap);
rt.addInt(Result);
- break;
+ break;
}
-case wxImageList_Add_2_0: { // wxImageList::Add
+case wxImageList_Add_2_0: { // wxImageList::Add
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxBitmap *mask = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->Add(*bitmap,*mask);
rt.addInt(Result);
- break;
+ break;
}
-case wxImageList_Add_2_1: { // wxImageList::Add
+case wxImageList_Add_2_1: { // wxImageList::Add
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
int * maskColourR = (int *) bp; bp += 4;
@@ -16130,29 +16137,29 @@ case wxImageList_Add_2_1: { // wxImageList::Add
if(!This) throw wxe_badarg(0);
int Result = This->Add(*bitmap,maskColour);
rt.addInt(Result);
- break;
+ break;
}
-case wxImageList_Create: { // wxImageList::Create
+case wxImageList_Create: { // wxImageList::Create
bool mask=true;
int initialCount=1;
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
int * height = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
mask = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
initialCount = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create((int) *width,(int) *height,mask,initialCount);
rt.addBool(Result);
- break;
+ break;
}
-case wxImageList_Draw: { // wxImageList::Draw
+case wxImageList_Draw: { // wxImageList::Draw
int flags=wxIMAGELIST_DRAW_NORMAL;
bool solidBackground=false;
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
@@ -16161,43 +16168,43 @@ case wxImageList_Draw: { // wxImageList::Draw
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
solidBackground = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Draw((int) *index,*dc,(int) *x,(int) *y,flags,solidBackground);
rt.addBool(Result);
- break;
+ break;
}
-case wxImageList_GetBitmap: { // wxImageList::GetBitmap
+case wxImageList_GetBitmap: { // wxImageList::GetBitmap
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxBitmap * Result = new wxBitmap(This->GetBitmap((int) *index)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxImageList_GetIcon: { // wxImageList::GetIcon
+case wxImageList_GetIcon: { // wxImageList::GetIcon
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxIcon * Result = new wxIcon(This->GetIcon((int) *index)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxIcon");
- break;
+ break;
}
-case wxImageList_GetImageCount: { // wxImageList::GetImageCount
+case wxImageList_GetImageCount: { // wxImageList::GetImageCount
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetImageCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxImageList_GetSize: { // wxImageList::GetSize
+case wxImageList_GetSize: { // wxImageList::GetSize
int width;
int height;
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
@@ -16208,33 +16215,33 @@ case wxImageList_GetSize: { // wxImageList::GetSize
rt.addInt(width);
rt.addInt(height);
rt.addTupleCount(3);
- break;
+ break;
}
-case wxImageList_Remove: { // wxImageList::Remove
+case wxImageList_Remove: { // wxImageList::Remove
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Remove((int) *index);
rt.addBool(Result);
- break;
+ break;
}
-case wxImageList_RemoveAll: { // wxImageList::RemoveAll
+case wxImageList_RemoveAll: { // wxImageList::RemoveAll
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RemoveAll();
rt.addBool(Result);
- break;
+ break;
}
-case wxImageList_Replace_2: { // wxImageList::Replace
+case wxImageList_Replace_2: { // wxImageList::Replace
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Replace((int) *index,*bitmap);
rt.addBool(Result);
- break;
+ break;
}
-case wxImageList_Replace_3: { // wxImageList::Replace
+case wxImageList_Replace_3: { // wxImageList::Replace
wxImageList *This = (wxImageList *) getPtr(bp,memenv); bp += 4;
int * index = (int *) bp; bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
@@ -16242,15 +16249,15 @@ case wxImageList_Replace_3: { // wxImageList::Replace
if(!This) throw wxe_badarg(0);
bool Result = This->Replace((int) *index,*bitmap,*mask);
rt.addBool(Result);
- break;
+ break;
}
-case wxTextAttr_new_0: { // wxTextAttr::wxTextAttr
+case wxTextAttr_new_0: { // wxTextAttr::wxTextAttr
wxTextAttr * Result = new wxTextAttr();
newPtr((void *) Result, 102, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTextAttr");
- break;
+ break;
}
-case wxTextAttr_new_2: { // wxTextAttr::wxTextAttr
+case wxTextAttr_new_2: { // wxTextAttr::wxTextAttr
wxColour colBack= wxNullColour;
const wxFont * font= &wxNullFont;
wxTextAttrAlignment alignment=wxTEXT_ALIGNMENT_DEFAULT;
@@ -16259,7 +16266,7 @@ case wxTextAttr_new_2: { // wxTextAttr::wxTextAttr
int * colTextB = (int *) bp; bp += 4;
int * colTextA = (int *) bp; bp += 4;
wxColour colText = wxColour(*colTextR,*colTextG,*colTextB,*colTextA);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * colBackR = (int *) bp; bp += 4;
int * colBackG = (int *) bp; bp += 4;
@@ -16274,111 +16281,111 @@ font = (wxFont *) getPtr(bp,memenv); bp += 4;
case 3: {bp += 4;
alignment = *(wxTextAttrAlignment *) bp; bp += 4;;
} break;
- }};
+ }};
wxTextAttr * Result = new wxTextAttr(colText,colBack,*font,(wxTextAttrAlignment) alignment);
newPtr((void *) Result, 102, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTextAttr");
- break;
+ break;
}
-case wxTextAttr_GetAlignment: { // wxTextAttr::GetAlignment
+case wxTextAttr_GetAlignment: { // wxTextAttr::GetAlignment
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetAlignment();
rt.addInt(Result);
- break;
+ break;
}
-case wxTextAttr_GetBackgroundColour: { // wxTextAttr::GetBackgroundColour
+case wxTextAttr_GetBackgroundColour: { // wxTextAttr::GetBackgroundColour
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetBackgroundColour();
rt.add((*Result));
- break;
+ break;
}
-case wxTextAttr_GetFont: { // wxTextAttr::GetFont
+case wxTextAttr_GetFont: { // wxTextAttr::GetFont
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxFont * Result = &This->GetFont();
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxTextAttr_GetLeftIndent: { // wxTextAttr::GetLeftIndent
+case wxTextAttr_GetLeftIndent: { // wxTextAttr::GetLeftIndent
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetLeftIndent();
rt.addInt(Result);
- break;
+ break;
}
-case wxTextAttr_GetLeftSubIndent: { // wxTextAttr::GetLeftSubIndent
+case wxTextAttr_GetLeftSubIndent: { // wxTextAttr::GetLeftSubIndent
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetLeftSubIndent();
rt.addInt(Result);
- break;
+ break;
}
-case wxTextAttr_GetRightIndent: { // wxTextAttr::GetRightIndent
+case wxTextAttr_GetRightIndent: { // wxTextAttr::GetRightIndent
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetRightIndent();
rt.addInt(Result);
- break;
+ break;
}
-case wxTextAttr_GetTabs: { // wxTextAttr::GetTabs
+case wxTextAttr_GetTabs: { // wxTextAttr::GetTabs
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxArrayInt Result = This->GetTabs();
rt.add(Result);
- break;
+ break;
}
-case wxTextAttr_GetTextColour: { // wxTextAttr::GetTextColour
+case wxTextAttr_GetTextColour: { // wxTextAttr::GetTextColour
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetTextColour();
rt.add((*Result));
- break;
+ break;
}
-case wxTextAttr_HasBackgroundColour: { // wxTextAttr::HasBackgroundColour
+case wxTextAttr_HasBackgroundColour: { // wxTextAttr::HasBackgroundColour
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasBackgroundColour();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextAttr_HasFont: { // wxTextAttr::HasFont
+case wxTextAttr_HasFont: { // wxTextAttr::HasFont
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasFont();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextAttr_HasTextColour: { // wxTextAttr::HasTextColour
+case wxTextAttr_HasTextColour: { // wxTextAttr::HasTextColour
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasTextColour();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextAttr_GetFlags: { // wxTextAttr::GetFlags
+case wxTextAttr_GetFlags: { // wxTextAttr::GetFlags
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetFlags();
rt.addInt(Result);
- break;
+ break;
}
-case wxTextAttr_IsDefault: { // wxTextAttr::IsDefault
+case wxTextAttr_IsDefault: { // wxTextAttr::IsDefault
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsDefault();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextAttr_SetAlignment: { // wxTextAttr::SetAlignment
+case wxTextAttr_SetAlignment: { // wxTextAttr::SetAlignment
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
wxTextAttrAlignment alignment = *(wxTextAttrAlignment *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetAlignment((wxTextAttrAlignment) alignment);
- break;
+ break;
}
-case wxTextAttr_SetBackgroundColour: { // wxTextAttr::SetBackgroundColour
+case wxTextAttr_SetBackgroundColour: { // wxTextAttr::SetBackgroundColour
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
int * colBackR = (int *) bp; bp += 4;
int * colBackG = (int *) bp; bp += 4;
@@ -16387,49 +16394,49 @@ case wxTextAttr_SetBackgroundColour: { // wxTextAttr::SetBackgroundColour
wxColour colBack = wxColour(*colBackR,*colBackG,*colBackB,*colBackA);
if(!This) throw wxe_badarg(0);
This->SetBackgroundColour(colBack);
- break;
+ break;
}
-case wxTextAttr_SetFlags: { // wxTextAttr::SetFlags
+case wxTextAttr_SetFlags: { // wxTextAttr::SetFlags
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
int * flags = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFlags((long) *flags);
- break;
+ break;
}
-case wxTextAttr_SetFont: { // wxTextAttr::SetFont
+case wxTextAttr_SetFont: { // wxTextAttr::SetFont
long flags=(0x0004|0x0008|0x0010|0x0020|0x0040);
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetFont(*font,flags);
- break;
+ break;
}
-case wxTextAttr_SetLeftIndent: { // wxTextAttr::SetLeftIndent
+case wxTextAttr_SetLeftIndent: { // wxTextAttr::SetLeftIndent
int subIndent=0;
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
int * indent = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
subIndent = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetLeftIndent((int) *indent,subIndent);
- break;
+ break;
}
-case wxTextAttr_SetRightIndent: { // wxTextAttr::SetRightIndent
+case wxTextAttr_SetRightIndent: { // wxTextAttr::SetRightIndent
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
int * indent = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRightIndent((int) *indent);
- break;
+ break;
}
-case wxTextAttr_SetTabs: { // wxTextAttr::SetTabs
+case wxTextAttr_SetTabs: { // wxTextAttr::SetTabs
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
int * tabsLen = (int *) bp; bp += 4;
wxArrayInt tabs;
@@ -16437,9 +16444,9 @@ case wxTextAttr_SetTabs: { // wxTextAttr::SetTabs
bp += ((*tabsLen + 2) % 2 )*4;
if(!This) throw wxe_badarg(0);
This->SetTabs(tabs);
- break;
+ break;
}
-case wxTextAttr_SetTextColour: { // wxTextAttr::SetTextColour
+case wxTextAttr_SetTextColour: { // wxTextAttr::SetTextColour
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
int * colTextR = (int *) bp; bp += 4;
int * colTextG = (int *) bp; bp += 4;
@@ -16448,15 +16455,15 @@ case wxTextAttr_SetTextColour: { // wxTextAttr::SetTextColour
wxColour colText = wxColour(*colTextR,*colTextG,*colTextB,*colTextA);
if(!This) throw wxe_badarg(0);
This->SetTextColour(colText);
- break;
+ break;
}
-case wxTextAttr_destroy: { // wxTextAttr::destroy
+case wxTextAttr_destroy: { // wxTextAttr::destroy
wxTextAttr *This = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxTextCtrl_new_3: { // wxTextCtrl::wxTextCtrl
+case wxTextCtrl_new_3: { // wxTextCtrl::wxTextCtrl
wxString value= wxEmptyString;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -16464,7 +16471,7 @@ case wxTextCtrl_new_3: { // wxTextCtrl::wxTextCtrl
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * valueLen = (int *) bp; bp += 4;
value = wxString(bp, wxConvUTF8);
@@ -16488,75 +16495,75 @@ case wxTextCtrl_new_3: { // wxTextCtrl::wxTextCtrl
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxTextCtrl * Result = new EwxTextCtrl(parent,(wxWindowID) *id,value,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTextCtrl");
- break;
+ break;
}
-case wxTextCtrl_new_0: { // wxTextCtrl::wxTextCtrl
+case wxTextCtrl_new_0: { // wxTextCtrl::wxTextCtrl
wxTextCtrl * Result = new EwxTextCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTextCtrl");
- break;
+ break;
}
-case wxTextCtrl_AppendText: { // wxTextCtrl::AppendText
+case wxTextCtrl_AppendText: { // wxTextCtrl::AppendText
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->AppendText(text);
- break;
+ break;
}
-case wxTextCtrl_CanCopy: { // wxTextCtrl::CanCopy
+case wxTextCtrl_CanCopy: { // wxTextCtrl::CanCopy
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanCopy();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_CanCut: { // wxTextCtrl::CanCut
+case wxTextCtrl_CanCut: { // wxTextCtrl::CanCut
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanCut();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_CanPaste: { // wxTextCtrl::CanPaste
+case wxTextCtrl_CanPaste: { // wxTextCtrl::CanPaste
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanPaste();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_CanRedo: { // wxTextCtrl::CanRedo
+case wxTextCtrl_CanRedo: { // wxTextCtrl::CanRedo
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanRedo();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_CanUndo: { // wxTextCtrl::CanUndo
+case wxTextCtrl_CanUndo: { // wxTextCtrl::CanUndo
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanUndo();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_Clear: { // wxTextCtrl::Clear
+case wxTextCtrl_Clear: { // wxTextCtrl::Clear
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Clear();
- break;
+ break;
}
-case wxTextCtrl_Copy: { // wxTextCtrl::Copy
+case wxTextCtrl_Copy: { // wxTextCtrl::Copy
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Copy();
- break;
+ break;
}
-case wxTextCtrl_Create: { // wxTextCtrl::Create
+case wxTextCtrl_Create: { // wxTextCtrl::Create
wxString value= wxEmptyString;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -16566,7 +16573,7 @@ case wxTextCtrl_Create: { // wxTextCtrl::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * valueLen = (int *) bp; bp += 4;
value = wxString(bp, wxConvUTF8);
@@ -16590,86 +16597,86 @@ case wxTextCtrl_Create: { // wxTextCtrl::Create
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,value,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_Cut: { // wxTextCtrl::Cut
+case wxTextCtrl_Cut: { // wxTextCtrl::Cut
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Cut();
- break;
+ break;
}
-case wxTextCtrl_DiscardEdits: { // wxTextCtrl::DiscardEdits
+case wxTextCtrl_DiscardEdits: { // wxTextCtrl::DiscardEdits
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DiscardEdits();
- break;
+ break;
}
-case wxTextCtrl_EmulateKeyPress: { // wxTextCtrl::EmulateKeyPress
+case wxTextCtrl_EmulateKeyPress: { // wxTextCtrl::EmulateKeyPress
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
wxKeyEvent *event = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->EmulateKeyPress(*event);
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_GetDefaultStyle: { // wxTextCtrl::GetDefaultStyle
+case wxTextCtrl_GetDefaultStyle: { // wxTextCtrl::GetDefaultStyle
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxTextAttr * Result = &This->GetDefaultStyle();
rt.addRef(getRef((void *)Result,memenv), "wxTextAttr");
- break;
+ break;
}
-case wxTextCtrl_GetInsertionPoint: { // wxTextCtrl::GetInsertionPoint
+case wxTextCtrl_GetInsertionPoint: { // wxTextCtrl::GetInsertionPoint
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetInsertionPoint();
rt.addInt(Result);
- break;
+ break;
}
-case wxTextCtrl_GetLastPosition: { // wxTextCtrl::GetLastPosition
+case wxTextCtrl_GetLastPosition: { // wxTextCtrl::GetLastPosition
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTextPos Result = This->GetLastPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxTextCtrl_GetLineLength: { // wxTextCtrl::GetLineLength
+case wxTextCtrl_GetLineLength: { // wxTextCtrl::GetLineLength
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * lineNo = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLineLength((long) *lineNo);
rt.addInt(Result);
- break;
+ break;
}
-case wxTextCtrl_GetLineText: { // wxTextCtrl::GetLineText
+case wxTextCtrl_GetLineText: { // wxTextCtrl::GetLineText
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * lineNo = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLineText((long) *lineNo);
rt.add(Result);
- break;
+ break;
}
-case wxTextCtrl_GetNumberOfLines: { // wxTextCtrl::GetNumberOfLines
+case wxTextCtrl_GetNumberOfLines: { // wxTextCtrl::GetNumberOfLines
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetNumberOfLines();
rt.addInt(Result);
- break;
+ break;
}
-case wxTextCtrl_GetRange: { // wxTextCtrl::GetRange
+case wxTextCtrl_GetRange: { // wxTextCtrl::GetRange
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * from = (int *) bp; bp += 4;
int * to = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetRange((long) *from,(long) *to);
rt.add(Result);
- break;
+ break;
}
-case wxTextCtrl_GetSelection: { // wxTextCtrl::GetSelection
+case wxTextCtrl_GetSelection: { // wxTextCtrl::GetSelection
long from;
long to;
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
@@ -16678,88 +16685,88 @@ case wxTextCtrl_GetSelection: { // wxTextCtrl::GetSelection
rt.addInt(from);
rt.addInt(to);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxTextCtrl_GetStringSelection: { // wxTextCtrl::GetStringSelection
+case wxTextCtrl_GetStringSelection: { // wxTextCtrl::GetStringSelection
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetStringSelection();
rt.add(Result);
- break;
+ break;
}
-case wxTextCtrl_GetStyle: { // wxTextCtrl::GetStyle
+case wxTextCtrl_GetStyle: { // wxTextCtrl::GetStyle
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * position = (int *) bp; bp += 4;
wxTextAttr *style = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetStyle((long) *position,*style);
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_GetValue: { // wxTextCtrl::GetValue
+case wxTextCtrl_GetValue: { // wxTextCtrl::GetValue
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetValue();
rt.add(Result);
- break;
+ break;
}
-case wxTextCtrl_IsEditable: { // wxTextCtrl::IsEditable
+case wxTextCtrl_IsEditable: { // wxTextCtrl::IsEditable
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEditable();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_IsModified: { // wxTextCtrl::IsModified
+case wxTextCtrl_IsModified: { // wxTextCtrl::IsModified
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsModified();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_IsMultiLine: { // wxTextCtrl::IsMultiLine
+case wxTextCtrl_IsMultiLine: { // wxTextCtrl::IsMultiLine
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsMultiLine();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_IsSingleLine: { // wxTextCtrl::IsSingleLine
+case wxTextCtrl_IsSingleLine: { // wxTextCtrl::IsSingleLine
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSingleLine();
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_LoadFile: { // wxTextCtrl::LoadFile
+case wxTextCtrl_LoadFile: { // wxTextCtrl::LoadFile
int fileType=0;
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * fileLen = (int *) bp; bp += 4;
wxString file = wxString(bp, wxConvUTF8);
bp += *fileLen+((8-((0+ *fileLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
fileType = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->LoadFile(file,fileType);
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_MarkDirty: { // wxTextCtrl::MarkDirty
+case wxTextCtrl_MarkDirty: { // wxTextCtrl::MarkDirty
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->MarkDirty();
- break;
+ break;
}
-case wxTextCtrl_Paste: { // wxTextCtrl::Paste
+case wxTextCtrl_Paste: { // wxTextCtrl::Paste
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Paste();
- break;
+ break;
}
-case wxTextCtrl_PositionToXY: { // wxTextCtrl::PositionToXY
+case wxTextCtrl_PositionToXY: { // wxTextCtrl::PositionToXY
long x;
long y;
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
@@ -16770,23 +16777,23 @@ case wxTextCtrl_PositionToXY: { // wxTextCtrl::PositionToXY
rt.addInt(x);
rt.addInt(y);
rt.addTupleCount(3);
- break;
+ break;
}
-case wxTextCtrl_Redo: { // wxTextCtrl::Redo
+case wxTextCtrl_Redo: { // wxTextCtrl::Redo
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Redo();
- break;
+ break;
}
-case wxTextCtrl_Remove: { // wxTextCtrl::Remove
+case wxTextCtrl_Remove: { // wxTextCtrl::Remove
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * from = (int *) bp; bp += 4;
int * to = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Remove((long) *from,(long) *to);
- break;
+ break;
}
-case wxTextCtrl_Replace: { // wxTextCtrl::Replace
+case wxTextCtrl_Replace: { // wxTextCtrl::Replace
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * from = (int *) bp; bp += 4;
int * to = (int *) bp; bp += 4;
@@ -16795,14 +16802,14 @@ case wxTextCtrl_Replace: { // wxTextCtrl::Replace
bp += *valueLen+((8-((0+ *valueLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->Replace((long) *from,(long) *to,value);
- break;
+ break;
}
-case wxTextCtrl_SaveFile: { // wxTextCtrl::SaveFile
+case wxTextCtrl_SaveFile: { // wxTextCtrl::SaveFile
wxString file= wxEmptyString;
int fileType=0;
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * fileLen = (int *) bp; bp += 4;
file = wxString(bp, wxConvUTF8);
@@ -16811,56 +16818,56 @@ case wxTextCtrl_SaveFile: { // wxTextCtrl::SaveFile
case 2: {bp += 4;
fileType = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->SaveFile(file,fileType);
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_SetDefaultStyle: { // wxTextCtrl::SetDefaultStyle
+case wxTextCtrl_SetDefaultStyle: { // wxTextCtrl::SetDefaultStyle
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
wxTextAttr *style = (wxTextAttr *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetDefaultStyle(*style);
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_SetEditable: { // wxTextCtrl::SetEditable
+case wxTextCtrl_SetEditable: { // wxTextCtrl::SetEditable
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * editable = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetEditable((bool) *editable);
- break;
+ break;
}
-case wxTextCtrl_SetInsertionPoint: { // wxTextCtrl::SetInsertionPoint
+case wxTextCtrl_SetInsertionPoint: { // wxTextCtrl::SetInsertionPoint
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetInsertionPoint((long) *pos);
- break;
+ break;
}
-case wxTextCtrl_SetInsertionPointEnd: { // wxTextCtrl::SetInsertionPointEnd
+case wxTextCtrl_SetInsertionPointEnd: { // wxTextCtrl::SetInsertionPointEnd
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetInsertionPointEnd();
- break;
+ break;
}
-case wxTextCtrl_SetMaxLength: { // wxTextCtrl::SetMaxLength
+case wxTextCtrl_SetMaxLength: { // wxTextCtrl::SetMaxLength
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
unsigned int * len = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMaxLength((long) *len);
- break;
+ break;
}
-case wxTextCtrl_SetSelection: { // wxTextCtrl::SetSelection
+case wxTextCtrl_SetSelection: { // wxTextCtrl::SetSelection
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * from = (int *) bp; bp += 4;
int * to = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((long) *from,(long) *to);
- break;
+ break;
}
-case wxTextCtrl_SetStyle: { // wxTextCtrl::SetStyle
+case wxTextCtrl_SetStyle: { // wxTextCtrl::SetStyle
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * start = (int *) bp; bp += 4;
int * end = (int *) bp; bp += 4;
@@ -16868,61 +16875,61 @@ case wxTextCtrl_SetStyle: { // wxTextCtrl::SetStyle
if(!This) throw wxe_badarg(0);
bool Result = This->SetStyle((long) *start,(long) *end,*style);
rt.addBool(Result);
- break;
+ break;
}
-case wxTextCtrl_SetValue: { // wxTextCtrl::SetValue
+case wxTextCtrl_SetValue: { // wxTextCtrl::SetValue
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * valueLen = (int *) bp; bp += 4;
wxString value = wxString(bp, wxConvUTF8);
bp += *valueLen+((8-((0+ *valueLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetValue(value);
- break;
+ break;
}
-case wxTextCtrl_ShowPosition: { // wxTextCtrl::ShowPosition
+case wxTextCtrl_ShowPosition: { // wxTextCtrl::ShowPosition
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ShowPosition((long) *pos);
- break;
+ break;
}
-case wxTextCtrl_Undo: { // wxTextCtrl::Undo
+case wxTextCtrl_Undo: { // wxTextCtrl::Undo
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Undo();
- break;
+ break;
}
-case wxTextCtrl_WriteText: { // wxTextCtrl::WriteText
+case wxTextCtrl_WriteText: { // wxTextCtrl::WriteText
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->WriteText(text);
- break;
+ break;
}
-case wxTextCtrl_XYToPosition: { // wxTextCtrl::XYToPosition
+case wxTextCtrl_XYToPosition: { // wxTextCtrl::XYToPosition
wxTextCtrl *This = (wxTextCtrl *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->XYToPosition((long) *x,(long) *y);
rt.addInt(Result);
- break;
+ break;
}
-case wxNotebook_new_0: { // wxNotebook::wxNotebook
+case wxNotebook_new_0: { // wxNotebook::wxNotebook
wxNotebook * Result = new EwxNotebook();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxNotebook");
- break;
+ break;
}
-case wxNotebook_new_3: { // wxNotebook::wxNotebook
+case wxNotebook_new_3: { // wxNotebook::wxNotebook
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * winid = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -16938,13 +16945,13 @@ case wxNotebook_new_3: { // wxNotebook::wxNotebook
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxNotebook * Result = new EwxNotebook(parent,(wxWindowID) *winid,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxNotebook");
- break;
+ break;
}
-case wxNotebook_AddPage: { // wxNotebook::AddPage
+case wxNotebook_AddPage: { // wxNotebook::AddPage
bool bSelect=false;
int imageId=-1;
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
@@ -16952,40 +16959,40 @@ case wxNotebook_AddPage: { // wxNotebook::AddPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AddPage(page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxNotebook_AdvanceSelection: { // wxNotebook::AdvanceSelection
+case wxNotebook_AdvanceSelection: { // wxNotebook::AdvanceSelection
bool forward=true;
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
forward = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AdvanceSelection(forward);
- break;
+ break;
}
-case wxNotebook_AssignImageList: { // wxNotebook::AssignImageList
+case wxNotebook_AssignImageList: { // wxNotebook::AssignImageList
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AssignImageList(imageList);
- break;
+ break;
}
-case wxNotebook_Create: { // wxNotebook::Create
+case wxNotebook_Create: { // wxNotebook::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -16993,7 +17000,7 @@ case wxNotebook_Create: { // wxNotebook::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -17009,102 +17016,102 @@ case wxNotebook_Create: { // wxNotebook::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxNotebook_DeleteAllPages: { // wxNotebook::DeleteAllPages
+case wxNotebook_DeleteAllPages: { // wxNotebook::DeleteAllPages
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteAllPages();
rt.addBool(Result);
- break;
+ break;
}
-case wxNotebook_DeletePage: { // wxNotebook::DeletePage
+case wxNotebook_DeletePage: { // wxNotebook::DeletePage
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * nPage = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeletePage((size_t) *nPage);
rt.addBool(Result);
- break;
+ break;
}
-case wxNotebook_RemovePage: { // wxNotebook::RemovePage
+case wxNotebook_RemovePage: { // wxNotebook::RemovePage
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * nPage = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RemovePage((size_t) *nPage);
rt.addBool(Result);
- break;
+ break;
}
-case wxNotebook_GetCurrentPage: { // wxNotebook::GetCurrentPage
+case wxNotebook_GetCurrentPage: { // wxNotebook::GetCurrentPage
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetCurrentPage();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxNotebook_GetImageList: { // wxNotebook::GetImageList
+case wxNotebook_GetImageList: { // wxNotebook::GetImageList
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxImageList * Result = (wxImageList*)This->GetImageList();
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxNotebook_GetPage: { // wxNotebook::GetPage
+case wxNotebook_GetPage: { // wxNotebook::GetPage
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetPage((size_t) *n);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxNotebook_GetPageCount: { // wxNotebook::GetPageCount
+case wxNotebook_GetPageCount: { // wxNotebook::GetPageCount
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->GetPageCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxNotebook_GetPageImage: { // wxNotebook::GetPageImage
+case wxNotebook_GetPageImage: { // wxNotebook::GetPageImage
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * nPage = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPageImage((size_t) *nPage);
rt.addInt(Result);
- break;
+ break;
}
-case wxNotebook_GetPageText: { // wxNotebook::GetPageText
+case wxNotebook_GetPageText: { // wxNotebook::GetPageText
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * nPage = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPageText((size_t) *nPage);
rt.add(Result);
- break;
+ break;
}
-case wxNotebook_GetRowCount: { // wxNotebook::GetRowCount
+case wxNotebook_GetRowCount: { // wxNotebook::GetRowCount
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRowCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxNotebook_GetSelection: { // wxNotebook::GetSelection
+case wxNotebook_GetSelection: { // wxNotebook::GetSelection
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxNotebook_GetThemeBackgroundColour: { // wxNotebook::GetThemeBackgroundColour
+case wxNotebook_GetThemeBackgroundColour: { // wxNotebook::GetThemeBackgroundColour
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetThemeBackgroundColour();
rt.add(Result);
- break;
+ break;
}
-case wxNotebook_HitTest: { // wxNotebook::HitTest
+case wxNotebook_HitTest: { // wxNotebook::HitTest
long flags;
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
@@ -17115,9 +17122,9 @@ case wxNotebook_HitTest: { // wxNotebook::HitTest
rt.addInt(Result);
rt.addInt(flags);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxNotebook_InsertPage: { // wxNotebook::InsertPage
+case wxNotebook_InsertPage: { // wxNotebook::InsertPage
bool bSelect=false;
int imageId=-1;
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
@@ -17126,54 +17133,54 @@ case wxNotebook_InsertPage: { // wxNotebook::InsertPage
int * strTextLen = (int *) bp; bp += 4;
wxString strText = wxString(bp, wxConvUTF8);
bp += *strTextLen+((8-((0+ *strTextLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertPage((size_t) *position,win,strText,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxNotebook_SetImageList: { // wxNotebook::SetImageList
+case wxNotebook_SetImageList: { // wxNotebook::SetImageList
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetImageList(imageList);
- break;
+ break;
}
-case wxNotebook_SetPadding: { // wxNotebook::SetPadding
+case wxNotebook_SetPadding: { // wxNotebook::SetPadding
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * paddingW = (int *) bp; bp += 4;
int * paddingH = (int *) bp; bp += 4;
wxSize padding = wxSize(*paddingW,*paddingH);
if(!This) throw wxe_badarg(0);
This->SetPadding(padding);
- break;
+ break;
}
-case wxNotebook_SetPageSize: { // wxNotebook::SetPageSize
+case wxNotebook_SetPageSize: { // wxNotebook::SetPageSize
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetPageSize(size);
- break;
+ break;
}
-case wxNotebook_SetPageImage: { // wxNotebook::SetPageImage
+case wxNotebook_SetPageImage: { // wxNotebook::SetPageImage
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * nPage = (int *) bp; bp += 4;
int * nImage = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageImage((size_t) *nPage,(int) *nImage);
rt.addBool(Result);
- break;
+ break;
}
-case wxNotebook_SetPageText: { // wxNotebook::SetPageText
+case wxNotebook_SetPageText: { // wxNotebook::SetPageText
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * nPage = (int *) bp; bp += 4;
int * strTextLen = (int *) bp; bp += 4;
@@ -17182,37 +17189,37 @@ case wxNotebook_SetPageText: { // wxNotebook::SetPageText
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageText((size_t) *nPage,strText);
rt.addBool(Result);
- break;
+ break;
}
-case wxNotebook_SetSelection: { // wxNotebook::SetSelection
+case wxNotebook_SetSelection: { // wxNotebook::SetSelection
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * nPage = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->SetSelection((size_t) *nPage);
rt.addInt(Result);
- break;
+ break;
}
-case wxNotebook_ChangeSelection: { // wxNotebook::ChangeSelection
+case wxNotebook_ChangeSelection: { // wxNotebook::ChangeSelection
wxNotebook *This = (wxNotebook *) getPtr(bp,memenv); bp += 4;
int * nPage = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->ChangeSelection((size_t) *nPage);
rt.addInt(Result);
- break;
+ break;
}
-case wxChoicebook_new_0: { // wxChoicebook::wxChoicebook
+case wxChoicebook_new_0: { // wxChoicebook::wxChoicebook
wxChoicebook * Result = new EwxChoicebook();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxChoicebook");
- break;
+ break;
}
-case wxChoicebook_new_3: { // wxChoicebook::wxChoicebook
+case wxChoicebook_new_3: { // wxChoicebook::wxChoicebook
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -17228,13 +17235,13 @@ case wxChoicebook_new_3: { // wxChoicebook::wxChoicebook
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxChoicebook * Result = new EwxChoicebook(parent,(wxWindowID) *id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxChoicebook");
- break;
+ break;
}
-case wxChoicebook_AddPage: { // wxChoicebook::AddPage
+case wxChoicebook_AddPage: { // wxChoicebook::AddPage
bool bSelect=false;
int imageId=-1;
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
@@ -17242,40 +17249,40 @@ case wxChoicebook_AddPage: { // wxChoicebook::AddPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AddPage(page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxChoicebook_AdvanceSelection: { // wxChoicebook::AdvanceSelection
+case wxChoicebook_AdvanceSelection: { // wxChoicebook::AdvanceSelection
bool forward=true;
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
forward = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AdvanceSelection(forward);
- break;
+ break;
}
-case wxChoicebook_AssignImageList: { // wxChoicebook::AssignImageList
+case wxChoicebook_AssignImageList: { // wxChoicebook::AssignImageList
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AssignImageList(imageList);
- break;
+ break;
}
-case wxChoicebook_Create: { // wxChoicebook::Create
+case wxChoicebook_Create: { // wxChoicebook::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -17283,7 +17290,7 @@ case wxChoicebook_Create: { // wxChoicebook::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -17299,88 +17306,88 @@ case wxChoicebook_Create: { // wxChoicebook::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxChoicebook_DeleteAllPages: { // wxChoicebook::DeleteAllPages
+case wxChoicebook_DeleteAllPages: { // wxChoicebook::DeleteAllPages
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteAllPages();
rt.addBool(Result);
- break;
+ break;
}
-case wxChoicebook_DeletePage: { // wxChoicebook::DeletePage
+case wxChoicebook_DeletePage: { // wxChoicebook::DeletePage
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeletePage((size_t) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxChoicebook_RemovePage: { // wxChoicebook::RemovePage
+case wxChoicebook_RemovePage: { // wxChoicebook::RemovePage
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RemovePage((size_t) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxChoicebook_GetCurrentPage: { // wxChoicebook::GetCurrentPage
+case wxChoicebook_GetCurrentPage: { // wxChoicebook::GetCurrentPage
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetCurrentPage();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxChoicebook_GetImageList: { // wxChoicebook::GetImageList
+case wxChoicebook_GetImageList: { // wxChoicebook::GetImageList
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxImageList * Result = (wxImageList*)This->GetImageList();
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxChoicebook_GetPage: { // wxChoicebook::GetPage
+case wxChoicebook_GetPage: { // wxChoicebook::GetPage
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetPage((size_t) *n);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxChoicebook_GetPageCount: { // wxChoicebook::GetPageCount
+case wxChoicebook_GetPageCount: { // wxChoicebook::GetPageCount
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->GetPageCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxChoicebook_GetPageImage: { // wxChoicebook::GetPageImage
+case wxChoicebook_GetPageImage: { // wxChoicebook::GetPageImage
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPageImage((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxChoicebook_GetPageText: { // wxChoicebook::GetPageText
+case wxChoicebook_GetPageText: { // wxChoicebook::GetPageText
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPageText((size_t) *n);
rt.add(Result);
- break;
+ break;
}
-case wxChoicebook_GetSelection: { // wxChoicebook::GetSelection
+case wxChoicebook_GetSelection: { // wxChoicebook::GetSelection
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxChoicebook_HitTest: { // wxChoicebook::HitTest
+case wxChoicebook_HitTest: { // wxChoicebook::HitTest
long flags;
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
@@ -17391,9 +17398,9 @@ case wxChoicebook_HitTest: { // wxChoicebook::HitTest
rt.addInt(Result);
rt.addInt(flags);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxChoicebook_InsertPage: { // wxChoicebook::InsertPage
+case wxChoicebook_InsertPage: { // wxChoicebook::InsertPage
bool bSelect=false;
int imageId=-1;
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
@@ -17402,45 +17409,45 @@ case wxChoicebook_InsertPage: { // wxChoicebook::InsertPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertPage((size_t) *n,page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxChoicebook_SetImageList: { // wxChoicebook::SetImageList
+case wxChoicebook_SetImageList: { // wxChoicebook::SetImageList
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetImageList(imageList);
- break;
+ break;
}
-case wxChoicebook_SetPageSize: { // wxChoicebook::SetPageSize
+case wxChoicebook_SetPageSize: { // wxChoicebook::SetPageSize
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetPageSize(size);
- break;
+ break;
}
-case wxChoicebook_SetPageImage: { // wxChoicebook::SetPageImage
+case wxChoicebook_SetPageImage: { // wxChoicebook::SetPageImage
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
int * imageId = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageImage((size_t) *n,(int) *imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxChoicebook_SetPageText: { // wxChoicebook::SetPageText
+case wxChoicebook_SetPageText: { // wxChoicebook::SetPageText
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
int * strTextLen = (int *) bp; bp += 4;
@@ -17449,37 +17456,37 @@ case wxChoicebook_SetPageText: { // wxChoicebook::SetPageText
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageText((size_t) *n,strText);
rt.addBool(Result);
- break;
+ break;
}
-case wxChoicebook_SetSelection: { // wxChoicebook::SetSelection
+case wxChoicebook_SetSelection: { // wxChoicebook::SetSelection
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->SetSelection((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxChoicebook_ChangeSelection: { // wxChoicebook::ChangeSelection
+case wxChoicebook_ChangeSelection: { // wxChoicebook::ChangeSelection
wxChoicebook *This = (wxChoicebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->ChangeSelection((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxToolbook_new_0: { // wxToolbook::wxToolbook
+case wxToolbook_new_0: { // wxToolbook::wxToolbook
wxToolbook * Result = new EwxToolbook();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxToolbook");
- break;
+ break;
}
-case wxToolbook_new_3: { // wxToolbook::wxToolbook
+case wxToolbook_new_3: { // wxToolbook::wxToolbook
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -17495,13 +17502,13 @@ case wxToolbook_new_3: { // wxToolbook::wxToolbook
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxToolbook * Result = new EwxToolbook(parent,(wxWindowID) *id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxToolbook");
- break;
+ break;
}
-case wxToolbook_AddPage: { // wxToolbook::AddPage
+case wxToolbook_AddPage: { // wxToolbook::AddPage
bool bSelect=false;
int imageId=-1;
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
@@ -17509,40 +17516,40 @@ case wxToolbook_AddPage: { // wxToolbook::AddPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AddPage(page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolbook_AdvanceSelection: { // wxToolbook::AdvanceSelection
+case wxToolbook_AdvanceSelection: { // wxToolbook::AdvanceSelection
bool forward=true;
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
forward = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AdvanceSelection(forward);
- break;
+ break;
}
-case wxToolbook_AssignImageList: { // wxToolbook::AssignImageList
+case wxToolbook_AssignImageList: { // wxToolbook::AssignImageList
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AssignImageList(imageList);
- break;
+ break;
}
-case wxToolbook_Create: { // wxToolbook::Create
+case wxToolbook_Create: { // wxToolbook::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -17550,7 +17557,7 @@ case wxToolbook_Create: { // wxToolbook::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -17566,88 +17573,88 @@ case wxToolbook_Create: { // wxToolbook::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolbook_DeleteAllPages: { // wxToolbook::DeleteAllPages
+case wxToolbook_DeleteAllPages: { // wxToolbook::DeleteAllPages
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteAllPages();
rt.addBool(Result);
- break;
+ break;
}
-case wxToolbook_DeletePage: { // wxToolbook::DeletePage
+case wxToolbook_DeletePage: { // wxToolbook::DeletePage
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeletePage((size_t) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolbook_RemovePage: { // wxToolbook::RemovePage
+case wxToolbook_RemovePage: { // wxToolbook::RemovePage
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RemovePage((size_t) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolbook_GetCurrentPage: { // wxToolbook::GetCurrentPage
+case wxToolbook_GetCurrentPage: { // wxToolbook::GetCurrentPage
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetCurrentPage();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxToolbook_GetImageList: { // wxToolbook::GetImageList
+case wxToolbook_GetImageList: { // wxToolbook::GetImageList
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxImageList * Result = (wxImageList*)This->GetImageList();
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxToolbook_GetPage: { // wxToolbook::GetPage
+case wxToolbook_GetPage: { // wxToolbook::GetPage
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetPage((size_t) *n);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxToolbook_GetPageCount: { // wxToolbook::GetPageCount
+case wxToolbook_GetPageCount: { // wxToolbook::GetPageCount
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->GetPageCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxToolbook_GetPageImage: { // wxToolbook::GetPageImage
+case wxToolbook_GetPageImage: { // wxToolbook::GetPageImage
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPageImage((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxToolbook_GetPageText: { // wxToolbook::GetPageText
+case wxToolbook_GetPageText: { // wxToolbook::GetPageText
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPageText((size_t) *n);
rt.add(Result);
- break;
+ break;
}
-case wxToolbook_GetSelection: { // wxToolbook::GetSelection
+case wxToolbook_GetSelection: { // wxToolbook::GetSelection
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxToolbook_HitTest: { // wxToolbook::HitTest
+case wxToolbook_HitTest: { // wxToolbook::HitTest
long flags;
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
@@ -17658,9 +17665,9 @@ case wxToolbook_HitTest: { // wxToolbook::HitTest
rt.addInt(Result);
rt.addInt(flags);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxToolbook_InsertPage: { // wxToolbook::InsertPage
+case wxToolbook_InsertPage: { // wxToolbook::InsertPage
bool bSelect=false;
int imageId=-1;
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
@@ -17669,45 +17676,45 @@ case wxToolbook_InsertPage: { // wxToolbook::InsertPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertPage((size_t) *n,page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolbook_SetImageList: { // wxToolbook::SetImageList
+case wxToolbook_SetImageList: { // wxToolbook::SetImageList
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetImageList(imageList);
- break;
+ break;
}
-case wxToolbook_SetPageSize: { // wxToolbook::SetPageSize
+case wxToolbook_SetPageSize: { // wxToolbook::SetPageSize
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetPageSize(size);
- break;
+ break;
}
-case wxToolbook_SetPageImage: { // wxToolbook::SetPageImage
+case wxToolbook_SetPageImage: { // wxToolbook::SetPageImage
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
int * imageId = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageImage((size_t) *n,(int) *imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolbook_SetPageText: { // wxToolbook::SetPageText
+case wxToolbook_SetPageText: { // wxToolbook::SetPageText
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
int * strTextLen = (int *) bp; bp += 4;
@@ -17716,37 +17723,37 @@ case wxToolbook_SetPageText: { // wxToolbook::SetPageText
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageText((size_t) *n,strText);
rt.addBool(Result);
- break;
+ break;
}
-case wxToolbook_SetSelection: { // wxToolbook::SetSelection
+case wxToolbook_SetSelection: { // wxToolbook::SetSelection
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->SetSelection((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxToolbook_ChangeSelection: { // wxToolbook::ChangeSelection
+case wxToolbook_ChangeSelection: { // wxToolbook::ChangeSelection
wxToolbook *This = (wxToolbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->ChangeSelection((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxListbook_new_0: { // wxListbook::wxListbook
+case wxListbook_new_0: { // wxListbook::wxListbook
wxListbook * Result = new EwxListbook();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxListbook");
- break;
+ break;
}
-case wxListbook_new_3: { // wxListbook::wxListbook
+case wxListbook_new_3: { // wxListbook::wxListbook
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -17762,13 +17769,13 @@ case wxListbook_new_3: { // wxListbook::wxListbook
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxListbook * Result = new EwxListbook(parent,(wxWindowID) *id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxListbook");
- break;
+ break;
}
-case wxListbook_AddPage: { // wxListbook::AddPage
+case wxListbook_AddPage: { // wxListbook::AddPage
bool bSelect=false;
int imageId=-1;
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
@@ -17776,40 +17783,40 @@ case wxListbook_AddPage: { // wxListbook::AddPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AddPage(page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxListbook_AdvanceSelection: { // wxListbook::AdvanceSelection
+case wxListbook_AdvanceSelection: { // wxListbook::AdvanceSelection
bool forward=true;
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
forward = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AdvanceSelection(forward);
- break;
+ break;
}
-case wxListbook_AssignImageList: { // wxListbook::AssignImageList
+case wxListbook_AssignImageList: { // wxListbook::AssignImageList
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AssignImageList(imageList);
- break;
+ break;
}
-case wxListbook_Create: { // wxListbook::Create
+case wxListbook_Create: { // wxListbook::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -17817,7 +17824,7 @@ case wxListbook_Create: { // wxListbook::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -17833,88 +17840,88 @@ case wxListbook_Create: { // wxListbook::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxListbook_DeleteAllPages: { // wxListbook::DeleteAllPages
+case wxListbook_DeleteAllPages: { // wxListbook::DeleteAllPages
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteAllPages();
rt.addBool(Result);
- break;
+ break;
}
-case wxListbook_DeletePage: { // wxListbook::DeletePage
+case wxListbook_DeletePage: { // wxListbook::DeletePage
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeletePage((size_t) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxListbook_RemovePage: { // wxListbook::RemovePage
+case wxListbook_RemovePage: { // wxListbook::RemovePage
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RemovePage((size_t) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxListbook_GetCurrentPage: { // wxListbook::GetCurrentPage
+case wxListbook_GetCurrentPage: { // wxListbook::GetCurrentPage
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetCurrentPage();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxListbook_GetImageList: { // wxListbook::GetImageList
+case wxListbook_GetImageList: { // wxListbook::GetImageList
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxImageList * Result = (wxImageList*)This->GetImageList();
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxListbook_GetPage: { // wxListbook::GetPage
+case wxListbook_GetPage: { // wxListbook::GetPage
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetPage((size_t) *n);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxListbook_GetPageCount: { // wxListbook::GetPageCount
+case wxListbook_GetPageCount: { // wxListbook::GetPageCount
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->GetPageCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxListbook_GetPageImage: { // wxListbook::GetPageImage
+case wxListbook_GetPageImage: { // wxListbook::GetPageImage
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPageImage((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxListbook_GetPageText: { // wxListbook::GetPageText
+case wxListbook_GetPageText: { // wxListbook::GetPageText
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPageText((size_t) *n);
rt.add(Result);
- break;
+ break;
}
-case wxListbook_GetSelection: { // wxListbook::GetSelection
+case wxListbook_GetSelection: { // wxListbook::GetSelection
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxListbook_HitTest: { // wxListbook::HitTest
+case wxListbook_HitTest: { // wxListbook::HitTest
long flags;
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
@@ -17925,9 +17932,9 @@ case wxListbook_HitTest: { // wxListbook::HitTest
rt.addInt(Result);
rt.addInt(flags);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxListbook_InsertPage: { // wxListbook::InsertPage
+case wxListbook_InsertPage: { // wxListbook::InsertPage
bool bSelect=false;
int imageId=-1;
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
@@ -17936,45 +17943,45 @@ case wxListbook_InsertPage: { // wxListbook::InsertPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertPage((size_t) *n,page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxListbook_SetImageList: { // wxListbook::SetImageList
+case wxListbook_SetImageList: { // wxListbook::SetImageList
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetImageList(imageList);
- break;
+ break;
}
-case wxListbook_SetPageSize: { // wxListbook::SetPageSize
+case wxListbook_SetPageSize: { // wxListbook::SetPageSize
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetPageSize(size);
- break;
+ break;
}
-case wxListbook_SetPageImage: { // wxListbook::SetPageImage
+case wxListbook_SetPageImage: { // wxListbook::SetPageImage
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
int * imageId = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageImage((size_t) *n,(int) *imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxListbook_SetPageText: { // wxListbook::SetPageText
+case wxListbook_SetPageText: { // wxListbook::SetPageText
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
int * strTextLen = (int *) bp; bp += 4;
@@ -17983,37 +17990,37 @@ case wxListbook_SetPageText: { // wxListbook::SetPageText
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageText((size_t) *n,strText);
rt.addBool(Result);
- break;
+ break;
}
-case wxListbook_SetSelection: { // wxListbook::SetSelection
+case wxListbook_SetSelection: { // wxListbook::SetSelection
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->SetSelection((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxListbook_ChangeSelection: { // wxListbook::ChangeSelection
+case wxListbook_ChangeSelection: { // wxListbook::ChangeSelection
wxListbook *This = (wxListbook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->ChangeSelection((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxTreebook_new_0: { // wxTreebook::wxTreebook
+case wxTreebook_new_0: { // wxTreebook::wxTreebook
wxTreebook * Result = new EwxTreebook();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTreebook");
- break;
+ break;
}
-case wxTreebook_new_3: { // wxTreebook::wxTreebook
+case wxTreebook_new_3: { // wxTreebook::wxTreebook
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxBK_DEFAULT;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -18029,13 +18036,13 @@ case wxTreebook_new_3: { // wxTreebook::wxTreebook
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxTreebook * Result = new EwxTreebook(parent,(wxWindowID) *id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTreebook");
- break;
+ break;
}
-case wxTreebook_AddPage: { // wxTreebook::AddPage
+case wxTreebook_AddPage: { // wxTreebook::AddPage
bool bSelect=false;
int imageId=wxNOT_FOUND;
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
@@ -18043,40 +18050,40 @@ case wxTreebook_AddPage: { // wxTreebook::AddPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AddPage(page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_AdvanceSelection: { // wxTreebook::AdvanceSelection
+case wxTreebook_AdvanceSelection: { // wxTreebook::AdvanceSelection
bool forward=true;
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
forward = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->AdvanceSelection(forward);
- break;
+ break;
}
-case wxTreebook_AssignImageList: { // wxTreebook::AssignImageList
+case wxTreebook_AssignImageList: { // wxTreebook::AssignImageList
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AssignImageList(imageList);
- break;
+ break;
}
-case wxTreebook_Create: { // wxTreebook::Create
+case wxTreebook_Create: { // wxTreebook::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxBK_DEFAULT;
@@ -18084,7 +18091,7 @@ case wxTreebook_Create: { // wxTreebook::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -18100,110 +18107,110 @@ case wxTreebook_Create: { // wxTreebook::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_DeleteAllPages: { // wxTreebook::DeleteAllPages
+case wxTreebook_DeleteAllPages: { // wxTreebook::DeleteAllPages
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeleteAllPages();
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_DeletePage: { // wxTreebook::DeletePage
+case wxTreebook_DeletePage: { // wxTreebook::DeletePage
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeletePage((size_t) *pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_RemovePage: { // wxTreebook::RemovePage
+case wxTreebook_RemovePage: { // wxTreebook::RemovePage
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RemovePage((size_t) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_GetCurrentPage: { // wxTreebook::GetCurrentPage
+case wxTreebook_GetCurrentPage: { // wxTreebook::GetCurrentPage
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetCurrentPage();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxTreebook_GetImageList: { // wxTreebook::GetImageList
+case wxTreebook_GetImageList: { // wxTreebook::GetImageList
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxImageList * Result = (wxImageList*)This->GetImageList();
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxTreebook_GetPage: { // wxTreebook::GetPage
+case wxTreebook_GetPage: { // wxTreebook::GetPage
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetPage((size_t) *n);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxTreebook_GetPageCount: { // wxTreebook::GetPageCount
+case wxTreebook_GetPageCount: { // wxTreebook::GetPageCount
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->GetPageCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxTreebook_GetPageImage: { // wxTreebook::GetPageImage
+case wxTreebook_GetPageImage: { // wxTreebook::GetPageImage
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPageImage((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxTreebook_GetPageText: { // wxTreebook::GetPageText
+case wxTreebook_GetPageText: { // wxTreebook::GetPageText
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPageText((size_t) *n);
rt.add(Result);
- break;
+ break;
}
-case wxTreebook_GetSelection: { // wxTreebook::GetSelection
+case wxTreebook_GetSelection: { // wxTreebook::GetSelection
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxTreebook_ExpandNode: { // wxTreebook::ExpandNode
+case wxTreebook_ExpandNode: { // wxTreebook::ExpandNode
bool expand=true;
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
expand = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->ExpandNode((size_t) *pos,expand);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_IsNodeExpanded: { // wxTreebook::IsNodeExpanded
+case wxTreebook_IsNodeExpanded: { // wxTreebook::IsNodeExpanded
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsNodeExpanded((size_t) *pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_HitTest: { // wxTreebook::HitTest
+case wxTreebook_HitTest: { // wxTreebook::HitTest
long flags;
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
@@ -18214,9 +18221,9 @@ case wxTreebook_HitTest: { // wxTreebook::HitTest
rt.addInt(Result);
rt.addInt(flags);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxTreebook_InsertPage: { // wxTreebook::InsertPage
+case wxTreebook_InsertPage: { // wxTreebook::InsertPage
bool bSelect=false;
int imageId=wxNOT_FOUND;
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
@@ -18225,20 +18232,20 @@ case wxTreebook_InsertPage: { // wxTreebook::InsertPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertPage((size_t) *pos,page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_InsertSubPage: { // wxTreebook::InsertSubPage
+case wxTreebook_InsertSubPage: { // wxTreebook::InsertSubPage
bool bSelect=false;
int imageId=wxNOT_FOUND;
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
@@ -18247,45 +18254,45 @@ case wxTreebook_InsertSubPage: { // wxTreebook::InsertSubPage
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bSelect = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
imageId = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertSubPage((size_t) *pos,page,text,bSelect,imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_SetImageList: { // wxTreebook::SetImageList
+case wxTreebook_SetImageList: { // wxTreebook::SetImageList
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetImageList(imageList);
- break;
+ break;
}
-case wxTreebook_SetPageSize: { // wxTreebook::SetPageSize
+case wxTreebook_SetPageSize: { // wxTreebook::SetPageSize
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetPageSize(size);
- break;
+ break;
}
-case wxTreebook_SetPageImage: { // wxTreebook::SetPageImage
+case wxTreebook_SetPageImage: { // wxTreebook::SetPageImage
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
int * imageId = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageImage((size_t) *n,(int) *imageId);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_SetPageText: { // wxTreebook::SetPageText
+case wxTreebook_SetPageText: { // wxTreebook::SetPageText
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
int * strTextLen = (int *) bp; bp += 4;
@@ -18294,25 +18301,25 @@ case wxTreebook_SetPageText: { // wxTreebook::SetPageText
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageText((size_t) *n,strText);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreebook_SetSelection: { // wxTreebook::SetSelection
+case wxTreebook_SetSelection: { // wxTreebook::SetSelection
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->SetSelection((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxTreebook_ChangeSelection: { // wxTreebook::ChangeSelection
+case wxTreebook_ChangeSelection: { // wxTreebook::ChangeSelection
wxTreebook *This = (wxTreebook *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->ChangeSelection((size_t) *n);
rt.addInt(Result);
- break;
+ break;
}
-case wxTreeCtrl_new_2: { // wxTreeCtrl::wxTreeCtrl
+case wxTreeCtrl_new_2: { // wxTreeCtrl::wxTreeCtrl
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -18320,7 +18327,7 @@ case wxTreeCtrl_new_2: { // wxTreeCtrl::wxTreeCtrl
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -18342,19 +18349,19 @@ case wxTreeCtrl_new_2: { // wxTreeCtrl::wxTreeCtrl
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxTreeCtrl * Result = new EwxTreeCtrl(parent,id,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTreeCtrl");
- break;
+ break;
}
-case wxTreeCtrl_new_0: { // wxTreeCtrl::wxTreeCtrl
+case wxTreeCtrl_new_0: { // wxTreeCtrl::wxTreeCtrl
wxTreeCtrl * Result = new EwxTreeCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTreeCtrl");
- break;
+ break;
}
-case wxTreeCtrl_AddRoot: { // wxTreeCtrl::AddRoot
+case wxTreeCtrl_AddRoot: { // wxTreeCtrl::AddRoot
int image=-1;
int selectedImage=-1;
wxETreeItemData * data= NULL;
@@ -18362,7 +18369,7 @@ case wxTreeCtrl_AddRoot: { // wxTreeCtrl::AddRoot
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
image = (int)*(int *) bp; bp += 4;
} break;
@@ -18370,16 +18377,16 @@ case wxTreeCtrl_AddRoot: { // wxTreeCtrl::AddRoot
selectedImage = (int)*(int *) bp; bp += 4;
} break;
case 3: {bp += 4;
- data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
+ data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->AddRoot(text,image,selectedImage,data);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_AppendItem: { // wxTreeCtrl::AppendItem
+case wxTreeCtrl_AppendItem: { // wxTreeCtrl::AppendItem
int image=-1;
int selectedImage=-1;
wxETreeItemData * data= NULL;
@@ -18389,7 +18396,7 @@ case wxTreeCtrl_AppendItem: { // wxTreeCtrl::AppendItem
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
image = (int)*(int *) bp; bp += 4;
} break;
@@ -18397,46 +18404,46 @@ case wxTreeCtrl_AppendItem: { // wxTreeCtrl::AppendItem
selectedImage = (int)*(int *) bp; bp += 4;
} break;
case 3: {bp += 4;
- data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
+ data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->AppendItem(parent,text,image,selectedImage,data);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_AssignImageList: { // wxTreeCtrl::AssignImageList
+case wxTreeCtrl_AssignImageList: { // wxTreeCtrl::AssignImageList
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AssignImageList(imageList);
- break;
+ break;
}
-case wxTreeCtrl_AssignStateImageList: { // wxTreeCtrl::AssignStateImageList
+case wxTreeCtrl_AssignStateImageList: { // wxTreeCtrl::AssignStateImageList
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AssignStateImageList(imageList);
- break;
+ break;
}
-case wxTreeCtrl_Collapse: { // wxTreeCtrl::Collapse
+case wxTreeCtrl_Collapse: { // wxTreeCtrl::Collapse
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->Collapse(item);
- break;
+ break;
}
-case wxTreeCtrl_CollapseAndReset: { // wxTreeCtrl::CollapseAndReset
+case wxTreeCtrl_CollapseAndReset: { // wxTreeCtrl::CollapseAndReset
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->CollapseAndReset(item);
- break;
+ break;
}
-case wxTreeCtrl_Create: { // wxTreeCtrl::Create
+case wxTreeCtrl_Create: { // wxTreeCtrl::Create
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -18444,7 +18451,7 @@ case wxTreeCtrl_Create: { // wxTreeCtrl::Create
const wxValidator * validator= &wxDefaultValidator;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -18466,51 +18473,51 @@ case wxTreeCtrl_Create: { // wxTreeCtrl::Create
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,id,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreeCtrl_Delete: { // wxTreeCtrl::Delete
+case wxTreeCtrl_Delete: { // wxTreeCtrl::Delete
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->Delete(item);
- break;
+ break;
}
-case wxTreeCtrl_DeleteAllItems: { // wxTreeCtrl::DeleteAllItems
+case wxTreeCtrl_DeleteAllItems: { // wxTreeCtrl::DeleteAllItems
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DeleteAllItems();
- break;
+ break;
}
-case wxTreeCtrl_DeleteChildren: { // wxTreeCtrl::DeleteChildren
+case wxTreeCtrl_DeleteChildren: { // wxTreeCtrl::DeleteChildren
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->DeleteChildren(item);
- break;
+ break;
}
-case wxTreeCtrl_EnsureVisible: { // wxTreeCtrl::EnsureVisible
+case wxTreeCtrl_EnsureVisible: { // wxTreeCtrl::EnsureVisible
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->EnsureVisible(item);
- break;
+ break;
}
-case wxTreeCtrl_Expand: { // wxTreeCtrl::Expand
+case wxTreeCtrl_Expand: { // wxTreeCtrl::Expand
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->Expand(item);
- break;
+ break;
}
-case wxTreeCtrl_GetBoundingRect: { // wxTreeCtrl::GetBoundingRect
+case wxTreeCtrl_GetBoundingRect: { // wxTreeCtrl::GetBoundingRect
bool textOnly=false;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
@@ -18520,44 +18527,44 @@ case wxTreeCtrl_GetBoundingRect: { // wxTreeCtrl::GetBoundingRect
int * rectW = (int *) bp; bp += 4;
int * rectH = (int *) bp; bp += 4;
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
textOnly = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->GetBoundingRect(item,rect,textOnly);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetChildrenCount: { // wxTreeCtrl::GetChildrenCount
+case wxTreeCtrl_GetChildrenCount: { // wxTreeCtrl::GetChildrenCount
bool recursively=true;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
recursively = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
size_t Result = This->GetChildrenCount(item,recursively);
rt.addInt(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetCount: { // wxTreeCtrl::GetCount
+case wxTreeCtrl_GetCount: { // wxTreeCtrl::GetCount
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCount();
rt.addUint(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetEditControl: { // wxTreeCtrl::GetEditControl
+case wxTreeCtrl_GetEditControl: { // wxTreeCtrl::GetEditControl
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTextCtrl * Result = (wxTextCtrl*)This->GetEditControl();
rt.addRef(getRef((void *)Result,memenv), "wxTextCtrl");
- break;
+ break;
}
case wxTreeCtrl_GetFirstChild: { // wxTreeCtrl::GetFirstChild
wxTreeItemIdValue cookie;
@@ -18583,165 +18590,165 @@ case wxTreeCtrl_GetNextChild: { // wxTreeCtrl::GetNextChild
rt.addTupleCount(2);
break;
}
-case wxTreeCtrl_GetFirstVisibleItem: { // wxTreeCtrl::GetFirstVisibleItem
+case wxTreeCtrl_GetFirstVisibleItem: { // wxTreeCtrl::GetFirstVisibleItem
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetFirstVisibleItem();
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_GetImageList: { // wxTreeCtrl::GetImageList
+case wxTreeCtrl_GetImageList: { // wxTreeCtrl::GetImageList
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxImageList * Result = (wxImageList*)This->GetImageList();
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxTreeCtrl_GetIndent: { // wxTreeCtrl::GetIndent
+case wxTreeCtrl_GetIndent: { // wxTreeCtrl::GetIndent
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetIndent();
rt.addUint(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetItemBackgroundColour: { // wxTreeCtrl::GetItemBackgroundColour
+case wxTreeCtrl_GetItemBackgroundColour: { // wxTreeCtrl::GetItemBackgroundColour
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetItemBackgroundColour(item);
rt.add(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetItemData: { // wxTreeCtrl::GetItemData
+case wxTreeCtrl_GetItemData: { // wxTreeCtrl::GetItemData
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxETreeItemData * Result = (wxETreeItemData*)This->GetItemData(item);
rt.addExt2Term(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetItemFont: { // wxTreeCtrl::GetItemFont
+case wxTreeCtrl_GetItemFont: { // wxTreeCtrl::GetItemFont
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetItemFont(item)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxTreeCtrl_GetItemImage_1: { // wxTreeCtrl::GetItemImage
+case wxTreeCtrl_GetItemImage_1: { // wxTreeCtrl::GetItemImage
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
int Result = This->GetItemImage(item);
rt.addInt(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetItemImage_2: { // wxTreeCtrl::GetItemImage
+case wxTreeCtrl_GetItemImage_2: { // wxTreeCtrl::GetItemImage
wxTreeItemIcon which=wxTreeItemIcon_Normal;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
which = *(wxTreeItemIcon *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
int Result = This->GetItemImage(item,(wxTreeItemIcon) which);
rt.addInt(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetItemText: { // wxTreeCtrl::GetItemText
+case wxTreeCtrl_GetItemText: { // wxTreeCtrl::GetItemText
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetItemText(item);
rt.add(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetItemTextColour: { // wxTreeCtrl::GetItemTextColour
+case wxTreeCtrl_GetItemTextColour: { // wxTreeCtrl::GetItemTextColour
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetItemTextColour(item);
rt.add(Result);
- break;
+ break;
}
-case wxTreeCtrl_GetLastChild: { // wxTreeCtrl::GetLastChild
+case wxTreeCtrl_GetLastChild: { // wxTreeCtrl::GetLastChild
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetLastChild(item);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_GetNextSibling: { // wxTreeCtrl::GetNextSibling
+case wxTreeCtrl_GetNextSibling: { // wxTreeCtrl::GetNextSibling
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetNextSibling(item);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_GetNextVisible: { // wxTreeCtrl::GetNextVisible
+case wxTreeCtrl_GetNextVisible: { // wxTreeCtrl::GetNextVisible
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetNextVisible(item);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_GetItemParent: { // wxTreeCtrl::GetItemParent
+case wxTreeCtrl_GetItemParent: { // wxTreeCtrl::GetItemParent
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetItemParent(item);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_GetPrevSibling: { // wxTreeCtrl::GetPrevSibling
+case wxTreeCtrl_GetPrevSibling: { // wxTreeCtrl::GetPrevSibling
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetPrevSibling(item);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_GetPrevVisible: { // wxTreeCtrl::GetPrevVisible
+case wxTreeCtrl_GetPrevVisible: { // wxTreeCtrl::GetPrevVisible
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetPrevVisible(item);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_GetRootItem: { // wxTreeCtrl::GetRootItem
+case wxTreeCtrl_GetRootItem: { // wxTreeCtrl::GetRootItem
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetRootItem();
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_GetSelection: { // wxTreeCtrl::GetSelection
+case wxTreeCtrl_GetSelection: { // wxTreeCtrl::GetSelection
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetSelection();
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_GetSelections: { // wxTreeCtrl::GetSelections
+case wxTreeCtrl_GetSelections: { // wxTreeCtrl::GetSelections
wxArrayTreeItemIds val;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
@@ -18751,16 +18758,16 @@ case wxTreeCtrl_GetSelections: { // wxTreeCtrl::GetSelections
rt.add((wxUIntPtr *)val[i].m_pItem);}
rt.endList(val.GetCount());
rt.addTupleCount(2);
- break;
+ break;
}
-case wxTreeCtrl_GetStateImageList: { // wxTreeCtrl::GetStateImageList
+case wxTreeCtrl_GetStateImageList: { // wxTreeCtrl::GetStateImageList
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxImageList * Result = (wxImageList*)This->GetStateImageList();
rt.addRef(getRef((void *)Result,memenv), "wxImageList");
- break;
+ break;
}
-case wxTreeCtrl_HitTest: { // wxTreeCtrl::HitTest
+case wxTreeCtrl_HitTest: { // wxTreeCtrl::HitTest
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
int * pointX = (int *) bp; bp += 4;
int * pointY = (int *) bp; bp += 4;
@@ -18768,7 +18775,7 @@ case wxTreeCtrl_HitTest: { // wxTreeCtrl::HitTest
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->HitTest(point);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
case wxTreeCtrl_InsertItem: { // wxTreeCtrl::InsertItem
int image=-1;
@@ -18781,7 +18788,7 @@ case wxTreeCtrl_InsertItem: { // wxTreeCtrl::InsertItem
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
image = (int)*(int *) bp; bp += 4;
} break;
@@ -18789,61 +18796,61 @@ case wxTreeCtrl_InsertItem: { // wxTreeCtrl::InsertItem
selImage = (int)*(int *) bp; bp += 4;
} break;
case 3: {bp += 4;
- data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
+ data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->InsertItem(parent,(size_t) *pos,text,image,selImage,data);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_IsBold: { // wxTreeCtrl::IsBold
+case wxTreeCtrl_IsBold: { // wxTreeCtrl::IsBold
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
bool Result = This->IsBold(item);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreeCtrl_IsExpanded: { // wxTreeCtrl::IsExpanded
+case wxTreeCtrl_IsExpanded: { // wxTreeCtrl::IsExpanded
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
bool Result = This->IsExpanded(item);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreeCtrl_IsSelected: { // wxTreeCtrl::IsSelected
+case wxTreeCtrl_IsSelected: { // wxTreeCtrl::IsSelected
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSelected(item);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreeCtrl_IsVisible: { // wxTreeCtrl::IsVisible
+case wxTreeCtrl_IsVisible: { // wxTreeCtrl::IsVisible
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
bool Result = This->IsVisible(item);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreeCtrl_ItemHasChildren: { // wxTreeCtrl::ItemHasChildren
+case wxTreeCtrl_ItemHasChildren: { // wxTreeCtrl::ItemHasChildren
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
bool Result = This->ItemHasChildren(item);
rt.addBool(Result);
- break;
+ break;
}
-case wxTreeCtrl_PrependItem: { // wxTreeCtrl::PrependItem
+case wxTreeCtrl_PrependItem: { // wxTreeCtrl::PrependItem
int image=-1;
int selectedImage=-1;
wxETreeItemData * data= NULL;
@@ -18853,7 +18860,7 @@ case wxTreeCtrl_PrependItem: { // wxTreeCtrl::PrependItem
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
image = (int)*(int *) bp; bp += 4;
} break;
@@ -18861,60 +18868,60 @@ case wxTreeCtrl_PrependItem: { // wxTreeCtrl::PrependItem
selectedImage = (int)*(int *) bp; bp += 4;
} break;
case 3: {bp += 4;
- data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
+ data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->PrependItem(parent,text,image,selectedImage,data);
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeCtrl_ScrollTo: { // wxTreeCtrl::ScrollTo
+case wxTreeCtrl_ScrollTo: { // wxTreeCtrl::ScrollTo
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->ScrollTo(item);
- break;
+ break;
}
-case wxTreeCtrl_SelectItem_1: { // wxTreeCtrl::SelectItem
+case wxTreeCtrl_SelectItem_1: { // wxTreeCtrl::SelectItem
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->SelectItem(item);
- break;
+ break;
}
-case wxTreeCtrl_SelectItem_2: { // wxTreeCtrl::SelectItem
+case wxTreeCtrl_SelectItem_2: { // wxTreeCtrl::SelectItem
bool select=true;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
select = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SelectItem(item,select);
- break;
+ break;
}
-case wxTreeCtrl_SetIndent: { // wxTreeCtrl::SetIndent
+case wxTreeCtrl_SetIndent: { // wxTreeCtrl::SetIndent
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
unsigned int * indent = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetIndent((int) *indent);
- break;
+ break;
}
-case wxTreeCtrl_SetImageList: { // wxTreeCtrl::SetImageList
+case wxTreeCtrl_SetImageList: { // wxTreeCtrl::SetImageList
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetImageList(imageList);
- break;
+ break;
}
-case wxTreeCtrl_SetItemBackgroundColour: { // wxTreeCtrl::SetItemBackgroundColour
+case wxTreeCtrl_SetItemBackgroundColour: { // wxTreeCtrl::SetItemBackgroundColour
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
@@ -18925,94 +18932,94 @@ case wxTreeCtrl_SetItemBackgroundColour: { // wxTreeCtrl::SetItemBackgroundColou
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetItemBackgroundColour(item,col);
- break;
+ break;
}
-case wxTreeCtrl_SetItemBold: { // wxTreeCtrl::SetItemBold
+case wxTreeCtrl_SetItemBold: { // wxTreeCtrl::SetItemBold
bool bold=true;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bold = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetItemBold(item,bold);
- break;
+ break;
}
-case wxTreeCtrl_SetItemData: { // wxTreeCtrl::SetItemData
+case wxTreeCtrl_SetItemData: { // wxTreeCtrl::SetItemData
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
- wxETreeItemData * data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
+ wxETreeItemData * data = new wxETreeItemData(Ecmd.bin[0]->size, Ecmd.bin[0]->base);
if(!This) throw wxe_badarg(0);
This->SetItemData(item,data);
- break;
+ break;
}
-case wxTreeCtrl_SetItemDropHighlight: { // wxTreeCtrl::SetItemDropHighlight
+case wxTreeCtrl_SetItemDropHighlight: { // wxTreeCtrl::SetItemDropHighlight
bool highlight=true;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
highlight = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetItemDropHighlight(item,highlight);
- break;
+ break;
}
-case wxTreeCtrl_SetItemFont: { // wxTreeCtrl::SetItemFont
+case wxTreeCtrl_SetItemFont: { // wxTreeCtrl::SetItemFont
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetItemFont(item,*font);
- break;
+ break;
}
-case wxTreeCtrl_SetItemHasChildren: { // wxTreeCtrl::SetItemHasChildren
+case wxTreeCtrl_SetItemHasChildren: { // wxTreeCtrl::SetItemHasChildren
bool has=true;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
has = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetItemHasChildren(item,has);
- break;
+ break;
}
-case wxTreeCtrl_SetItemImage_2: { // wxTreeCtrl::SetItemImage
+case wxTreeCtrl_SetItemImage_2: { // wxTreeCtrl::SetItemImage
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
int * image = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetItemImage(item,(int) *image);
- break;
+ break;
}
-case wxTreeCtrl_SetItemImage_3: { // wxTreeCtrl::SetItemImage
+case wxTreeCtrl_SetItemImage_3: { // wxTreeCtrl::SetItemImage
wxTreeItemIcon which=wxTreeItemIcon_Normal;
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
int * image = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
which = *(wxTreeItemIcon *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetItemImage(item,(int) *image,(wxTreeItemIcon) which);
- break;
+ break;
}
-case wxTreeCtrl_SetItemText: { // wxTreeCtrl::SetItemText
+case wxTreeCtrl_SetItemText: { // wxTreeCtrl::SetItemText
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
@@ -19021,9 +19028,9 @@ case wxTreeCtrl_SetItemText: { // wxTreeCtrl::SetItemText
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetItemText(item,text);
- break;
+ break;
}
-case wxTreeCtrl_SetItemTextColour: { // wxTreeCtrl::SetItemTextColour
+case wxTreeCtrl_SetItemTextColour: { // wxTreeCtrl::SetItemTextColour
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
@@ -19034,80 +19041,80 @@ case wxTreeCtrl_SetItemTextColour: { // wxTreeCtrl::SetItemTextColour
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetItemTextColour(item,col);
- break;
+ break;
}
-case wxTreeCtrl_SetStateImageList: { // wxTreeCtrl::SetStateImageList
+case wxTreeCtrl_SetStateImageList: { // wxTreeCtrl::SetStateImageList
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
wxImageList *imageList = (wxImageList *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStateImageList(imageList);
- break;
+ break;
}
-case wxTreeCtrl_SetWindowStyle: { // wxTreeCtrl::SetWindowStyle
+case wxTreeCtrl_SetWindowStyle: { // wxTreeCtrl::SetWindowStyle
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
const int * styles = (const int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWindowStyle((long) *styles);
- break;
+ break;
}
-case wxTreeCtrl_SortChildren: { // wxTreeCtrl::SortChildren
+case wxTreeCtrl_SortChildren: { // wxTreeCtrl::SortChildren
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->SortChildren(item);
- break;
+ break;
}
-case wxTreeCtrl_Toggle: { // wxTreeCtrl::Toggle
+case wxTreeCtrl_Toggle: { // wxTreeCtrl::Toggle
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->Toggle(item);
- break;
+ break;
}
-case wxTreeCtrl_ToggleItemSelection: { // wxTreeCtrl::ToggleItemSelection
+case wxTreeCtrl_ToggleItemSelection: { // wxTreeCtrl::ToggleItemSelection
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->ToggleItemSelection(item);
- break;
+ break;
}
-case wxTreeCtrl_Unselect: { // wxTreeCtrl::Unselect
+case wxTreeCtrl_Unselect: { // wxTreeCtrl::Unselect
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Unselect();
- break;
+ break;
}
-case wxTreeCtrl_UnselectAll: { // wxTreeCtrl::UnselectAll
+case wxTreeCtrl_UnselectAll: { // wxTreeCtrl::UnselectAll
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->UnselectAll();
- break;
+ break;
}
-case wxTreeCtrl_UnselectItem: { // wxTreeCtrl::UnselectItem
+case wxTreeCtrl_UnselectItem: { // wxTreeCtrl::UnselectItem
wxTreeCtrl *This = (wxTreeCtrl *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
wxTreeItemId item = wxTreeItemId((void *) *(wxUint64 *) bp); bp += 8;
if(!This) throw wxe_badarg(0);
This->UnselectItem(item);
- break;
+ break;
}
-case wxScrollBar_new_0: { // wxScrollBar::wxScrollBar
+case wxScrollBar_new_0: { // wxScrollBar::wxScrollBar
wxScrollBar * Result = new EwxScrollBar();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxScrollBar");
- break;
+ break;
}
-case wxScrollBar_new_3: { // wxScrollBar::wxScrollBar
+case wxScrollBar_new_3: { // wxScrollBar::wxScrollBar
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSB_HORIZONTAL;
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -19126,13 +19133,13 @@ case wxScrollBar_new_3: { // wxScrollBar::wxScrollBar
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxScrollBar * Result = new EwxScrollBar(parent,(wxWindowID) *id,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxScrollBar");
- break;
+ break;
}
-case wxScrollBar_Create: { // wxScrollBar::Create
+case wxScrollBar_Create: { // wxScrollBar::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSB_HORIZONTAL;
@@ -19141,7 +19148,7 @@ case wxScrollBar_Create: { // wxScrollBar::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -19160,48 +19167,48 @@ case wxScrollBar_Create: { // wxScrollBar::Create
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxScrollBar_GetRange: { // wxScrollBar::GetRange
+case wxScrollBar_GetRange: { // wxScrollBar::GetRange
wxScrollBar *This = (wxScrollBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRange();
rt.addInt(Result);
- break;
+ break;
}
-case wxScrollBar_GetPageSize: { // wxScrollBar::GetPageSize
+case wxScrollBar_GetPageSize: { // wxScrollBar::GetPageSize
wxScrollBar *This = (wxScrollBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPageSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxScrollBar_GetThumbPosition: { // wxScrollBar::GetThumbPosition
+case wxScrollBar_GetThumbPosition: { // wxScrollBar::GetThumbPosition
wxScrollBar *This = (wxScrollBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetThumbPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxScrollBar_GetThumbSize: { // wxScrollBar::GetThumbSize
+case wxScrollBar_GetThumbSize: { // wxScrollBar::GetThumbSize
wxScrollBar *This = (wxScrollBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetThumbSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxScrollBar_SetThumbPosition: { // wxScrollBar::SetThumbPosition
+case wxScrollBar_SetThumbPosition: { // wxScrollBar::SetThumbPosition
wxScrollBar *This = (wxScrollBar *) getPtr(bp,memenv); bp += 4;
int * viewStart = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetThumbPosition((int) *viewStart);
- break;
+ break;
}
-case wxScrollBar_SetScrollbar: { // wxScrollBar::SetScrollbar
+case wxScrollBar_SetScrollbar: { // wxScrollBar::SetScrollbar
bool refresh=true;
wxScrollBar *This = (wxScrollBar *) getPtr(bp,memenv); bp += 4;
int * position = (int *) bp; bp += 4;
@@ -19209,23 +19216,23 @@ case wxScrollBar_SetScrollbar: { // wxScrollBar::SetScrollbar
int * range = (int *) bp; bp += 4;
int * pageSize = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
refresh = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetScrollbar((int) *position,(int) *thumbSize,(int) *range,(int) *pageSize,refresh);
- break;
+ break;
}
-case wxSpinButton_new_2: { // wxSpinButton::wxSpinButton
+case wxSpinButton_new_2: { // wxSpinButton::wxSpinButton
wxWindowID id=-1;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSP_VERTICAL;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -19244,26 +19251,26 @@ case wxSpinButton_new_2: { // wxSpinButton::wxSpinButton
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxSpinButton * Result = new EwxSpinButton(parent,id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSpinButton");
- break;
+ break;
}
-case wxSpinButton_new_0: { // wxSpinButton::wxSpinButton
+case wxSpinButton_new_0: { // wxSpinButton::wxSpinButton
wxSpinButton * Result = new EwxSpinButton();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSpinButton");
- break;
+ break;
}
-case wxSpinButton_Create: { // wxSpinButton::Create
+case wxSpinButton_Create: { // wxSpinButton::Create
wxWindowID id=-1;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSP_VERTICAL;
wxSpinButton *This = (wxSpinButton *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -19282,55 +19289,55 @@ case wxSpinButton_Create: { // wxSpinButton::Create
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxSpinButton_GetMax: { // wxSpinButton::GetMax
+case wxSpinButton_GetMax: { // wxSpinButton::GetMax
wxSpinButton *This = (wxSpinButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMax();
rt.addInt(Result);
- break;
+ break;
}
-case wxSpinButton_GetMin: { // wxSpinButton::GetMin
+case wxSpinButton_GetMin: { // wxSpinButton::GetMin
wxSpinButton *This = (wxSpinButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMin();
rt.addInt(Result);
- break;
+ break;
}
-case wxSpinButton_GetValue: { // wxSpinButton::GetValue
+case wxSpinButton_GetValue: { // wxSpinButton::GetValue
wxSpinButton *This = (wxSpinButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetValue();
rt.addInt(Result);
- break;
+ break;
}
-case wxSpinButton_SetRange: { // wxSpinButton::SetRange
+case wxSpinButton_SetRange: { // wxSpinButton::SetRange
wxSpinButton *This = (wxSpinButton *) getPtr(bp,memenv); bp += 4;
int * minVal = (int *) bp; bp += 4;
int * maxVal = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRange((int) *minVal,(int) *maxVal);
- break;
+ break;
}
-case wxSpinButton_SetValue: { // wxSpinButton::SetValue
+case wxSpinButton_SetValue: { // wxSpinButton::SetValue
wxSpinButton *This = (wxSpinButton *) getPtr(bp,memenv); bp += 4;
int * value = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetValue((int) *value);
- break;
+ break;
}
-case wxSpinCtrl_new_0: { // wxSpinCtrl::wxSpinCtrl
+case wxSpinCtrl_new_0: { // wxSpinCtrl::wxSpinCtrl
wxSpinCtrl * Result = new EwxSpinCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSpinCtrl");
- break;
+ break;
}
-case wxSpinCtrl_new_2: { // wxSpinCtrl::wxSpinCtrl
+case wxSpinCtrl_new_2: { // wxSpinCtrl::wxSpinCtrl
wxWindowID id=wxID_ANY;
wxString value= wxEmptyString;
wxPoint pos= wxDefaultPosition;
@@ -19341,7 +19348,7 @@ case wxSpinCtrl_new_2: { // wxSpinCtrl::wxSpinCtrl
int initial=0;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -19374,13 +19381,13 @@ case wxSpinCtrl_new_2: { // wxSpinCtrl::wxSpinCtrl
case 8: {bp += 4;
initial = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxSpinCtrl * Result = new EwxSpinCtrl(parent,id,value,pos,size,style,min,max,initial);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSpinCtrl");
- break;
+ break;
}
-case wxSpinCtrl_Create: { // wxSpinCtrl::Create
+case wxSpinCtrl_Create: { // wxSpinCtrl::Create
wxWindowID id=wxID_ANY;
wxString value= wxEmptyString;
wxPoint pos= wxDefaultPosition;
@@ -19391,7 +19398,7 @@ case wxSpinCtrl_Create: { // wxSpinCtrl::Create
int initial=0;
wxSpinCtrl *This = (wxSpinCtrl *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -19424,72 +19431,72 @@ case wxSpinCtrl_Create: { // wxSpinCtrl::Create
case 8: {bp += 4;
initial = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,id,value,pos,size,style,min,max,initial);
rt.addBool(Result);
- break;
+ break;
}
-case wxSpinCtrl_SetValue_1_1: { // wxSpinCtrl::SetValue
+case wxSpinCtrl_SetValue_1_1: { // wxSpinCtrl::SetValue
wxSpinCtrl *This = (wxSpinCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetValue(text);
- break;
+ break;
}
-case wxSpinCtrl_SetValue_1_0: { // wxSpinCtrl::SetValue
+case wxSpinCtrl_SetValue_1_0: { // wxSpinCtrl::SetValue
wxSpinCtrl *This = (wxSpinCtrl *) getPtr(bp,memenv); bp += 4;
int * value = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetValue((int) *value);
- break;
+ break;
}
-case wxSpinCtrl_GetValue: { // wxSpinCtrl::GetValue
+case wxSpinCtrl_GetValue: { // wxSpinCtrl::GetValue
wxSpinCtrl *This = (wxSpinCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetValue();
rt.addInt(Result);
- break;
+ break;
}
-case wxSpinCtrl_SetRange: { // wxSpinCtrl::SetRange
+case wxSpinCtrl_SetRange: { // wxSpinCtrl::SetRange
wxSpinCtrl *This = (wxSpinCtrl *) getPtr(bp,memenv); bp += 4;
int * minVal = (int *) bp; bp += 4;
int * maxVal = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRange((int) *minVal,(int) *maxVal);
- break;
+ break;
}
-case wxSpinCtrl_SetSelection: { // wxSpinCtrl::SetSelection
+case wxSpinCtrl_SetSelection: { // wxSpinCtrl::SetSelection
wxSpinCtrl *This = (wxSpinCtrl *) getPtr(bp,memenv); bp += 4;
int * from = (int *) bp; bp += 4;
int * to = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((long) *from,(long) *to);
- break;
+ break;
}
-case wxSpinCtrl_GetMin: { // wxSpinCtrl::GetMin
+case wxSpinCtrl_GetMin: { // wxSpinCtrl::GetMin
wxSpinCtrl *This = (wxSpinCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMin();
rt.addInt(Result);
- break;
+ break;
}
-case wxSpinCtrl_GetMax: { // wxSpinCtrl::GetMax
+case wxSpinCtrl_GetMax: { // wxSpinCtrl::GetMax
wxSpinCtrl *This = (wxSpinCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMax();
rt.addInt(Result);
- break;
+ break;
}
-case wxStaticText_new_0: { // wxStaticText::wxStaticText
+case wxStaticText_new_0: { // wxStaticText::wxStaticText
wxStaticText * Result = new EwxStaticText();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticText");
- break;
+ break;
}
-case wxStaticText_new_4: { // wxStaticText::wxStaticText
+case wxStaticText_new_4: { // wxStaticText::wxStaticText
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -19498,7 +19505,7 @@ case wxStaticText_new_4: { // wxStaticText::wxStaticText
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -19514,13 +19521,13 @@ case wxStaticText_new_4: { // wxStaticText::wxStaticText
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxStaticText * Result = new EwxStaticText(parent,(wxWindowID) *id,label,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticText");
- break;
+ break;
}
-case wxStaticText_Create: { // wxStaticText::Create
+case wxStaticText_Create: { // wxStaticText::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -19530,7 +19537,7 @@ case wxStaticText_Create: { // wxStaticText::Create
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -19546,42 +19553,42 @@ case wxStaticText_Create: { // wxStaticText::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,label,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxStaticText_GetLabel: { // wxStaticText::GetLabel
+case wxStaticText_GetLabel: { // wxStaticText::GetLabel
wxStaticText *This = (wxStaticText *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLabel();
rt.add(Result);
- break;
+ break;
}
-case wxStaticText_SetLabel: { // wxStaticText::SetLabel
+case wxStaticText_SetLabel: { // wxStaticText::SetLabel
wxStaticText *This = (wxStaticText *) getPtr(bp,memenv); bp += 4;
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetLabel(label);
- break;
+ break;
}
-case wxStaticText_Wrap: { // wxStaticText::Wrap
+case wxStaticText_Wrap: { // wxStaticText::Wrap
wxStaticText *This = (wxStaticText *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Wrap((int) *width);
- break;
+ break;
}
-case wxStaticBitmap_new_0: { // wxStaticBitmap::wxStaticBitmap
+case wxStaticBitmap_new_0: { // wxStaticBitmap::wxStaticBitmap
wxStaticBitmap * Result = new EwxStaticBitmap();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticBitmap");
- break;
+ break;
}
-case wxStaticBitmap_new_4: { // wxStaticBitmap::wxStaticBitmap
+case wxStaticBitmap_new_4: { // wxStaticBitmap::wxStaticBitmap
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -19589,7 +19596,7 @@ case wxStaticBitmap_new_4: { // wxStaticBitmap::wxStaticBitmap
int * id = (int *) bp; bp += 4;
wxBitmap *label = (wxBitmap *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -19605,13 +19612,13 @@ case wxStaticBitmap_new_4: { // wxStaticBitmap::wxStaticBitmap
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxStaticBitmap * Result = new EwxStaticBitmap(parent,(wxWindowID) *id,*label,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxStaticBitmap");
- break;
+ break;
}
-case wxStaticBitmap_Create: { // wxStaticBitmap::Create
+case wxStaticBitmap_Create: { // wxStaticBitmap::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -19619,7 +19626,7 @@ case wxStaticBitmap_Create: { // wxStaticBitmap::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
wxBitmap *label = (wxBitmap *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -19635,27 +19642,27 @@ case wxStaticBitmap_Create: { // wxStaticBitmap::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,*label,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxStaticBitmap_GetBitmap: { // wxStaticBitmap::GetBitmap
+case wxStaticBitmap_GetBitmap: { // wxStaticBitmap::GetBitmap
wxStaticBitmap *This = (wxStaticBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxBitmap * Result = new wxBitmap(This->GetBitmap()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxStaticBitmap_SetBitmap: { // wxStaticBitmap::SetBitmap
+case wxStaticBitmap_SetBitmap: { // wxStaticBitmap::SetBitmap
wxStaticBitmap *This = (wxStaticBitmap *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBitmap(*bitmap);
- break;
+ break;
}
-case wxRadioBox_new: { // wxRadioBox::wxRadioBox
+case wxRadioBox_new: { // wxRadioBox::wxRadioBox
int majorDim=1;
long style=wxRA_HORIZONTAL;
const wxValidator * val= &wxDefaultValidator;
@@ -19680,7 +19687,7 @@ case wxRadioBox_new: { // wxRadioBox::wxRadioBox
choicesASz += *choicesTemp+4;
}
bp += (8-((4+ choicesASz) & 7 )) & 7;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
majorDim = (int)*(int *) bp; bp += 4;
} break;
@@ -19690,13 +19697,13 @@ case wxRadioBox_new: { // wxRadioBox::wxRadioBox
case 3: {bp += 4;
val = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxRadioBox * Result = new EwxRadioBox(parent,(wxWindowID) *id,title,pos,size,choices,majorDim,style,*val);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxRadioBox");
- break;
+ break;
}
-case wxRadioBox_Create: { // wxRadioBox::Create
+case wxRadioBox_Create: { // wxRadioBox::Create
int majorDim=0;
long style=wxRA_HORIZONTAL;
const wxValidator * val= &wxDefaultValidator;
@@ -19722,7 +19729,7 @@ case wxRadioBox_Create: { // wxRadioBox::Create
choicesASz += *choicesTemp+4;
}
bp += (8-((4+ choicesASz) & 7 )) & 7;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
majorDim = (int)*(int *) bp; bp += 4;
} break;
@@ -19732,114 +19739,114 @@ case wxRadioBox_Create: { // wxRadioBox::Create
case 3: {bp += 4;
val = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,title,pos,size,choices,majorDim,style,*val);
rt.addBool(Result);
- break;
+ break;
}
-case wxRadioBox_Enable_2: { // wxRadioBox::Enable
+case wxRadioBox_Enable_2: { // wxRadioBox::Enable
bool enable=true;
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Enable((int) *n,enable);
rt.addBool(Result);
- break;
+ break;
}
-case wxRadioBox_Enable_1: { // wxRadioBox::Enable
+case wxRadioBox_Enable_1: { // wxRadioBox::Enable
bool enable=true;
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
enable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Enable(enable);
rt.addBool(Result);
- break;
+ break;
}
-case wxRadioBox_GetSelection: { // wxRadioBox::GetSelection
+case wxRadioBox_GetSelection: { // wxRadioBox::GetSelection
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxRadioBox_GetString: { // wxRadioBox::GetString
+case wxRadioBox_GetString: { // wxRadioBox::GetString
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetString((int) *n);
rt.add(Result);
- break;
+ break;
}
-case wxRadioBox_SetSelection: { // wxRadioBox::SetSelection
+case wxRadioBox_SetSelection: { // wxRadioBox::SetSelection
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
int * n = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((int) *n);
- break;
+ break;
}
-case wxRadioBox_Show_2: { // wxRadioBox::Show
+case wxRadioBox_Show_2: { // wxRadioBox::Show
bool show=true;
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
show = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Show((int) *n,show);
rt.addBool(Result);
- break;
+ break;
}
-case wxRadioBox_Show_1: { // wxRadioBox::Show
+case wxRadioBox_Show_1: { // wxRadioBox::Show
bool show=true;
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
show = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Show(show);
rt.addBool(Result);
- break;
+ break;
}
-case wxRadioBox_GetColumnCount: { // wxRadioBox::GetColumnCount
+case wxRadioBox_GetColumnCount: { // wxRadioBox::GetColumnCount
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColumnCount();
rt.addUint(Result);
- break;
+ break;
}
-case wxRadioBox_GetItemHelpText: { // wxRadioBox::GetItemHelpText
+case wxRadioBox_GetItemHelpText: { // wxRadioBox::GetItemHelpText
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetItemHelpText((int) *n);
rt.add(Result);
- break;
+ break;
}
-case wxRadioBox_GetItemToolTip: { // wxRadioBox::GetItemToolTip
+case wxRadioBox_GetItemToolTip: { // wxRadioBox::GetItemToolTip
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
unsigned int * item = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxToolTip * Result = (wxToolTip*)This->GetItemToolTip((int) *item);
rt.addRef(getRef((void *)Result,memenv), "wxToolTip");
- break;
+ break;
}
-case wxRadioBox_GetItemFromPoint: { // wxRadioBox::GetItemFromPoint
+case wxRadioBox_GetItemFromPoint: { // wxRadioBox::GetItemFromPoint
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -19847,32 +19854,32 @@ case wxRadioBox_GetItemFromPoint: { // wxRadioBox::GetItemFromPoint
if(!This) throw wxe_badarg(0);
int Result = This->GetItemFromPoint(pt);
rt.addInt(Result);
- break;
+ break;
}
-case wxRadioBox_GetRowCount: { // wxRadioBox::GetRowCount
+case wxRadioBox_GetRowCount: { // wxRadioBox::GetRowCount
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRowCount();
rt.addUint(Result);
- break;
+ break;
}
-case wxRadioBox_IsItemEnabled: { // wxRadioBox::IsItemEnabled
+case wxRadioBox_IsItemEnabled: { // wxRadioBox::IsItemEnabled
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsItemEnabled((int) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxRadioBox_IsItemShown: { // wxRadioBox::IsItemShown
+case wxRadioBox_IsItemShown: { // wxRadioBox::IsItemShown
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsItemShown((int) *n);
rt.addBool(Result);
- break;
+ break;
}
-case wxRadioBox_SetItemHelpText: { // wxRadioBox::SetItemHelpText
+case wxRadioBox_SetItemHelpText: { // wxRadioBox::SetItemHelpText
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
unsigned int * n = (unsigned int *) bp; bp += 4;
int * helpTextLen = (int *) bp; bp += 4;
@@ -19880,9 +19887,9 @@ case wxRadioBox_SetItemHelpText: { // wxRadioBox::SetItemHelpText
bp += *helpTextLen+((8-((4+ *helpTextLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetItemHelpText((int) *n,helpText);
- break;
+ break;
}
-case wxRadioBox_SetItemToolTip: { // wxRadioBox::SetItemToolTip
+case wxRadioBox_SetItemToolTip: { // wxRadioBox::SetItemToolTip
wxRadioBox *This = (wxRadioBox *) getPtr(bp,memenv); bp += 4;
unsigned int * item = (unsigned int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
@@ -19890,15 +19897,15 @@ case wxRadioBox_SetItemToolTip: { // wxRadioBox::SetItemToolTip
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetItemToolTip((int) *item,text);
- break;
+ break;
}
-case wxRadioButton_new_0: { // wxRadioButton::wxRadioButton
+case wxRadioButton_new_0: { // wxRadioButton::wxRadioButton
wxRadioButton * Result = new EwxRadioButton();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxRadioButton");
- break;
+ break;
}
-case wxRadioButton_new_4: { // wxRadioButton::wxRadioButton
+case wxRadioButton_new_4: { // wxRadioButton::wxRadioButton
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -19908,7 +19915,7 @@ case wxRadioButton_new_4: { // wxRadioButton::wxRadioButton
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((4+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -19927,13 +19934,13 @@ case wxRadioButton_new_4: { // wxRadioButton::wxRadioButton
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxRadioButton * Result = new EwxRadioButton(parent,(wxWindowID) *id,label,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxRadioButton");
- break;
+ break;
}
-case wxRadioButton_Create: { // wxRadioButton::Create
+case wxRadioButton_Create: { // wxRadioButton::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
@@ -19944,7 +19951,7 @@ case wxRadioButton_Create: { // wxRadioButton::Create
int * labelLen = (int *) bp; bp += 4;
wxString label = wxString(bp, wxConvUTF8);
bp += *labelLen+((8-((0+ *labelLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -19963,27 +19970,27 @@ case wxRadioButton_Create: { // wxRadioButton::Create
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,label,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxRadioButton_GetValue: { // wxRadioButton::GetValue
+case wxRadioButton_GetValue: { // wxRadioButton::GetValue
wxRadioButton *This = (wxRadioButton *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetValue();
rt.addBool(Result);
- break;
+ break;
}
-case wxRadioButton_SetValue: { // wxRadioButton::SetValue
+case wxRadioButton_SetValue: { // wxRadioButton::SetValue
wxRadioButton *This = (wxRadioButton *) getPtr(bp,memenv); bp += 4;
bool * val = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetValue((bool) *val);
- break;
+ break;
}
-case wxSlider_new_6: { // wxSlider::wxSlider
+case wxSlider_new_6: { // wxSlider::wxSlider
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSL_HORIZONTAL;
@@ -19994,7 +20001,7 @@ case wxSlider_new_6: { // wxSlider::wxSlider
int * minValue = (int *) bp; bp += 4;
int * maxValue = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -20013,19 +20020,19 @@ case wxSlider_new_6: { // wxSlider::wxSlider
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxSlider * Result = new EwxSlider(parent,(wxWindowID) *id,(int) *value,(int) *minValue,(int) *maxValue,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSlider");
- break;
+ break;
}
-case wxSlider_new_0: { // wxSlider::wxSlider
+case wxSlider_new_0: { // wxSlider::wxSlider
wxSlider * Result = new EwxSlider();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSlider");
- break;
+ break;
}
-case wxSlider_Create: { // wxSlider::Create
+case wxSlider_Create: { // wxSlider::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSL_HORIZONTAL;
@@ -20036,7 +20043,7 @@ case wxSlider_Create: { // wxSlider::Create
int * value = (int *) bp; bp += 4;
int * minValue = (int *) bp; bp += 4;
int * maxValue = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -20055,91 +20062,91 @@ case wxSlider_Create: { // wxSlider::Create
case 4: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,(int) *value,(int) *minValue,(int) *maxValue,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxSlider_GetLineSize: { // wxSlider::GetLineSize
+case wxSlider_GetLineSize: { // wxSlider::GetLineSize
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLineSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxSlider_GetMax: { // wxSlider::GetMax
+case wxSlider_GetMax: { // wxSlider::GetMax
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMax();
rt.addInt(Result);
- break;
+ break;
}
-case wxSlider_GetMin: { // wxSlider::GetMin
+case wxSlider_GetMin: { // wxSlider::GetMin
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMin();
rt.addInt(Result);
- break;
+ break;
}
-case wxSlider_GetPageSize: { // wxSlider::GetPageSize
+case wxSlider_GetPageSize: { // wxSlider::GetPageSize
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPageSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxSlider_GetThumbLength: { // wxSlider::GetThumbLength
+case wxSlider_GetThumbLength: { // wxSlider::GetThumbLength
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetThumbLength();
rt.addInt(Result);
- break;
+ break;
}
-case wxSlider_GetValue: { // wxSlider::GetValue
+case wxSlider_GetValue: { // wxSlider::GetValue
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetValue();
rt.addInt(Result);
- break;
+ break;
}
-case wxSlider_SetLineSize: { // wxSlider::SetLineSize
+case wxSlider_SetLineSize: { // wxSlider::SetLineSize
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
int * lineSize = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLineSize((int) *lineSize);
- break;
+ break;
}
-case wxSlider_SetPageSize: { // wxSlider::SetPageSize
+case wxSlider_SetPageSize: { // wxSlider::SetPageSize
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
int * pageSize = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPageSize((int) *pageSize);
- break;
+ break;
}
-case wxSlider_SetRange: { // wxSlider::SetRange
+case wxSlider_SetRange: { // wxSlider::SetRange
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
int * minValue = (int *) bp; bp += 4;
int * maxValue = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRange((int) *minValue,(int) *maxValue);
- break;
+ break;
}
-case wxSlider_SetThumbLength: { // wxSlider::SetThumbLength
+case wxSlider_SetThumbLength: { // wxSlider::SetThumbLength
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
int * lenPixels = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetThumbLength((int) *lenPixels);
- break;
+ break;
}
-case wxSlider_SetValue: { // wxSlider::SetValue
+case wxSlider_SetValue: { // wxSlider::SetValue
wxSlider *This = (wxSlider *) getPtr(bp,memenv); bp += 4;
int * value = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetValue((int) *value);
- break;
+ break;
}
-case wxDialog_new_4: { // wxDialog::wxDialog
+case wxDialog_new_4: { // wxDialog::wxDialog
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxDEFAULT_DIALOG_STYLE;
@@ -20148,7 +20155,7 @@ case wxDialog_new_4: { // wxDialog::wxDialog
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((4+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -20164,19 +20171,19 @@ case wxDialog_new_4: { // wxDialog::wxDialog
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxDialog * Result = new EwxDialog(parent,(wxWindowID) *id,title,pos,size,style);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxDialog");
- break;
+ break;
}
-case wxDialog_new_0: { // wxDialog::wxDialog
+case wxDialog_new_0: { // wxDialog::wxDialog
wxDialog * Result = new EwxDialog();
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxDialog");
- break;
+ break;
}
-case wxDialog_Create: { // wxDialog::Create
+case wxDialog_Create: { // wxDialog::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxDEFAULT_DIALOG_STYLE;
@@ -20186,7 +20193,7 @@ case wxDialog_Create: { // wxDialog::Create
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((0+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -20202,175 +20209,175 @@ case wxDialog_Create: { // wxDialog::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,title,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxDialog_CreateButtonSizer: { // wxDialog::CreateButtonSizer
+case wxDialog_CreateButtonSizer: { // wxDialog::CreateButtonSizer
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
int * flags = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxSizer * Result = (wxSizer*)This->CreateButtonSizer((long) *flags);
rt.addRef(getRef((void *)Result,memenv), "wxSizer");
- break;
+ break;
}
-case wxDialog_CreateStdDialogButtonSizer: { // wxDialog::CreateStdDialogButtonSizer
+case wxDialog_CreateStdDialogButtonSizer: { // wxDialog::CreateStdDialogButtonSizer
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
int * flags = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxStdDialogButtonSizer * Result = (wxStdDialogButtonSizer*)This->CreateStdDialogButtonSizer((long) *flags);
rt.addRef(getRef((void *)Result,memenv), "wxStdDialogButtonSizer");
- break;
+ break;
}
-case wxDialog_EndModal: { // wxDialog::EndModal
+case wxDialog_EndModal: { // wxDialog::EndModal
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
int * retCode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EndModal((int) *retCode);
- break;
+ break;
}
-case wxDialog_GetAffirmativeId: { // wxDialog::GetAffirmativeId
+case wxDialog_GetAffirmativeId: { // wxDialog::GetAffirmativeId
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetAffirmativeId();
rt.addInt(Result);
- break;
+ break;
}
-case wxDialog_GetReturnCode: { // wxDialog::GetReturnCode
+case wxDialog_GetReturnCode: { // wxDialog::GetReturnCode
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetReturnCode();
rt.addInt(Result);
- break;
+ break;
}
-case wxDialog_IsModal: { // wxDialog::IsModal
+case wxDialog_IsModal: { // wxDialog::IsModal
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsModal();
rt.addBool(Result);
- break;
+ break;
}
-case wxDialog_SetAffirmativeId: { // wxDialog::SetAffirmativeId
+case wxDialog_SetAffirmativeId: { // wxDialog::SetAffirmativeId
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
int * affirmativeId = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAffirmativeId((int) *affirmativeId);
- break;
+ break;
}
-case wxDialog_SetReturnCode: { // wxDialog::SetReturnCode
+case wxDialog_SetReturnCode: { // wxDialog::SetReturnCode
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
int * returnCode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetReturnCode((int) *returnCode);
- break;
+ break;
}
-case wxDialog_Show: { // wxDialog::Show
+case wxDialog_Show: { // wxDialog::Show
bool show=TRUE;
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
show = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Show(show);
rt.addBool(Result);
- break;
+ break;
}
-case wxDialog_ShowModal: { // wxDialog::ShowModal
+case wxDialog_ShowModal: { // wxDialog::ShowModal
wxDialog *This = (wxDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->ShowModal();
rt.addInt(Result);
- break;
+ break;
}
-case wxColourDialog_new_0: { // wxColourDialog::wxColourDialog
+case wxColourDialog_new_0: { // wxColourDialog::wxColourDialog
wxColourDialog * Result = new EwxColourDialog();
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxColourDialog");
- break;
+ break;
}
-case wxColourDialog_new_2: { // wxColourDialog::wxColourDialog
+case wxColourDialog_new_2: { // wxColourDialog::wxColourDialog
wxColourData * data=(wxColourData *) NULL;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
data = (wxColourData *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxColourDialog * Result = new EwxColourDialog(parent,data);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxColourDialog");
- break;
+ break;
}
-case wxColourDialog_Create: { // wxColourDialog::Create
+case wxColourDialog_Create: { // wxColourDialog::Create
wxColourData * data=(wxColourData *) NULL;
wxColourDialog *This = (wxColourDialog *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
data = (wxColourData *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,data);
rt.addBool(Result);
- break;
+ break;
}
-case wxColourDialog_GetColourData: { // wxColourDialog::GetColourData
+case wxColourDialog_GetColourData: { // wxColourDialog::GetColourData
wxColourDialog *This = (wxColourDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColourData * Result = &This->GetColourData();
rt.addRef(getRef((void *)Result,memenv), "wxColourData");
- break;
+ break;
}
-case wxColourData_new_0: { // wxColourData::wxColourData
+case wxColourData_new_0: { // wxColourData::wxColourData
wxColourData * Result = new EwxColourData();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxColourData");
- break;
+ break;
}
-case wxColourData_new_1: { // wxColourData::wxColourData
+case wxColourData_new_1: { // wxColourData::wxColourData
wxColourData *data = (wxColourData *) getPtr(bp,memenv); bp += 4;
wxColourData * Result = new EwxColourData(*data);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxColourData");
- break;
+ break;
}
-case wxColourData_GetChooseFull: { // wxColourData::GetChooseFull
+case wxColourData_GetChooseFull: { // wxColourData::GetChooseFull
wxColourData *This = (wxColourData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetChooseFull();
rt.addBool(Result);
- break;
+ break;
}
-case wxColourData_GetColour: { // wxColourData::GetColour
+case wxColourData_GetColour: { // wxColourData::GetColour
wxColourData *This = (wxColourData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetColour();
rt.add((*Result));
- break;
+ break;
}
-case wxColourData_GetCustomColour: { // wxColourData::GetCustomColour
+case wxColourData_GetCustomColour: { // wxColourData::GetCustomColour
wxColourData *This = (wxColourData *) getPtr(bp,memenv); bp += 4;
int * i = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetCustomColour((int) *i);
rt.add(Result);
- break;
+ break;
}
-case wxColourData_SetChooseFull: { // wxColourData::SetChooseFull
+case wxColourData_SetChooseFull: { // wxColourData::SetChooseFull
wxColourData *This = (wxColourData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetChooseFull((bool) *flag);
- break;
+ break;
}
-case wxColourData_SetColour: { // wxColourData::SetColour
+case wxColourData_SetColour: { // wxColourData::SetColour
wxColourData *This = (wxColourData *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -20379,9 +20386,9 @@ case wxColourData_SetColour: { // wxColourData::SetColour
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
if(!This) throw wxe_badarg(0);
This->SetColour(colour);
- break;
+ break;
}
-case wxColourData_SetCustomColour: { // wxColourData::SetCustomColour
+case wxColourData_SetCustomColour: { // wxColourData::SetCustomColour
wxColourData *This = (wxColourData *) getPtr(bp,memenv); bp += 4;
int * i = (int *) bp; bp += 4;
int * colourR = (int *) bp; bp += 4;
@@ -20391,41 +20398,41 @@ case wxColourData_SetCustomColour: { // wxColourData::SetCustomColour
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
if(!This) throw wxe_badarg(0);
This->SetCustomColour((int) *i,colour);
- break;
+ break;
}
-case wxPalette_new_0: { // wxPalette::wxPalette
+case wxPalette_new_0: { // wxPalette::wxPalette
wxPalette * Result = new EwxPalette();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPalette");
- break;
+ break;
}
-case wxPalette_new_4: { // wxPalette::wxPalette
- const unsigned char * red = (const unsigned char*) Ecmd.bin[0]->base;
- const unsigned char * green = (const unsigned char*) Ecmd.bin[1]->base;
- const unsigned char * blue = (const unsigned char*) Ecmd.bin[2]->base;
+case wxPalette_new_4: { // wxPalette::wxPalette
+ const unsigned char * red = (const unsigned char*) Ecmd.bin[0]->base;
+ const unsigned char * green = (const unsigned char*) Ecmd.bin[1]->base;
+ const unsigned char * blue = (const unsigned char*) Ecmd.bin[2]->base;
wxPalette * Result = new EwxPalette(Ecmd.bin[0]->size,red,green,blue);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPalette");
- break;
+ break;
}
-case wxPalette_Create: { // wxPalette::Create
+case wxPalette_Create: { // wxPalette::Create
wxPalette *This = (wxPalette *) getPtr(bp,memenv); bp += 4;
- const unsigned char * red = (const unsigned char*) Ecmd.bin[0]->base;
- const unsigned char * green = (const unsigned char*) Ecmd.bin[1]->base;
- const unsigned char * blue = (const unsigned char*) Ecmd.bin[2]->base;
+ const unsigned char * red = (const unsigned char*) Ecmd.bin[0]->base;
+ const unsigned char * green = (const unsigned char*) Ecmd.bin[1]->base;
+ const unsigned char * blue = (const unsigned char*) Ecmd.bin[2]->base;
if(!This) throw wxe_badarg(0);
bool Result = This->Create(Ecmd.bin[0]->size,red,green,blue);
rt.addBool(Result);
- break;
+ break;
}
-case wxPalette_GetColoursCount: { // wxPalette::GetColoursCount
+case wxPalette_GetColoursCount: { // wxPalette::GetColoursCount
wxPalette *This = (wxPalette *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColoursCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxPalette_GetPixel: { // wxPalette::GetPixel
+case wxPalette_GetPixel: { // wxPalette::GetPixel
wxPalette *This = (wxPalette *) getPtr(bp,memenv); bp += 4;
unsigned int * red = (unsigned int *) bp; bp += 4;
unsigned int * green = (unsigned int *) bp; bp += 4;
@@ -20433,9 +20440,9 @@ case wxPalette_GetPixel: { // wxPalette::GetPixel
if(!This) throw wxe_badarg(0);
int Result = This->GetPixel((char) *red,(char) *green,(char) *blue);
rt.addInt(Result);
- break;
+ break;
}
-case wxPalette_GetRGB: { // wxPalette::GetRGB
+case wxPalette_GetRGB: { // wxPalette::GetRGB
unsigned char red;
unsigned char green;
unsigned char blue;
@@ -20448,16 +20455,16 @@ case wxPalette_GetRGB: { // wxPalette::GetRGB
rt.addUint(green);
rt.addUint(blue);
rt.addTupleCount(4);
- break;
+ break;
}
-case wxPalette_IsOk: { // wxPalette::IsOk
+case wxPalette_IsOk: { // wxPalette::IsOk
wxPalette *This = (wxPalette *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxDirDialog_new: { // wxDirDialog::wxDirDialog
+case wxDirDialog_new: { // wxDirDialog::wxDirDialog
wxString title= wxDirSelectorPromptStr;
wxString defaultPath= wxEmptyString;
long style=(wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER);
@@ -20465,7 +20472,7 @@ case wxDirDialog_new: { // wxDirDialog::wxDirDialog
wxSize sz= wxDefaultSize;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * titleLen = (int *) bp; bp += 4;
title = wxString(bp, wxConvUTF8);
@@ -20491,45 +20498,45 @@ case wxDirDialog_new: { // wxDirDialog::wxDirDialog
sz = wxSize(*szW,*szH);
bp += 4; /* Align */
} break;
- }};
+ }};
wxDirDialog * Result = new EwxDirDialog(parent,title,defaultPath,style,pos,sz);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxDirDialog");
- break;
+ break;
}
-case wxDirDialog_GetPath: { // wxDirDialog::GetPath
+case wxDirDialog_GetPath: { // wxDirDialog::GetPath
wxDirDialog *This = (wxDirDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPath();
rt.add(Result);
- break;
+ break;
}
-case wxDirDialog_GetMessage: { // wxDirDialog::GetMessage
+case wxDirDialog_GetMessage: { // wxDirDialog::GetMessage
wxDirDialog *This = (wxDirDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetMessage();
rt.add(Result);
- break;
+ break;
}
-case wxDirDialog_SetMessage: { // wxDirDialog::SetMessage
+case wxDirDialog_SetMessage: { // wxDirDialog::SetMessage
wxDirDialog *This = (wxDirDialog *) getPtr(bp,memenv); bp += 4;
int * messageLen = (int *) bp; bp += 4;
wxString message = wxString(bp, wxConvUTF8);
bp += *messageLen+((8-((0+ *messageLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetMessage(message);
- break;
+ break;
}
-case wxDirDialog_SetPath: { // wxDirDialog::SetPath
+case wxDirDialog_SetPath: { // wxDirDialog::SetPath
wxDirDialog *This = (wxDirDialog *) getPtr(bp,memenv); bp += 4;
int * pathLen = (int *) bp; bp += 4;
wxString path = wxString(bp, wxConvUTF8);
bp += *pathLen+((8-((0+ *pathLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetPath(path);
- break;
+ break;
}
-case wxFileDialog_new: { // wxFileDialog::wxFileDialog
+case wxFileDialog_new: { // wxFileDialog::wxFileDialog
wxString message= wxFileSelectorPromptStr;
wxString defaultDir= wxEmptyString;
wxString defaultFile= wxEmptyString;
@@ -20539,7 +20546,7 @@ case wxFileDialog_new: { // wxFileDialog::wxFileDialog
wxSize sz= wxDefaultSize;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * messageLen = (int *) bp; bp += 4;
message = wxString(bp, wxConvUTF8);
@@ -20575,225 +20582,225 @@ case wxFileDialog_new: { // wxFileDialog::wxFileDialog
sz = wxSize(*szW,*szH);
bp += 4; /* Align */
} break;
- }};
+ }};
wxFileDialog * Result = new EwxFileDialog(parent,message,defaultDir,defaultFile,wildCard,style,pos,sz);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFileDialog");
- break;
+ break;
}
-case wxFileDialog_GetDirectory: { // wxFileDialog::GetDirectory
+case wxFileDialog_GetDirectory: { // wxFileDialog::GetDirectory
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetDirectory();
rt.add(Result);
- break;
+ break;
}
-case wxFileDialog_GetFilename: { // wxFileDialog::GetFilename
+case wxFileDialog_GetFilename: { // wxFileDialog::GetFilename
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetFilename();
rt.add(Result);
- break;
+ break;
}
-case wxFileDialog_GetFilenames: { // wxFileDialog::GetFilenames
+case wxFileDialog_GetFilenames: { // wxFileDialog::GetFilenames
wxArrayString files;
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->GetFilenames(files);
rt.add(files);
- break;
+ break;
}
-case wxFileDialog_GetFilterIndex: { // wxFileDialog::GetFilterIndex
+case wxFileDialog_GetFilterIndex: { // wxFileDialog::GetFilterIndex
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFilterIndex();
rt.addInt(Result);
- break;
+ break;
}
-case wxFileDialog_GetMessage: { // wxFileDialog::GetMessage
+case wxFileDialog_GetMessage: { // wxFileDialog::GetMessage
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetMessage();
rt.add(Result);
- break;
+ break;
}
-case wxFileDialog_GetPath: { // wxFileDialog::GetPath
+case wxFileDialog_GetPath: { // wxFileDialog::GetPath
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPath();
rt.add(Result);
- break;
+ break;
}
-case wxFileDialog_GetPaths: { // wxFileDialog::GetPaths
+case wxFileDialog_GetPaths: { // wxFileDialog::GetPaths
wxArrayString paths;
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->GetPaths(paths);
rt.add(paths);
- break;
+ break;
}
-case wxFileDialog_GetWildcard: { // wxFileDialog::GetWildcard
+case wxFileDialog_GetWildcard: { // wxFileDialog::GetWildcard
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetWildcard();
rt.add(Result);
- break;
+ break;
}
-case wxFileDialog_SetDirectory: { // wxFileDialog::SetDirectory
+case wxFileDialog_SetDirectory: { // wxFileDialog::SetDirectory
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
int * dirLen = (int *) bp; bp += 4;
wxString dir = wxString(bp, wxConvUTF8);
bp += *dirLen+((8-((0+ *dirLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetDirectory(dir);
- break;
+ break;
}
-case wxFileDialog_SetFilename: { // wxFileDialog::SetFilename
+case wxFileDialog_SetFilename: { // wxFileDialog::SetFilename
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
bp += *nameLen+((8-((0+ *nameLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetFilename(name);
- break;
+ break;
}
-case wxFileDialog_SetFilterIndex: { // wxFileDialog::SetFilterIndex
+case wxFileDialog_SetFilterIndex: { // wxFileDialog::SetFilterIndex
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
int * filterIndex = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFilterIndex((int) *filterIndex);
- break;
+ break;
}
-case wxFileDialog_SetMessage: { // wxFileDialog::SetMessage
+case wxFileDialog_SetMessage: { // wxFileDialog::SetMessage
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
int * messageLen = (int *) bp; bp += 4;
wxString message = wxString(bp, wxConvUTF8);
bp += *messageLen+((8-((0+ *messageLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetMessage(message);
- break;
+ break;
}
-case wxFileDialog_SetPath: { // wxFileDialog::SetPath
+case wxFileDialog_SetPath: { // wxFileDialog::SetPath
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
int * pathLen = (int *) bp; bp += 4;
wxString path = wxString(bp, wxConvUTF8);
bp += *pathLen+((8-((0+ *pathLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetPath(path);
- break;
+ break;
}
-case wxFileDialog_SetWildcard: { // wxFileDialog::SetWildcard
+case wxFileDialog_SetWildcard: { // wxFileDialog::SetWildcard
wxFileDialog *This = (wxFileDialog *) getPtr(bp,memenv); bp += 4;
int * wildCardLen = (int *) bp; bp += 4;
wxString wildCard = wxString(bp, wxConvUTF8);
bp += *wildCardLen+((8-((0+ *wildCardLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetWildcard(wildCard);
- break;
+ break;
}
-case wxPickerBase_SetInternalMargin: { // wxPickerBase::SetInternalMargin
+case wxPickerBase_SetInternalMargin: { // wxPickerBase::SetInternalMargin
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
int * newmargin = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetInternalMargin((int) *newmargin);
- break;
+ break;
}
-case wxPickerBase_GetInternalMargin: { // wxPickerBase::GetInternalMargin
+case wxPickerBase_GetInternalMargin: { // wxPickerBase::GetInternalMargin
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetInternalMargin();
rt.addInt(Result);
- break;
+ break;
}
-case wxPickerBase_SetTextCtrlProportion: { // wxPickerBase::SetTextCtrlProportion
+case wxPickerBase_SetTextCtrlProportion: { // wxPickerBase::SetTextCtrlProportion
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
int * prop = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetTextCtrlProportion((int) *prop);
- break;
+ break;
}
-case wxPickerBase_SetPickerCtrlProportion: { // wxPickerBase::SetPickerCtrlProportion
+case wxPickerBase_SetPickerCtrlProportion: { // wxPickerBase::SetPickerCtrlProportion
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
int * prop = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPickerCtrlProportion((int) *prop);
- break;
+ break;
}
-case wxPickerBase_GetTextCtrlProportion: { // wxPickerBase::GetTextCtrlProportion
+case wxPickerBase_GetTextCtrlProportion: { // wxPickerBase::GetTextCtrlProportion
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetTextCtrlProportion();
rt.addInt(Result);
- break;
+ break;
}
-case wxPickerBase_GetPickerCtrlProportion: { // wxPickerBase::GetPickerCtrlProportion
+case wxPickerBase_GetPickerCtrlProportion: { // wxPickerBase::GetPickerCtrlProportion
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPickerCtrlProportion();
rt.addInt(Result);
- break;
+ break;
}
-case wxPickerBase_HasTextCtrl: { // wxPickerBase::HasTextCtrl
+case wxPickerBase_HasTextCtrl: { // wxPickerBase::HasTextCtrl
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasTextCtrl();
rt.addBool(Result);
- break;
+ break;
}
-case wxPickerBase_GetTextCtrl: { // wxPickerBase::GetTextCtrl
+case wxPickerBase_GetTextCtrl: { // wxPickerBase::GetTextCtrl
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTextCtrl * Result = (wxTextCtrl*)This->GetTextCtrl();
rt.addRef(getRef((void *)Result,memenv), "wxTextCtrl");
- break;
+ break;
}
-case wxPickerBase_IsTextCtrlGrowable: { // wxPickerBase::IsTextCtrlGrowable
+case wxPickerBase_IsTextCtrlGrowable: { // wxPickerBase::IsTextCtrlGrowable
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsTextCtrlGrowable();
rt.addBool(Result);
- break;
+ break;
}
-case wxPickerBase_SetPickerCtrlGrowable: { // wxPickerBase::SetPickerCtrlGrowable
+case wxPickerBase_SetPickerCtrlGrowable: { // wxPickerBase::SetPickerCtrlGrowable
bool grow=true;
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
grow = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetPickerCtrlGrowable(grow);
- break;
+ break;
}
-case wxPickerBase_SetTextCtrlGrowable: { // wxPickerBase::SetTextCtrlGrowable
+case wxPickerBase_SetTextCtrlGrowable: { // wxPickerBase::SetTextCtrlGrowable
bool grow=true;
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
grow = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetTextCtrlGrowable(grow);
- break;
+ break;
}
-case wxPickerBase_IsPickerCtrlGrowable: { // wxPickerBase::IsPickerCtrlGrowable
+case wxPickerBase_IsPickerCtrlGrowable: { // wxPickerBase::IsPickerCtrlGrowable
wxPickerBase *This = (wxPickerBase *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsPickerCtrlGrowable();
rt.addBool(Result);
- break;
+ break;
}
-case wxFilePickerCtrl_new_0: { // wxFilePickerCtrl::wxFilePickerCtrl
+case wxFilePickerCtrl_new_0: { // wxFilePickerCtrl::wxFilePickerCtrl
wxFilePickerCtrl * Result = new EwxFilePickerCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFilePickerCtrl");
- break;
+ break;
}
-case wxFilePickerCtrl_new_3: { // wxFilePickerCtrl::wxFilePickerCtrl
+case wxFilePickerCtrl_new_3: { // wxFilePickerCtrl::wxFilePickerCtrl
wxString path= wxEmptyString;
wxString message= wxFileSelectorPromptStr;
wxString wildcard= wxFileSelectorDefaultWildcardStr;
@@ -20803,7 +20810,7 @@ case wxFilePickerCtrl_new_3: { // wxFilePickerCtrl::wxFilePickerCtrl
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * pathLen = (int *) bp; bp += 4;
path = wxString(bp, wxConvUTF8);
@@ -20837,13 +20844,13 @@ case wxFilePickerCtrl_new_3: { // wxFilePickerCtrl::wxFilePickerCtrl
case 7: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxFilePickerCtrl * Result = new EwxFilePickerCtrl(parent,(wxWindowID) *id,path,message,wildcard,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFilePickerCtrl");
- break;
+ break;
}
-case wxFilePickerCtrl_Create: { // wxFilePickerCtrl::Create
+case wxFilePickerCtrl_Create: { // wxFilePickerCtrl::Create
wxString path= wxEmptyString;
wxString message= wxFileSelectorPromptStr;
wxString wildcard= wxFileSelectorDefaultWildcardStr;
@@ -20855,7 +20862,7 @@ case wxFilePickerCtrl_Create: { // wxFilePickerCtrl::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * pathLen = (int *) bp; bp += 4;
path = wxString(bp, wxConvUTF8);
@@ -20889,35 +20896,35 @@ case wxFilePickerCtrl_Create: { // wxFilePickerCtrl::Create
case 7: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,path,message,wildcard,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxFilePickerCtrl_GetPath: { // wxFilePickerCtrl::GetPath
+case wxFilePickerCtrl_GetPath: { // wxFilePickerCtrl::GetPath
wxFilePickerCtrl *This = (wxFilePickerCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPath();
rt.add(Result);
- break;
+ break;
}
-case wxFilePickerCtrl_SetPath: { // wxFilePickerCtrl::SetPath
+case wxFilePickerCtrl_SetPath: { // wxFilePickerCtrl::SetPath
wxFilePickerCtrl *This = (wxFilePickerCtrl *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
bp += *strLen+((8-((0+ *strLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetPath(str);
- break;
+ break;
}
-case wxDirPickerCtrl_new_0: { // wxDirPickerCtrl::wxDirPickerCtrl
+case wxDirPickerCtrl_new_0: { // wxDirPickerCtrl::wxDirPickerCtrl
wxDirPickerCtrl * Result = new EwxDirPickerCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxDirPickerCtrl");
- break;
+ break;
}
-case wxDirPickerCtrl_new_3: { // wxDirPickerCtrl::wxDirPickerCtrl
+case wxDirPickerCtrl_new_3: { // wxDirPickerCtrl::wxDirPickerCtrl
wxString path= wxEmptyString;
wxString message= wxDirSelectorPromptStr;
wxPoint pos= wxDefaultPosition;
@@ -20926,7 +20933,7 @@ case wxDirPickerCtrl_new_3: { // wxDirPickerCtrl::wxDirPickerCtrl
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * pathLen = (int *) bp; bp += 4;
path = wxString(bp, wxConvUTF8);
@@ -20955,13 +20962,13 @@ case wxDirPickerCtrl_new_3: { // wxDirPickerCtrl::wxDirPickerCtrl
case 6: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxDirPickerCtrl * Result = new EwxDirPickerCtrl(parent,(wxWindowID) *id,path,message,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxDirPickerCtrl");
- break;
+ break;
}
-case wxDirPickerCtrl_Create: { // wxDirPickerCtrl::Create
+case wxDirPickerCtrl_Create: { // wxDirPickerCtrl::Create
wxString path= wxEmptyString;
wxString message= wxDirSelectorPromptStr;
wxPoint pos= wxDefaultPosition;
@@ -20972,7 +20979,7 @@ case wxDirPickerCtrl_Create: { // wxDirPickerCtrl::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * pathLen = (int *) bp; bp += 4;
path = wxString(bp, wxConvUTF8);
@@ -21001,35 +21008,35 @@ case wxDirPickerCtrl_Create: { // wxDirPickerCtrl::Create
case 6: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,path,message,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxDirPickerCtrl_GetPath: { // wxDirPickerCtrl::GetPath
+case wxDirPickerCtrl_GetPath: { // wxDirPickerCtrl::GetPath
wxDirPickerCtrl *This = (wxDirPickerCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPath();
rt.add(Result);
- break;
+ break;
}
-case wxDirPickerCtrl_SetPath: { // wxDirPickerCtrl::SetPath
+case wxDirPickerCtrl_SetPath: { // wxDirPickerCtrl::SetPath
wxDirPickerCtrl *This = (wxDirPickerCtrl *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
bp += *strLen+((8-((0+ *strLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetPath(str);
- break;
+ break;
}
-case wxColourPickerCtrl_new_0: { // wxColourPickerCtrl::wxColourPickerCtrl
+case wxColourPickerCtrl_new_0: { // wxColourPickerCtrl::wxColourPickerCtrl
wxColourPickerCtrl * Result = new EwxColourPickerCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxColourPickerCtrl");
- break;
+ break;
}
-case wxColourPickerCtrl_new_3: { // wxColourPickerCtrl::wxColourPickerCtrl
+case wxColourPickerCtrl_new_3: { // wxColourPickerCtrl::wxColourPickerCtrl
wxColour col= *wxBLACK;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -21037,7 +21044,7 @@ case wxColourPickerCtrl_new_3: { // wxColourPickerCtrl::wxColourPickerCtrl
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -21064,13 +21071,13 @@ case wxColourPickerCtrl_new_3: { // wxColourPickerCtrl::wxColourPickerCtrl
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxColourPickerCtrl * Result = new EwxColourPickerCtrl(parent,(wxWindowID) *id,col,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxColourPickerCtrl");
- break;
+ break;
}
-case wxColourPickerCtrl_Create: { // wxColourPickerCtrl::Create
+case wxColourPickerCtrl_Create: { // wxColourPickerCtrl::Create
wxColour col= *wxBLACK;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -21080,7 +21087,7 @@ case wxColourPickerCtrl_Create: { // wxColourPickerCtrl::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -21107,20 +21114,20 @@ case wxColourPickerCtrl_Create: { // wxColourPickerCtrl::Create
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,col,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxColourPickerCtrl_GetColour: { // wxColourPickerCtrl::GetColour
+case wxColourPickerCtrl_GetColour: { // wxColourPickerCtrl::GetColour
wxColourPickerCtrl *This = (wxColourPickerCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetColour();
rt.add(Result);
- break;
+ break;
}
-case wxColourPickerCtrl_SetColour_1_1: { // wxColourPickerCtrl::SetColour
+case wxColourPickerCtrl_SetColour_1_1: { // wxColourPickerCtrl::SetColour
wxColourPickerCtrl *This = (wxColourPickerCtrl *) getPtr(bp,memenv); bp += 4;
int * colR = (int *) bp; bp += 4;
int * colG = (int *) bp; bp += 4;
@@ -21129,9 +21136,9 @@ case wxColourPickerCtrl_SetColour_1_1: { // wxColourPickerCtrl::SetColour
wxColour col = wxColour(*colR,*colG,*colB,*colA);
if(!This) throw wxe_badarg(0);
This->SetColour(col);
- break;
+ break;
}
-case wxColourPickerCtrl_SetColour_1_0: { // wxColourPickerCtrl::SetColour
+case wxColourPickerCtrl_SetColour_1_0: { // wxColourPickerCtrl::SetColour
wxColourPickerCtrl *This = (wxColourPickerCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
@@ -21139,15 +21146,15 @@ case wxColourPickerCtrl_SetColour_1_0: { // wxColourPickerCtrl::SetColour
if(!This) throw wxe_badarg(0);
bool Result = This->SetColour(text);
rt.addBool(Result);
- break;
+ break;
}
-case wxDatePickerCtrl_new_0: { // wxDatePickerCtrl::wxDatePickerCtrl
+case wxDatePickerCtrl_new_0: { // wxDatePickerCtrl::wxDatePickerCtrl
wxDatePickerCtrl * Result = new EwxDatePickerCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxDatePickerCtrl");
- break;
+ break;
}
-case wxDatePickerCtrl_new_3: { // wxDatePickerCtrl::wxDatePickerCtrl
+case wxDatePickerCtrl_new_3: { // wxDatePickerCtrl::wxDatePickerCtrl
wxDateTime date= wxDefaultDateTime;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -21155,7 +21162,7 @@ case wxDatePickerCtrl_new_3: { // wxDatePickerCtrl::wxDatePickerCtrl
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * dateD = (int *) bp; bp += 4;
int * dateMo = (int *) bp; bp += 4;
@@ -21184,13 +21191,13 @@ case wxDatePickerCtrl_new_3: { // wxDatePickerCtrl::wxDatePickerCtrl
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxDatePickerCtrl * Result = new EwxDatePickerCtrl(parent,(wxWindowID) *id,date,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxDatePickerCtrl");
- break;
+ break;
}
-case wxDatePickerCtrl_GetRange: { // wxDatePickerCtrl::GetRange
+case wxDatePickerCtrl_GetRange: { // wxDatePickerCtrl::GetRange
wxDatePickerCtrl *This = (wxDatePickerCtrl *) getPtr(bp,memenv); bp += 4;
int * dt1D = (int *) bp; bp += 4;
int * dt1Mo = (int *) bp; bp += 4;
@@ -21209,16 +21216,16 @@ case wxDatePickerCtrl_GetRange: { // wxDatePickerCtrl::GetRange
if(!This) throw wxe_badarg(0);
bool Result = This->GetRange(&dt1,&dt2);
rt.addBool(Result);
- break;
+ break;
}
-case wxDatePickerCtrl_GetValue: { // wxDatePickerCtrl::GetValue
+case wxDatePickerCtrl_GetValue: { // wxDatePickerCtrl::GetValue
wxDatePickerCtrl *This = (wxDatePickerCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxDateTime Result = This->GetValue();
rt.add(Result);
- break;
+ break;
}
-case wxDatePickerCtrl_SetRange: { // wxDatePickerCtrl::SetRange
+case wxDatePickerCtrl_SetRange: { // wxDatePickerCtrl::SetRange
wxDatePickerCtrl *This = (wxDatePickerCtrl *) getPtr(bp,memenv); bp += 4;
int * dt1D = (int *) bp; bp += 4;
int * dt1Mo = (int *) bp; bp += 4;
@@ -21236,9 +21243,9 @@ case wxDatePickerCtrl_SetRange: { // wxDatePickerCtrl::SetRange
wxDateTime dt2 = wxDateTime((wxDateTime::wxDateTime_t) *dt2D,(wxDateTime::Month) *dt2Mo,*dt2Y,(wxDateTime::wxDateTime_t) *dt2H,(wxDateTime::wxDateTime_t) *dt2Mi,(wxDateTime::wxDateTime_t) *dt2S);
if(!This) throw wxe_badarg(0);
This->SetRange(dt1,dt2);
- break;
+ break;
}
-case wxDatePickerCtrl_SetValue: { // wxDatePickerCtrl::SetValue
+case wxDatePickerCtrl_SetValue: { // wxDatePickerCtrl::SetValue
wxDatePickerCtrl *This = (wxDatePickerCtrl *) getPtr(bp,memenv); bp += 4;
int * dateD = (int *) bp; bp += 4;
int * dateMo = (int *) bp; bp += 4;
@@ -21249,15 +21256,15 @@ case wxDatePickerCtrl_SetValue: { // wxDatePickerCtrl::SetValue
wxDateTime date = wxDateTime((wxDateTime::wxDateTime_t) *dateD,(wxDateTime::Month) *dateMo,*dateY,(wxDateTime::wxDateTime_t) *dateH,(wxDateTime::wxDateTime_t) *dateMi,(wxDateTime::wxDateTime_t) *dateS);
if(!This) throw wxe_badarg(0);
This->SetValue(date);
- break;
+ break;
}
-case wxFontPickerCtrl_new_0: { // wxFontPickerCtrl::wxFontPickerCtrl
+case wxFontPickerCtrl_new_0: { // wxFontPickerCtrl::wxFontPickerCtrl
wxFontPickerCtrl * Result = new EwxFontPickerCtrl();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFontPickerCtrl");
- break;
+ break;
}
-case wxFontPickerCtrl_new_3: { // wxFontPickerCtrl::wxFontPickerCtrl
+case wxFontPickerCtrl_new_3: { // wxFontPickerCtrl::wxFontPickerCtrl
const wxFont * initial= &wxNullFont;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -21265,7 +21272,7 @@ case wxFontPickerCtrl_new_3: { // wxFontPickerCtrl::wxFontPickerCtrl
const wxValidator * validator= &wxDefaultValidator;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
initial = (wxFont *) getPtr(bp,memenv); bp += 4;
} break;
@@ -21287,13 +21294,13 @@ initial = (wxFont *) getPtr(bp,memenv); bp += 4;
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxFontPickerCtrl * Result = new EwxFontPickerCtrl(parent,(wxWindowID) *id,*initial,pos,size,style,*validator);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFontPickerCtrl");
- break;
+ break;
}
-case wxFontPickerCtrl_Create: { // wxFontPickerCtrl::Create
+case wxFontPickerCtrl_Create: { // wxFontPickerCtrl::Create
const wxFont * initial= &wxNullFont;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -21303,7 +21310,7 @@ case wxFontPickerCtrl_Create: { // wxFontPickerCtrl::Create
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
initial = (wxFont *) getPtr(bp,memenv); bp += 4;
} break;
@@ -21325,64 +21332,64 @@ initial = (wxFont *) getPtr(bp,memenv); bp += 4;
case 5: {bp += 4;
validator = (wxValidator *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,*initial,pos,size,style,*validator);
rt.addBool(Result);
- break;
+ break;
}
-case wxFontPickerCtrl_GetSelectedFont: { // wxFontPickerCtrl::GetSelectedFont
+case wxFontPickerCtrl_GetSelectedFont: { // wxFontPickerCtrl::GetSelectedFont
wxFontPickerCtrl *This = (wxFontPickerCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetSelectedFont()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxFontPickerCtrl_SetSelectedFont: { // wxFontPickerCtrl::SetSelectedFont
+case wxFontPickerCtrl_SetSelectedFont: { // wxFontPickerCtrl::SetSelectedFont
wxFontPickerCtrl *This = (wxFontPickerCtrl *) getPtr(bp,memenv); bp += 4;
wxFont *f = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelectedFont(*f);
- break;
+ break;
}
-case wxFontPickerCtrl_GetMaxPointSize: { // wxFontPickerCtrl::GetMaxPointSize
+case wxFontPickerCtrl_GetMaxPointSize: { // wxFontPickerCtrl::GetMaxPointSize
wxFontPickerCtrl *This = (wxFontPickerCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMaxPointSize();
rt.addUint(Result);
- break;
+ break;
}
-case wxFontPickerCtrl_SetMaxPointSize: { // wxFontPickerCtrl::SetMaxPointSize
+case wxFontPickerCtrl_SetMaxPointSize: { // wxFontPickerCtrl::SetMaxPointSize
wxFontPickerCtrl *This = (wxFontPickerCtrl *) getPtr(bp,memenv); bp += 4;
unsigned int * max = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMaxPointSize((int) *max);
- break;
+ break;
}
-case wxFindReplaceDialog_new_0: { // wxFindReplaceDialog::wxFindReplaceDialog
+case wxFindReplaceDialog_new_0: { // wxFindReplaceDialog::wxFindReplaceDialog
wxFindReplaceDialog * Result = new EwxFindReplaceDialog();
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFindReplaceDialog");
- break;
+ break;
}
-case wxFindReplaceDialog_new_4: { // wxFindReplaceDialog::wxFindReplaceDialog
+case wxFindReplaceDialog_new_4: { // wxFindReplaceDialog::wxFindReplaceDialog
int style=0;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxFindReplaceData *data = (wxFindReplaceData *) getPtr(bp,memenv); bp += 4;
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((4+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxFindReplaceDialog * Result = new EwxFindReplaceDialog(parent,data,title,style);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFindReplaceDialog");
- break;
+ break;
}
-case wxFindReplaceDialog_Create: { // wxFindReplaceDialog::Create
+case wxFindReplaceDialog_Create: { // wxFindReplaceDialog::Create
int style=0;
wxFindReplaceDialog *This = (wxFindReplaceDialog *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
@@ -21390,89 +21397,89 @@ case wxFindReplaceDialog_Create: { // wxFindReplaceDialog::Create
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((0+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,data,title,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxFindReplaceDialog_GetData: { // wxFindReplaceDialog::GetData
+case wxFindReplaceDialog_GetData: { // wxFindReplaceDialog::GetData
wxFindReplaceDialog *This = (wxFindReplaceDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxFindReplaceData * Result = (wxFindReplaceData*)This->GetData();
rt.addRef(getRef((void *)Result,memenv), "wxFindReplaceData");
- break;
+ break;
}
-case wxFindReplaceData_new_0: { // wxFindReplaceData::wxFindReplaceData
+case wxFindReplaceData_new_0: { // wxFindReplaceData::wxFindReplaceData
wxFindReplaceData * Result = new EwxFindReplaceData();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFindReplaceData");
- break;
+ break;
}
-case wxFindReplaceData_new_1: { // wxFindReplaceData::wxFindReplaceData
+case wxFindReplaceData_new_1: { // wxFindReplaceData::wxFindReplaceData
unsigned int * flags = (unsigned int *) bp; bp += 4;
wxFindReplaceData * Result = new EwxFindReplaceData((int) *flags);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFindReplaceData");
- break;
+ break;
}
-case wxFindReplaceData_GetFindString: { // wxFindReplaceData::GetFindString
+case wxFindReplaceData_GetFindString: { // wxFindReplaceData::GetFindString
wxFindReplaceData *This = (wxFindReplaceData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString * Result = &This->GetFindString();
rt.add(Result);
- break;
+ break;
}
-case wxFindReplaceData_GetReplaceString: { // wxFindReplaceData::GetReplaceString
+case wxFindReplaceData_GetReplaceString: { // wxFindReplaceData::GetReplaceString
wxFindReplaceData *This = (wxFindReplaceData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString * Result = &This->GetReplaceString();
rt.add(Result);
- break;
+ break;
}
-case wxFindReplaceData_GetFlags: { // wxFindReplaceData::GetFlags
+case wxFindReplaceData_GetFlags: { // wxFindReplaceData::GetFlags
wxFindReplaceData *This = (wxFindReplaceData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFlags();
rt.addInt(Result);
- break;
+ break;
}
-case wxFindReplaceData_SetFlags: { // wxFindReplaceData::SetFlags
+case wxFindReplaceData_SetFlags: { // wxFindReplaceData::SetFlags
wxFindReplaceData *This = (wxFindReplaceData *) getPtr(bp,memenv); bp += 4;
unsigned int * flags = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFlags((int) *flags);
- break;
+ break;
}
-case wxFindReplaceData_SetFindString: { // wxFindReplaceData::SetFindString
+case wxFindReplaceData_SetFindString: { // wxFindReplaceData::SetFindString
wxFindReplaceData *This = (wxFindReplaceData *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
bp += *strLen+((8-((0+ *strLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetFindString(str);
- break;
+ break;
}
-case wxFindReplaceData_SetReplaceString: { // wxFindReplaceData::SetReplaceString
+case wxFindReplaceData_SetReplaceString: { // wxFindReplaceData::SetReplaceString
wxFindReplaceData *This = (wxFindReplaceData *) getPtr(bp,memenv); bp += 4;
int * strLen = (int *) bp; bp += 4;
wxString str = wxString(bp, wxConvUTF8);
bp += *strLen+((8-((0+ *strLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetReplaceString(str);
- break;
+ break;
}
-case wxMultiChoiceDialog_new_0: { // wxMultiChoiceDialog::wxMultiChoiceDialog
+case wxMultiChoiceDialog_new_0: { // wxMultiChoiceDialog::wxMultiChoiceDialog
wxMultiChoiceDialog * Result = new EwxMultiChoiceDialog();
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMultiChoiceDialog");
- break;
+ break;
}
-case wxMultiChoiceDialog_new_5: { // wxMultiChoiceDialog::wxMultiChoiceDialog
+case wxMultiChoiceDialog_new_5: { // wxMultiChoiceDialog::wxMultiChoiceDialog
long style=(wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxOK|wxCANCEL|wxCENTRE);
wxPoint pos= wxDefaultPosition;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
@@ -21492,7 +21499,7 @@ case wxMultiChoiceDialog_new_5: { // wxMultiChoiceDialog::wxMultiChoiceDialog
choicesASz += *choicesTemp+4;
}
bp += (8-((4+ choicesASz) & 7 )) & 7;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
@@ -21502,20 +21509,20 @@ case wxMultiChoiceDialog_new_5: { // wxMultiChoiceDialog::wxMultiChoiceDialog
pos = wxPoint(*posX,*posY);
bp += 4; /* Align */
} break;
- }};
+ }};
wxMultiChoiceDialog * Result = new EwxMultiChoiceDialog(parent,message,caption,choices,style,pos);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMultiChoiceDialog");
- break;
+ break;
}
-case wxMultiChoiceDialog_GetSelections: { // wxMultiChoiceDialog::GetSelections
+case wxMultiChoiceDialog_GetSelections: { // wxMultiChoiceDialog::GetSelections
wxMultiChoiceDialog *This = (wxMultiChoiceDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxArrayInt Result = This->GetSelections();
rt.add(Result);
- break;
+ break;
}
-case wxMultiChoiceDialog_SetSelections: { // wxMultiChoiceDialog::SetSelections
+case wxMultiChoiceDialog_SetSelections: { // wxMultiChoiceDialog::SetSelections
wxMultiChoiceDialog *This = (wxMultiChoiceDialog *) getPtr(bp,memenv); bp += 4;
int * selectionsLen = (int *) bp; bp += 4;
wxArrayInt selections;
@@ -21523,15 +21530,15 @@ case wxMultiChoiceDialog_SetSelections: { // wxMultiChoiceDialog::SetSelections
bp += ((*selectionsLen + 2) % 2 )*4;
if(!This) throw wxe_badarg(0);
This->SetSelections(selections);
- break;
+ break;
}
-case wxSingleChoiceDialog_new_0: { // wxSingleChoiceDialog::wxSingleChoiceDialog
+case wxSingleChoiceDialog_new_0: { // wxSingleChoiceDialog::wxSingleChoiceDialog
wxSingleChoiceDialog * Result = new EwxSingleChoiceDialog();
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSingleChoiceDialog");
- break;
+ break;
}
-case wxSingleChoiceDialog_new_5: { // wxSingleChoiceDialog::wxSingleChoiceDialog
+case wxSingleChoiceDialog_new_5: { // wxSingleChoiceDialog::wxSingleChoiceDialog
char ** clientData = (char **) NULL;
long style=(wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxOK|wxCANCEL|wxCENTRE);
wxPoint pos= wxDefaultPosition;
@@ -21552,7 +21559,7 @@ case wxSingleChoiceDialog_new_5: { // wxSingleChoiceDialog::wxSingleChoiceDialog
choicesASz += *choicesTemp+4;
}
bp += (8-((4+ choicesASz) & 7 )) & 7;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
@@ -21562,34 +21569,34 @@ case wxSingleChoiceDialog_new_5: { // wxSingleChoiceDialog::wxSingleChoiceDialog
pos = wxPoint(*posX,*posY);
bp += 4; /* Align */
} break;
- }};
+ }};
wxSingleChoiceDialog * Result = new EwxSingleChoiceDialog(parent,message,caption,choices,clientData,style,pos);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSingleChoiceDialog");
- break;
+ break;
}
-case wxSingleChoiceDialog_GetSelection: { // wxSingleChoiceDialog::GetSelection
+case wxSingleChoiceDialog_GetSelection: { // wxSingleChoiceDialog::GetSelection
wxSingleChoiceDialog *This = (wxSingleChoiceDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxSingleChoiceDialog_GetStringSelection: { // wxSingleChoiceDialog::GetStringSelection
+case wxSingleChoiceDialog_GetStringSelection: { // wxSingleChoiceDialog::GetStringSelection
wxSingleChoiceDialog *This = (wxSingleChoiceDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetStringSelection();
rt.add(Result);
- break;
+ break;
}
-case wxSingleChoiceDialog_SetSelection: { // wxSingleChoiceDialog::SetSelection
+case wxSingleChoiceDialog_SetSelection: { // wxSingleChoiceDialog::SetSelection
wxSingleChoiceDialog *This = (wxSingleChoiceDialog *) getPtr(bp,memenv); bp += 4;
int * sel = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((int) *sel);
- break;
+ break;
}
-case wxTextEntryDialog_new: { // wxTextEntryDialog::wxTextEntryDialog
+case wxTextEntryDialog_new: { // wxTextEntryDialog::wxTextEntryDialog
wxString caption= wxGetTextFromUserPromptStr;
wxString value= wxEmptyString;
long style=(wxOK|wxCANCEL|wxCENTRE|wxWS_EX_VALIDATE_RECURSIVELY);
@@ -21598,7 +21605,7 @@ case wxTextEntryDialog_new: { // wxTextEntryDialog::wxTextEntryDialog
int * messageLen = (int *) bp; bp += 4;
wxString message = wxString(bp, wxConvUTF8);
bp += *messageLen+((8-((0+ *messageLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * captionLen = (int *) bp; bp += 4;
caption = wxString(bp, wxConvUTF8);
@@ -21618,29 +21625,29 @@ case wxTextEntryDialog_new: { // wxTextEntryDialog::wxTextEntryDialog
pos = wxPoint(*posX,*posY);
bp += 4; /* Align */
} break;
- }};
+ }};
wxTextEntryDialog * Result = new EwxTextEntryDialog(parent,message,caption,value,style,pos);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTextEntryDialog");
- break;
+ break;
}
-case wxTextEntryDialog_GetValue: { // wxTextEntryDialog::GetValue
+case wxTextEntryDialog_GetValue: { // wxTextEntryDialog::GetValue
wxTextEntryDialog *This = (wxTextEntryDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetValue();
rt.add(Result);
- break;
+ break;
}
-case wxTextEntryDialog_SetValue: { // wxTextEntryDialog::SetValue
+case wxTextEntryDialog_SetValue: { // wxTextEntryDialog::SetValue
wxTextEntryDialog *This = (wxTextEntryDialog *) getPtr(bp,memenv); bp += 4;
int * valLen = (int *) bp; bp += 4;
wxString val = wxString(bp, wxConvUTF8);
bp += *valLen+((8-((0+ *valLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetValue(val);
- break;
+ break;
}
-case wxPasswordEntryDialog_new: { // wxPasswordEntryDialog::wxPasswordEntryDialog
+case wxPasswordEntryDialog_new: { // wxPasswordEntryDialog::wxPasswordEntryDialog
wxString caption= wxGetPasswordFromUserPromptStr;
wxString value= wxEmptyString;
long style=(wxOK|wxCANCEL|wxCENTRE|wxWS_EX_VALIDATE_RECURSIVELY);
@@ -21649,7 +21656,7 @@ case wxPasswordEntryDialog_new: { // wxPasswordEntryDialog::wxPasswordEntryDialo
int * messageLen = (int *) bp; bp += 4;
wxString message = wxString(bp, wxConvUTF8);
bp += *messageLen+((8-((0+ *messageLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * captionLen = (int *) bp; bp += 4;
caption = wxString(bp, wxConvUTF8);
@@ -21669,89 +21676,89 @@ case wxPasswordEntryDialog_new: { // wxPasswordEntryDialog::wxPasswordEntryDialo
pos = wxPoint(*posX,*posY);
bp += 4; /* Align */
} break;
- }};
+ }};
wxPasswordEntryDialog * Result = new EwxPasswordEntryDialog(parent,message,caption,value,style,pos);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPasswordEntryDialog");
- break;
+ break;
}
-case wxFontData_new_0: { // wxFontData::wxFontData
+case wxFontData_new_0: { // wxFontData::wxFontData
wxFontData * Result = new EwxFontData();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFontData");
- break;
+ break;
}
-case wxFontData_new_1: { // wxFontData::wxFontData
+case wxFontData_new_1: { // wxFontData::wxFontData
wxFontData *data = (wxFontData *) getPtr(bp,memenv); bp += 4;
wxFontData * Result = new EwxFontData(*data);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFontData");
- break;
+ break;
}
-case wxFontData_EnableEffects: { // wxFontData::EnableEffects
+case wxFontData_EnableEffects: { // wxFontData::EnableEffects
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableEffects((bool) *flag);
- break;
+ break;
}
-case wxFontData_GetAllowSymbols: { // wxFontData::GetAllowSymbols
+case wxFontData_GetAllowSymbols: { // wxFontData::GetAllowSymbols
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetAllowSymbols();
rt.addBool(Result);
- break;
+ break;
}
-case wxFontData_GetColour: { // wxFontData::GetColour
+case wxFontData_GetColour: { // wxFontData::GetColour
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxColour * Result = &This->GetColour();
rt.add((*Result));
- break;
+ break;
}
-case wxFontData_GetChosenFont: { // wxFontData::GetChosenFont
+case wxFontData_GetChosenFont: { // wxFontData::GetChosenFont
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetChosenFont()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxFontData_GetEnableEffects: { // wxFontData::GetEnableEffects
+case wxFontData_GetEnableEffects: { // wxFontData::GetEnableEffects
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetEnableEffects();
rt.addBool(Result);
- break;
+ break;
}
-case wxFontData_GetInitialFont: { // wxFontData::GetInitialFont
+case wxFontData_GetInitialFont: { // wxFontData::GetInitialFont
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetInitialFont()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxFontData_GetShowHelp: { // wxFontData::GetShowHelp
+case wxFontData_GetShowHelp: { // wxFontData::GetShowHelp
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetShowHelp();
rt.addBool(Result);
- break;
+ break;
}
-case wxFontData_SetAllowSymbols: { // wxFontData::SetAllowSymbols
+case wxFontData_SetAllowSymbols: { // wxFontData::SetAllowSymbols
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAllowSymbols((bool) *flag);
- break;
+ break;
}
-case wxFontData_SetChosenFont: { // wxFontData::SetChosenFont
+case wxFontData_SetChosenFont: { // wxFontData::SetChosenFont
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetChosenFont(*font);
- break;
+ break;
}
-case wxFontData_SetColour: { // wxFontData::SetColour
+case wxFontData_SetColour: { // wxFontData::SetColour
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
int * colourR = (int *) bp; bp += 4;
int * colourG = (int *) bp; bp += 4;
@@ -21760,61 +21767,61 @@ case wxFontData_SetColour: { // wxFontData::SetColour
wxColour colour = wxColour(*colourR,*colourG,*colourB,*colourA);
if(!This) throw wxe_badarg(0);
This->SetColour(colour);
- break;
+ break;
}
-case wxFontData_SetInitialFont: { // wxFontData::SetInitialFont
+case wxFontData_SetInitialFont: { // wxFontData::SetInitialFont
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetInitialFont(*font);
- break;
+ break;
}
-case wxFontData_SetRange: { // wxFontData::SetRange
+case wxFontData_SetRange: { // wxFontData::SetRange
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
int * minRange = (int *) bp; bp += 4;
int * maxRange = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRange((int) *minRange,(int) *maxRange);
- break;
+ break;
}
-case wxFontData_SetShowHelp: { // wxFontData::SetShowHelp
+case wxFontData_SetShowHelp: { // wxFontData::SetShowHelp
wxFontData *This = (wxFontData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetShowHelp((bool) *flag);
- break;
+ break;
}
-case wxFontDialog_new_0: { // wxFontDialog::wxFontDialog
+case wxFontDialog_new_0: { // wxFontDialog::wxFontDialog
wxFontDialog * Result = new EwxFontDialog();
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFontDialog");
- break;
+ break;
}
-case wxFontDialog_new_2: { // wxFontDialog::wxFontDialog
+case wxFontDialog_new_2: { // wxFontDialog::wxFontDialog
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxFontData *data = (wxFontData *) getPtr(bp,memenv); bp += 4;
wxFontDialog * Result = new EwxFontDialog(parent,*data);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFontDialog");
- break;
+ break;
}
-case wxFontDialog_Create: { // wxFontDialog::Create
+case wxFontDialog_Create: { // wxFontDialog::Create
wxFontDialog *This = (wxFontDialog *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxFontData *data = (wxFontData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,*data);
rt.addBool(Result);
- break;
+ break;
}
-case wxFontDialog_GetFontData: { // wxFontDialog::GetFontData
+case wxFontDialog_GetFontData: { // wxFontDialog::GetFontData
wxFontDialog *This = (wxFontDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxFontData * Result = &This->GetFontData();
rt.addRef(getRef((void *)Result,memenv), "wxFontData");
- break;
+ break;
}
-case wxProgressDialog_new: { // wxProgressDialog::wxProgressDialog
+case wxProgressDialog_new: { // wxProgressDialog::wxProgressDialog
int maximum=100;
wxWindow * parent=NULL;
int style=wxPD_APP_MODAL|wxPD_AUTO_HIDE;
@@ -21824,7 +21831,7 @@ case wxProgressDialog_new: { // wxProgressDialog::wxProgressDialog
int * messageLen = (int *) bp; bp += 4;
wxString message = wxString(bp, wxConvUTF8);
bp += *messageLen+((8-((4+ *messageLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
maximum = (int)*(int *) bp; bp += 4;
} break;
@@ -21834,41 +21841,41 @@ parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
case 3: {bp += 4;
style = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxProgressDialog * Result = new EwxProgressDialog(title,message,maximum,parent,style);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxProgressDialog");
- break;
+ break;
}
-case wxProgressDialog_Resume: { // wxProgressDialog::Resume
+case wxProgressDialog_Resume: { // wxProgressDialog::Resume
wxProgressDialog *This = (wxProgressDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Resume();
- break;
+ break;
}
-case wxProgressDialog_Update_2: { // wxProgressDialog::Update
+case wxProgressDialog_Update_2: { // wxProgressDialog::Update
wxString newmsg= wxEmptyString;
wxProgressDialog *This = (wxProgressDialog *) getPtr(bp,memenv); bp += 4;
int * value = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * newmsgLen = (int *) bp; bp += 4;
newmsg = wxString(bp, wxConvUTF8);
bp += *newmsgLen+((8-((0+ *newmsgLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Update((int) *value,newmsg);
rt.addBool(Result);
- break;
+ break;
}
-case wxProgressDialog_Update_0: { // wxProgressDialog::Update
+case wxProgressDialog_Update_0: { // wxProgressDialog::Update
wxProgressDialog *This = (wxProgressDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Update();
- break;
+ break;
}
-case wxMessageDialog_new: { // wxMessageDialog::wxMessageDialog
+case wxMessageDialog_new: { // wxMessageDialog::wxMessageDialog
wxString caption= wxMessageBoxCaptionStr;
long style=wxOK|wxCENTRE;
wxPoint pos= wxDefaultPosition;
@@ -21876,7 +21883,7 @@ case wxMessageDialog_new: { // wxMessageDialog::wxMessageDialog
int * messageLen = (int *) bp; bp += 4;
wxString message = wxString(bp, wxConvUTF8);
bp += *messageLen+((8-((0+ *messageLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * captionLen = (int *) bp; bp += 4;
caption = wxString(bp, wxConvUTF8);
@@ -21891,804 +21898,804 @@ case wxMessageDialog_new: { // wxMessageDialog::wxMessageDialog
pos = wxPoint(*posX,*posY);
bp += 4; /* Align */
} break;
- }};
+ }};
wxMessageDialog * Result = new EwxMessageDialog(parent,message,caption,style,pos);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMessageDialog");
- break;
+ break;
}
-case wxPageSetupDialog_new: { // wxPageSetupDialog::wxPageSetupDialog
+case wxPageSetupDialog_new: { // wxPageSetupDialog::wxPageSetupDialog
wxPageSetupDialogData * data=NULL;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
data = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxPageSetupDialog * Result = new EwxPageSetupDialog(parent,data);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPageSetupDialog");
- break;
+ break;
}
-case wxPageSetupDialog_GetPageSetupData: { // wxPageSetupDialog::GetPageSetupData
+case wxPageSetupDialog_GetPageSetupData: { // wxPageSetupDialog::GetPageSetupData
wxPageSetupDialog *This = (wxPageSetupDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPageSetupDialogData * Result = &This->GetPageSetupData();
rt.addRef(getRef((void *)Result,memenv), "wxPageSetupDialogData");
- break;
+ break;
}
-case wxPageSetupDialog_ShowModal: { // wxPageSetupDialog::ShowModal
+case wxPageSetupDialog_ShowModal: { // wxPageSetupDialog::ShowModal
wxPageSetupDialog *This = (wxPageSetupDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->ShowModal();
rt.addInt(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_new_0: { // wxPageSetupDialogData::wxPageSetupDialogData
+case wxPageSetupDialogData_new_0: { // wxPageSetupDialogData::wxPageSetupDialogData
wxPageSetupDialogData * Result = new EwxPageSetupDialogData();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPageSetupDialogData");
- break;
+ break;
}
-case wxPageSetupDialogData_new_1_0: { // wxPageSetupDialogData::wxPageSetupDialogData
+case wxPageSetupDialogData_new_1_0: { // wxPageSetupDialogData::wxPageSetupDialogData
wxPageSetupDialogData *dialogData = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
wxPageSetupDialogData * Result = new EwxPageSetupDialogData(*dialogData);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPageSetupDialogData");
- break;
+ break;
}
-case wxPageSetupDialogData_new_1_1: { // wxPageSetupDialogData::wxPageSetupDialogData
+case wxPageSetupDialogData_new_1_1: { // wxPageSetupDialogData::wxPageSetupDialogData
wxPrintData * printData = (wxPrintData *) getPtr(bp,memenv); bp += 4;
wxPageSetupDialogData * Result = new EwxPageSetupDialogData(*printData);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPageSetupDialogData");
- break;
+ break;
}
-case wxPageSetupDialogData_EnableHelp: { // wxPageSetupDialogData::EnableHelp
+case wxPageSetupDialogData_EnableHelp: { // wxPageSetupDialogData::EnableHelp
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableHelp((bool) *flag);
- break;
+ break;
}
-case wxPageSetupDialogData_EnableMargins: { // wxPageSetupDialogData::EnableMargins
+case wxPageSetupDialogData_EnableMargins: { // wxPageSetupDialogData::EnableMargins
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableMargins((bool) *flag);
- break;
+ break;
}
-case wxPageSetupDialogData_EnableOrientation: { // wxPageSetupDialogData::EnableOrientation
+case wxPageSetupDialogData_EnableOrientation: { // wxPageSetupDialogData::EnableOrientation
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableOrientation((bool) *flag);
- break;
+ break;
}
-case wxPageSetupDialogData_EnablePaper: { // wxPageSetupDialogData::EnablePaper
+case wxPageSetupDialogData_EnablePaper: { // wxPageSetupDialogData::EnablePaper
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnablePaper((bool) *flag);
- break;
+ break;
}
-case wxPageSetupDialogData_EnablePrinter: { // wxPageSetupDialogData::EnablePrinter
+case wxPageSetupDialogData_EnablePrinter: { // wxPageSetupDialogData::EnablePrinter
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnablePrinter((bool) *flag);
- break;
+ break;
}
-case wxPageSetupDialogData_GetDefaultMinMargins: { // wxPageSetupDialogData::GetDefaultMinMargins
+case wxPageSetupDialogData_GetDefaultMinMargins: { // wxPageSetupDialogData::GetDefaultMinMargins
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetDefaultMinMargins();
rt.addBool(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetEnableMargins: { // wxPageSetupDialogData::GetEnableMargins
+case wxPageSetupDialogData_GetEnableMargins: { // wxPageSetupDialogData::GetEnableMargins
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetEnableMargins();
rt.addBool(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetEnableOrientation: { // wxPageSetupDialogData::GetEnableOrientation
+case wxPageSetupDialogData_GetEnableOrientation: { // wxPageSetupDialogData::GetEnableOrientation
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetEnableOrientation();
rt.addBool(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetEnablePaper: { // wxPageSetupDialogData::GetEnablePaper
+case wxPageSetupDialogData_GetEnablePaper: { // wxPageSetupDialogData::GetEnablePaper
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetEnablePaper();
rt.addBool(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetEnablePrinter: { // wxPageSetupDialogData::GetEnablePrinter
+case wxPageSetupDialogData_GetEnablePrinter: { // wxPageSetupDialogData::GetEnablePrinter
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetEnablePrinter();
rt.addBool(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetEnableHelp: { // wxPageSetupDialogData::GetEnableHelp
+case wxPageSetupDialogData_GetEnableHelp: { // wxPageSetupDialogData::GetEnableHelp
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetEnableHelp();
rt.addBool(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetDefaultInfo: { // wxPageSetupDialogData::GetDefaultInfo
+case wxPageSetupDialogData_GetDefaultInfo: { // wxPageSetupDialogData::GetDefaultInfo
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetDefaultInfo();
rt.addBool(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetMarginTopLeft: { // wxPageSetupDialogData::GetMarginTopLeft
+case wxPageSetupDialogData_GetMarginTopLeft: { // wxPageSetupDialogData::GetMarginTopLeft
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetMarginTopLeft();
rt.add(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetMarginBottomRight: { // wxPageSetupDialogData::GetMarginBottomRight
+case wxPageSetupDialogData_GetMarginBottomRight: { // wxPageSetupDialogData::GetMarginBottomRight
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetMarginBottomRight();
rt.add(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetMinMarginTopLeft: { // wxPageSetupDialogData::GetMinMarginTopLeft
+case wxPageSetupDialogData_GetMinMarginTopLeft: { // wxPageSetupDialogData::GetMinMarginTopLeft
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetMinMarginTopLeft();
rt.add(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetMinMarginBottomRight: { // wxPageSetupDialogData::GetMinMarginBottomRight
+case wxPageSetupDialogData_GetMinMarginBottomRight: { // wxPageSetupDialogData::GetMinMarginBottomRight
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetMinMarginBottomRight();
rt.add(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetPaperId: { // wxPageSetupDialogData::GetPaperId
+case wxPageSetupDialogData_GetPaperId: { // wxPageSetupDialogData::GetPaperId
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPaperSize Result = This->GetPaperId();
rt.addInt(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetPaperSize: { // wxPageSetupDialogData::GetPaperSize
+case wxPageSetupDialogData_GetPaperSize: { // wxPageSetupDialogData::GetPaperSize
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetPaperSize();
rt.add(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_GetPrintData: { // wxPageSetupDialogData::GetPrintData
+case wxPageSetupDialogData_GetPrintData: { // wxPageSetupDialogData::GetPrintData
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxPrintData * Result = &This->GetPrintData();
rt.addRef(getRef((void *)Result,memenv), "wxPrintData");
- break;
+ break;
}
-case wxPageSetupDialogData_IsOk: { // wxPageSetupDialogData::IsOk
+case wxPageSetupDialogData_IsOk: { // wxPageSetupDialogData::IsOk
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxPageSetupDialogData_SetDefaultInfo: { // wxPageSetupDialogData::SetDefaultInfo
+case wxPageSetupDialogData_SetDefaultInfo: { // wxPageSetupDialogData::SetDefaultInfo
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDefaultInfo((bool) *flag);
- break;
+ break;
}
-case wxPageSetupDialogData_SetDefaultMinMargins: { // wxPageSetupDialogData::SetDefaultMinMargins
+case wxPageSetupDialogData_SetDefaultMinMargins: { // wxPageSetupDialogData::SetDefaultMinMargins
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDefaultMinMargins((bool) *flag);
- break;
+ break;
}
-case wxPageSetupDialogData_SetMarginTopLeft: { // wxPageSetupDialogData::SetMarginTopLeft
+case wxPageSetupDialogData_SetMarginTopLeft: { // wxPageSetupDialogData::SetMarginTopLeft
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
if(!This) throw wxe_badarg(0);
This->SetMarginTopLeft(pt);
- break;
+ break;
}
-case wxPageSetupDialogData_SetMarginBottomRight: { // wxPageSetupDialogData::SetMarginBottomRight
+case wxPageSetupDialogData_SetMarginBottomRight: { // wxPageSetupDialogData::SetMarginBottomRight
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
if(!This) throw wxe_badarg(0);
This->SetMarginBottomRight(pt);
- break;
+ break;
}
-case wxPageSetupDialogData_SetMinMarginTopLeft: { // wxPageSetupDialogData::SetMinMarginTopLeft
+case wxPageSetupDialogData_SetMinMarginTopLeft: { // wxPageSetupDialogData::SetMinMarginTopLeft
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
if(!This) throw wxe_badarg(0);
This->SetMinMarginTopLeft(pt);
- break;
+ break;
}
-case wxPageSetupDialogData_SetMinMarginBottomRight: { // wxPageSetupDialogData::SetMinMarginBottomRight
+case wxPageSetupDialogData_SetMinMarginBottomRight: { // wxPageSetupDialogData::SetMinMarginBottomRight
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
if(!This) throw wxe_badarg(0);
This->SetMinMarginBottomRight(pt);
- break;
+ break;
}
-case wxPageSetupDialogData_SetPaperId: { // wxPageSetupDialogData::SetPaperId
+case wxPageSetupDialogData_SetPaperId: { // wxPageSetupDialogData::SetPaperId
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPaperId((wxPaperSize) *id);
- break;
+ break;
}
-case wxPageSetupDialogData_SetPaperSize_1_1: { // wxPageSetupDialogData::SetPaperSize
+case wxPageSetupDialogData_SetPaperSize_1_1: { // wxPageSetupDialogData::SetPaperSize
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
int * szW = (int *) bp; bp += 4;
int * szH = (int *) bp; bp += 4;
wxSize sz = wxSize(*szW,*szH);
if(!This) throw wxe_badarg(0);
This->SetPaperSize(sz);
- break;
+ break;
}
-case wxPageSetupDialogData_SetPaperSize_1_0: { // wxPageSetupDialogData::SetPaperSize
+case wxPageSetupDialogData_SetPaperSize_1_0: { // wxPageSetupDialogData::SetPaperSize
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
int * id = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPaperSize((wxPaperSize) *id);
- break;
+ break;
}
-case wxPageSetupDialogData_SetPrintData: { // wxPageSetupDialogData::SetPrintData
+case wxPageSetupDialogData_SetPrintData: { // wxPageSetupDialogData::SetPrintData
wxPageSetupDialogData *This = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
wxPrintData *printData = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPrintData(*printData);
- break;
+ break;
}
-case wxPrintDialog_new_2_0: { // wxPrintDialog::wxPrintDialog
+case wxPrintDialog_new_2_0: { // wxPrintDialog::wxPrintDialog
wxPrintDialogData * data=NULL;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
data = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxPrintDialog * Result = new EwxPrintDialog(parent,data);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrintDialog");
- break;
+ break;
}
-case wxPrintDialog_new_2_1: { // wxPrintDialog::wxPrintDialog
+case wxPrintDialog_new_2_1: { // wxPrintDialog::wxPrintDialog
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxPrintData *data = (wxPrintData *) getPtr(bp,memenv); bp += 4;
wxPrintDialog * Result = new EwxPrintDialog(parent,data);
newPtr((void *) Result, 2, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrintDialog");
- break;
+ break;
}
-case wxPrintDialog_GetPrintDialogData: { // wxPrintDialog::GetPrintDialogData
+case wxPrintDialog_GetPrintDialogData: { // wxPrintDialog::GetPrintDialogData
wxPrintDialog *This = (wxPrintDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPrintDialogData * Result = &This->GetPrintDialogData();
rt.addRef(getRef((void *)Result,memenv), "wxPrintDialogData");
- break;
+ break;
}
-case wxPrintDialog_GetPrintDC: { // wxPrintDialog::GetPrintDC
+case wxPrintDialog_GetPrintDC: { // wxPrintDialog::GetPrintDC
wxPrintDialog *This = (wxPrintDialog *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxDC * Result = (wxDC*)This->GetPrintDC();
rt.addRef(getRef((void *)Result,memenv), "wxDC");
- break;
+ break;
}
-case wxPrintDialogData_new_0: { // wxPrintDialogData::wxPrintDialogData
+case wxPrintDialogData_new_0: { // wxPrintDialogData::wxPrintDialogData
wxPrintDialogData * Result = new EwxPrintDialogData();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrintDialogData");
- break;
+ break;
}
-case wxPrintDialogData_new_1_1: { // wxPrintDialogData::wxPrintDialogData
+case wxPrintDialogData_new_1_1: { // wxPrintDialogData::wxPrintDialogData
wxPrintDialogData * dialogData = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
wxPrintDialogData * Result = new EwxPrintDialogData(*dialogData);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrintDialogData");
- break;
+ break;
}
-case wxPrintDialogData_new_1_0: { // wxPrintDialogData::wxPrintDialogData
+case wxPrintDialogData_new_1_0: { // wxPrintDialogData::wxPrintDialogData
wxPrintData *printData = (wxPrintData *) getPtr(bp,memenv); bp += 4;
wxPrintDialogData * Result = new EwxPrintDialogData(*printData);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrintDialogData");
- break;
+ break;
}
-case wxPrintDialogData_EnableHelp: { // wxPrintDialogData::EnableHelp
+case wxPrintDialogData_EnableHelp: { // wxPrintDialogData::EnableHelp
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableHelp((bool) *flag);
- break;
+ break;
}
-case wxPrintDialogData_EnablePageNumbers: { // wxPrintDialogData::EnablePageNumbers
+case wxPrintDialogData_EnablePageNumbers: { // wxPrintDialogData::EnablePageNumbers
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnablePageNumbers((bool) *flag);
- break;
+ break;
}
-case wxPrintDialogData_EnablePrintToFile: { // wxPrintDialogData::EnablePrintToFile
+case wxPrintDialogData_EnablePrintToFile: { // wxPrintDialogData::EnablePrintToFile
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnablePrintToFile((bool) *flag);
- break;
+ break;
}
-case wxPrintDialogData_EnableSelection: { // wxPrintDialogData::EnableSelection
+case wxPrintDialogData_EnableSelection: { // wxPrintDialogData::EnableSelection
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnableSelection((bool) *flag);
- break;
+ break;
}
-case wxPrintDialogData_GetAllPages: { // wxPrintDialogData::GetAllPages
+case wxPrintDialogData_GetAllPages: { // wxPrintDialogData::GetAllPages
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetAllPages();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintDialogData_GetCollate: { // wxPrintDialogData::GetCollate
+case wxPrintDialogData_GetCollate: { // wxPrintDialogData::GetCollate
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetCollate();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintDialogData_GetFromPage: { // wxPrintDialogData::GetFromPage
+case wxPrintDialogData_GetFromPage: { // wxPrintDialogData::GetFromPage
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFromPage();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintDialogData_GetMaxPage: { // wxPrintDialogData::GetMaxPage
+case wxPrintDialogData_GetMaxPage: { // wxPrintDialogData::GetMaxPage
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMaxPage();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintDialogData_GetMinPage: { // wxPrintDialogData::GetMinPage
+case wxPrintDialogData_GetMinPage: { // wxPrintDialogData::GetMinPage
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMinPage();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintDialogData_GetNoCopies: { // wxPrintDialogData::GetNoCopies
+case wxPrintDialogData_GetNoCopies: { // wxPrintDialogData::GetNoCopies
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetNoCopies();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintDialogData_GetPrintData: { // wxPrintDialogData::GetPrintData
+case wxPrintDialogData_GetPrintData: { // wxPrintDialogData::GetPrintData
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPrintData * Result = &This->GetPrintData();
rt.addRef(getRef((void *)Result,memenv), "wxPrintData");
- break;
+ break;
}
-case wxPrintDialogData_GetPrintToFile: { // wxPrintDialogData::GetPrintToFile
+case wxPrintDialogData_GetPrintToFile: { // wxPrintDialogData::GetPrintToFile
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetPrintToFile();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintDialogData_GetSelection: { // wxPrintDialogData::GetSelection
+case wxPrintDialogData_GetSelection: { // wxPrintDialogData::GetSelection
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetSelection();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintDialogData_GetToPage: { // wxPrintDialogData::GetToPage
+case wxPrintDialogData_GetToPage: { // wxPrintDialogData::GetToPage
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetToPage();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintDialogData_IsOk: { // wxPrintDialogData::IsOk
+case wxPrintDialogData_IsOk: { // wxPrintDialogData::IsOk
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintDialogData_SetCollate: { // wxPrintDialogData::SetCollate
+case wxPrintDialogData_SetCollate: { // wxPrintDialogData::SetCollate
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCollate((bool) *flag);
- break;
+ break;
}
-case wxPrintDialogData_SetFromPage: { // wxPrintDialogData::SetFromPage
+case wxPrintDialogData_SetFromPage: { // wxPrintDialogData::SetFromPage
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
int * v = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFromPage((int) *v);
- break;
+ break;
}
-case wxPrintDialogData_SetMaxPage: { // wxPrintDialogData::SetMaxPage
+case wxPrintDialogData_SetMaxPage: { // wxPrintDialogData::SetMaxPage
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
int * v = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMaxPage((int) *v);
- break;
+ break;
}
-case wxPrintDialogData_SetMinPage: { // wxPrintDialogData::SetMinPage
+case wxPrintDialogData_SetMinPage: { // wxPrintDialogData::SetMinPage
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
int * v = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMinPage((int) *v);
- break;
+ break;
}
-case wxPrintDialogData_SetNoCopies: { // wxPrintDialogData::SetNoCopies
+case wxPrintDialogData_SetNoCopies: { // wxPrintDialogData::SetNoCopies
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
int * v = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetNoCopies((int) *v);
- break;
+ break;
}
-case wxPrintDialogData_SetPrintData: { // wxPrintDialogData::SetPrintData
+case wxPrintDialogData_SetPrintData: { // wxPrintDialogData::SetPrintData
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
wxPrintData *printData = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPrintData(*printData);
- break;
+ break;
}
-case wxPrintDialogData_SetPrintToFile: { // wxPrintDialogData::SetPrintToFile
+case wxPrintDialogData_SetPrintToFile: { // wxPrintDialogData::SetPrintToFile
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPrintToFile((bool) *flag);
- break;
+ break;
}
-case wxPrintDialogData_SetSelection: { // wxPrintDialogData::SetSelection
+case wxPrintDialogData_SetSelection: { // wxPrintDialogData::SetSelection
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((bool) *flag);
- break;
+ break;
}
-case wxPrintDialogData_SetToPage: { // wxPrintDialogData::SetToPage
+case wxPrintDialogData_SetToPage: { // wxPrintDialogData::SetToPage
wxPrintDialogData *This = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
int * v = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetToPage((int) *v);
- break;
+ break;
}
-case wxPrintData_new_0: { // wxPrintData::wxPrintData
+case wxPrintData_new_0: { // wxPrintData::wxPrintData
wxPrintData * Result = new EwxPrintData();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrintData");
- break;
+ break;
}
-case wxPrintData_new_1: { // wxPrintData::wxPrintData
+case wxPrintData_new_1: { // wxPrintData::wxPrintData
wxPrintData *printData = (wxPrintData *) getPtr(bp,memenv); bp += 4;
wxPrintData * Result = new EwxPrintData(*printData);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrintData");
- break;
+ break;
}
-case wxPrintData_GetCollate: { // wxPrintData::GetCollate
+case wxPrintData_GetCollate: { // wxPrintData::GetCollate
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetCollate();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintData_GetBin: { // wxPrintData::GetBin
+case wxPrintData_GetBin: { // wxPrintData::GetBin
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetBin();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintData_GetColour: { // wxPrintData::GetColour
+case wxPrintData_GetColour: { // wxPrintData::GetColour
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetColour();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintData_GetDuplex: { // wxPrintData::GetDuplex
+case wxPrintData_GetDuplex: { // wxPrintData::GetDuplex
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetDuplex();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintData_GetNoCopies: { // wxPrintData::GetNoCopies
+case wxPrintData_GetNoCopies: { // wxPrintData::GetNoCopies
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetNoCopies();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintData_GetOrientation: { // wxPrintData::GetOrientation
+case wxPrintData_GetOrientation: { // wxPrintData::GetOrientation
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetOrientation();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintData_GetPaperId: { // wxPrintData::GetPaperId
+case wxPrintData_GetPaperId: { // wxPrintData::GetPaperId
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPaperSize Result = This->GetPaperId();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintData_GetPrinterName: { // wxPrintData::GetPrinterName
+case wxPrintData_GetPrinterName: { // wxPrintData::GetPrinterName
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString * Result = &This->GetPrinterName();
rt.add(Result);
- break;
+ break;
}
-case wxPrintData_GetQuality: { // wxPrintData::GetQuality
+case wxPrintData_GetQuality: { // wxPrintData::GetQuality
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPrintQuality Result = This->GetQuality();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintData_IsOk: { // wxPrintData::IsOk
+case wxPrintData_IsOk: { // wxPrintData::IsOk
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintData_SetBin: { // wxPrintData::SetBin
+case wxPrintData_SetBin: { // wxPrintData::SetBin
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
wxPrintBin bin = *(wxPrintBin *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetBin((wxPrintBin) bin);
- break;
+ break;
}
-case wxPrintData_SetCollate: { // wxPrintData::SetCollate
+case wxPrintData_SetCollate: { // wxPrintData::SetCollate
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
bool * flag = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCollate((bool) *flag);
- break;
+ break;
}
-case wxPrintData_SetColour: { // wxPrintData::SetColour
+case wxPrintData_SetColour: { // wxPrintData::SetColour
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
bool * colour = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetColour((bool) *colour);
- break;
+ break;
}
-case wxPrintData_SetDuplex: { // wxPrintData::SetDuplex
+case wxPrintData_SetDuplex: { // wxPrintData::SetDuplex
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
wxDuplexMode duplex = *(wxDuplexMode *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetDuplex((wxDuplexMode) duplex);
- break;
+ break;
}
-case wxPrintData_SetNoCopies: { // wxPrintData::SetNoCopies
+case wxPrintData_SetNoCopies: { // wxPrintData::SetNoCopies
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
int * v = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetNoCopies((int) *v);
- break;
+ break;
}
-case wxPrintData_SetOrientation: { // wxPrintData::SetOrientation
+case wxPrintData_SetOrientation: { // wxPrintData::SetOrientation
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
int * orient = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetOrientation((int) *orient);
- break;
+ break;
}
-case wxPrintData_SetPaperId: { // wxPrintData::SetPaperId
+case wxPrintData_SetPaperId: { // wxPrintData::SetPaperId
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
int * sizeId = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPaperId((wxPaperSize) *sizeId);
- break;
+ break;
}
-case wxPrintData_SetPrinterName: { // wxPrintData::SetPrinterName
+case wxPrintData_SetPrinterName: { // wxPrintData::SetPrinterName
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
bp += *nameLen+((8-((0+ *nameLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetPrinterName(name);
- break;
+ break;
}
-case wxPrintData_SetQuality: { // wxPrintData::SetQuality
+case wxPrintData_SetQuality: { // wxPrintData::SetQuality
wxPrintData *This = (wxPrintData *) getPtr(bp,memenv); bp += 4;
int * quality = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetQuality((wxPrintQuality) *quality);
- break;
+ break;
}
-case wxPrintPreview_new_2: { // wxPrintPreview::wxPrintPreview
+case wxPrintPreview_new_2: { // wxPrintPreview::wxPrintPreview
wxPrintout * printoutForPrinting=(wxPrintout *) NULL;
wxPrintDialogData * data=(wxPrintDialogData *) NULL;
wxPrintout *printout = (wxPrintout *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
printoutForPrinting = (wxPrintout *) getPtr(bp,memenv); bp += 4;
} break;
case 2: {bp += 4;
data = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxPrintPreview * Result = new EwxPrintPreview(printout,printoutForPrinting,data);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrintPreview");
- break;
+ break;
}
-case wxPrintPreview_new_3: { // wxPrintPreview::wxPrintPreview
+case wxPrintPreview_new_3: { // wxPrintPreview::wxPrintPreview
wxPrintout *printout = (wxPrintout *) getPtr(bp,memenv); bp += 4;
wxPrintout *printoutForPrinting = (wxPrintout *) getPtr(bp,memenv); bp += 4;
wxPrintData *data = (wxPrintData *) getPtr(bp,memenv); bp += 4;
wxPrintPreview * Result = new EwxPrintPreview(printout,printoutForPrinting,data);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrintPreview");
- break;
+ break;
}
-case wxPrintPreview_GetCanvas: { // wxPrintPreview::GetCanvas
+case wxPrintPreview_GetCanvas: { // wxPrintPreview::GetCanvas
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPreviewCanvas * Result = (wxPreviewCanvas*)This->GetCanvas();
rt.addRef(getRef((void *)Result,memenv), "wxPreviewCanvas");
- break;
+ break;
}
-case wxPrintPreview_GetCurrentPage: { // wxPrintPreview::GetCurrentPage
+case wxPrintPreview_GetCurrentPage: { // wxPrintPreview::GetCurrentPage
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCurrentPage();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintPreview_GetFrame: { // wxPrintPreview::GetFrame
+case wxPrintPreview_GetFrame: { // wxPrintPreview::GetFrame
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFrame * Result = (wxFrame*)This->GetFrame();
rt.addRef(getRef((void *)Result,memenv), "wxFrame");
- break;
+ break;
}
-case wxPrintPreview_GetMaxPage: { // wxPrintPreview::GetMaxPage
+case wxPrintPreview_GetMaxPage: { // wxPrintPreview::GetMaxPage
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMaxPage();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintPreview_GetMinPage: { // wxPrintPreview::GetMinPage
+case wxPrintPreview_GetMinPage: { // wxPrintPreview::GetMinPage
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMinPage();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrintPreview_GetPrintout: { // wxPrintPreview::GetPrintout
+case wxPrintPreview_GetPrintout: { // wxPrintPreview::GetPrintout
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPrintout * Result = (wxPrintout*)This->GetPrintout();
rt.addRef(getRef((void *)Result,memenv), "wxPrintout");
- break;
+ break;
}
-case wxPrintPreview_GetPrintoutForPrinting: { // wxPrintPreview::GetPrintoutForPrinting
+case wxPrintPreview_GetPrintoutForPrinting: { // wxPrintPreview::GetPrintoutForPrinting
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPrintout * Result = (wxPrintout*)This->GetPrintoutForPrinting();
rt.addRef(getRef((void *)Result,memenv), "wxPrintout");
- break;
+ break;
}
-case wxPrintPreview_IsOk: { // wxPrintPreview::IsOk
+case wxPrintPreview_IsOk: { // wxPrintPreview::IsOk
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintPreview_PaintPage: { // wxPrintPreview::PaintPage
+case wxPrintPreview_PaintPage: { // wxPrintPreview::PaintPage
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
wxPreviewCanvas *canvas = (wxPreviewCanvas *) getPtr(bp,memenv); bp += 4;
wxDC *dc = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->PaintPage(canvas,*dc);
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintPreview_Print: { // wxPrintPreview::Print
+case wxPrintPreview_Print: { // wxPrintPreview::Print
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
bool * interactive = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Print((bool) *interactive);
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintPreview_RenderPage: { // wxPrintPreview::RenderPage
+case wxPrintPreview_RenderPage: { // wxPrintPreview::RenderPage
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
int * pageNum = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RenderPage((int) *pageNum);
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintPreview_SetCanvas: { // wxPrintPreview::SetCanvas
+case wxPrintPreview_SetCanvas: { // wxPrintPreview::SetCanvas
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
wxPreviewCanvas *canvas = (wxPreviewCanvas *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCanvas(canvas);
- break;
+ break;
}
-case wxPrintPreview_SetCurrentPage: { // wxPrintPreview::SetCurrentPage
+case wxPrintPreview_SetCurrentPage: { // wxPrintPreview::SetCurrentPage
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
int * pageNum = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetCurrentPage((int) *pageNum);
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintPreview_SetFrame: { // wxPrintPreview::SetFrame
+case wxPrintPreview_SetFrame: { // wxPrintPreview::SetFrame
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
wxFrame *frame = (wxFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFrame(frame);
- break;
+ break;
}
-case wxPrintPreview_SetPrintout: { // wxPrintPreview::SetPrintout
+case wxPrintPreview_SetPrintout: { // wxPrintPreview::SetPrintout
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
wxPrintout *printout = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPrintout(printout);
- break;
+ break;
}
-case wxPrintPreview_SetZoom: { // wxPrintPreview::SetZoom
+case wxPrintPreview_SetZoom: { // wxPrintPreview::SetZoom
wxPrintPreview *This = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
int * percent = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetZoom((int) *percent);
- break;
+ break;
}
-case wxPreviewFrame_new: { // wxPreviewFrame::wxPreviewFrame
+case wxPreviewFrame_new: { // wxPreviewFrame::wxPreviewFrame
wxString title= wxT("Print Preview");
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxDEFAULT_FRAME_STYLE;
wxPrintPreview *preview = (wxPrintPreview *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * titleLen = (int *) bp; bp += 4;
title = wxString(bp, wxConvUTF8);
@@ -22709,38 +22716,38 @@ case wxPreviewFrame_new: { // wxPreviewFrame::wxPreviewFrame
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxPreviewFrame * Result = new EwxPreviewFrame(preview,parent,title,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPreviewFrame");
- break;
+ break;
}
-case wxPreviewFrame_CreateControlBar: { // wxPreviewFrame::CreateControlBar
+case wxPreviewFrame_CreateControlBar: { // wxPreviewFrame::CreateControlBar
wxPreviewFrame *This = (wxPreviewFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CreateControlBar();
- break;
+ break;
}
-case wxPreviewFrame_CreateCanvas: { // wxPreviewFrame::CreateCanvas
+case wxPreviewFrame_CreateCanvas: { // wxPreviewFrame::CreateCanvas
wxPreviewFrame *This = (wxPreviewFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CreateCanvas();
- break;
+ break;
}
-case wxPreviewFrame_Initialize: { // wxPreviewFrame::Initialize
+case wxPreviewFrame_Initialize: { // wxPreviewFrame::Initialize
wxPreviewFrame *This = (wxPreviewFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Initialize();
- break;
+ break;
}
-case wxPreviewFrame_OnCloseWindow: { // wxPreviewFrame::OnCloseWindow
+case wxPreviewFrame_OnCloseWindow: { // wxPreviewFrame::OnCloseWindow
wxPreviewFrame *This = (wxPreviewFrame *) getPtr(bp,memenv); bp += 4;
wxCloseEvent *event = (wxCloseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->OnCloseWindow(*event);
- break;
+ break;
}
-case wxPreviewControlBar_new: { // wxPreviewControlBar::wxPreviewControlBar
+case wxPreviewControlBar_new: { // wxPreviewControlBar::wxPreviewControlBar
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxTAB_TRAVERSAL;
@@ -22748,7 +22755,7 @@ case wxPreviewControlBar_new: { // wxPreviewControlBar::wxPreviewControlBar
int * buttons = (int *) bp; bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -22764,104 +22771,104 @@ case wxPreviewControlBar_new: { // wxPreviewControlBar::wxPreviewControlBar
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxPreviewControlBar * Result = new EwxPreviewControlBar(preview,(long) *buttons,parent,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPreviewControlBar");
- break;
+ break;
}
-case wxPreviewControlBar_CreateButtons: { // wxPreviewControlBar::CreateButtons
+case wxPreviewControlBar_CreateButtons: { // wxPreviewControlBar::CreateButtons
wxPreviewControlBar *This = (wxPreviewControlBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CreateButtons();
- break;
+ break;
}
-case wxPreviewControlBar_GetPrintPreview: { // wxPreviewControlBar::GetPrintPreview
+case wxPreviewControlBar_GetPrintPreview: { // wxPreviewControlBar::GetPrintPreview
wxPreviewControlBar *This = (wxPreviewControlBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPrintPreview * Result = (wxPrintPreview*)This->GetPrintPreview();
rt.addRef(getRef((void *)Result,memenv), "wxPrintPreview");
- break;
+ break;
}
-case wxPreviewControlBar_GetZoomControl: { // wxPreviewControlBar::GetZoomControl
+case wxPreviewControlBar_GetZoomControl: { // wxPreviewControlBar::GetZoomControl
wxPreviewControlBar *This = (wxPreviewControlBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetZoomControl();
rt.addInt(Result);
- break;
+ break;
}
-case wxPreviewControlBar_SetZoomControl: { // wxPreviewControlBar::SetZoomControl
+case wxPreviewControlBar_SetZoomControl: { // wxPreviewControlBar::SetZoomControl
wxPreviewControlBar *This = (wxPreviewControlBar *) getPtr(bp,memenv); bp += 4;
int * zoom = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetZoomControl((int) *zoom);
- break;
+ break;
}
-case wxPrinter_new: { // wxPrinter::wxPrinter
+case wxPrinter_new: { // wxPrinter::wxPrinter
wxPrintDialogData * data=(wxPrintDialogData *) NULL;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
data = (wxPrintDialogData *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxPrinter * Result = new EwxPrinter(data);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxPrinter");
- break;
+ break;
}
-case wxPrinter_CreateAbortWindow: { // wxPrinter::CreateAbortWindow
+case wxPrinter_CreateAbortWindow: { // wxPrinter::CreateAbortWindow
wxPrinter *This = (wxPrinter *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxPrintout *printout = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->CreateAbortWindow(parent,printout);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxPrinter_GetAbort: { // wxPrinter::GetAbort
+case wxPrinter_GetAbort: { // wxPrinter::GetAbort
wxPrinter *This = (wxPrinter *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetAbort();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrinter_GetLastError: { // wxPrinter::GetLastError
+case wxPrinter_GetLastError: { // wxPrinter::GetLastError
int Result = wxPrinter::GetLastError();
rt.addInt(Result);
- break;
+ break;
}
-case wxPrinter_GetPrintDialogData: { // wxPrinter::GetPrintDialogData
+case wxPrinter_GetPrintDialogData: { // wxPrinter::GetPrintDialogData
wxPrinter *This = (wxPrinter *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPrintDialogData * Result = &This->GetPrintDialogData();
rt.addRef(getRef((void *)Result,memenv), "wxPrintDialogData");
- break;
+ break;
}
-case wxPrinter_Print: { // wxPrinter::Print
+case wxPrinter_Print: { // wxPrinter::Print
bool prompt=true;
wxPrinter *This = (wxPrinter *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxPrintout *printout = (wxPrintout *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
prompt = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Print(parent,printout,prompt);
rt.addBool(Result);
- break;
+ break;
}
-case wxPrinter_PrintDialog: { // wxPrinter::PrintDialog
+case wxPrinter_PrintDialog: { // wxPrinter::PrintDialog
wxPrinter *This = (wxPrinter *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxDC * Result = (wxDC*)This->PrintDialog(parent);
rt.addRef(getRef((void *)Result,memenv), "wxDC");
- break;
+ break;
}
-case wxPrinter_ReportError: { // wxPrinter::ReportError
+case wxPrinter_ReportError: { // wxPrinter::ReportError
wxPrinter *This = (wxPrinter *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxPrintout *printout = (wxPrintout *) getPtr(bp,memenv); bp += 4;
@@ -22870,20 +22877,20 @@ case wxPrinter_ReportError: { // wxPrinter::ReportError
bp += *messageLen+((8-((0+ *messageLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->ReportError(parent,printout,message);
- break;
+ break;
}
-case wxPrinter_Setup: { // wxPrinter::Setup
+case wxPrinter_Setup: { // wxPrinter::Setup
wxPrinter *This = (wxPrinter *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Setup(parent);
rt.addBool(Result);
- break;
+ break;
}
-case wxXmlResource_new_1: { // wxXmlResource::wxXmlResource
+case wxXmlResource_new_1: { // wxXmlResource::wxXmlResource
int flags=wxXRC_USE_LOCALE;
wxString domain= wxEmptyString;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
@@ -22892,19 +22899,19 @@ case wxXmlResource_new_1: { // wxXmlResource::wxXmlResource
domain = wxString(bp, wxConvUTF8);
bp += *domainLen+((8-((0+ *domainLen) & 7)) & 7);
} break;
- }};
+ }};
wxXmlResource * Result = new EwxXmlResource(flags,domain);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxXmlResource");
- break;
+ break;
}
-case wxXmlResource_new_2: { // wxXmlResource::wxXmlResource
+case wxXmlResource_new_2: { // wxXmlResource::wxXmlResource
int flags=wxXRC_USE_LOCALE;
wxString domain= wxEmptyString;
int * filemaskLen = (int *) bp; bp += 4;
wxString filemask = wxString(bp, wxConvUTF8);
bp += *filemaskLen+((8-((4+ *filemaskLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
@@ -22913,13 +22920,13 @@ case wxXmlResource_new_2: { // wxXmlResource::wxXmlResource
domain = wxString(bp, wxConvUTF8);
bp += *domainLen+((8-((0+ *domainLen) & 7)) & 7);
} break;
- }};
+ }};
wxXmlResource * Result = new EwxXmlResource(filemask,flags,domain);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxXmlResource");
- break;
+ break;
}
-case wxXmlResource_AttachUnknownControl: { // wxXmlResource::AttachUnknownControl
+case wxXmlResource_AttachUnknownControl: { // wxXmlResource::AttachUnknownControl
wxWindow * parent=NULL;
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
@@ -22927,23 +22934,23 @@ case wxXmlResource_AttachUnknownControl: { // wxXmlResource::AttachUnknownContro
bp += *nameLen+((8-((0+ *nameLen) & 7)) & 7);
wxWindow *control = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AttachUnknownControl(name,control,parent);
rt.addBool(Result);
- break;
+ break;
}
-case wxXmlResource_ClearHandlers: { // wxXmlResource::ClearHandlers
+case wxXmlResource_ClearHandlers: { // wxXmlResource::ClearHandlers
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ClearHandlers();
- break;
+ break;
}
-case wxXmlResource_CompareVersion: { // wxXmlResource::CompareVersion
+case wxXmlResource_CompareVersion: { // wxXmlResource::CompareVersion
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
int * major = (int *) bp; bp += 4;
int * minor = (int *) bp; bp += 4;
@@ -22952,48 +22959,48 @@ case wxXmlResource_CompareVersion: { // wxXmlResource::CompareVersion
if(!This) throw wxe_badarg(0);
int Result = This->CompareVersion((int) *major,(int) *minor,(int) *release,(int) *revision);
rt.addInt(Result);
- break;
+ break;
}
-case wxXmlResource_Get: { // wxXmlResource::Get
+case wxXmlResource_Get: { // wxXmlResource::Get
wxXmlResource * Result = (wxXmlResource*)wxXmlResource::Get();
rt.addRef(getRef((void *)Result,memenv), "wxXmlResource");
- break;
+ break;
}
-case wxXmlResource_GetFlags: { // wxXmlResource::GetFlags
+case wxXmlResource_GetFlags: { // wxXmlResource::GetFlags
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFlags();
rt.addInt(Result);
- break;
+ break;
}
-case wxXmlResource_GetVersion: { // wxXmlResource::GetVersion
+case wxXmlResource_GetVersion: { // wxXmlResource::GetVersion
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetVersion();
rt.addInt(Result);
- break;
+ break;
}
-case wxXmlResource_GetXRCID: { // wxXmlResource::GetXRCID
+case wxXmlResource_GetXRCID: { // wxXmlResource::GetXRCID
int value_if_not_found=wxID_NONE;
int * str_idLen = (int *) bp; bp += 4;
wxString str_id = wxString(bp, wxConvUTF8);
bp += *str_idLen+((8-((4+ *str_idLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
value_if_not_found = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
int Result = wxXmlResource::GetXRCID(str_id,value_if_not_found);
rt.addInt(Result);
- break;
+ break;
}
-case wxXmlResource_InitAllHandlers: { // wxXmlResource::InitAllHandlers
+case wxXmlResource_InitAllHandlers: { // wxXmlResource::InitAllHandlers
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->InitAllHandlers();
- break;
+ break;
}
-case wxXmlResource_Load: { // wxXmlResource::Load
+case wxXmlResource_Load: { // wxXmlResource::Load
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
int * filemaskLen = (int *) bp; bp += 4;
wxString filemask = wxString(bp, wxConvUTF8);
@@ -23001,9 +23008,9 @@ case wxXmlResource_Load: { // wxXmlResource::Load
if(!This) throw wxe_badarg(0);
bool Result = This->Load(filemask);
rt.addBool(Result);
- break;
+ break;
}
-case wxXmlResource_LoadBitmap: { // wxXmlResource::LoadBitmap
+case wxXmlResource_LoadBitmap: { // wxXmlResource::LoadBitmap
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -23011,9 +23018,9 @@ case wxXmlResource_LoadBitmap: { // wxXmlResource::LoadBitmap
if(!This) throw wxe_badarg(0);
wxBitmap * Result = new wxBitmap(This->LoadBitmap(name)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxXmlResource_LoadDialog_2: { // wxXmlResource::LoadDialog
+case wxXmlResource_LoadDialog_2: { // wxXmlResource::LoadDialog
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
@@ -23022,9 +23029,9 @@ case wxXmlResource_LoadDialog_2: { // wxXmlResource::LoadDialog
if(!This) throw wxe_badarg(0);
wxDialog * Result = (wxDialog*)This->LoadDialog(parent,name);
rt.addRef(getRef((void *)Result,memenv), "wxDialog");
- break;
+ break;
}
-case wxXmlResource_LoadDialog_3: { // wxXmlResource::LoadDialog
+case wxXmlResource_LoadDialog_3: { // wxXmlResource::LoadDialog
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
wxDialog *dlg = (wxDialog *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
@@ -23034,9 +23041,9 @@ case wxXmlResource_LoadDialog_3: { // wxXmlResource::LoadDialog
if(!This) throw wxe_badarg(0);
bool Result = This->LoadDialog(dlg,parent,name);
rt.addBool(Result);
- break;
+ break;
}
-case wxXmlResource_LoadFrame_2: { // wxXmlResource::LoadFrame
+case wxXmlResource_LoadFrame_2: { // wxXmlResource::LoadFrame
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
@@ -23045,9 +23052,9 @@ case wxXmlResource_LoadFrame_2: { // wxXmlResource::LoadFrame
if(!This) throw wxe_badarg(0);
wxFrame * Result = (wxFrame*)This->LoadFrame(parent,name);
rt.addRef(getRef((void *)Result,memenv), "wxFrame");
- break;
+ break;
}
-case wxXmlResource_LoadFrame_3: { // wxXmlResource::LoadFrame
+case wxXmlResource_LoadFrame_3: { // wxXmlResource::LoadFrame
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
wxFrame *frame = (wxFrame *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
@@ -23057,9 +23064,9 @@ case wxXmlResource_LoadFrame_3: { // wxXmlResource::LoadFrame
if(!This) throw wxe_badarg(0);
bool Result = This->LoadFrame(frame,parent,name);
rt.addBool(Result);
- break;
+ break;
}
-case wxXmlResource_LoadIcon: { // wxXmlResource::LoadIcon
+case wxXmlResource_LoadIcon: { // wxXmlResource::LoadIcon
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -23067,9 +23074,9 @@ case wxXmlResource_LoadIcon: { // wxXmlResource::LoadIcon
if(!This) throw wxe_badarg(0);
wxIcon * Result = new wxIcon(This->LoadIcon(name)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxIcon");
- break;
+ break;
}
-case wxXmlResource_LoadMenu: { // wxXmlResource::LoadMenu
+case wxXmlResource_LoadMenu: { // wxXmlResource::LoadMenu
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -23077,9 +23084,9 @@ case wxXmlResource_LoadMenu: { // wxXmlResource::LoadMenu
if(!This) throw wxe_badarg(0);
wxMenu * Result = (wxMenu*)This->LoadMenu(name);
rt.addRef(getRef((void *)Result,memenv), "wxMenu");
- break;
+ break;
}
-case wxXmlResource_LoadMenuBar_2: { // wxXmlResource::LoadMenuBar
+case wxXmlResource_LoadMenuBar_2: { // wxXmlResource::LoadMenuBar
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
@@ -23088,9 +23095,9 @@ case wxXmlResource_LoadMenuBar_2: { // wxXmlResource::LoadMenuBar
if(!This) throw wxe_badarg(0);
wxMenuBar * Result = (wxMenuBar*)This->LoadMenuBar(parent,name);
rt.addRef(getRef((void *)Result,memenv), "wxMenuBar");
- break;
+ break;
}
-case wxXmlResource_LoadMenuBar_1: { // wxXmlResource::LoadMenuBar
+case wxXmlResource_LoadMenuBar_1: { // wxXmlResource::LoadMenuBar
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -23098,9 +23105,9 @@ case wxXmlResource_LoadMenuBar_1: { // wxXmlResource::LoadMenuBar
if(!This) throw wxe_badarg(0);
wxMenuBar * Result = (wxMenuBar*)This->LoadMenuBar(name);
rt.addRef(getRef((void *)Result,memenv), "wxMenuBar");
- break;
+ break;
}
-case wxXmlResource_LoadPanel_2: { // wxXmlResource::LoadPanel
+case wxXmlResource_LoadPanel_2: { // wxXmlResource::LoadPanel
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
@@ -23109,9 +23116,9 @@ case wxXmlResource_LoadPanel_2: { // wxXmlResource::LoadPanel
if(!This) throw wxe_badarg(0);
wxPanel * Result = (wxPanel*)This->LoadPanel(parent,name);
rt.addRef(getRef((void *)Result,memenv), "wxPanel");
- break;
+ break;
}
-case wxXmlResource_LoadPanel_3: { // wxXmlResource::LoadPanel
+case wxXmlResource_LoadPanel_3: { // wxXmlResource::LoadPanel
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
wxPanel *panel = (wxPanel *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
@@ -23121,9 +23128,9 @@ case wxXmlResource_LoadPanel_3: { // wxXmlResource::LoadPanel
if(!This) throw wxe_badarg(0);
bool Result = This->LoadPanel(panel,parent,name);
rt.addBool(Result);
- break;
+ break;
}
-case wxXmlResource_LoadToolBar: { // wxXmlResource::LoadToolBar
+case wxXmlResource_LoadToolBar: { // wxXmlResource::LoadToolBar
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
@@ -23132,22 +23139,22 @@ case wxXmlResource_LoadToolBar: { // wxXmlResource::LoadToolBar
if(!This) throw wxe_badarg(0);
wxToolBar * Result = (wxToolBar*)This->LoadToolBar(parent,name);
rt.addRef(getRef((void *)Result,memenv), "wxToolBar");
- break;
+ break;
}
-case wxXmlResource_Set: { // wxXmlResource::Set
+case wxXmlResource_Set: { // wxXmlResource::Set
wxXmlResource *res = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
wxXmlResource * Result = (wxXmlResource*)wxXmlResource::Set(res);
rt.addRef(getRef((void *)Result,memenv), "wxXmlResource");
- break;
+ break;
}
-case wxXmlResource_SetFlags: { // wxXmlResource::SetFlags
+case wxXmlResource_SetFlags: { // wxXmlResource::SetFlags
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
int * flags = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFlags((int) *flags);
- break;
+ break;
}
-case wxXmlResource_Unload: { // wxXmlResource::Unload
+case wxXmlResource_Unload: { // wxXmlResource::Unload
wxXmlResource *This = (wxXmlResource *) getPtr(bp,memenv); bp += 4;
int * filenameLen = (int *) bp; bp += 4;
wxString filename = wxString(bp, wxConvUTF8);
@@ -23155,14 +23162,14 @@ case wxXmlResource_Unload: { // wxXmlResource::Unload
if(!This) throw wxe_badarg(0);
bool Result = This->Unload(filename);
rt.addBool(Result);
- break;
+ break;
}
// XRCTRL macro implemented in erlang funcid wxXmlResource_xrcctrl
-case wxHtmlEasyPrinting_new: { // wxHtmlEasyPrinting::wxHtmlEasyPrinting
+case wxHtmlEasyPrinting_new: { // wxHtmlEasyPrinting::wxHtmlEasyPrinting
wxString name= wxT("Printing");
wxWindow * parentWindow=NULL;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * nameLen = (int *) bp; bp += 4;
name = wxString(bp, wxConvUTF8);
@@ -23171,27 +23178,27 @@ case wxHtmlEasyPrinting_new: { // wxHtmlEasyPrinting::wxHtmlEasyPrinting
case 2: {bp += 4;
parentWindow = (wxWindow *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxHtmlEasyPrinting * Result = new EwxHtmlEasyPrinting(name,parentWindow);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxHtmlEasyPrinting");
- break;
+ break;
}
-case wxHtmlEasyPrinting_GetPrintData: { // wxHtmlEasyPrinting::GetPrintData
+case wxHtmlEasyPrinting_GetPrintData: { // wxHtmlEasyPrinting::GetPrintData
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPrintData * Result = (wxPrintData*)This->GetPrintData();
rt.addRef(getRef((void *)Result,memenv), "wxPrintData");
- break;
+ break;
}
-case wxHtmlEasyPrinting_GetPageSetupData: { // wxHtmlEasyPrinting::GetPageSetupData
+case wxHtmlEasyPrinting_GetPageSetupData: { // wxHtmlEasyPrinting::GetPageSetupData
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPageSetupDialogData * Result = (wxPageSetupDialogData*)This->GetPageSetupData();
rt.addRef(getRef((void *)Result,memenv), "wxPageSetupDialogData");
- break;
+ break;
}
-case wxHtmlEasyPrinting_PreviewFile: { // wxHtmlEasyPrinting::PreviewFile
+case wxHtmlEasyPrinting_PreviewFile: { // wxHtmlEasyPrinting::PreviewFile
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
int * htmlfileLen = (int *) bp; bp += 4;
wxString htmlfile = wxString(bp, wxConvUTF8);
@@ -23199,27 +23206,27 @@ case wxHtmlEasyPrinting_PreviewFile: { // wxHtmlEasyPrinting::PreviewFile
if(!This) throw wxe_badarg(0);
bool Result = This->PreviewFile(htmlfile);
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlEasyPrinting_PreviewText: { // wxHtmlEasyPrinting::PreviewText
+case wxHtmlEasyPrinting_PreviewText: { // wxHtmlEasyPrinting::PreviewText
wxString basepath= wxEmptyString;
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
int * htmltextLen = (int *) bp; bp += 4;
wxString htmltext = wxString(bp, wxConvUTF8);
bp += *htmltextLen+((8-((0+ *htmltextLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * basepathLen = (int *) bp; bp += 4;
basepath = wxString(bp, wxConvUTF8);
bp += *basepathLen+((8-((0+ *basepathLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->PreviewText(htmltext,basepath);
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlEasyPrinting_PrintFile: { // wxHtmlEasyPrinting::PrintFile
+case wxHtmlEasyPrinting_PrintFile: { // wxHtmlEasyPrinting::PrintFile
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
int * htmlfileLen = (int *) bp; bp += 4;
wxString htmlfile = wxString(bp, wxConvUTF8);
@@ -23227,33 +23234,33 @@ case wxHtmlEasyPrinting_PrintFile: { // wxHtmlEasyPrinting::PrintFile
if(!This) throw wxe_badarg(0);
bool Result = This->PrintFile(htmlfile);
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlEasyPrinting_PrintText: { // wxHtmlEasyPrinting::PrintText
+case wxHtmlEasyPrinting_PrintText: { // wxHtmlEasyPrinting::PrintText
wxString basepath= wxEmptyString;
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
int * htmltextLen = (int *) bp; bp += 4;
wxString htmltext = wxString(bp, wxConvUTF8);
bp += *htmltextLen+((8-((0+ *htmltextLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * basepathLen = (int *) bp; bp += 4;
basepath = wxString(bp, wxConvUTF8);
bp += *basepathLen+((8-((0+ *basepathLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->PrintText(htmltext,basepath);
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlEasyPrinting_PageSetup: { // wxHtmlEasyPrinting::PageSetup
+case wxHtmlEasyPrinting_PageSetup: { // wxHtmlEasyPrinting::PageSetup
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->PageSetup();
- break;
+ break;
}
-case wxHtmlEasyPrinting_SetFonts: { // wxHtmlEasyPrinting::SetFonts
+case wxHtmlEasyPrinting_SetFonts: { // wxHtmlEasyPrinting::SetFonts
int * sizesLen = 0;
int * sizes = (int *) NULL;
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
@@ -23263,47 +23270,47 @@ case wxHtmlEasyPrinting_SetFonts: { // wxHtmlEasyPrinting::SetFonts
int * fixed_faceLen = (int *) bp; bp += 4;
wxString fixed_face = wxString(bp, wxConvUTF8);
bp += *fixed_faceLen+((8-((4+ *fixed_faceLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
sizesLen = (int *) bp; bp += 4;
sizes = (int *) bp; bp += *sizesLen*4+((0+ *sizesLen)%2 )*4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetFonts(normal_face,fixed_face,sizes);
- break;
+ break;
}
-case wxHtmlEasyPrinting_SetHeader: { // wxHtmlEasyPrinting::SetHeader
+case wxHtmlEasyPrinting_SetHeader: { // wxHtmlEasyPrinting::SetHeader
int pg=wxPAGE_ALL;
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
int * headerLen = (int *) bp; bp += 4;
wxString header = wxString(bp, wxConvUTF8);
bp += *headerLen+((8-((0+ *headerLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
pg = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetHeader(header,pg);
- break;
+ break;
}
-case wxHtmlEasyPrinting_SetFooter: { // wxHtmlEasyPrinting::SetFooter
+case wxHtmlEasyPrinting_SetFooter: { // wxHtmlEasyPrinting::SetFooter
int pg=wxPAGE_ALL;
wxHtmlEasyPrinting *This = (wxHtmlEasyPrinting *) getPtr(bp,memenv); bp += 4;
int * footerLen = (int *) bp; bp += 4;
wxString footer = wxString(bp, wxConvUTF8);
bp += *footerLen+((8-((0+ *footerLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
pg = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetFooter(footer,pg);
- break;
+ break;
}
-case wxGLCanvas_new_2: { // wxGLCanvas::wxGLCanvas
+case wxGLCanvas_new_2: { // wxGLCanvas::wxGLCanvas
wxWindowID id=-1;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -23314,7 +23321,7 @@ case wxGLCanvas_new_2: { // wxGLCanvas::wxGLCanvas
const wxPalette * palette= &wxNullPalette;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -23345,13 +23352,13 @@ case wxGLCanvas_new_2: { // wxGLCanvas::wxGLCanvas
case 7: {bp += 4;
palette = (wxPalette *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxGLCanvas * Result = new EwxGLCanvas(parent,id,pos,size,style,name,attribList,*palette);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGLCanvas");
- break;
+ break;
}
-case wxGLCanvas_new_3_1: { // wxGLCanvas::wxGLCanvas
+case wxGLCanvas_new_3_1: { // wxGLCanvas::wxGLCanvas
wxWindowID id=-1;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -23362,7 +23369,7 @@ case wxGLCanvas_new_3_1: { // wxGLCanvas::wxGLCanvas
const wxPalette * palette= &wxNullPalette;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxGLContext * shared = (wxGLContext *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -23393,13 +23400,13 @@ case wxGLCanvas_new_3_1: { // wxGLCanvas::wxGLCanvas
case 7: {bp += 4;
palette = (wxPalette *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxGLCanvas * Result = new EwxGLCanvas(parent,shared,id,pos,size,style,name,attribList,*palette);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGLCanvas");
- break;
+ break;
}
-case wxGLCanvas_new_3_0: { // wxGLCanvas::wxGLCanvas
+case wxGLCanvas_new_3_0: { // wxGLCanvas::wxGLCanvas
wxWindowID id=-1;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
@@ -23410,7 +23417,7 @@ case wxGLCanvas_new_3_0: { // wxGLCanvas::wxGLCanvas
const wxPalette * palette= &wxNullPalette;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxGLCanvas *shared = (wxGLCanvas *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -23441,59 +23448,59 @@ case wxGLCanvas_new_3_0: { // wxGLCanvas::wxGLCanvas
case 7: {bp += 4;
palette = (wxPalette *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxGLCanvas * Result = new EwxGLCanvas(parent,shared,id,pos,size,style,name,attribList,*palette);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxGLCanvas");
- break;
+ break;
}
-case wxGLCanvas_GetContext: { // wxGLCanvas::GetContext
+case wxGLCanvas_GetContext: { // wxGLCanvas::GetContext
wxGLCanvas *This = (wxGLCanvas *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxGLContext * Result = (wxGLContext*)This->GetContext();
rt.addRef(getRef((void *)Result,memenv), "wxGLContext");
- break;
+ break;
}
-case wxGLCanvas_SetCurrent: { // wxGLCanvas::SetCurrent
+case wxGLCanvas_SetCurrent: { // wxGLCanvas::SetCurrent
wxGLCanvas *This = (wxGLCanvas *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCurrent();
if(This->GetContext()) setActiveGL(Ecmd.caller,This);
- break;
+ break;
}
-case wxGLCanvas_SwapBuffers: { // wxGLCanvas::SwapBuffers
+case wxGLCanvas_SwapBuffers: { // wxGLCanvas::SwapBuffers
wxGLCanvas *This = (wxGLCanvas *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SwapBuffers();
- break;
+ break;
}
#if wxUSE_AUI
-case wxAuiManager_new: { // wxAuiManager::wxAuiManager
+case wxAuiManager_new: { // wxAuiManager::wxAuiManager
wxWindow * managed_wnd=NULL;
int flags=wxAUI_MGR_DEFAULT;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
managed_wnd = (wxWindow *) getPtr(bp,memenv); bp += 4;
} break;
case 2: {bp += 4;
flags = (int)*(unsigned int *) bp; bp += 4;
} break;
- }};
+ }};
wxAuiManager * Result = new EwxAuiManager(managed_wnd,flags);
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxAuiManager");
- break;
+ break;
}
-case wxAuiManager_AddPane_2_1: { // wxAuiManager::AddPane
+case wxAuiManager_AddPane_2_1: { // wxAuiManager::AddPane
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxAuiPaneInfo *pane_info = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AddPane(window,*pane_info);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiManager_AddPane_3: { // wxAuiManager::AddPane
+case wxAuiManager_AddPane_3: { // wxAuiManager::AddPane
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxAuiPaneInfo *pane_info = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
@@ -23503,14 +23510,14 @@ case wxAuiManager_AddPane_3: { // wxAuiManager::AddPane
if(!This) throw wxe_badarg(0);
bool Result = This->AddPane(window,*pane_info,drop_pos);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiManager_AddPane_2_0: { // wxAuiManager::AddPane
+case wxAuiManager_AddPane_2_0: { // wxAuiManager::AddPane
int direction=wxLEFT;
wxString caption= wxEmptyString;
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
direction = (int)*(int *) bp; bp += 4;
} break;
@@ -23519,35 +23526,35 @@ case wxAuiManager_AddPane_2_0: { // wxAuiManager::AddPane
caption = wxString(bp, wxConvUTF8);
bp += *captionLen+((8-((0+ *captionLen) & 7)) & 7);
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AddPane(window,direction,caption);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiManager_DetachPane: { // wxAuiManager::DetachPane
+case wxAuiManager_DetachPane: { // wxAuiManager::DetachPane
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DetachPane(window);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiManager_GetAllPanes: { // wxAuiManager::GetAllPanes
+case wxAuiManager_GetAllPanes: { // wxAuiManager::GetAllPanes
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfoArray * Result = &This->GetAllPanes();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfoArray");
- break;
+ break;
}
-case wxAuiManager_GetArtProvider: { // wxAuiManager::GetArtProvider
+case wxAuiManager_GetArtProvider: { // wxAuiManager::GetArtProvider
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiDockArt * Result = (wxAuiDockArt*)This->GetArtProvider();
rt.addRef(getRef((void *)Result,memenv), "wxAuiDockArt");
- break;
+ break;
}
-case wxAuiManager_GetDockSizeConstraint: { // wxAuiManager::GetDockSizeConstraint
+case wxAuiManager_GetDockSizeConstraint: { // wxAuiManager::GetDockSizeConstraint
double width_pct;
double height_pct;
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
@@ -23556,37 +23563,37 @@ case wxAuiManager_GetDockSizeConstraint: { // wxAuiManager::GetDockSizeConstrain
rt.addFloat(width_pct);
rt.addFloat(height_pct);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxAuiManager_GetFlags: { // wxAuiManager::GetFlags
+case wxAuiManager_GetFlags: { // wxAuiManager::GetFlags
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFlags();
rt.addUint(Result);
- break;
+ break;
}
-case wxAuiManager_GetManagedWindow: { // wxAuiManager::GetManagedWindow
+case wxAuiManager_GetManagedWindow: { // wxAuiManager::GetManagedWindow
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetManagedWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxAuiManager_GetManager: { // wxAuiManager::GetManager
+case wxAuiManager_GetManager: { // wxAuiManager::GetManager
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxAuiManager * Result = (wxAuiManager*)wxAuiManager::GetManager(window);
rt.addRef(getRef((void *)Result,memenv), "wxAuiManager");
- break;
+ break;
}
-case wxAuiManager_GetPane_1_1: { // wxAuiManager::GetPane
+case wxAuiManager_GetPane_1_1: { // wxAuiManager::GetPane
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->GetPane(window);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiManager_GetPane_1_0: { // wxAuiManager::GetPane
+case wxAuiManager_GetPane_1_0: { // wxAuiManager::GetPane
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
int * nameLen = (int *) bp; bp += 4;
wxString name = wxString(bp, wxConvUTF8);
@@ -23594,31 +23601,31 @@ case wxAuiManager_GetPane_1_0: { // wxAuiManager::GetPane
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->GetPane(name);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiManager_HideHint: { // wxAuiManager::HideHint
+case wxAuiManager_HideHint: { // wxAuiManager::HideHint
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->HideHint();
- break;
+ break;
}
-case wxAuiManager_InsertPane: { // wxAuiManager::InsertPane
+case wxAuiManager_InsertPane: { // wxAuiManager::InsertPane
int insert_level=wxAUI_INSERT_PANE;
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxAuiPaneInfo *insert_location = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
insert_level = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertPane(window,*insert_location,insert_level);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiManager_LoadPaneInfo: { // wxAuiManager::LoadPaneInfo
+case wxAuiManager_LoadPaneInfo: { // wxAuiManager::LoadPaneInfo
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
int * pane_partLen = (int *) bp; bp += 4;
wxString pane_part = wxString(bp, wxConvUTF8);
@@ -23626,70 +23633,70 @@ case wxAuiManager_LoadPaneInfo: { // wxAuiManager::LoadPaneInfo
wxAuiPaneInfo *pane = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LoadPaneInfo(pane_part,*pane);
- break;
+ break;
}
-case wxAuiManager_LoadPerspective: { // wxAuiManager::LoadPerspective
+case wxAuiManager_LoadPerspective: { // wxAuiManager::LoadPerspective
bool update=true;
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
int * perspectiveLen = (int *) bp; bp += 4;
wxString perspective = wxString(bp, wxConvUTF8);
bp += *perspectiveLen+((8-((0+ *perspectiveLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
update = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->LoadPerspective(perspective,update);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiManager_SavePaneInfo: { // wxAuiManager::SavePaneInfo
+case wxAuiManager_SavePaneInfo: { // wxAuiManager::SavePaneInfo
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
wxAuiPaneInfo *pane = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->SavePaneInfo(*pane);
rt.add(Result);
- break;
+ break;
}
-case wxAuiManager_SavePerspective: { // wxAuiManager::SavePerspective
+case wxAuiManager_SavePerspective: { // wxAuiManager::SavePerspective
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->SavePerspective();
rt.add(Result);
- break;
+ break;
}
-case wxAuiManager_SetArtProvider: { // wxAuiManager::SetArtProvider
+case wxAuiManager_SetArtProvider: { // wxAuiManager::SetArtProvider
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
wxAuiDockArt *art_provider = (wxAuiDockArt *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetArtProvider(art_provider);
- break;
+ break;
}
-case wxAuiManager_SetDockSizeConstraint: { // wxAuiManager::SetDockSizeConstraint
+case wxAuiManager_SetDockSizeConstraint: { // wxAuiManager::SetDockSizeConstraint
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
double * width_pct = (double *) bp; bp += 8;
double * height_pct = (double *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->SetDockSizeConstraint((double) *width_pct,(double) *height_pct);
- break;
+ break;
}
-case wxAuiManager_SetFlags: { // wxAuiManager::SetFlags
+case wxAuiManager_SetFlags: { // wxAuiManager::SetFlags
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
unsigned int * flags = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFlags((int) *flags);
- break;
+ break;
}
-case wxAuiManager_SetManagedWindow: { // wxAuiManager::SetManagedWindow
+case wxAuiManager_SetManagedWindow: { // wxAuiManager::SetManagedWindow
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
wxWindow *managed_wnd = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetManagedWindow(managed_wnd);
- break;
+ break;
}
-case wxAuiManager_ShowHint: { // wxAuiManager::ShowHint
+case wxAuiManager_ShowHint: { // wxAuiManager::ShowHint
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -23698,42 +23705,42 @@ case wxAuiManager_ShowHint: { // wxAuiManager::ShowHint
wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH);
if(!This) throw wxe_badarg(0);
This->ShowHint(rect);
- break;
+ break;
}
-case wxAuiManager_UnInit: { // wxAuiManager::UnInit
+case wxAuiManager_UnInit: { // wxAuiManager::UnInit
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->UnInit();
- break;
+ break;
}
-case wxAuiManager_Update: { // wxAuiManager::Update
+case wxAuiManager_Update: { // wxAuiManager::Update
wxAuiManager *This = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Update();
- break;
+ break;
}
#endif // wxUSE_AUI
#if wxUSE_AUI
-case wxAuiPaneInfo_new_0: { // wxAuiPaneInfo::wxAuiPaneInfo
+case wxAuiPaneInfo_new_0: { // wxAuiPaneInfo::wxAuiPaneInfo
wxAuiPaneInfo * Result = new wxAuiPaneInfo();
newPtr((void *) Result, 154, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_new_1: { // wxAuiPaneInfo::wxAuiPaneInfo
+case wxAuiPaneInfo_new_1: { // wxAuiPaneInfo::wxAuiPaneInfo
wxAuiPaneInfo *c = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
wxAuiPaneInfo * Result = new wxAuiPaneInfo(*c);
newPtr((void *) Result, 154, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_destruct: { // wxAuiPaneInfo::~wxAuiPaneInfo
+case wxAuiPaneInfo_destruct: { // wxAuiPaneInfo::~wxAuiPaneInfo
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxAuiPaneInfo_BestSize_1: { // wxAuiPaneInfo::BestSize
+case wxAuiPaneInfo_BestSize_1: { // wxAuiPaneInfo::BestSize
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
@@ -23741,39 +23748,39 @@ case wxAuiPaneInfo_BestSize_1: { // wxAuiPaneInfo::BestSize
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->BestSize(size);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_BestSize_2: { // wxAuiPaneInfo::BestSize
+case wxAuiPaneInfo_BestSize_2: { // wxAuiPaneInfo::BestSize
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->BestSize((int) *x,(int) *y);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Bottom: { // wxAuiPaneInfo::Bottom
+case wxAuiPaneInfo_Bottom: { // wxAuiPaneInfo::Bottom
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Bottom();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_BottomDockable: { // wxAuiPaneInfo::BottomDockable
+case wxAuiPaneInfo_BottomDockable: { // wxAuiPaneInfo::BottomDockable
bool b=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
b = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->BottomDockable(b);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Caption: { // wxAuiPaneInfo::Caption
+case wxAuiPaneInfo_Caption: { // wxAuiPaneInfo::Caption
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * cLen = (int *) bp; bp += 4;
wxString c = wxString(bp, wxConvUTF8);
@@ -23781,129 +23788,129 @@ case wxAuiPaneInfo_Caption: { // wxAuiPaneInfo::Caption
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Caption(c);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_CaptionVisible: { // wxAuiPaneInfo::CaptionVisible
+case wxAuiPaneInfo_CaptionVisible: { // wxAuiPaneInfo::CaptionVisible
bool visible=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
visible = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->CaptionVisible(visible);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Centre: { // wxAuiPaneInfo::Centre
+case wxAuiPaneInfo_Centre: { // wxAuiPaneInfo::Centre
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Centre();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_CentrePane: { // wxAuiPaneInfo::CentrePane
+case wxAuiPaneInfo_CentrePane: { // wxAuiPaneInfo::CentrePane
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->CentrePane();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_CloseButton: { // wxAuiPaneInfo::CloseButton
+case wxAuiPaneInfo_CloseButton: { // wxAuiPaneInfo::CloseButton
bool visible=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
visible = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->CloseButton(visible);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_DefaultPane: { // wxAuiPaneInfo::DefaultPane
+case wxAuiPaneInfo_DefaultPane: { // wxAuiPaneInfo::DefaultPane
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->DefaultPane();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_DestroyOnClose: { // wxAuiPaneInfo::DestroyOnClose
+case wxAuiPaneInfo_DestroyOnClose: { // wxAuiPaneInfo::DestroyOnClose
bool b=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
b = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->DestroyOnClose(b);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Direction: { // wxAuiPaneInfo::Direction
+case wxAuiPaneInfo_Direction: { // wxAuiPaneInfo::Direction
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * direction = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Direction((int) *direction);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Dock: { // wxAuiPaneInfo::Dock
+case wxAuiPaneInfo_Dock: { // wxAuiPaneInfo::Dock
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Dock();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Dockable: { // wxAuiPaneInfo::Dockable
+case wxAuiPaneInfo_Dockable: { // wxAuiPaneInfo::Dockable
bool b=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
b = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Dockable(b);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Fixed: { // wxAuiPaneInfo::Fixed
+case wxAuiPaneInfo_Fixed: { // wxAuiPaneInfo::Fixed
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Fixed();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Float: { // wxAuiPaneInfo::Float
+case wxAuiPaneInfo_Float: { // wxAuiPaneInfo::Float
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Float();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Floatable: { // wxAuiPaneInfo::Floatable
+case wxAuiPaneInfo_Floatable: { // wxAuiPaneInfo::Floatable
bool b=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
b = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Floatable(b);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_FloatingPosition_1: { // wxAuiPaneInfo::FloatingPosition
+case wxAuiPaneInfo_FloatingPosition_1: { // wxAuiPaneInfo::FloatingPosition
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -23911,18 +23918,18 @@ case wxAuiPaneInfo_FloatingPosition_1: { // wxAuiPaneInfo::FloatingPosition
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->FloatingPosition(pos);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_FloatingPosition_2: { // wxAuiPaneInfo::FloatingPosition
+case wxAuiPaneInfo_FloatingPosition_2: { // wxAuiPaneInfo::FloatingPosition
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->FloatingPosition((int) *x,(int) *y);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_FloatingSize_1: { // wxAuiPaneInfo::FloatingSize
+case wxAuiPaneInfo_FloatingSize_1: { // wxAuiPaneInfo::FloatingSize
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
@@ -23930,237 +23937,237 @@ case wxAuiPaneInfo_FloatingSize_1: { // wxAuiPaneInfo::FloatingSize
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->FloatingSize(size);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_FloatingSize_2: { // wxAuiPaneInfo::FloatingSize
+case wxAuiPaneInfo_FloatingSize_2: { // wxAuiPaneInfo::FloatingSize
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->FloatingSize((int) *x,(int) *y);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Gripper: { // wxAuiPaneInfo::Gripper
+case wxAuiPaneInfo_Gripper: { // wxAuiPaneInfo::Gripper
bool visible=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
visible = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Gripper(visible);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_GripperTop: { // wxAuiPaneInfo::GripperTop
+case wxAuiPaneInfo_GripperTop: { // wxAuiPaneInfo::GripperTop
bool attop=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
attop = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->GripperTop(attop);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_HasBorder: { // wxAuiPaneInfo::HasBorder
+case wxAuiPaneInfo_HasBorder: { // wxAuiPaneInfo::HasBorder
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasBorder();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_HasCaption: { // wxAuiPaneInfo::HasCaption
+case wxAuiPaneInfo_HasCaption: { // wxAuiPaneInfo::HasCaption
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasCaption();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_HasCloseButton: { // wxAuiPaneInfo::HasCloseButton
+case wxAuiPaneInfo_HasCloseButton: { // wxAuiPaneInfo::HasCloseButton
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasCloseButton();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_HasFlag: { // wxAuiPaneInfo::HasFlag
+case wxAuiPaneInfo_HasFlag: { // wxAuiPaneInfo::HasFlag
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
unsigned int * flag = (unsigned int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasFlag((int) *flag);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_HasGripper: { // wxAuiPaneInfo::HasGripper
+case wxAuiPaneInfo_HasGripper: { // wxAuiPaneInfo::HasGripper
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasGripper();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_HasGripperTop: { // wxAuiPaneInfo::HasGripperTop
+case wxAuiPaneInfo_HasGripperTop: { // wxAuiPaneInfo::HasGripperTop
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasGripperTop();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_HasMaximizeButton: { // wxAuiPaneInfo::HasMaximizeButton
+case wxAuiPaneInfo_HasMaximizeButton: { // wxAuiPaneInfo::HasMaximizeButton
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasMaximizeButton();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_HasMinimizeButton: { // wxAuiPaneInfo::HasMinimizeButton
+case wxAuiPaneInfo_HasMinimizeButton: { // wxAuiPaneInfo::HasMinimizeButton
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasMinimizeButton();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_HasPinButton: { // wxAuiPaneInfo::HasPinButton
+case wxAuiPaneInfo_HasPinButton: { // wxAuiPaneInfo::HasPinButton
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasPinButton();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_Hide: { // wxAuiPaneInfo::Hide
+case wxAuiPaneInfo_Hide: { // wxAuiPaneInfo::Hide
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Hide();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_IsBottomDockable: { // wxAuiPaneInfo::IsBottomDockable
+case wxAuiPaneInfo_IsBottomDockable: { // wxAuiPaneInfo::IsBottomDockable
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsBottomDockable();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsDocked: { // wxAuiPaneInfo::IsDocked
+case wxAuiPaneInfo_IsDocked: { // wxAuiPaneInfo::IsDocked
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsDocked();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsFixed: { // wxAuiPaneInfo::IsFixed
+case wxAuiPaneInfo_IsFixed: { // wxAuiPaneInfo::IsFixed
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsFixed();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsFloatable: { // wxAuiPaneInfo::IsFloatable
+case wxAuiPaneInfo_IsFloatable: { // wxAuiPaneInfo::IsFloatable
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsFloatable();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsFloating: { // wxAuiPaneInfo::IsFloating
+case wxAuiPaneInfo_IsFloating: { // wxAuiPaneInfo::IsFloating
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsFloating();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsLeftDockable: { // wxAuiPaneInfo::IsLeftDockable
+case wxAuiPaneInfo_IsLeftDockable: { // wxAuiPaneInfo::IsLeftDockable
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsLeftDockable();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsMovable: { // wxAuiPaneInfo::IsMovable
+case wxAuiPaneInfo_IsMovable: { // wxAuiPaneInfo::IsMovable
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsMovable();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsOk: { // wxAuiPaneInfo::IsOk
+case wxAuiPaneInfo_IsOk: { // wxAuiPaneInfo::IsOk
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOk();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsResizable: { // wxAuiPaneInfo::IsResizable
+case wxAuiPaneInfo_IsResizable: { // wxAuiPaneInfo::IsResizable
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsResizable();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsRightDockable: { // wxAuiPaneInfo::IsRightDockable
+case wxAuiPaneInfo_IsRightDockable: { // wxAuiPaneInfo::IsRightDockable
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsRightDockable();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsShown: { // wxAuiPaneInfo::IsShown
+case wxAuiPaneInfo_IsShown: { // wxAuiPaneInfo::IsShown
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsShown();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsToolbar: { // wxAuiPaneInfo::IsToolbar
+case wxAuiPaneInfo_IsToolbar: { // wxAuiPaneInfo::IsToolbar
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsToolbar();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_IsTopDockable: { // wxAuiPaneInfo::IsTopDockable
+case wxAuiPaneInfo_IsTopDockable: { // wxAuiPaneInfo::IsTopDockable
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsTopDockable();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiPaneInfo_Layer: { // wxAuiPaneInfo::Layer
+case wxAuiPaneInfo_Layer: { // wxAuiPaneInfo::Layer
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * layer = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Layer((int) *layer);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Left: { // wxAuiPaneInfo::Left
+case wxAuiPaneInfo_Left: { // wxAuiPaneInfo::Left
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Left();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_LeftDockable: { // wxAuiPaneInfo::LeftDockable
+case wxAuiPaneInfo_LeftDockable: { // wxAuiPaneInfo::LeftDockable
bool b=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
b = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->LeftDockable(b);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_MaxSize_1: { // wxAuiPaneInfo::MaxSize
+case wxAuiPaneInfo_MaxSize_1: { // wxAuiPaneInfo::MaxSize
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
@@ -24168,32 +24175,32 @@ case wxAuiPaneInfo_MaxSize_1: { // wxAuiPaneInfo::MaxSize
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->MaxSize(size);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_MaxSize_2: { // wxAuiPaneInfo::MaxSize
+case wxAuiPaneInfo_MaxSize_2: { // wxAuiPaneInfo::MaxSize
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->MaxSize((int) *x,(int) *y);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_MaximizeButton: { // wxAuiPaneInfo::MaximizeButton
+case wxAuiPaneInfo_MaximizeButton: { // wxAuiPaneInfo::MaximizeButton
bool visible=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
visible = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->MaximizeButton(visible);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_MinSize_1: { // wxAuiPaneInfo::MinSize
+case wxAuiPaneInfo_MinSize_1: { // wxAuiPaneInfo::MinSize
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
@@ -24201,46 +24208,46 @@ case wxAuiPaneInfo_MinSize_1: { // wxAuiPaneInfo::MinSize
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->MinSize(size);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_MinSize_2: { // wxAuiPaneInfo::MinSize
+case wxAuiPaneInfo_MinSize_2: { // wxAuiPaneInfo::MinSize
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->MinSize((int) *x,(int) *y);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_MinimizeButton: { // wxAuiPaneInfo::MinimizeButton
+case wxAuiPaneInfo_MinimizeButton: { // wxAuiPaneInfo::MinimizeButton
bool visible=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
visible = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->MinimizeButton(visible);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Movable: { // wxAuiPaneInfo::Movable
+case wxAuiPaneInfo_Movable: { // wxAuiPaneInfo::Movable
bool b=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
b = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Movable(b);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Name: { // wxAuiPaneInfo::Name
+case wxAuiPaneInfo_Name: { // wxAuiPaneInfo::Name
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * nLen = (int *) bp; bp += 4;
wxString n = wxString(bp, wxConvUTF8);
@@ -24248,169 +24255,169 @@ case wxAuiPaneInfo_Name: { // wxAuiPaneInfo::Name
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Name(n);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_PaneBorder: { // wxAuiPaneInfo::PaneBorder
+case wxAuiPaneInfo_PaneBorder: { // wxAuiPaneInfo::PaneBorder
bool visible=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
visible = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->PaneBorder(visible);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_PinButton: { // wxAuiPaneInfo::PinButton
+case wxAuiPaneInfo_PinButton: { // wxAuiPaneInfo::PinButton
bool visible=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
visible = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->PinButton(visible);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Position: { // wxAuiPaneInfo::Position
+case wxAuiPaneInfo_Position: { // wxAuiPaneInfo::Position
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Position((int) *pos);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Resizable: { // wxAuiPaneInfo::Resizable
+case wxAuiPaneInfo_Resizable: { // wxAuiPaneInfo::Resizable
bool resizable=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
resizable = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Resizable(resizable);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Right: { // wxAuiPaneInfo::Right
+case wxAuiPaneInfo_Right: { // wxAuiPaneInfo::Right
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Right();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_RightDockable: { // wxAuiPaneInfo::RightDockable
+case wxAuiPaneInfo_RightDockable: { // wxAuiPaneInfo::RightDockable
bool b=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
b = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->RightDockable(b);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Row: { // wxAuiPaneInfo::Row
+case wxAuiPaneInfo_Row: { // wxAuiPaneInfo::Row
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
int * row = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Row((int) *row);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_SafeSet: { // wxAuiPaneInfo::SafeSet
+case wxAuiPaneInfo_SafeSet: { // wxAuiPaneInfo::SafeSet
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
wxAuiPaneInfo *source = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SafeSet(*source);
- break;
+ break;
}
-case wxAuiPaneInfo_SetFlag: { // wxAuiPaneInfo::SetFlag
+case wxAuiPaneInfo_SetFlag: { // wxAuiPaneInfo::SetFlag
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
unsigned int * flag = (unsigned int *) bp; bp += 4;
bool * option_state = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->SetFlag((int) *flag,(bool) *option_state);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Show: { // wxAuiPaneInfo::Show
+case wxAuiPaneInfo_Show: { // wxAuiPaneInfo::Show
bool show=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
show = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Show(show);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_ToolbarPane: { // wxAuiPaneInfo::ToolbarPane
+case wxAuiPaneInfo_ToolbarPane: { // wxAuiPaneInfo::ToolbarPane
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->ToolbarPane();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Top: { // wxAuiPaneInfo::Top
+case wxAuiPaneInfo_Top: { // wxAuiPaneInfo::Top
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Top();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_TopDockable: { // wxAuiPaneInfo::TopDockable
+case wxAuiPaneInfo_TopDockable: { // wxAuiPaneInfo::TopDockable
bool b=true;
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
b = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->TopDockable(b);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiPaneInfo_Window: { // wxAuiPaneInfo::Window
+case wxAuiPaneInfo_Window: { // wxAuiPaneInfo::Window
wxAuiPaneInfo *This = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
wxWindow *w = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = &This->Window(w);
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
#endif // wxUSE_AUI
#if wxUSE_AUI
-case wxAuiNotebook_new_0: { // wxAuiNotebook::wxAuiNotebook
+case wxAuiNotebook_new_0: { // wxAuiNotebook::wxAuiNotebook
wxAuiNotebook * Result = new EwxAuiNotebook();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxAuiNotebook");
- break;
+ break;
}
-case wxAuiNotebook_new_2: { // wxAuiNotebook::wxAuiNotebook
+case wxAuiNotebook_new_2: { // wxAuiNotebook::wxAuiNotebook
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxAUI_NB_DEFAULT_STYLE;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -24429,13 +24436,13 @@ case wxAuiNotebook_new_2: { // wxAuiNotebook::wxAuiNotebook
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxAuiNotebook * Result = new EwxAuiNotebook(parent,id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxAuiNotebook");
- break;
+ break;
}
-case wxAuiNotebook_AddPage: { // wxAuiNotebook::AddPage
+case wxAuiNotebook_AddPage: { // wxAuiNotebook::AddPage
bool select=false;
const wxBitmap * bitmap= &wxNullBitmap;
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
@@ -24443,27 +24450,27 @@ case wxAuiNotebook_AddPage: { // wxAuiNotebook::AddPage
int * captionLen = (int *) bp; bp += 4;
wxString caption = wxString(bp, wxConvUTF8);
bp += *captionLen+((8-((4+ *captionLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
select = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->AddPage(page,caption,select,*bitmap);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiNotebook_Create: { // wxAuiNotebook::Create
+case wxAuiNotebook_Create: { // wxAuiNotebook::Create
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -24482,74 +24489,74 @@ case wxAuiNotebook_Create: { // wxAuiNotebook::Create
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiNotebook_DeletePage: { // wxAuiNotebook::DeletePage
+case wxAuiNotebook_DeletePage: { // wxAuiNotebook::DeletePage
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * page = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->DeletePage((size_t) *page);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiNotebook_GetArtProvider: { // wxAuiNotebook::GetArtProvider
+case wxAuiNotebook_GetArtProvider: { // wxAuiNotebook::GetArtProvider
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiTabArt * Result = (wxAuiTabArt*)This->GetArtProvider();
rt.addRef(getRef((void *)Result,memenv), "wxAuiTabArt");
- break;
+ break;
}
-case wxAuiNotebook_GetPage: { // wxAuiNotebook::GetPage
+case wxAuiNotebook_GetPage: { // wxAuiNotebook::GetPage
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * page_idx = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetPage((size_t) *page_idx);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxAuiNotebook_GetPageBitmap: { // wxAuiNotebook::GetPageBitmap
+case wxAuiNotebook_GetPageBitmap: { // wxAuiNotebook::GetPageBitmap
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * page_idx = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxBitmap * Result = new wxBitmap(This->GetPageBitmap((size_t) *page_idx)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxAuiNotebook_GetPageCount: { // wxAuiNotebook::GetPageCount
+case wxAuiNotebook_GetPageCount: { // wxAuiNotebook::GetPageCount
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->GetPageCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxAuiNotebook_GetPageIndex: { // wxAuiNotebook::GetPageIndex
+case wxAuiNotebook_GetPageIndex: { // wxAuiNotebook::GetPageIndex
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
wxWindow *page_wnd = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPageIndex(page_wnd);
rt.addInt(Result);
- break;
+ break;
}
-case wxAuiNotebook_GetPageText: { // wxAuiNotebook::GetPageText
+case wxAuiNotebook_GetPageText: { // wxAuiNotebook::GetPageText
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * page_idx = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPageText((size_t) *page_idx);
rt.add(Result);
- break;
+ break;
}
-case wxAuiNotebook_GetSelection: { // wxAuiNotebook::GetSelection
+case wxAuiNotebook_GetSelection: { // wxAuiNotebook::GetSelection
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxAuiNotebook_InsertPage: { // wxAuiNotebook::InsertPage
+case wxAuiNotebook_InsertPage: { // wxAuiNotebook::InsertPage
bool select=false;
const wxBitmap * bitmap= &wxNullBitmap;
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
@@ -24558,52 +24565,52 @@ case wxAuiNotebook_InsertPage: { // wxAuiNotebook::InsertPage
int * captionLen = (int *) bp; bp += 4;
wxString caption = wxString(bp, wxConvUTF8);
bp += *captionLen+((8-((0+ *captionLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
select = *(bool *) bp; bp += 4;
} break;
case 2: {bp += 4;
bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->InsertPage((size_t) *page_idx,page,caption,select,*bitmap);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiNotebook_RemovePage: { // wxAuiNotebook::RemovePage
+case wxAuiNotebook_RemovePage: { // wxAuiNotebook::RemovePage
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * page = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RemovePage((size_t) *page);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiNotebook_SetArtProvider: { // wxAuiNotebook::SetArtProvider
+case wxAuiNotebook_SetArtProvider: { // wxAuiNotebook::SetArtProvider
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
wxAuiTabArt *art = (wxAuiTabArt *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetArtProvider(art);
- break;
+ break;
}
-case wxAuiNotebook_SetFont: { // wxAuiNotebook::SetFont
+case wxAuiNotebook_SetFont: { // wxAuiNotebook::SetFont
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetFont(*font);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiNotebook_SetPageBitmap: { // wxAuiNotebook::SetPageBitmap
+case wxAuiNotebook_SetPageBitmap: { // wxAuiNotebook::SetPageBitmap
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * page = (int *) bp; bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageBitmap((size_t) *page,*bitmap);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiNotebook_SetPageText: { // wxAuiNotebook::SetPageText
+case wxAuiNotebook_SetPageText: { // wxAuiNotebook::SetPageText
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * page = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
@@ -24612,44 +24619,44 @@ case wxAuiNotebook_SetPageText: { // wxAuiNotebook::SetPageText
if(!This) throw wxe_badarg(0);
bool Result = This->SetPageText((size_t) *page,text);
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiNotebook_SetSelection: { // wxAuiNotebook::SetSelection
+case wxAuiNotebook_SetSelection: { // wxAuiNotebook::SetSelection
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * new_page = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->SetSelection((size_t) *new_page);
rt.addInt(Result);
- break;
+ break;
}
-case wxAuiNotebook_SetTabCtrlHeight: { // wxAuiNotebook::SetTabCtrlHeight
+case wxAuiNotebook_SetTabCtrlHeight: { // wxAuiNotebook::SetTabCtrlHeight
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * height = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetTabCtrlHeight((int) *height);
- break;
+ break;
}
-case wxAuiNotebook_SetUniformBitmapSize: { // wxAuiNotebook::SetUniformBitmapSize
+case wxAuiNotebook_SetUniformBitmapSize: { // wxAuiNotebook::SetUniformBitmapSize
wxAuiNotebook *This = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
int * sizeW = (int *) bp; bp += 4;
int * sizeH = (int *) bp; bp += 4;
wxSize size = wxSize(*sizeW,*sizeH);
if(!This) throw wxe_badarg(0);
This->SetUniformBitmapSize(size);
- break;
+ break;
}
#endif // wxUSE_AUI
#if wxUSE_AUI
#endif // wxUSE_AUI
#if wxUSE_AUI
#endif // wxUSE_AUI
-case wxMDIParentFrame_new_0: { // wxMDIParentFrame::wxMDIParentFrame
+case wxMDIParentFrame_new_0: { // wxMDIParentFrame::wxMDIParentFrame
wxMDIParentFrame * Result = new EwxMDIParentFrame();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMDIParentFrame");
- break;
+ break;
}
-case wxMDIParentFrame_new_4: { // wxMDIParentFrame::wxMDIParentFrame
+case wxMDIParentFrame_new_4: { // wxMDIParentFrame::wxMDIParentFrame
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxDEFAULT_FRAME_STYLE|wxVSCROLL|wxHSCROLL;
@@ -24658,7 +24665,7 @@ case wxMDIParentFrame_new_4: { // wxMDIParentFrame::wxMDIParentFrame
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((4+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -24674,37 +24681,37 @@ case wxMDIParentFrame_new_4: { // wxMDIParentFrame::wxMDIParentFrame
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxMDIParentFrame * Result = new EwxMDIParentFrame(parent,(wxWindowID) *id,title,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMDIParentFrame");
- break;
+ break;
}
-case wxMDIParentFrame_ActivateNext: { // wxMDIParentFrame::ActivateNext
+case wxMDIParentFrame_ActivateNext: { // wxMDIParentFrame::ActivateNext
wxMDIParentFrame *This = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ActivateNext();
- break;
+ break;
}
-case wxMDIParentFrame_ActivatePrevious: { // wxMDIParentFrame::ActivatePrevious
+case wxMDIParentFrame_ActivatePrevious: { // wxMDIParentFrame::ActivatePrevious
wxMDIParentFrame *This = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ActivatePrevious();
- break;
+ break;
}
-case wxMDIParentFrame_ArrangeIcons: { // wxMDIParentFrame::ArrangeIcons
+case wxMDIParentFrame_ArrangeIcons: { // wxMDIParentFrame::ArrangeIcons
wxMDIParentFrame *This = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ArrangeIcons();
- break;
+ break;
}
-case wxMDIParentFrame_Cascade: { // wxMDIParentFrame::Cascade
+case wxMDIParentFrame_Cascade: { // wxMDIParentFrame::Cascade
wxMDIParentFrame *This = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Cascade();
- break;
+ break;
}
-case wxMDIParentFrame_Create: { // wxMDIParentFrame::Create
+case wxMDIParentFrame_Create: { // wxMDIParentFrame::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxDEFAULT_FRAME_STYLE|wxVSCROLL|wxHSCROLL;
@@ -24714,7 +24721,7 @@ case wxMDIParentFrame_Create: { // wxMDIParentFrame::Create
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((0+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -24730,46 +24737,46 @@ case wxMDIParentFrame_Create: { // wxMDIParentFrame::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,title,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxMDIParentFrame_GetActiveChild: { // wxMDIParentFrame::GetActiveChild
+case wxMDIParentFrame_GetActiveChild: { // wxMDIParentFrame::GetActiveChild
wxMDIParentFrame *This = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMDIChildFrame * Result = (wxMDIChildFrame*)This->GetActiveChild();
rt.addRef(getRef((void *)Result,memenv), "wxMDIChildFrame");
- break;
+ break;
}
-case wxMDIParentFrame_GetClientWindow: { // wxMDIParentFrame::GetClientWindow
+case wxMDIParentFrame_GetClientWindow: { // wxMDIParentFrame::GetClientWindow
wxMDIParentFrame *This = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMDIClientWindow * Result = (wxMDIClientWindow*)This->GetClientWindow();
rt.addRef(getRef((void *)Result,memenv), "wxMDIClientWindow");
- break;
+ break;
}
-case wxMDIParentFrame_Tile: { // wxMDIParentFrame::Tile
+case wxMDIParentFrame_Tile: { // wxMDIParentFrame::Tile
wxOrientation orient=wxHORIZONTAL;
wxMDIParentFrame *This = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
orient = *(wxOrientation *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Tile((wxOrientation) orient);
- break;
+ break;
}
-case wxMDIChildFrame_new_0: { // wxMDIChildFrame::wxMDIChildFrame
+case wxMDIChildFrame_new_0: { // wxMDIChildFrame::wxMDIChildFrame
wxMDIChildFrame * Result = new EwxMDIChildFrame();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMDIChildFrame");
- break;
+ break;
}
-case wxMDIChildFrame_new_4: { // wxMDIChildFrame::wxMDIChildFrame
+case wxMDIChildFrame_new_4: { // wxMDIChildFrame::wxMDIChildFrame
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxDEFAULT_FRAME_STYLE;
@@ -24778,7 +24785,7 @@ case wxMDIChildFrame_new_4: { // wxMDIChildFrame::wxMDIChildFrame
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((4+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -24794,19 +24801,19 @@ case wxMDIChildFrame_new_4: { // wxMDIChildFrame::wxMDIChildFrame
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxMDIChildFrame * Result = new EwxMDIChildFrame(parent,(wxWindowID) *id,title,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMDIChildFrame");
- break;
+ break;
}
-case wxMDIChildFrame_Activate: { // wxMDIChildFrame::Activate
+case wxMDIChildFrame_Activate: { // wxMDIChildFrame::Activate
wxMDIChildFrame *This = (wxMDIChildFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Activate();
- break;
+ break;
}
-case wxMDIChildFrame_Create: { // wxMDIChildFrame::Create
+case wxMDIChildFrame_Create: { // wxMDIChildFrame::Create
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxDEFAULT_FRAME_STYLE;
@@ -24816,7 +24823,7 @@ case wxMDIChildFrame_Create: { // wxMDIChildFrame::Create
int * titleLen = (int *) bp; bp += 4;
wxString title = wxString(bp, wxConvUTF8);
bp += *titleLen+((8-((0+ *titleLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
@@ -24832,90 +24839,90 @@ case wxMDIChildFrame_Create: { // wxMDIChildFrame::Create
case 3: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,(wxWindowID) *id,title,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxMDIChildFrame_Maximize: { // wxMDIChildFrame::Maximize
+case wxMDIChildFrame_Maximize: { // wxMDIChildFrame::Maximize
bool maximize=true;
wxMDIChildFrame *This = (wxMDIChildFrame *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
maximize = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Maximize(maximize);
- break;
+ break;
}
-case wxMDIChildFrame_Restore: { // wxMDIChildFrame::Restore
+case wxMDIChildFrame_Restore: { // wxMDIChildFrame::Restore
wxMDIChildFrame *This = (wxMDIChildFrame *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Restore();
- break;
+ break;
}
-case wxMDIClientWindow_new_0: { // wxMDIClientWindow::wxMDIClientWindow
+case wxMDIClientWindow_new_0: { // wxMDIClientWindow::wxMDIClientWindow
wxMDIClientWindow * Result = new EwxMDIClientWindow();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMDIClientWindow");
- break;
+ break;
}
-case wxMDIClientWindow_new_2: { // wxMDIClientWindow::wxMDIClientWindow
+case wxMDIClientWindow_new_2: { // wxMDIClientWindow::wxMDIClientWindow
long style=0;
wxMDIParentFrame *parent = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxMDIClientWindow * Result = new EwxMDIClientWindow(parent,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxMDIClientWindow");
- break;
+ break;
}
-case wxMDIClientWindow_CreateClient: { // wxMDIClientWindow::CreateClient
+case wxMDIClientWindow_CreateClient: { // wxMDIClientWindow::CreateClient
long style=wxVSCROLL|wxHSCROLL;
wxMDIClientWindow *This = (wxMDIClientWindow *) getPtr(bp,memenv); bp += 4;
wxMDIParentFrame *parent = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->CreateClient(parent,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxLayoutAlgorithm_new: { // wxLayoutAlgorithm::wxLayoutAlgorithm
+case wxLayoutAlgorithm_new: { // wxLayoutAlgorithm::wxLayoutAlgorithm
wxLayoutAlgorithm * Result = new EwxLayoutAlgorithm();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxLayoutAlgorithm");
- break;
+ break;
}
-case wxLayoutAlgorithm_LayoutFrame: { // wxLayoutAlgorithm::LayoutFrame
+case wxLayoutAlgorithm_LayoutFrame: { // wxLayoutAlgorithm::LayoutFrame
wxWindow * mainWindow=(wxWindow *) NULL;
wxLayoutAlgorithm *This = (wxLayoutAlgorithm *) getPtr(bp,memenv); bp += 4;
wxFrame *frame = (wxFrame *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
mainWindow = (wxWindow *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->LayoutFrame(frame,mainWindow);
rt.addBool(Result);
- break;
+ break;
}
-case wxLayoutAlgorithm_LayoutMDIFrame: { // wxLayoutAlgorithm::LayoutMDIFrame
+case wxLayoutAlgorithm_LayoutMDIFrame: { // wxLayoutAlgorithm::LayoutMDIFrame
wxRect *rect=(wxRect *) NULL; wxRect rectTmp;
wxLayoutAlgorithm *This = (wxLayoutAlgorithm *) getPtr(bp,memenv); bp += 4;
wxMDIParentFrame *frame = (wxMDIParentFrame *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * rectX = (int *) bp; bp += 4;
int * rectY = (int *) bp; bp += 4;
@@ -24924,1501 +24931,1501 @@ case wxLayoutAlgorithm_LayoutMDIFrame: { // wxLayoutAlgorithm::LayoutMDIFrame
rectTmp = wxRect(*rectX,*rectY,*rectW,*rectH); rect = & rectTmp;
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->LayoutMDIFrame(frame,rect);
rt.addBool(Result);
- break;
+ break;
}
-case wxLayoutAlgorithm_LayoutWindow: { // wxLayoutAlgorithm::LayoutWindow
+case wxLayoutAlgorithm_LayoutWindow: { // wxLayoutAlgorithm::LayoutWindow
wxWindow * mainWindow=(wxWindow *) NULL;
wxLayoutAlgorithm *This = (wxLayoutAlgorithm *) getPtr(bp,memenv); bp += 4;
wxWindow *frame = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
mainWindow = (wxWindow *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->LayoutWindow(frame,mainWindow);
rt.addBool(Result);
- break;
+ break;
}
-case wxEvent_GetId: { // wxEvent::GetId
+case wxEvent_GetId: { // wxEvent::GetId
wxEvent *This = (wxEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetId();
rt.addInt(Result);
- break;
+ break;
}
-case wxEvent_GetSkipped: { // wxEvent::GetSkipped
+case wxEvent_GetSkipped: { // wxEvent::GetSkipped
wxEvent *This = (wxEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetSkipped();
rt.addBool(Result);
- break;
+ break;
}
-case wxEvent_GetTimestamp: { // wxEvent::GetTimestamp
+case wxEvent_GetTimestamp: { // wxEvent::GetTimestamp
wxEvent *This = (wxEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetTimestamp();
rt.addUint(Result);
- break;
+ break;
}
-case wxEvent_IsCommandEvent: { // wxEvent::IsCommandEvent
+case wxEvent_IsCommandEvent: { // wxEvent::IsCommandEvent
wxEvent *This = (wxEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsCommandEvent();
rt.addBool(Result);
- break;
+ break;
}
-case wxEvent_ResumePropagation: { // wxEvent::ResumePropagation
+case wxEvent_ResumePropagation: { // wxEvent::ResumePropagation
wxEvent *This = (wxEvent *) getPtr(bp,memenv); bp += 4;
int * propagationLevel = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ResumePropagation((int) *propagationLevel);
- break;
+ break;
}
-case wxEvent_ShouldPropagate: { // wxEvent::ShouldPropagate
+case wxEvent_ShouldPropagate: { // wxEvent::ShouldPropagate
wxEvent *This = (wxEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ShouldPropagate();
rt.addBool(Result);
- break;
+ break;
}
-case wxEvent_Skip: { // wxEvent::Skip
+case wxEvent_Skip: { // wxEvent::Skip
bool skip=true;
wxEvent *This = (wxEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
skip = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Skip(skip);
- break;
+ break;
}
-case wxEvent_StopPropagation: { // wxEvent::StopPropagation
+case wxEvent_StopPropagation: { // wxEvent::StopPropagation
wxEvent *This = (wxEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->StopPropagation();
rt.addInt(Result);
- break;
+ break;
}
-case wxCommandEvent_getClientData: { // wxCommandEvent::GetClientObject
+case wxCommandEvent_getClientData: { // wxCommandEvent::GetClientObject
wxCommandEvent *This = (wxCommandEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxeErlTerm * Result = (wxeErlTerm*)This->GetClientObject();
rt.addExt2Term(Result);
- break;
+ break;
}
-case wxCommandEvent_GetExtraLong: { // wxCommandEvent::GetExtraLong
+case wxCommandEvent_GetExtraLong: { // wxCommandEvent::GetExtraLong
wxCommandEvent *This = (wxCommandEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetExtraLong();
rt.addInt(Result);
- break;
+ break;
}
-case wxCommandEvent_GetInt: { // wxCommandEvent::GetInt
+case wxCommandEvent_GetInt: { // wxCommandEvent::GetInt
wxCommandEvent *This = (wxCommandEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetInt();
rt.addInt(Result);
- break;
+ break;
}
-case wxCommandEvent_GetSelection: { // wxCommandEvent::GetSelection
+case wxCommandEvent_GetSelection: { // wxCommandEvent::GetSelection
wxCommandEvent *This = (wxCommandEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxCommandEvent_GetString: { // wxCommandEvent::GetString
+case wxCommandEvent_GetString: { // wxCommandEvent::GetString
wxCommandEvent *This = (wxCommandEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetString();
rt.add(Result);
- break;
+ break;
}
-case wxCommandEvent_IsChecked: { // wxCommandEvent::IsChecked
+case wxCommandEvent_IsChecked: { // wxCommandEvent::IsChecked
wxCommandEvent *This = (wxCommandEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsChecked();
rt.addBool(Result);
- break;
+ break;
}
-case wxCommandEvent_IsSelection: { // wxCommandEvent::IsSelection
+case wxCommandEvent_IsSelection: { // wxCommandEvent::IsSelection
wxCommandEvent *This = (wxCommandEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSelection();
rt.addBool(Result);
- break;
+ break;
}
-case wxCommandEvent_SetInt: { // wxCommandEvent::SetInt
+case wxCommandEvent_SetInt: { // wxCommandEvent::SetInt
wxCommandEvent *This = (wxCommandEvent *) getPtr(bp,memenv); bp += 4;
int * i = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetInt((int) *i);
- break;
+ break;
}
-case wxCommandEvent_SetString: { // wxCommandEvent::SetString
+case wxCommandEvent_SetString: { // wxCommandEvent::SetString
wxCommandEvent *This = (wxCommandEvent *) getPtr(bp,memenv); bp += 4;
int * sLen = (int *) bp; bp += 4;
wxString s = wxString(bp, wxConvUTF8);
bp += *sLen+((8-((0+ *sLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetString(s);
- break;
+ break;
}
-case wxScrollEvent_GetOrientation: { // wxScrollEvent::GetOrientation
+case wxScrollEvent_GetOrientation: { // wxScrollEvent::GetOrientation
wxScrollEvent *This = (wxScrollEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetOrientation();
rt.addInt(Result);
- break;
+ break;
}
-case wxScrollEvent_GetPosition: { // wxScrollEvent::GetPosition
+case wxScrollEvent_GetPosition: { // wxScrollEvent::GetPosition
wxScrollEvent *This = (wxScrollEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxScrollWinEvent_GetOrientation: { // wxScrollWinEvent::GetOrientation
+case wxScrollWinEvent_GetOrientation: { // wxScrollWinEvent::GetOrientation
wxScrollWinEvent *This = (wxScrollWinEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetOrientation();
rt.addInt(Result);
- break;
+ break;
}
-case wxScrollWinEvent_GetPosition: { // wxScrollWinEvent::GetPosition
+case wxScrollWinEvent_GetPosition: { // wxScrollWinEvent::GetPosition
wxScrollWinEvent *This = (wxScrollWinEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxMouseEvent_AltDown: { // wxMouseEvent::AltDown
+case wxMouseEvent_AltDown: { // wxMouseEvent::AltDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AltDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_Button: { // wxMouseEvent::Button
+case wxMouseEvent_Button: { // wxMouseEvent::Button
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
int * but = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Button((int) *but);
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_ButtonDClick: { // wxMouseEvent::ButtonDClick
+case wxMouseEvent_ButtonDClick: { // wxMouseEvent::ButtonDClick
int but=wxMOUSE_BTN_ANY;
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
but = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->ButtonDClick(but);
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_ButtonDown: { // wxMouseEvent::ButtonDown
+case wxMouseEvent_ButtonDown: { // wxMouseEvent::ButtonDown
int but=wxMOUSE_BTN_ANY;
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
but = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->ButtonDown(but);
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_ButtonUp: { // wxMouseEvent::ButtonUp
+case wxMouseEvent_ButtonUp: { // wxMouseEvent::ButtonUp
int but=wxMOUSE_BTN_ANY;
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
but = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->ButtonUp(but);
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_CmdDown: { // wxMouseEvent::CmdDown
+case wxMouseEvent_CmdDown: { // wxMouseEvent::CmdDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CmdDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_ControlDown: { // wxMouseEvent::ControlDown
+case wxMouseEvent_ControlDown: { // wxMouseEvent::ControlDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ControlDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_Dragging: { // wxMouseEvent::Dragging
+case wxMouseEvent_Dragging: { // wxMouseEvent::Dragging
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Dragging();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_Entering: { // wxMouseEvent::Entering
+case wxMouseEvent_Entering: { // wxMouseEvent::Entering
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Entering();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_GetButton: { // wxMouseEvent::GetButton
+case wxMouseEvent_GetButton: { // wxMouseEvent::GetButton
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetButton();
rt.addInt(Result);
- break;
+ break;
}
-case wxMouseEvent_GetPosition: { // wxMouseEvent::GetPosition
+case wxMouseEvent_GetPosition: { // wxMouseEvent::GetPosition
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPosition();
rt.add(Result);
- break;
+ break;
}
-case wxMouseEvent_GetLogicalPosition: { // wxMouseEvent::GetLogicalPosition
+case wxMouseEvent_GetLogicalPosition: { // wxMouseEvent::GetLogicalPosition
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
wxDC *dc = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetLogicalPosition(*dc);
rt.add(Result);
- break;
+ break;
}
-case wxMouseEvent_GetLinesPerAction: { // wxMouseEvent::GetLinesPerAction
+case wxMouseEvent_GetLinesPerAction: { // wxMouseEvent::GetLinesPerAction
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLinesPerAction();
rt.addInt(Result);
- break;
+ break;
}
-case wxMouseEvent_GetWheelRotation: { // wxMouseEvent::GetWheelRotation
+case wxMouseEvent_GetWheelRotation: { // wxMouseEvent::GetWheelRotation
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWheelRotation();
rt.addInt(Result);
- break;
+ break;
}
-case wxMouseEvent_GetWheelDelta: { // wxMouseEvent::GetWheelDelta
+case wxMouseEvent_GetWheelDelta: { // wxMouseEvent::GetWheelDelta
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWheelDelta();
rt.addInt(Result);
- break;
+ break;
}
-case wxMouseEvent_GetX: { // wxMouseEvent::GetX
+case wxMouseEvent_GetX: { // wxMouseEvent::GetX
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->GetX();
rt.addInt(Result);
- break;
+ break;
}
-case wxMouseEvent_GetY: { // wxMouseEvent::GetY
+case wxMouseEvent_GetY: { // wxMouseEvent::GetY
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->GetY();
rt.addInt(Result);
- break;
+ break;
}
-case wxMouseEvent_IsButton: { // wxMouseEvent::IsButton
+case wxMouseEvent_IsButton: { // wxMouseEvent::IsButton
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsButton();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_IsPageScroll: { // wxMouseEvent::IsPageScroll
+case wxMouseEvent_IsPageScroll: { // wxMouseEvent::IsPageScroll
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsPageScroll();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_Leaving: { // wxMouseEvent::Leaving
+case wxMouseEvent_Leaving: { // wxMouseEvent::Leaving
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Leaving();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_LeftDClick: { // wxMouseEvent::LeftDClick
+case wxMouseEvent_LeftDClick: { // wxMouseEvent::LeftDClick
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->LeftDClick();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_LeftDown: { // wxMouseEvent::LeftDown
+case wxMouseEvent_LeftDown: { // wxMouseEvent::LeftDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->LeftDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_LeftIsDown: { // wxMouseEvent::LeftIsDown
+case wxMouseEvent_LeftIsDown: { // wxMouseEvent::LeftIsDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->LeftIsDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_LeftUp: { // wxMouseEvent::LeftUp
+case wxMouseEvent_LeftUp: { // wxMouseEvent::LeftUp
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->LeftUp();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_MetaDown: { // wxMouseEvent::MetaDown
+case wxMouseEvent_MetaDown: { // wxMouseEvent::MetaDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MetaDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_MiddleDClick: { // wxMouseEvent::MiddleDClick
+case wxMouseEvent_MiddleDClick: { // wxMouseEvent::MiddleDClick
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MiddleDClick();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_MiddleDown: { // wxMouseEvent::MiddleDown
+case wxMouseEvent_MiddleDown: { // wxMouseEvent::MiddleDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MiddleDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_MiddleIsDown: { // wxMouseEvent::MiddleIsDown
+case wxMouseEvent_MiddleIsDown: { // wxMouseEvent::MiddleIsDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MiddleIsDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_MiddleUp: { // wxMouseEvent::MiddleUp
+case wxMouseEvent_MiddleUp: { // wxMouseEvent::MiddleUp
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MiddleUp();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_Moving: { // wxMouseEvent::Moving
+case wxMouseEvent_Moving: { // wxMouseEvent::Moving
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Moving();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_RightDClick: { // wxMouseEvent::RightDClick
+case wxMouseEvent_RightDClick: { // wxMouseEvent::RightDClick
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RightDClick();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_RightDown: { // wxMouseEvent::RightDown
+case wxMouseEvent_RightDown: { // wxMouseEvent::RightDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RightDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_RightIsDown: { // wxMouseEvent::RightIsDown
+case wxMouseEvent_RightIsDown: { // wxMouseEvent::RightIsDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RightIsDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_RightUp: { // wxMouseEvent::RightUp
+case wxMouseEvent_RightUp: { // wxMouseEvent::RightUp
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->RightUp();
rt.addBool(Result);
- break;
+ break;
}
-case wxMouseEvent_ShiftDown: { // wxMouseEvent::ShiftDown
+case wxMouseEvent_ShiftDown: { // wxMouseEvent::ShiftDown
wxMouseEvent *This = (wxMouseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ShiftDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxSetCursorEvent_GetCursor: { // wxSetCursorEvent::GetCursor
+case wxSetCursorEvent_GetCursor: { // wxSetCursorEvent::GetCursor
wxSetCursorEvent *This = (wxSetCursorEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxCursor * Result = &This->GetCursor();
rt.addRef(getRef((void *)Result,memenv), "wxCursor");
- break;
+ break;
}
-case wxSetCursorEvent_GetX: { // wxSetCursorEvent::GetX
+case wxSetCursorEvent_GetX: { // wxSetCursorEvent::GetX
wxSetCursorEvent *This = (wxSetCursorEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->GetX();
rt.addInt(Result);
- break;
+ break;
}
-case wxSetCursorEvent_GetY: { // wxSetCursorEvent::GetY
+case wxSetCursorEvent_GetY: { // wxSetCursorEvent::GetY
wxSetCursorEvent *This = (wxSetCursorEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->GetY();
rt.addInt(Result);
- break;
+ break;
}
-case wxSetCursorEvent_HasCursor: { // wxSetCursorEvent::HasCursor
+case wxSetCursorEvent_HasCursor: { // wxSetCursorEvent::HasCursor
wxSetCursorEvent *This = (wxSetCursorEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasCursor();
rt.addBool(Result);
- break;
+ break;
}
-case wxSetCursorEvent_SetCursor: { // wxSetCursorEvent::SetCursor
+case wxSetCursorEvent_SetCursor: { // wxSetCursorEvent::SetCursor
wxSetCursorEvent *This = (wxSetCursorEvent *) getPtr(bp,memenv); bp += 4;
wxCursor *cursor = (wxCursor *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCursor(*cursor);
- break;
+ break;
}
-case wxKeyEvent_AltDown: { // wxKeyEvent::AltDown
+case wxKeyEvent_AltDown: { // wxKeyEvent::AltDown
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AltDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxKeyEvent_CmdDown: { // wxKeyEvent::CmdDown
+case wxKeyEvent_CmdDown: { // wxKeyEvent::CmdDown
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CmdDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxKeyEvent_ControlDown: { // wxKeyEvent::ControlDown
+case wxKeyEvent_ControlDown: { // wxKeyEvent::ControlDown
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ControlDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxKeyEvent_GetKeyCode: { // wxKeyEvent::GetKeyCode
+case wxKeyEvent_GetKeyCode: { // wxKeyEvent::GetKeyCode
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetKeyCode();
rt.addInt(Result);
- break;
+ break;
}
-case wxKeyEvent_GetModifiers: { // wxKeyEvent::GetModifiers
+case wxKeyEvent_GetModifiers: { // wxKeyEvent::GetModifiers
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetModifiers();
rt.addInt(Result);
- break;
+ break;
}
-case wxKeyEvent_GetPosition: { // wxKeyEvent::GetPosition
+case wxKeyEvent_GetPosition: { // wxKeyEvent::GetPosition
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPosition();
rt.add(Result);
- break;
+ break;
}
-case wxKeyEvent_GetRawKeyCode: { // wxKeyEvent::GetRawKeyCode
+case wxKeyEvent_GetRawKeyCode: { // wxKeyEvent::GetRawKeyCode
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRawKeyCode();
rt.addUint(Result);
- break;
+ break;
}
-case wxKeyEvent_GetRawKeyFlags: { // wxKeyEvent::GetRawKeyFlags
+case wxKeyEvent_GetRawKeyFlags: { // wxKeyEvent::GetRawKeyFlags
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRawKeyFlags();
rt.addUint(Result);
- break;
+ break;
}
-case wxKeyEvent_GetUnicodeKey: { // wxKeyEvent::GetUnicodeKey
+case wxKeyEvent_GetUnicodeKey: { // wxKeyEvent::GetUnicodeKey
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxChar Result = This->GetUnicodeKey();
rt.addInt(Result);
- break;
+ break;
}
-case wxKeyEvent_GetX: { // wxKeyEvent::GetX
+case wxKeyEvent_GetX: { // wxKeyEvent::GetX
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->GetX();
rt.addInt(Result);
- break;
+ break;
}
-case wxKeyEvent_GetY: { // wxKeyEvent::GetY
+case wxKeyEvent_GetY: { // wxKeyEvent::GetY
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxCoord Result = This->GetY();
rt.addInt(Result);
- break;
+ break;
}
-case wxKeyEvent_HasModifiers: { // wxKeyEvent::HasModifiers
+case wxKeyEvent_HasModifiers: { // wxKeyEvent::HasModifiers
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HasModifiers();
rt.addBool(Result);
- break;
+ break;
}
-case wxKeyEvent_MetaDown: { // wxKeyEvent::MetaDown
+case wxKeyEvent_MetaDown: { // wxKeyEvent::MetaDown
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MetaDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxKeyEvent_ShiftDown: { // wxKeyEvent::ShiftDown
+case wxKeyEvent_ShiftDown: { // wxKeyEvent::ShiftDown
wxKeyEvent *This = (wxKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ShiftDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxSizeEvent_GetSize: { // wxSizeEvent::GetSize
+case wxSizeEvent_GetSize: { // wxSizeEvent::GetSize
wxSizeEvent *This = (wxSizeEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxSize Result = This->GetSize();
rt.add(Result);
- break;
+ break;
}
-case wxMoveEvent_GetPosition: { // wxMoveEvent::GetPosition
+case wxMoveEvent_GetPosition: { // wxMoveEvent::GetPosition
wxMoveEvent *This = (wxMoveEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPosition();
rt.add(Result);
- break;
+ break;
}
-case wxEraseEvent_GetDC: { // wxEraseEvent::GetDC
+case wxEraseEvent_GetDC: { // wxEraseEvent::GetDC
wxEraseEvent *This = (wxEraseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxDC * Result = (wxDC*)This->GetDC();
rt.addRef(getRef((void *)Result,memenv), "wxDC");
- break;
+ break;
}
-case wxFocusEvent_GetWindow: { // wxFocusEvent::GetWindow
+case wxFocusEvent_GetWindow: { // wxFocusEvent::GetWindow
wxFocusEvent *This = (wxFocusEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxChildFocusEvent_GetWindow: { // wxChildFocusEvent::GetWindow
+case wxChildFocusEvent_GetWindow: { // wxChildFocusEvent::GetWindow
wxChildFocusEvent *This = (wxChildFocusEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxMenuEvent_GetMenu: { // wxMenuEvent::GetMenu
+case wxMenuEvent_GetMenu: { // wxMenuEvent::GetMenu
wxMenuEvent *This = (wxMenuEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxMenu * Result = (wxMenu*)This->GetMenu();
rt.addRef(getRef((void *)Result,memenv), "wxMenu");
- break;
+ break;
}
-case wxMenuEvent_GetMenuId: { // wxMenuEvent::GetMenuId
+case wxMenuEvent_GetMenuId: { // wxMenuEvent::GetMenuId
wxMenuEvent *This = (wxMenuEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMenuId();
rt.addInt(Result);
- break;
+ break;
}
-case wxMenuEvent_IsPopup: { // wxMenuEvent::IsPopup
+case wxMenuEvent_IsPopup: { // wxMenuEvent::IsPopup
wxMenuEvent *This = (wxMenuEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsPopup();
rt.addBool(Result);
- break;
+ break;
}
-case wxCloseEvent_CanVeto: { // wxCloseEvent::CanVeto
+case wxCloseEvent_CanVeto: { // wxCloseEvent::CanVeto
wxCloseEvent *This = (wxCloseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanVeto();
rt.addBool(Result);
- break;
+ break;
}
-case wxCloseEvent_GetLoggingOff: { // wxCloseEvent::GetLoggingOff
+case wxCloseEvent_GetLoggingOff: { // wxCloseEvent::GetLoggingOff
wxCloseEvent *This = (wxCloseEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetLoggingOff();
rt.addBool(Result);
- break;
+ break;
}
-case wxCloseEvent_SetCanVeto: { // wxCloseEvent::SetCanVeto
+case wxCloseEvent_SetCanVeto: { // wxCloseEvent::SetCanVeto
wxCloseEvent *This = (wxCloseEvent *) getPtr(bp,memenv); bp += 4;
bool * canVeto = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCanVeto((bool) *canVeto);
- break;
+ break;
}
-case wxCloseEvent_SetLoggingOff: { // wxCloseEvent::SetLoggingOff
+case wxCloseEvent_SetLoggingOff: { // wxCloseEvent::SetLoggingOff
wxCloseEvent *This = (wxCloseEvent *) getPtr(bp,memenv); bp += 4;
bool * logOff = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLoggingOff((bool) *logOff);
- break;
+ break;
}
-case wxCloseEvent_Veto: { // wxCloseEvent::Veto
+case wxCloseEvent_Veto: { // wxCloseEvent::Veto
bool veto=true;
wxCloseEvent *This = (wxCloseEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
veto = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Veto(veto);
- break;
+ break;
}
-case wxShowEvent_SetShow: { // wxShowEvent::SetShow
+case wxShowEvent_SetShow: { // wxShowEvent::SetShow
wxShowEvent *This = (wxShowEvent *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetShow((bool) *show);
- break;
+ break;
}
-case wxShowEvent_GetShow: { // wxShowEvent::GetShow
+case wxShowEvent_GetShow: { // wxShowEvent::GetShow
wxShowEvent *This = (wxShowEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetShow();
rt.addBool(Result);
- break;
+ break;
}
-case wxIconizeEvent_Iconized: { // wxIconizeEvent::Iconized
+case wxIconizeEvent_Iconized: { // wxIconizeEvent::Iconized
wxIconizeEvent *This = (wxIconizeEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Iconized();
rt.addBool(Result);
- break;
+ break;
}
-case wxJoystickEvent_ButtonDown: { // wxJoystickEvent::ButtonDown
+case wxJoystickEvent_ButtonDown: { // wxJoystickEvent::ButtonDown
int but=wxJOY_BUTTON_ANY;
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
but = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->ButtonDown(but);
rt.addBool(Result);
- break;
+ break;
}
-case wxJoystickEvent_ButtonIsDown: { // wxJoystickEvent::ButtonIsDown
+case wxJoystickEvent_ButtonIsDown: { // wxJoystickEvent::ButtonIsDown
int but=wxJOY_BUTTON_ANY;
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
but = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->ButtonIsDown(but);
rt.addBool(Result);
- break;
+ break;
}
-case wxJoystickEvent_ButtonUp: { // wxJoystickEvent::ButtonUp
+case wxJoystickEvent_ButtonUp: { // wxJoystickEvent::ButtonUp
int but=wxJOY_BUTTON_ANY;
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
but = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->ButtonUp(but);
rt.addBool(Result);
- break;
+ break;
}
-case wxJoystickEvent_GetButtonChange: { // wxJoystickEvent::GetButtonChange
+case wxJoystickEvent_GetButtonChange: { // wxJoystickEvent::GetButtonChange
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetButtonChange();
rt.addInt(Result);
- break;
+ break;
}
-case wxJoystickEvent_GetButtonState: { // wxJoystickEvent::GetButtonState
+case wxJoystickEvent_GetButtonState: { // wxJoystickEvent::GetButtonState
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetButtonState();
rt.addInt(Result);
- break;
+ break;
}
-case wxJoystickEvent_GetJoystick: { // wxJoystickEvent::GetJoystick
+case wxJoystickEvent_GetJoystick: { // wxJoystickEvent::GetJoystick
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetJoystick();
rt.addInt(Result);
- break;
+ break;
}
-case wxJoystickEvent_GetPosition: { // wxJoystickEvent::GetPosition
+case wxJoystickEvent_GetPosition: { // wxJoystickEvent::GetPosition
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPosition();
rt.add(Result);
- break;
+ break;
}
-case wxJoystickEvent_GetZPosition: { // wxJoystickEvent::GetZPosition
+case wxJoystickEvent_GetZPosition: { // wxJoystickEvent::GetZPosition
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetZPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxJoystickEvent_IsButton: { // wxJoystickEvent::IsButton
+case wxJoystickEvent_IsButton: { // wxJoystickEvent::IsButton
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsButton();
rt.addBool(Result);
- break;
+ break;
}
-case wxJoystickEvent_IsMove: { // wxJoystickEvent::IsMove
+case wxJoystickEvent_IsMove: { // wxJoystickEvent::IsMove
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsMove();
rt.addBool(Result);
- break;
+ break;
}
-case wxJoystickEvent_IsZMove: { // wxJoystickEvent::IsZMove
+case wxJoystickEvent_IsZMove: { // wxJoystickEvent::IsZMove
wxJoystickEvent *This = (wxJoystickEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsZMove();
rt.addBool(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_CanUpdate: { // wxUpdateUIEvent::CanUpdate
+case wxUpdateUIEvent_CanUpdate: { // wxUpdateUIEvent::CanUpdate
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
bool Result = wxUpdateUIEvent::CanUpdate(win);
rt.addBool(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_Check: { // wxUpdateUIEvent::Check
+case wxUpdateUIEvent_Check: { // wxUpdateUIEvent::Check
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
bool * check = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Check((bool) *check);
- break;
+ break;
}
-case wxUpdateUIEvent_Enable: { // wxUpdateUIEvent::Enable
+case wxUpdateUIEvent_Enable: { // wxUpdateUIEvent::Enable
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
bool * enable = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Enable((bool) *enable);
- break;
+ break;
}
-case wxUpdateUIEvent_Show: { // wxUpdateUIEvent::Show
+case wxUpdateUIEvent_Show: { // wxUpdateUIEvent::Show
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Show((bool) *show);
- break;
+ break;
}
-case wxUpdateUIEvent_GetChecked: { // wxUpdateUIEvent::GetChecked
+case wxUpdateUIEvent_GetChecked: { // wxUpdateUIEvent::GetChecked
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetChecked();
rt.addBool(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_GetEnabled: { // wxUpdateUIEvent::GetEnabled
+case wxUpdateUIEvent_GetEnabled: { // wxUpdateUIEvent::GetEnabled
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetEnabled();
rt.addBool(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_GetShown: { // wxUpdateUIEvent::GetShown
+case wxUpdateUIEvent_GetShown: { // wxUpdateUIEvent::GetShown
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetShown();
rt.addBool(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_GetSetChecked: { // wxUpdateUIEvent::GetSetChecked
+case wxUpdateUIEvent_GetSetChecked: { // wxUpdateUIEvent::GetSetChecked
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetSetChecked();
rt.addBool(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_GetSetEnabled: { // wxUpdateUIEvent::GetSetEnabled
+case wxUpdateUIEvent_GetSetEnabled: { // wxUpdateUIEvent::GetSetEnabled
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetSetEnabled();
rt.addBool(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_GetSetShown: { // wxUpdateUIEvent::GetSetShown
+case wxUpdateUIEvent_GetSetShown: { // wxUpdateUIEvent::GetSetShown
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetSetShown();
rt.addBool(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_GetSetText: { // wxUpdateUIEvent::GetSetText
+case wxUpdateUIEvent_GetSetText: { // wxUpdateUIEvent::GetSetText
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetSetText();
rt.addBool(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_GetText: { // wxUpdateUIEvent::GetText
+case wxUpdateUIEvent_GetText: { // wxUpdateUIEvent::GetText
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetText();
rt.add(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_GetMode: { // wxUpdateUIEvent::GetMode
+case wxUpdateUIEvent_GetMode: { // wxUpdateUIEvent::GetMode
int Result = wxUpdateUIEvent::GetMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_GetUpdateInterval: { // wxUpdateUIEvent::GetUpdateInterval
+case wxUpdateUIEvent_GetUpdateInterval: { // wxUpdateUIEvent::GetUpdateInterval
long Result = wxUpdateUIEvent::GetUpdateInterval();
rt.addInt(Result);
- break;
+ break;
}
-case wxUpdateUIEvent_ResetUpdateTime: { // wxUpdateUIEvent::ResetUpdateTime
+case wxUpdateUIEvent_ResetUpdateTime: { // wxUpdateUIEvent::ResetUpdateTime
wxUpdateUIEvent::ResetUpdateTime();
- break;
+ break;
}
-case wxUpdateUIEvent_SetMode: { // wxUpdateUIEvent::SetMode
+case wxUpdateUIEvent_SetMode: { // wxUpdateUIEvent::SetMode
wxUpdateUIMode mode = *(wxUpdateUIMode *) bp; bp += 4;;
wxUpdateUIEvent::SetMode((wxUpdateUIMode) mode);
- break;
+ break;
}
-case wxUpdateUIEvent_SetText: { // wxUpdateUIEvent::SetText
+case wxUpdateUIEvent_SetText: { // wxUpdateUIEvent::SetText
wxUpdateUIEvent *This = (wxUpdateUIEvent *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetText(text);
- break;
+ break;
}
-case wxUpdateUIEvent_SetUpdateInterval: { // wxUpdateUIEvent::SetUpdateInterval
+case wxUpdateUIEvent_SetUpdateInterval: { // wxUpdateUIEvent::SetUpdateInterval
int * updateInterval = (int *) bp; bp += 4;
wxUpdateUIEvent::SetUpdateInterval((long) *updateInterval);
- break;
+ break;
}
-case wxMouseCaptureChangedEvent_GetCapturedWindow: { // wxMouseCaptureChangedEvent::GetCapturedWindow
+case wxMouseCaptureChangedEvent_GetCapturedWindow: { // wxMouseCaptureChangedEvent::GetCapturedWindow
wxMouseCaptureChangedEvent *This = (wxMouseCaptureChangedEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetCapturedWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxPaletteChangedEvent_SetChangedWindow: { // wxPaletteChangedEvent::SetChangedWindow
+case wxPaletteChangedEvent_SetChangedWindow: { // wxPaletteChangedEvent::SetChangedWindow
wxPaletteChangedEvent *This = (wxPaletteChangedEvent *) getPtr(bp,memenv); bp += 4;
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetChangedWindow(win);
- break;
+ break;
}
-case wxPaletteChangedEvent_GetChangedWindow: { // wxPaletteChangedEvent::GetChangedWindow
+case wxPaletteChangedEvent_GetChangedWindow: { // wxPaletteChangedEvent::GetChangedWindow
wxPaletteChangedEvent *This = (wxPaletteChangedEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetChangedWindow();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxQueryNewPaletteEvent_SetPaletteRealized: { // wxQueryNewPaletteEvent::SetPaletteRealized
+case wxQueryNewPaletteEvent_SetPaletteRealized: { // wxQueryNewPaletteEvent::SetPaletteRealized
wxQueryNewPaletteEvent *This = (wxQueryNewPaletteEvent *) getPtr(bp,memenv); bp += 4;
bool * realized = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPaletteRealized((bool) *realized);
- break;
+ break;
}
-case wxQueryNewPaletteEvent_GetPaletteRealized: { // wxQueryNewPaletteEvent::GetPaletteRealized
+case wxQueryNewPaletteEvent_GetPaletteRealized: { // wxQueryNewPaletteEvent::GetPaletteRealized
wxQueryNewPaletteEvent *This = (wxQueryNewPaletteEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetPaletteRealized();
rt.addBool(Result);
- break;
+ break;
}
-case wxNavigationKeyEvent_GetDirection: { // wxNavigationKeyEvent::GetDirection
+case wxNavigationKeyEvent_GetDirection: { // wxNavigationKeyEvent::GetDirection
wxNavigationKeyEvent *This = (wxNavigationKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetDirection();
rt.addBool(Result);
- break;
+ break;
}
-case wxNavigationKeyEvent_SetDirection: { // wxNavigationKeyEvent::SetDirection
+case wxNavigationKeyEvent_SetDirection: { // wxNavigationKeyEvent::SetDirection
wxNavigationKeyEvent *This = (wxNavigationKeyEvent *) getPtr(bp,memenv); bp += 4;
bool * bForward = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDirection((bool) *bForward);
- break;
+ break;
}
-case wxNavigationKeyEvent_IsWindowChange: { // wxNavigationKeyEvent::IsWindowChange
+case wxNavigationKeyEvent_IsWindowChange: { // wxNavigationKeyEvent::IsWindowChange
wxNavigationKeyEvent *This = (wxNavigationKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsWindowChange();
rt.addBool(Result);
- break;
+ break;
}
-case wxNavigationKeyEvent_SetWindowChange: { // wxNavigationKeyEvent::SetWindowChange
+case wxNavigationKeyEvent_SetWindowChange: { // wxNavigationKeyEvent::SetWindowChange
wxNavigationKeyEvent *This = (wxNavigationKeyEvent *) getPtr(bp,memenv); bp += 4;
bool * bIs = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWindowChange((bool) *bIs);
- break;
+ break;
}
-case wxNavigationKeyEvent_IsFromTab: { // wxNavigationKeyEvent::IsFromTab
+case wxNavigationKeyEvent_IsFromTab: { // wxNavigationKeyEvent::IsFromTab
wxNavigationKeyEvent *This = (wxNavigationKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsFromTab();
rt.addBool(Result);
- break;
+ break;
}
-case wxNavigationKeyEvent_SetFromTab: { // wxNavigationKeyEvent::SetFromTab
+case wxNavigationKeyEvent_SetFromTab: { // wxNavigationKeyEvent::SetFromTab
wxNavigationKeyEvent *This = (wxNavigationKeyEvent *) getPtr(bp,memenv); bp += 4;
bool * bIs = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFromTab((bool) *bIs);
- break;
+ break;
}
-case wxNavigationKeyEvent_GetCurrentFocus: { // wxNavigationKeyEvent::GetCurrentFocus
+case wxNavigationKeyEvent_GetCurrentFocus: { // wxNavigationKeyEvent::GetCurrentFocus
wxNavigationKeyEvent *This = (wxNavigationKeyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetCurrentFocus();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxNavigationKeyEvent_SetCurrentFocus: { // wxNavigationKeyEvent::SetCurrentFocus
+case wxNavigationKeyEvent_SetCurrentFocus: { // wxNavigationKeyEvent::SetCurrentFocus
wxNavigationKeyEvent *This = (wxNavigationKeyEvent *) getPtr(bp,memenv); bp += 4;
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCurrentFocus(win);
- break;
+ break;
}
-case wxHelpEvent_GetOrigin: { // wxHelpEvent::GetOrigin
+case wxHelpEvent_GetOrigin: { // wxHelpEvent::GetOrigin
wxHelpEvent *This = (wxHelpEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetOrigin();
rt.addInt(Result);
- break;
+ break;
}
-case wxHelpEvent_GetPosition: { // wxHelpEvent::GetPosition
+case wxHelpEvent_GetPosition: { // wxHelpEvent::GetPosition
wxHelpEvent *This = (wxHelpEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxPoint * Result = &This->GetPosition();
rt.add((*Result));
- break;
+ break;
}
-case wxHelpEvent_SetOrigin: { // wxHelpEvent::SetOrigin
+case wxHelpEvent_SetOrigin: { // wxHelpEvent::SetOrigin
wxHelpEvent *This = (wxHelpEvent *) getPtr(bp,memenv); bp += 4;
wxHelpEvent::Origin origin = *(wxHelpEvent::Origin *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->SetOrigin((wxHelpEvent::Origin) origin);
- break;
+ break;
}
-case wxHelpEvent_SetPosition: { // wxHelpEvent::SetPosition
+case wxHelpEvent_SetPosition: { // wxHelpEvent::SetPosition
wxHelpEvent *This = (wxHelpEvent *) getPtr(bp,memenv); bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
wxPoint pos = wxPoint(*posX,*posY);
if(!This) throw wxe_badarg(0);
This->SetPosition(pos);
- break;
+ break;
}
-case wxContextMenuEvent_GetPosition: { // wxContextMenuEvent::GetPosition
+case wxContextMenuEvent_GetPosition: { // wxContextMenuEvent::GetPosition
wxContextMenuEvent *This = (wxContextMenuEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxPoint * Result = &This->GetPosition();
rt.add((*Result));
- break;
+ break;
}
-case wxContextMenuEvent_SetPosition: { // wxContextMenuEvent::SetPosition
+case wxContextMenuEvent_SetPosition: { // wxContextMenuEvent::SetPosition
wxContextMenuEvent *This = (wxContextMenuEvent *) getPtr(bp,memenv); bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
wxPoint pos = wxPoint(*posX,*posY);
if(!This) throw wxe_badarg(0);
This->SetPosition(pos);
- break;
+ break;
}
-case wxIdleEvent_CanSend: { // wxIdleEvent::CanSend
+case wxIdleEvent_CanSend: { // wxIdleEvent::CanSend
wxWindow *win = (wxWindow *) getPtr(bp,memenv); bp += 4;
bool Result = wxIdleEvent::CanSend(win);
rt.addBool(Result);
- break;
+ break;
}
-case wxIdleEvent_GetMode: { // wxIdleEvent::GetMode
+case wxIdleEvent_GetMode: { // wxIdleEvent::GetMode
int Result = wxIdleEvent::GetMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxIdleEvent_RequestMore: { // wxIdleEvent::RequestMore
+case wxIdleEvent_RequestMore: { // wxIdleEvent::RequestMore
bool needMore=true;
wxIdleEvent *This = (wxIdleEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
needMore = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->RequestMore(needMore);
- break;
+ break;
}
-case wxIdleEvent_MoreRequested: { // wxIdleEvent::MoreRequested
+case wxIdleEvent_MoreRequested: { // wxIdleEvent::MoreRequested
wxIdleEvent *This = (wxIdleEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MoreRequested();
rt.addBool(Result);
- break;
+ break;
}
-case wxIdleEvent_SetMode: { // wxIdleEvent::SetMode
+case wxIdleEvent_SetMode: { // wxIdleEvent::SetMode
wxIdleMode mode = *(wxIdleMode *) bp; bp += 4;;
wxIdleEvent::SetMode((wxIdleMode) mode);
- break;
+ break;
}
-case wxGridEvent_AltDown: { // wxGridEvent::AltDown
+case wxGridEvent_AltDown: { // wxGridEvent::AltDown
wxGridEvent *This = (wxGridEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AltDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridEvent_ControlDown: { // wxGridEvent::ControlDown
+case wxGridEvent_ControlDown: { // wxGridEvent::ControlDown
wxGridEvent *This = (wxGridEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ControlDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridEvent_GetCol: { // wxGridEvent::GetCol
+case wxGridEvent_GetCol: { // wxGridEvent::GetCol
wxGridEvent *This = (wxGridEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCol();
rt.addInt(Result);
- break;
+ break;
}
-case wxGridEvent_GetPosition: { // wxGridEvent::GetPosition
+case wxGridEvent_GetPosition: { // wxGridEvent::GetPosition
wxGridEvent *This = (wxGridEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPosition();
rt.add(Result);
- break;
+ break;
}
-case wxGridEvent_GetRow: { // wxGridEvent::GetRow
+case wxGridEvent_GetRow: { // wxGridEvent::GetRow
wxGridEvent *This = (wxGridEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetRow();
rt.addInt(Result);
- break;
+ break;
}
-case wxGridEvent_MetaDown: { // wxGridEvent::MetaDown
+case wxGridEvent_MetaDown: { // wxGridEvent::MetaDown
wxGridEvent *This = (wxGridEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->MetaDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridEvent_Selecting: { // wxGridEvent::Selecting
+case wxGridEvent_Selecting: { // wxGridEvent::Selecting
wxGridEvent *This = (wxGridEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Selecting();
rt.addBool(Result);
- break;
+ break;
}
-case wxGridEvent_ShiftDown: { // wxGridEvent::ShiftDown
+case wxGridEvent_ShiftDown: { // wxGridEvent::ShiftDown
wxGridEvent *This = (wxGridEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ShiftDown();
rt.addBool(Result);
- break;
+ break;
}
-case wxNotifyEvent_Allow: { // wxNotifyEvent::Allow
+case wxNotifyEvent_Allow: { // wxNotifyEvent::Allow
wxNotifyEvent *This = (wxNotifyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Allow();
- break;
+ break;
}
-case wxNotifyEvent_IsAllowed: { // wxNotifyEvent::IsAllowed
+case wxNotifyEvent_IsAllowed: { // wxNotifyEvent::IsAllowed
wxNotifyEvent *This = (wxNotifyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsAllowed();
rt.addBool(Result);
- break;
+ break;
}
-case wxNotifyEvent_Veto: { // wxNotifyEvent::Veto
+case wxNotifyEvent_Veto: { // wxNotifyEvent::Veto
wxNotifyEvent *This = (wxNotifyEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Veto();
- break;
+ break;
}
-case wxSashEvent_GetEdge: { // wxSashEvent::GetEdge
+case wxSashEvent_GetEdge: { // wxSashEvent::GetEdge
wxSashEvent *This = (wxSashEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetEdge();
rt.addInt(Result);
- break;
+ break;
}
-case wxSashEvent_GetDragRect: { // wxSashEvent::GetDragRect
+case wxSashEvent_GetDragRect: { // wxSashEvent::GetDragRect
wxSashEvent *This = (wxSashEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetDragRect();
rt.add(Result);
- break;
+ break;
}
-case wxSashEvent_GetDragStatus: { // wxSashEvent::GetDragStatus
+case wxSashEvent_GetDragStatus: { // wxSashEvent::GetDragStatus
wxSashEvent *This = (wxSashEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetDragStatus();
rt.addInt(Result);
- break;
+ break;
}
-case wxListEvent_GetCacheFrom: { // wxListEvent::GetCacheFrom
+case wxListEvent_GetCacheFrom: { // wxListEvent::GetCacheFrom
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetCacheFrom();
rt.addInt(Result);
- break;
+ break;
}
-case wxListEvent_GetCacheTo: { // wxListEvent::GetCacheTo
+case wxListEvent_GetCacheTo: { // wxListEvent::GetCacheTo
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetCacheTo();
rt.addInt(Result);
- break;
+ break;
}
-case wxListEvent_GetKeyCode: { // wxListEvent::GetKeyCode
+case wxListEvent_GetKeyCode: { // wxListEvent::GetKeyCode
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetKeyCode();
rt.addInt(Result);
- break;
+ break;
}
-case wxListEvent_GetIndex: { // wxListEvent::GetIndex
+case wxListEvent_GetIndex: { // wxListEvent::GetIndex
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetIndex();
rt.addInt(Result);
- break;
+ break;
}
-case wxListEvent_GetColumn: { // wxListEvent::GetColumn
+case wxListEvent_GetColumn: { // wxListEvent::GetColumn
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColumn();
rt.addInt(Result);
- break;
+ break;
}
-case wxListEvent_GetPoint: { // wxListEvent::GetPoint
+case wxListEvent_GetPoint: { // wxListEvent::GetPoint
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPoint();
rt.add(Result);
- break;
+ break;
}
-case wxListEvent_GetLabel: { // wxListEvent::GetLabel
+case wxListEvent_GetLabel: { // wxListEvent::GetLabel
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString * Result = &This->GetLabel();
rt.add(Result);
- break;
+ break;
}
-case wxListEvent_GetText: { // wxListEvent::GetText
+case wxListEvent_GetText: { // wxListEvent::GetText
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString * Result = &This->GetText();
rt.add(Result);
- break;
+ break;
}
-case wxListEvent_GetImage: { // wxListEvent::GetImage
+case wxListEvent_GetImage: { // wxListEvent::GetImage
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetImage();
rt.addInt(Result);
- break;
+ break;
}
-case wxListEvent_GetData: { // wxListEvent::GetData
+case wxListEvent_GetData: { // wxListEvent::GetData
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetData();
rt.addInt(Result);
- break;
+ break;
}
-case wxListEvent_GetMask: { // wxListEvent::GetMask
+case wxListEvent_GetMask: { // wxListEvent::GetMask
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
long Result = This->GetMask();
rt.addInt(Result);
- break;
+ break;
}
-case wxListEvent_GetItem: { // wxListEvent::GetItem
+case wxListEvent_GetItem: { // wxListEvent::GetItem
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxListItem * Result = &This->GetItem();
rt.addRef(getRef((void *)Result,memenv), "wxListItem");
- break;
+ break;
}
-case wxListEvent_IsEditCancelled: { // wxListEvent::IsEditCancelled
+case wxListEvent_IsEditCancelled: { // wxListEvent::IsEditCancelled
wxListEvent *This = (wxListEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEditCancelled();
rt.addBool(Result);
- break;
+ break;
}
-case wxDateEvent_GetDate: { // wxDateEvent::GetDate
+case wxDateEvent_GetDate: { // wxDateEvent::GetDate
wxDateEvent *This = (wxDateEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxDateTime * Result = &This->GetDate();
rt.add((*Result));
- break;
+ break;
}
-case wxCalendarEvent_GetWeekDay: { // wxCalendarEvent::GetWeekDay
+case wxCalendarEvent_GetWeekDay: { // wxCalendarEvent::GetWeekDay
wxCalendarEvent *This = (wxCalendarEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWeekDay();
rt.addInt(Result);
- break;
+ break;
}
-case wxFileDirPickerEvent_GetPath: { // wxFileDirPickerEvent::GetPath
+case wxFileDirPickerEvent_GetPath: { // wxFileDirPickerEvent::GetPath
wxFileDirPickerEvent *This = (wxFileDirPickerEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetPath();
rt.add(Result);
- break;
+ break;
}
-case wxColourPickerEvent_GetColour: { // wxColourPickerEvent::GetColour
+case wxColourPickerEvent_GetColour: { // wxColourPickerEvent::GetColour
wxColourPickerEvent *This = (wxColourPickerEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetColour();
rt.add(Result);
- break;
+ break;
}
-case wxFontPickerEvent_GetFont: { // wxFontPickerEvent::GetFont
+case wxFontPickerEvent_GetFont: { // wxFontPickerEvent::GetFont
wxFontPickerEvent *This = (wxFontPickerEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFont * Result = new wxFont(This->GetFont()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxFont");
- break;
+ break;
}
-case wxStyledTextEvent_GetPosition: { // wxStyledTextEvent::GetPosition
+case wxStyledTextEvent_GetPosition: { // wxStyledTextEvent::GetPosition
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetKey: { // wxStyledTextEvent::GetKey
+case wxStyledTextEvent_GetKey: { // wxStyledTextEvent::GetKey
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetKey();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetModifiers: { // wxStyledTextEvent::GetModifiers
+case wxStyledTextEvent_GetModifiers: { // wxStyledTextEvent::GetModifiers
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetModifiers();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetModificationType: { // wxStyledTextEvent::GetModificationType
+case wxStyledTextEvent_GetModificationType: { // wxStyledTextEvent::GetModificationType
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetModificationType();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetText: { // wxStyledTextEvent::GetText
+case wxStyledTextEvent_GetText: { // wxStyledTextEvent::GetText
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetText();
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetLength: { // wxStyledTextEvent::GetLength
+case wxStyledTextEvent_GetLength: { // wxStyledTextEvent::GetLength
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLength();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetLinesAdded: { // wxStyledTextEvent::GetLinesAdded
+case wxStyledTextEvent_GetLinesAdded: { // wxStyledTextEvent::GetLinesAdded
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLinesAdded();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetLine: { // wxStyledTextEvent::GetLine
+case wxStyledTextEvent_GetLine: { // wxStyledTextEvent::GetLine
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLine();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetFoldLevelNow: { // wxStyledTextEvent::GetFoldLevelNow
+case wxStyledTextEvent_GetFoldLevelNow: { // wxStyledTextEvent::GetFoldLevelNow
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFoldLevelNow();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetFoldLevelPrev: { // wxStyledTextEvent::GetFoldLevelPrev
+case wxStyledTextEvent_GetFoldLevelPrev: { // wxStyledTextEvent::GetFoldLevelPrev
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFoldLevelPrev();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetMargin: { // wxStyledTextEvent::GetMargin
+case wxStyledTextEvent_GetMargin: { // wxStyledTextEvent::GetMargin
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMargin();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetMessage: { // wxStyledTextEvent::GetMessage
+case wxStyledTextEvent_GetMessage: { // wxStyledTextEvent::GetMessage
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMessage();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetWParam: { // wxStyledTextEvent::GetWParam
+case wxStyledTextEvent_GetWParam: { // wxStyledTextEvent::GetWParam
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWParam();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetLParam: { // wxStyledTextEvent::GetLParam
+case wxStyledTextEvent_GetLParam: { // wxStyledTextEvent::GetLParam
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLParam();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetListType: { // wxStyledTextEvent::GetListType
+case wxStyledTextEvent_GetListType: { // wxStyledTextEvent::GetListType
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetListType();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetX: { // wxStyledTextEvent::GetX
+case wxStyledTextEvent_GetX: { // wxStyledTextEvent::GetX
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetX();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetY: { // wxStyledTextEvent::GetY
+case wxStyledTextEvent_GetY: { // wxStyledTextEvent::GetY
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetY();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetDragText: { // wxStyledTextEvent::GetDragText
+case wxStyledTextEvent_GetDragText: { // wxStyledTextEvent::GetDragText
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetDragText();
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetDragAllowMove: { // wxStyledTextEvent::GetDragAllowMove
+case wxStyledTextEvent_GetDragAllowMove: { // wxStyledTextEvent::GetDragAllowMove
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetDragAllowMove();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetDragResult: { // wxStyledTextEvent::GetDragResult
+case wxStyledTextEvent_GetDragResult: { // wxStyledTextEvent::GetDragResult
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetDragResult();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetShift: { // wxStyledTextEvent::GetShift
+case wxStyledTextEvent_GetShift: { // wxStyledTextEvent::GetShift
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetShift();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetControl: { // wxStyledTextEvent::GetControl
+case wxStyledTextEvent_GetControl: { // wxStyledTextEvent::GetControl
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetControl();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextEvent_GetAlt: { // wxStyledTextEvent::GetAlt
+case wxStyledTextEvent_GetAlt: { // wxStyledTextEvent::GetAlt
wxStyledTextEvent *This = (wxStyledTextEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetAlt();
rt.addBool(Result);
- break;
+ break;
}
-case utils_wxGetKeyState: { // utils::wxGetKeyState
+case utils_wxGetKeyState: { // utils::wxGetKeyState
wxKeyCode key = *(wxKeyCode *) bp; bp += 4;;
bool Result = ::wxGetKeyState((wxKeyCode) key);
rt.addBool(Result);
- break;
+ break;
}
-case utils_wxGetMousePosition: { // utils::wxGetMousePosition
+case utils_wxGetMousePosition: { // utils::wxGetMousePosition
int x;
int y;
::wxGetMousePosition(&x,&y);
rt.addInt(x);
rt.addInt(y);
rt.addTupleCount(2);
- break;
+ break;
}
-case utils_wxGetMouseState: { // utils::wxGetMouseState
+case utils_wxGetMouseState: { // utils::wxGetMouseState
wxMouseState Result = ::wxGetMouseState();
rt.add(Result);
- break;
+ break;
}
-case utils_wxSetDetectableAutoRepeat: { // utils::wxSetDetectableAutoRepeat
+case utils_wxSetDetectableAutoRepeat: { // utils::wxSetDetectableAutoRepeat
bool * flag = (bool *) bp; bp += 4;
bool Result = ::wxSetDetectableAutoRepeat((bool) *flag);
rt.addBool(Result);
- break;
+ break;
}
-case utils_wxBell: { // utils::wxBell
+case utils_wxBell: { // utils::wxBell
::wxBell();
- break;
+ break;
}
-case utils_wxFindMenuItemId: { // utils::wxFindMenuItemId
+case utils_wxFindMenuItemId: { // utils::wxFindMenuItemId
wxFrame *frame = (wxFrame *) getPtr(bp,memenv); bp += 4;
int * menuStringLen = (int *) bp; bp += 4;
wxString menuString = wxString(bp, wxConvUTF8);
@@ -26428,120 +26435,120 @@ case utils_wxFindMenuItemId: { // utils::wxFindMenuItemId
bp += *itemStringLen+((8-((4+ *itemStringLen) & 7)) & 7);
int Result = ::wxFindMenuItemId(frame,menuString,itemString);
rt.addInt(Result);
- break;
+ break;
}
-case utils_wxGenericFindWindowAtPoint: { // utils::wxGenericFindWindowAtPoint
+case utils_wxGenericFindWindowAtPoint: { // utils::wxGenericFindWindowAtPoint
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
wxWindow * Result = (wxWindow*)::wxGenericFindWindowAtPoint(pt);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case utils_wxFindWindowAtPoint: { // utils::wxFindWindowAtPoint
+case utils_wxFindWindowAtPoint: { // utils::wxFindWindowAtPoint
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
wxPoint pt = wxPoint(*ptX,*ptY);
wxWindow * Result = (wxWindow*)::wxFindWindowAtPoint(pt);
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case utils_wxBeginBusyCursor: { // utils::wxBeginBusyCursor
+case utils_wxBeginBusyCursor: { // utils::wxBeginBusyCursor
const wxCursor * cursor=wxHOURGLASS_CURSOR;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
cursor = (wxCursor *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
::wxBeginBusyCursor(cursor);
- break;
+ break;
}
-case utils_wxEndBusyCursor: { // utils::wxEndBusyCursor
+case utils_wxEndBusyCursor: { // utils::wxEndBusyCursor
::wxEndBusyCursor();
- break;
+ break;
}
-case utils_wxIsBusy: { // utils::wxIsBusy
+case utils_wxIsBusy: { // utils::wxIsBusy
bool Result = ::wxIsBusy();
rt.addBool(Result);
- break;
+ break;
}
-case utils_wxShutdown: { // utils::wxShutdown
+case utils_wxShutdown: { // utils::wxShutdown
wxShutdownFlags wFlags = *(wxShutdownFlags *) bp; bp += 4;;
bool Result = ::wxShutdown((wxShutdownFlags) wFlags);
rt.addBool(Result);
- break;
+ break;
}
-case utils_wxShell: { // utils::wxShell
+case utils_wxShell: { // utils::wxShell
wxString command= wxEmptyString;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * commandLen = (int *) bp; bp += 4;
command = wxString(bp, wxConvUTF8);
bp += *commandLen+((8-((0+ *commandLen) & 7)) & 7);
} break;
- }};
+ }};
bool Result = ::wxShell(command);
rt.addBool(Result);
- break;
+ break;
}
-case utils_wxLaunchDefaultBrowser: { // utils::wxLaunchDefaultBrowser
+case utils_wxLaunchDefaultBrowser: { // utils::wxLaunchDefaultBrowser
int flags=0;
int * urlLen = (int *) bp; bp += 4;
wxString url = wxString(bp, wxConvUTF8);
bp += *urlLen+((8-((4+ *urlLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
bool Result = ::wxLaunchDefaultBrowser(url,flags);
rt.addBool(Result);
- break;
+ break;
}
-case utils_wxGetEmailAddress: { // utils::wxGetEmailAddress
+case utils_wxGetEmailAddress: { // utils::wxGetEmailAddress
wxString Result = ::wxGetEmailAddress();
rt.add(Result);
- break;
+ break;
}
-case utils_wxGetUserId: { // utils::wxGetUserId
+case utils_wxGetUserId: { // utils::wxGetUserId
wxString Result = ::wxGetUserId();
rt.add(Result);
- break;
+ break;
}
-case utils_wxGetHomeDir: { // utils::wxGetHomeDir
+case utils_wxGetHomeDir: { // utils::wxGetHomeDir
wxString Result = ::wxGetHomeDir();
rt.add(Result);
- break;
+ break;
}
-case utils_wxNewId: { // utils::wxNewId
+case utils_wxNewId: { // utils::wxNewId
long Result = ::wxNewId();
rt.addInt(Result);
- break;
+ break;
}
-case utils_wxRegisterId: { // utils::wxRegisterId
+case utils_wxRegisterId: { // utils::wxRegisterId
int * id = (int *) bp; bp += 4;
::wxRegisterId((long) *id);
- break;
+ break;
}
-case utils_wxGetCurrentId: { // utils::wxGetCurrentId
+case utils_wxGetCurrentId: { // utils::wxGetCurrentId
long Result = ::wxGetCurrentId();
rt.addInt(Result);
- break;
+ break;
}
-case utils_wxGetOsDescription: { // utils::wxGetOsDescription
+case utils_wxGetOsDescription: { // utils::wxGetOsDescription
wxString Result = ::wxGetOsDescription();
rt.add(Result);
- break;
+ break;
}
-case utils_wxIsPlatformLittleEndian: { // utils::wxIsPlatformLittleEndian
+case utils_wxIsPlatformLittleEndian: { // utils::wxIsPlatformLittleEndian
bool Result = ::wxIsPlatformLittleEndian();
rt.addBool(Result);
- break;
+ break;
}
-case utils_wxIsPlatform64Bit: { // utils::wxIsPlatform64Bit
+case utils_wxIsPlatform64Bit: { // utils::wxIsPlatform64Bit
bool Result = ::wxIsPlatform64Bit();
rt.addBool(Result);
- break;
+ break;
}
case wxPrintout_new: { // wxPrintout::wxPrintout taylormade
@@ -26571,14 +26578,14 @@ case wxPrintout_new: { // wxPrintout::wxPrintout taylormade
rt.addRef(getRef((void *)Result,memenv), "wxPrintout");
break;
}
-case wxPrintout_GetDC: { // wxPrintout::GetDC
+case wxPrintout_GetDC: { // wxPrintout::GetDC
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxDC * Result = (wxDC*)This->GetDC();
rt.addRef(getRef((void *)Result,memenv), "wxDC");
- break;
+ break;
}
-case wxPrintout_GetPageSizeMM: { // wxPrintout::GetPageSizeMM
+case wxPrintout_GetPageSizeMM: { // wxPrintout::GetPageSizeMM
int w;
int h;
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
@@ -26587,9 +26594,9 @@ case wxPrintout_GetPageSizeMM: { // wxPrintout::GetPageSizeMM
rt.addInt(w);
rt.addInt(h);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxPrintout_GetPageSizePixels: { // wxPrintout::GetPageSizePixels
+case wxPrintout_GetPageSizePixels: { // wxPrintout::GetPageSizePixels
int w;
int h;
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
@@ -26598,16 +26605,16 @@ case wxPrintout_GetPageSizePixels: { // wxPrintout::GetPageSizePixels
rt.addInt(w);
rt.addInt(h);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxPrintout_GetPaperRectPixels: { // wxPrintout::GetPaperRectPixels
+case wxPrintout_GetPaperRectPixels: { // wxPrintout::GetPaperRectPixels
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetPaperRectPixels();
rt.add(Result);
- break;
+ break;
}
-case wxPrintout_GetPPIPrinter: { // wxPrintout::GetPPIPrinter
+case wxPrintout_GetPPIPrinter: { // wxPrintout::GetPPIPrinter
int x;
int y;
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
@@ -26616,9 +26623,9 @@ case wxPrintout_GetPPIPrinter: { // wxPrintout::GetPPIPrinter
rt.addInt(x);
rt.addInt(y);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxPrintout_GetPPIScreen: { // wxPrintout::GetPPIScreen
+case wxPrintout_GetPPIScreen: { // wxPrintout::GetPPIScreen
int x;
int y;
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
@@ -26627,41 +26634,41 @@ case wxPrintout_GetPPIScreen: { // wxPrintout::GetPPIScreen
rt.addInt(x);
rt.addInt(y);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxPrintout_GetTitle: { // wxPrintout::GetTitle
+case wxPrintout_GetTitle: { // wxPrintout::GetTitle
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetTitle();
rt.add(Result);
- break;
+ break;
}
-case wxPrintout_IsPreview: { // wxPrintout::IsPreview
+case wxPrintout_IsPreview: { // wxPrintout::IsPreview
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsPreview();
rt.addBool(Result);
- break;
+ break;
}
-case wxPrintout_FitThisSizeToPaper: { // wxPrintout::FitThisSizeToPaper
+case wxPrintout_FitThisSizeToPaper: { // wxPrintout::FitThisSizeToPaper
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
int * imageSizeW = (int *) bp; bp += 4;
int * imageSizeH = (int *) bp; bp += 4;
wxSize imageSize = wxSize(*imageSizeW,*imageSizeH);
if(!This) throw wxe_badarg(0);
This->FitThisSizeToPaper(imageSize);
- break;
+ break;
}
-case wxPrintout_FitThisSizeToPage: { // wxPrintout::FitThisSizeToPage
+case wxPrintout_FitThisSizeToPage: { // wxPrintout::FitThisSizeToPage
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
int * imageSizeW = (int *) bp; bp += 4;
int * imageSizeH = (int *) bp; bp += 4;
wxSize imageSize = wxSize(*imageSizeW,*imageSizeH);
if(!This) throw wxe_badarg(0);
This->FitThisSizeToPage(imageSize);
- break;
+ break;
}
-case wxPrintout_FitThisSizeToPageMargins: { // wxPrintout::FitThisSizeToPageMargins
+case wxPrintout_FitThisSizeToPageMargins: { // wxPrintout::FitThisSizeToPageMargins
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
int * imageSizeW = (int *) bp; bp += 4;
int * imageSizeH = (int *) bp; bp += 4;
@@ -26669,79 +26676,79 @@ case wxPrintout_FitThisSizeToPageMargins: { // wxPrintout::FitThisSizeToPageMarg
wxPageSetupDialogData *pageSetupData = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->FitThisSizeToPageMargins(imageSize,*pageSetupData);
- break;
+ break;
}
-case wxPrintout_MapScreenSizeToPaper: { // wxPrintout::MapScreenSizeToPaper
+case wxPrintout_MapScreenSizeToPaper: { // wxPrintout::MapScreenSizeToPaper
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->MapScreenSizeToPaper();
- break;
+ break;
}
-case wxPrintout_MapScreenSizeToPage: { // wxPrintout::MapScreenSizeToPage
+case wxPrintout_MapScreenSizeToPage: { // wxPrintout::MapScreenSizeToPage
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->MapScreenSizeToPage();
- break;
+ break;
}
-case wxPrintout_MapScreenSizeToPageMargins: { // wxPrintout::MapScreenSizeToPageMargins
+case wxPrintout_MapScreenSizeToPageMargins: { // wxPrintout::MapScreenSizeToPageMargins
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
wxPageSetupDialogData *pageSetupData = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->MapScreenSizeToPageMargins(*pageSetupData);
- break;
+ break;
}
-case wxPrintout_MapScreenSizeToDevice: { // wxPrintout::MapScreenSizeToDevice
+case wxPrintout_MapScreenSizeToDevice: { // wxPrintout::MapScreenSizeToDevice
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->MapScreenSizeToDevice();
- break;
+ break;
}
-case wxPrintout_GetLogicalPaperRect: { // wxPrintout::GetLogicalPaperRect
+case wxPrintout_GetLogicalPaperRect: { // wxPrintout::GetLogicalPaperRect
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetLogicalPaperRect();
rt.add(Result);
- break;
+ break;
}
-case wxPrintout_GetLogicalPageRect: { // wxPrintout::GetLogicalPageRect
+case wxPrintout_GetLogicalPageRect: { // wxPrintout::GetLogicalPageRect
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetLogicalPageRect();
rt.add(Result);
- break;
+ break;
}
-case wxPrintout_GetLogicalPageMarginsRect: { // wxPrintout::GetLogicalPageMarginsRect
+case wxPrintout_GetLogicalPageMarginsRect: { // wxPrintout::GetLogicalPageMarginsRect
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
wxPageSetupDialogData *pageSetupData = (wxPageSetupDialogData *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxRect Result = This->GetLogicalPageMarginsRect(*pageSetupData);
rt.add(Result);
- break;
+ break;
}
-case wxPrintout_SetLogicalOrigin: { // wxPrintout::SetLogicalOrigin
+case wxPrintout_SetLogicalOrigin: { // wxPrintout::SetLogicalOrigin
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLogicalOrigin((wxCoord) *x,(wxCoord) *y);
- break;
+ break;
}
-case wxPrintout_OffsetLogicalOrigin: { // wxPrintout::OffsetLogicalOrigin
+case wxPrintout_OffsetLogicalOrigin: { // wxPrintout::OffsetLogicalOrigin
wxPrintout *This = (wxPrintout *) getPtr(bp,memenv); bp += 4;
int * xoff = (int *) bp; bp += 4;
int * yoff = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->OffsetLogicalOrigin((wxCoord) *xoff,(wxCoord) *yoff);
- break;
+ break;
}
-case wxStyledTextCtrl_new_2: { // wxStyledTextCtrl::wxStyledTextCtrl
+case wxStyledTextCtrl_new_2: { // wxStyledTextCtrl::wxStyledTextCtrl
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -26760,26 +26767,26 @@ case wxStyledTextCtrl_new_2: { // wxStyledTextCtrl::wxStyledTextCtrl
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxStyledTextCtrl * Result = new wxStyledTextCtrl(parent,id,pos,size,style);
/* Possible memory leak here, class is missing virt dest */
rt.addRef(getRef((void *)Result,memenv), "wxStyledTextCtrl");
- break;
+ break;
}
-case wxStyledTextCtrl_new_0: { // wxStyledTextCtrl::wxStyledTextCtrl
+case wxStyledTextCtrl_new_0: { // wxStyledTextCtrl::wxStyledTextCtrl
wxStyledTextCtrl * Result = new wxStyledTextCtrl();
/* Possible memory leak here, class is missing virt dest */
rt.addRef(getRef((void *)Result,memenv), "wxStyledTextCtrl");
- break;
+ break;
}
-case wxStyledTextCtrl_Create: { // wxStyledTextCtrl::Create
+case wxStyledTextCtrl_Create: { // wxStyledTextCtrl::Create
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0;
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -26798,29 +26805,29 @@ case wxStyledTextCtrl_Create: { // wxStyledTextCtrl::Create
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AddText: { // wxStyledTextCtrl::AddText
+case wxStyledTextCtrl_AddText: { // wxStyledTextCtrl::AddText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->AddText(text);
- break;
+ break;
}
-case wxStyledTextCtrl_AddStyledText: { // wxStyledTextCtrl::AddStyledText
+case wxStyledTextCtrl_AddStyledText: { // wxStyledTextCtrl::AddStyledText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
wxMemoryBuffer *data = (wxMemoryBuffer *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AddStyledText(*data);
- break;
+ break;
}
-case wxStyledTextCtrl_InsertText: { // wxStyledTextCtrl::InsertText
+case wxStyledTextCtrl_InsertText: { // wxStyledTextCtrl::InsertText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
@@ -26828,135 +26835,135 @@ case wxStyledTextCtrl_InsertText: { // wxStyledTextCtrl::InsertText
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->InsertText((int) *pos,text);
- break;
+ break;
}
-case wxStyledTextCtrl_ClearAll: { // wxStyledTextCtrl::ClearAll
+case wxStyledTextCtrl_ClearAll: { // wxStyledTextCtrl::ClearAll
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ClearAll();
- break;
+ break;
}
-case wxStyledTextCtrl_ClearDocumentStyle: { // wxStyledTextCtrl::ClearDocumentStyle
+case wxStyledTextCtrl_ClearDocumentStyle: { // wxStyledTextCtrl::ClearDocumentStyle
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ClearDocumentStyle();
- break;
+ break;
}
-case wxStyledTextCtrl_GetLength: { // wxStyledTextCtrl::GetLength
+case wxStyledTextCtrl_GetLength: { // wxStyledTextCtrl::GetLength
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLength();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCharAt: { // wxStyledTextCtrl::GetCharAt
+case wxStyledTextCtrl_GetCharAt: { // wxStyledTextCtrl::GetCharAt
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCharAt((int) *pos);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCurrentPos: { // wxStyledTextCtrl::GetCurrentPos
+case wxStyledTextCtrl_GetCurrentPos: { // wxStyledTextCtrl::GetCurrentPos
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCurrentPos();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetAnchor: { // wxStyledTextCtrl::GetAnchor
+case wxStyledTextCtrl_GetAnchor: { // wxStyledTextCtrl::GetAnchor
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetAnchor();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetStyleAt: { // wxStyledTextCtrl::GetStyleAt
+case wxStyledTextCtrl_GetStyleAt: { // wxStyledTextCtrl::GetStyleAt
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetStyleAt((int) *pos);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_Redo: { // wxStyledTextCtrl::Redo
+case wxStyledTextCtrl_Redo: { // wxStyledTextCtrl::Redo
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Redo();
- break;
+ break;
}
-case wxStyledTextCtrl_SetUndoCollection: { // wxStyledTextCtrl::SetUndoCollection
+case wxStyledTextCtrl_SetUndoCollection: { // wxStyledTextCtrl::SetUndoCollection
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * collectUndo = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetUndoCollection((bool) *collectUndo);
- break;
+ break;
}
-case wxStyledTextCtrl_SelectAll: { // wxStyledTextCtrl::SelectAll
+case wxStyledTextCtrl_SelectAll: { // wxStyledTextCtrl::SelectAll
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SelectAll();
- break;
+ break;
}
-case wxStyledTextCtrl_SetSavePoint: { // wxStyledTextCtrl::SetSavePoint
+case wxStyledTextCtrl_SetSavePoint: { // wxStyledTextCtrl::SetSavePoint
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSavePoint();
- break;
+ break;
}
-case wxStyledTextCtrl_GetStyledText: { // wxStyledTextCtrl::GetStyledText
+case wxStyledTextCtrl_GetStyledText: { // wxStyledTextCtrl::GetStyledText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * startPos = (int *) bp; bp += 4;
int * endPos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxMemoryBuffer * Result = new wxMemoryBuffer(This->GetStyledText((int) *startPos,(int) *endPos)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxMemoryBuffer");
- break;
+ break;
}
-case wxStyledTextCtrl_CanRedo: { // wxStyledTextCtrl::CanRedo
+case wxStyledTextCtrl_CanRedo: { // wxStyledTextCtrl::CanRedo
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanRedo();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerLineFromHandle: { // wxStyledTextCtrl::MarkerLineFromHandle
+case wxStyledTextCtrl_MarkerLineFromHandle: { // wxStyledTextCtrl::MarkerLineFromHandle
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * handle = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->MarkerLineFromHandle((int) *handle);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerDeleteHandle: { // wxStyledTextCtrl::MarkerDeleteHandle
+case wxStyledTextCtrl_MarkerDeleteHandle: { // wxStyledTextCtrl::MarkerDeleteHandle
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * handle = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->MarkerDeleteHandle((int) *handle);
- break;
+ break;
}
-case wxStyledTextCtrl_GetUndoCollection: { // wxStyledTextCtrl::GetUndoCollection
+case wxStyledTextCtrl_GetUndoCollection: { // wxStyledTextCtrl::GetUndoCollection
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetUndoCollection();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetViewWhiteSpace: { // wxStyledTextCtrl::GetViewWhiteSpace
+case wxStyledTextCtrl_GetViewWhiteSpace: { // wxStyledTextCtrl::GetViewWhiteSpace
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetViewWhiteSpace();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetViewWhiteSpace: { // wxStyledTextCtrl::SetViewWhiteSpace
+case wxStyledTextCtrl_SetViewWhiteSpace: { // wxStyledTextCtrl::SetViewWhiteSpace
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * viewWS = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetViewWhiteSpace((int) *viewWS);
- break;
+ break;
}
-case wxStyledTextCtrl_PositionFromPoint: { // wxStyledTextCtrl::PositionFromPoint
+case wxStyledTextCtrl_PositionFromPoint: { // wxStyledTextCtrl::PositionFromPoint
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * ptX = (int *) bp; bp += 4;
int * ptY = (int *) bp; bp += 4;
@@ -26964,39 +26971,39 @@ case wxStyledTextCtrl_PositionFromPoint: { // wxStyledTextCtrl::PositionFromPoin
if(!This) throw wxe_badarg(0);
int Result = This->PositionFromPoint(pt);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_PositionFromPointClose: { // wxStyledTextCtrl::PositionFromPointClose
+case wxStyledTextCtrl_PositionFromPointClose: { // wxStyledTextCtrl::PositionFromPointClose
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->PositionFromPointClose((int) *x,(int) *y);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GotoLine: { // wxStyledTextCtrl::GotoLine
+case wxStyledTextCtrl_GotoLine: { // wxStyledTextCtrl::GotoLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->GotoLine((int) *line);
- break;
+ break;
}
-case wxStyledTextCtrl_GotoPos: { // wxStyledTextCtrl::GotoPos
+case wxStyledTextCtrl_GotoPos: { // wxStyledTextCtrl::GotoPos
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->GotoPos((int) *pos);
- break;
+ break;
}
-case wxStyledTextCtrl_SetAnchor: { // wxStyledTextCtrl::SetAnchor
+case wxStyledTextCtrl_SetAnchor: { // wxStyledTextCtrl::SetAnchor
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * posAnchor = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetAnchor((int) *posAnchor);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCurLine: { // wxStyledTextCtrl::GetCurLine
+case wxStyledTextCtrl_GetCurLine: { // wxStyledTextCtrl::GetCurLine
int linePos;
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
@@ -27004,95 +27011,95 @@ case wxStyledTextCtrl_GetCurLine: { // wxStyledTextCtrl::GetCurLine
rt.add(Result);
rt.addInt(linePos);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxStyledTextCtrl_GetEndStyled: { // wxStyledTextCtrl::GetEndStyled
+case wxStyledTextCtrl_GetEndStyled: { // wxStyledTextCtrl::GetEndStyled
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetEndStyled();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_ConvertEOLs: { // wxStyledTextCtrl::ConvertEOLs
+case wxStyledTextCtrl_ConvertEOLs: { // wxStyledTextCtrl::ConvertEOLs
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * eolMode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ConvertEOLs((int) *eolMode);
- break;
+ break;
}
-case wxStyledTextCtrl_GetEOLMode: { // wxStyledTextCtrl::GetEOLMode
+case wxStyledTextCtrl_GetEOLMode: { // wxStyledTextCtrl::GetEOLMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetEOLMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetEOLMode: { // wxStyledTextCtrl::SetEOLMode
+case wxStyledTextCtrl_SetEOLMode: { // wxStyledTextCtrl::SetEOLMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * eolMode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetEOLMode((int) *eolMode);
- break;
+ break;
}
-case wxStyledTextCtrl_StartStyling: { // wxStyledTextCtrl::StartStyling
+case wxStyledTextCtrl_StartStyling: { // wxStyledTextCtrl::StartStyling
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
int * mask = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StartStyling((int) *pos,(int) *mask);
- break;
+ break;
}
-case wxStyledTextCtrl_SetStyling: { // wxStyledTextCtrl::SetStyling
+case wxStyledTextCtrl_SetStyling: { // wxStyledTextCtrl::SetStyling
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * length = (int *) bp; bp += 4;
int * style = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStyling((int) *length,(int) *style);
- break;
+ break;
}
-case wxStyledTextCtrl_GetBufferedDraw: { // wxStyledTextCtrl::GetBufferedDraw
+case wxStyledTextCtrl_GetBufferedDraw: { // wxStyledTextCtrl::GetBufferedDraw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetBufferedDraw();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetBufferedDraw: { // wxStyledTextCtrl::SetBufferedDraw
+case wxStyledTextCtrl_SetBufferedDraw: { // wxStyledTextCtrl::SetBufferedDraw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * buffered = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBufferedDraw((bool) *buffered);
- break;
+ break;
}
-case wxStyledTextCtrl_SetTabWidth: { // wxStyledTextCtrl::SetTabWidth
+case wxStyledTextCtrl_SetTabWidth: { // wxStyledTextCtrl::SetTabWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * tabWidth = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetTabWidth((int) *tabWidth);
- break;
+ break;
}
-case wxStyledTextCtrl_GetTabWidth: { // wxStyledTextCtrl::GetTabWidth
+case wxStyledTextCtrl_GetTabWidth: { // wxStyledTextCtrl::GetTabWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetTabWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetCodePage: { // wxStyledTextCtrl::SetCodePage
+case wxStyledTextCtrl_SetCodePage: { // wxStyledTextCtrl::SetCodePage
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * codePage = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCodePage((int) *codePage);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerDefine: { // wxStyledTextCtrl::MarkerDefine
+case wxStyledTextCtrl_MarkerDefine: { // wxStyledTextCtrl::MarkerDefine
wxColour foreground= wxNullColour;
wxColour background= wxNullColour;
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * markerNumber = (int *) bp; bp += 4;
int * markerSymbol = (int *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * foregroundR = (int *) bp; bp += 4;
int * foregroundG = (int *) bp; bp += 4;
@@ -27109,12 +27116,12 @@ case wxStyledTextCtrl_MarkerDefine: { // wxStyledTextCtrl::MarkerDefine
background = wxColour(*backgroundR,*backgroundG,*backgroundB,*backgroundA);
bp += 4; /* Align */
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->MarkerDefine((int) *markerNumber,(int) *markerSymbol,foreground,background);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerSetForeground: { // wxStyledTextCtrl::MarkerSetForeground
+case wxStyledTextCtrl_MarkerSetForeground: { // wxStyledTextCtrl::MarkerSetForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * markerNumber = (int *) bp; bp += 4;
int * foreR = (int *) bp; bp += 4;
@@ -27124,9 +27131,9 @@ case wxStyledTextCtrl_MarkerSetForeground: { // wxStyledTextCtrl::MarkerSetForeg
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->MarkerSetForeground((int) *markerNumber,fore);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerSetBackground: { // wxStyledTextCtrl::MarkerSetBackground
+case wxStyledTextCtrl_MarkerSetBackground: { // wxStyledTextCtrl::MarkerSetBackground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * markerNumber = (int *) bp; bp += 4;
int * backR = (int *) bp; bp += 4;
@@ -27136,153 +27143,153 @@ case wxStyledTextCtrl_MarkerSetBackground: { // wxStyledTextCtrl::MarkerSetBackg
wxColour back = wxColour(*backR,*backG,*backB,*backA);
if(!This) throw wxe_badarg(0);
This->MarkerSetBackground((int) *markerNumber,back);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerAdd: { // wxStyledTextCtrl::MarkerAdd
+case wxStyledTextCtrl_MarkerAdd: { // wxStyledTextCtrl::MarkerAdd
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
int * markerNumber = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->MarkerAdd((int) *line,(int) *markerNumber);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerDelete: { // wxStyledTextCtrl::MarkerDelete
+case wxStyledTextCtrl_MarkerDelete: { // wxStyledTextCtrl::MarkerDelete
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
int * markerNumber = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->MarkerDelete((int) *line,(int) *markerNumber);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerDeleteAll: { // wxStyledTextCtrl::MarkerDeleteAll
+case wxStyledTextCtrl_MarkerDeleteAll: { // wxStyledTextCtrl::MarkerDeleteAll
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * markerNumber = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->MarkerDeleteAll((int) *markerNumber);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerGet: { // wxStyledTextCtrl::MarkerGet
+case wxStyledTextCtrl_MarkerGet: { // wxStyledTextCtrl::MarkerGet
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->MarkerGet((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerNext: { // wxStyledTextCtrl::MarkerNext
+case wxStyledTextCtrl_MarkerNext: { // wxStyledTextCtrl::MarkerNext
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * lineStart = (int *) bp; bp += 4;
int * markerMask = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->MarkerNext((int) *lineStart,(int) *markerMask);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerPrevious: { // wxStyledTextCtrl::MarkerPrevious
+case wxStyledTextCtrl_MarkerPrevious: { // wxStyledTextCtrl::MarkerPrevious
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * lineStart = (int *) bp; bp += 4;
int * markerMask = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->MarkerPrevious((int) *lineStart,(int) *markerMask);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerDefineBitmap: { // wxStyledTextCtrl::MarkerDefineBitmap
+case wxStyledTextCtrl_MarkerDefineBitmap: { // wxStyledTextCtrl::MarkerDefineBitmap
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * markerNumber = (int *) bp; bp += 4;
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->MarkerDefineBitmap((int) *markerNumber,*bmp);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerAddSet: { // wxStyledTextCtrl::MarkerAddSet
+case wxStyledTextCtrl_MarkerAddSet: { // wxStyledTextCtrl::MarkerAddSet
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
int * set = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->MarkerAddSet((int) *line,(int) *set);
- break;
+ break;
}
-case wxStyledTextCtrl_MarkerSetAlpha: { // wxStyledTextCtrl::MarkerSetAlpha
+case wxStyledTextCtrl_MarkerSetAlpha: { // wxStyledTextCtrl::MarkerSetAlpha
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * markerNumber = (int *) bp; bp += 4;
int * alpha = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->MarkerSetAlpha((int) *markerNumber,(int) *alpha);
- break;
+ break;
}
-case wxStyledTextCtrl_SetMarginType: { // wxStyledTextCtrl::SetMarginType
+case wxStyledTextCtrl_SetMarginType: { // wxStyledTextCtrl::SetMarginType
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * margin = (int *) bp; bp += 4;
int * marginType = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMarginType((int) *margin,(int) *marginType);
- break;
+ break;
}
-case wxStyledTextCtrl_GetMarginType: { // wxStyledTextCtrl::GetMarginType
+case wxStyledTextCtrl_GetMarginType: { // wxStyledTextCtrl::GetMarginType
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * margin = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMarginType((int) *margin);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetMarginWidth: { // wxStyledTextCtrl::SetMarginWidth
+case wxStyledTextCtrl_SetMarginWidth: { // wxStyledTextCtrl::SetMarginWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * margin = (int *) bp; bp += 4;
int * pixelWidth = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMarginWidth((int) *margin,(int) *pixelWidth);
- break;
+ break;
}
-case wxStyledTextCtrl_GetMarginWidth: { // wxStyledTextCtrl::GetMarginWidth
+case wxStyledTextCtrl_GetMarginWidth: { // wxStyledTextCtrl::GetMarginWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * margin = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMarginWidth((int) *margin);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetMarginMask: { // wxStyledTextCtrl::SetMarginMask
+case wxStyledTextCtrl_SetMarginMask: { // wxStyledTextCtrl::SetMarginMask
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * margin = (int *) bp; bp += 4;
int * mask = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMarginMask((int) *margin,(int) *mask);
- break;
+ break;
}
-case wxStyledTextCtrl_GetMarginMask: { // wxStyledTextCtrl::GetMarginMask
+case wxStyledTextCtrl_GetMarginMask: { // wxStyledTextCtrl::GetMarginMask
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * margin = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMarginMask((int) *margin);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetMarginSensitive: { // wxStyledTextCtrl::SetMarginSensitive
+case wxStyledTextCtrl_SetMarginSensitive: { // wxStyledTextCtrl::SetMarginSensitive
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * margin = (int *) bp; bp += 4;
bool * sensitive = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMarginSensitive((int) *margin,(bool) *sensitive);
- break;
+ break;
}
-case wxStyledTextCtrl_GetMarginSensitive: { // wxStyledTextCtrl::GetMarginSensitive
+case wxStyledTextCtrl_GetMarginSensitive: { // wxStyledTextCtrl::GetMarginSensitive
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * margin = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetMarginSensitive((int) *margin);
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleClearAll: { // wxStyledTextCtrl::StyleClearAll
+case wxStyledTextCtrl_StyleClearAll: { // wxStyledTextCtrl::StyleClearAll
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleClearAll();
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetForeground: { // wxStyledTextCtrl::StyleSetForeground
+case wxStyledTextCtrl_StyleSetForeground: { // wxStyledTextCtrl::StyleSetForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
int * foreR = (int *) bp; bp += 4;
@@ -27292,9 +27299,9 @@ case wxStyledTextCtrl_StyleSetForeground: { // wxStyledTextCtrl::StyleSetForegro
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->StyleSetForeground((int) *style,fore);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetBackground: { // wxStyledTextCtrl::StyleSetBackground
+case wxStyledTextCtrl_StyleSetBackground: { // wxStyledTextCtrl::StyleSetBackground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
int * backR = (int *) bp; bp += 4;
@@ -27304,33 +27311,33 @@ case wxStyledTextCtrl_StyleSetBackground: { // wxStyledTextCtrl::StyleSetBackgro
wxColour back = wxColour(*backR,*backG,*backB,*backA);
if(!This) throw wxe_badarg(0);
This->StyleSetBackground((int) *style,back);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetBold: { // wxStyledTextCtrl::StyleSetBold
+case wxStyledTextCtrl_StyleSetBold: { // wxStyledTextCtrl::StyleSetBold
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
bool * bold = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetBold((int) *style,(bool) *bold);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetItalic: { // wxStyledTextCtrl::StyleSetItalic
+case wxStyledTextCtrl_StyleSetItalic: { // wxStyledTextCtrl::StyleSetItalic
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
bool * italic = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetItalic((int) *style,(bool) *italic);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetSize: { // wxStyledTextCtrl::StyleSetSize
+case wxStyledTextCtrl_StyleSetSize: { // wxStyledTextCtrl::StyleSetSize
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
int * sizePoints = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetSize((int) *style,(int) *sizePoints);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetFaceName: { // wxStyledTextCtrl::StyleSetFaceName
+case wxStyledTextCtrl_StyleSetFaceName: { // wxStyledTextCtrl::StyleSetFaceName
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
int * fontNameLen = (int *) bp; bp += 4;
@@ -27338,47 +27345,47 @@ case wxStyledTextCtrl_StyleSetFaceName: { // wxStyledTextCtrl::StyleSetFaceName
bp += *fontNameLen+((8-((4+ *fontNameLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->StyleSetFaceName((int) *style,fontName);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetEOLFilled: { // wxStyledTextCtrl::StyleSetEOLFilled
+case wxStyledTextCtrl_StyleSetEOLFilled: { // wxStyledTextCtrl::StyleSetEOLFilled
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
bool * filled = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetEOLFilled((int) *style,(bool) *filled);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleResetDefault: { // wxStyledTextCtrl::StyleResetDefault
+case wxStyledTextCtrl_StyleResetDefault: { // wxStyledTextCtrl::StyleResetDefault
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleResetDefault();
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetUnderline: { // wxStyledTextCtrl::StyleSetUnderline
+case wxStyledTextCtrl_StyleSetUnderline: { // wxStyledTextCtrl::StyleSetUnderline
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
bool * underline = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetUnderline((int) *style,(bool) *underline);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetCase: { // wxStyledTextCtrl::StyleSetCase
+case wxStyledTextCtrl_StyleSetCase: { // wxStyledTextCtrl::StyleSetCase
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
int * caseForce = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetCase((int) *style,(int) *caseForce);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetHotSpot: { // wxStyledTextCtrl::StyleSetHotSpot
+case wxStyledTextCtrl_StyleSetHotSpot: { // wxStyledTextCtrl::StyleSetHotSpot
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
bool * hotspot = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetHotSpot((int) *style,(bool) *hotspot);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSelForeground: { // wxStyledTextCtrl::SetSelForeground
+case wxStyledTextCtrl_SetSelForeground: { // wxStyledTextCtrl::SetSelForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useSetting = (bool *) bp; bp += 4;
int * foreR = (int *) bp; bp += 4;
@@ -27388,9 +27395,9 @@ case wxStyledTextCtrl_SetSelForeground: { // wxStyledTextCtrl::SetSelForeground
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->SetSelForeground((bool) *useSetting,fore);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSelBackground: { // wxStyledTextCtrl::SetSelBackground
+case wxStyledTextCtrl_SetSelBackground: { // wxStyledTextCtrl::SetSelBackground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useSetting = (bool *) bp; bp += 4;
int * backR = (int *) bp; bp += 4;
@@ -27400,23 +27407,23 @@ case wxStyledTextCtrl_SetSelBackground: { // wxStyledTextCtrl::SetSelBackground
wxColour back = wxColour(*backR,*backG,*backB,*backA);
if(!This) throw wxe_badarg(0);
This->SetSelBackground((bool) *useSetting,back);
- break;
+ break;
}
-case wxStyledTextCtrl_GetSelAlpha: { // wxStyledTextCtrl::GetSelAlpha
+case wxStyledTextCtrl_GetSelAlpha: { // wxStyledTextCtrl::GetSelAlpha
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelAlpha();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSelAlpha: { // wxStyledTextCtrl::SetSelAlpha
+case wxStyledTextCtrl_SetSelAlpha: { // wxStyledTextCtrl::SetSelAlpha
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * alpha = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelAlpha((int) *alpha);
- break;
+ break;
}
-case wxStyledTextCtrl_SetCaretForeground: { // wxStyledTextCtrl::SetCaretForeground
+case wxStyledTextCtrl_SetCaretForeground: { // wxStyledTextCtrl::SetCaretForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * foreR = (int *) bp; bp += 4;
int * foreG = (int *) bp; bp += 4;
@@ -27425,100 +27432,100 @@ case wxStyledTextCtrl_SetCaretForeground: { // wxStyledTextCtrl::SetCaretForegro
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->SetCaretForeground(fore);
- break;
+ break;
}
-case wxStyledTextCtrl_CmdKeyAssign: { // wxStyledTextCtrl::CmdKeyAssign
+case wxStyledTextCtrl_CmdKeyAssign: { // wxStyledTextCtrl::CmdKeyAssign
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * key = (int *) bp; bp += 4;
int * modifiers = (int *) bp; bp += 4;
int * cmd = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->CmdKeyAssign((int) *key,(int) *modifiers,(int) *cmd);
- break;
+ break;
}
-case wxStyledTextCtrl_CmdKeyClear: { // wxStyledTextCtrl::CmdKeyClear
+case wxStyledTextCtrl_CmdKeyClear: { // wxStyledTextCtrl::CmdKeyClear
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * key = (int *) bp; bp += 4;
int * modifiers = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->CmdKeyClear((int) *key,(int) *modifiers);
- break;
+ break;
}
-case wxStyledTextCtrl_CmdKeyClearAll: { // wxStyledTextCtrl::CmdKeyClearAll
+case wxStyledTextCtrl_CmdKeyClearAll: { // wxStyledTextCtrl::CmdKeyClearAll
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CmdKeyClearAll();
- break;
+ break;
}
-case wxStyledTextCtrl_SetStyleBytes: { // wxStyledTextCtrl::SetStyleBytes
+case wxStyledTextCtrl_SetStyleBytes: { // wxStyledTextCtrl::SetStyleBytes
char styleBytes;
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * length = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStyleBytes((int) *length,&styleBytes);
rt.addInt(styleBytes);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetVisible: { // wxStyledTextCtrl::StyleSetVisible
+case wxStyledTextCtrl_StyleSetVisible: { // wxStyledTextCtrl::StyleSetVisible
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
bool * visible = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetVisible((int) *style,(bool) *visible);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCaretPeriod: { // wxStyledTextCtrl::GetCaretPeriod
+case wxStyledTextCtrl_GetCaretPeriod: { // wxStyledTextCtrl::GetCaretPeriod
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCaretPeriod();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetCaretPeriod: { // wxStyledTextCtrl::SetCaretPeriod
+case wxStyledTextCtrl_SetCaretPeriod: { // wxStyledTextCtrl::SetCaretPeriod
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * periodMilliseconds = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCaretPeriod((int) *periodMilliseconds);
- break;
+ break;
}
-case wxStyledTextCtrl_SetWordChars: { // wxStyledTextCtrl::SetWordChars
+case wxStyledTextCtrl_SetWordChars: { // wxStyledTextCtrl::SetWordChars
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * charactersLen = (int *) bp; bp += 4;
wxString characters = wxString(bp, wxConvUTF8);
bp += *charactersLen+((8-((0+ *charactersLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetWordChars(characters);
- break;
+ break;
}
-case wxStyledTextCtrl_BeginUndoAction: { // wxStyledTextCtrl::BeginUndoAction
+case wxStyledTextCtrl_BeginUndoAction: { // wxStyledTextCtrl::BeginUndoAction
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->BeginUndoAction();
- break;
+ break;
}
-case wxStyledTextCtrl_EndUndoAction: { // wxStyledTextCtrl::EndUndoAction
+case wxStyledTextCtrl_EndUndoAction: { // wxStyledTextCtrl::EndUndoAction
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->EndUndoAction();
- break;
+ break;
}
-case wxStyledTextCtrl_IndicatorSetStyle: { // wxStyledTextCtrl::IndicatorSetStyle
+case wxStyledTextCtrl_IndicatorSetStyle: { // wxStyledTextCtrl::IndicatorSetStyle
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * indic = (int *) bp; bp += 4;
int * style = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->IndicatorSetStyle((int) *indic,(int) *style);
- break;
+ break;
}
-case wxStyledTextCtrl_IndicatorGetStyle: { // wxStyledTextCtrl::IndicatorGetStyle
+case wxStyledTextCtrl_IndicatorGetStyle: { // wxStyledTextCtrl::IndicatorGetStyle
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * indic = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->IndicatorGetStyle((int) *indic);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_IndicatorSetForeground: { // wxStyledTextCtrl::IndicatorSetForeground
+case wxStyledTextCtrl_IndicatorSetForeground: { // wxStyledTextCtrl::IndicatorSetForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * indic = (int *) bp; bp += 4;
int * foreR = (int *) bp; bp += 4;
@@ -27528,17 +27535,17 @@ case wxStyledTextCtrl_IndicatorSetForeground: { // wxStyledTextCtrl::IndicatorSe
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->IndicatorSetForeground((int) *indic,fore);
- break;
+ break;
}
-case wxStyledTextCtrl_IndicatorGetForeground: { // wxStyledTextCtrl::IndicatorGetForeground
+case wxStyledTextCtrl_IndicatorGetForeground: { // wxStyledTextCtrl::IndicatorGetForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * indic = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->IndicatorGetForeground((int) *indic);
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetWhitespaceForeground: { // wxStyledTextCtrl::SetWhitespaceForeground
+case wxStyledTextCtrl_SetWhitespaceForeground: { // wxStyledTextCtrl::SetWhitespaceForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useSetting = (bool *) bp; bp += 4;
int * foreR = (int *) bp; bp += 4;
@@ -27548,9 +27555,9 @@ case wxStyledTextCtrl_SetWhitespaceForeground: { // wxStyledTextCtrl::SetWhitesp
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->SetWhitespaceForeground((bool) *useSetting,fore);
- break;
+ break;
}
-case wxStyledTextCtrl_SetWhitespaceBackground: { // wxStyledTextCtrl::SetWhitespaceBackground
+case wxStyledTextCtrl_SetWhitespaceBackground: { // wxStyledTextCtrl::SetWhitespaceBackground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useSetting = (bool *) bp; bp += 4;
int * backR = (int *) bp; bp += 4;
@@ -27560,60 +27567,60 @@ case wxStyledTextCtrl_SetWhitespaceBackground: { // wxStyledTextCtrl::SetWhitesp
wxColour back = wxColour(*backR,*backG,*backB,*backA);
if(!This) throw wxe_badarg(0);
This->SetWhitespaceBackground((bool) *useSetting,back);
- break;
+ break;
}
-case wxStyledTextCtrl_GetStyleBits: { // wxStyledTextCtrl::GetStyleBits
+case wxStyledTextCtrl_GetStyleBits: { // wxStyledTextCtrl::GetStyleBits
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetStyleBits();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetLineState: { // wxStyledTextCtrl::SetLineState
+case wxStyledTextCtrl_SetLineState: { // wxStyledTextCtrl::SetLineState
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
int * state = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLineState((int) *line,(int) *state);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLineState: { // wxStyledTextCtrl::GetLineState
+case wxStyledTextCtrl_GetLineState: { // wxStyledTextCtrl::GetLineState
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLineState((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetMaxLineState: { // wxStyledTextCtrl::GetMaxLineState
+case wxStyledTextCtrl_GetMaxLineState: { // wxStyledTextCtrl::GetMaxLineState
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMaxLineState();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCaretLineVisible: { // wxStyledTextCtrl::GetCaretLineVisible
+case wxStyledTextCtrl_GetCaretLineVisible: { // wxStyledTextCtrl::GetCaretLineVisible
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetCaretLineVisible();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetCaretLineVisible: { // wxStyledTextCtrl::SetCaretLineVisible
+case wxStyledTextCtrl_SetCaretLineVisible: { // wxStyledTextCtrl::SetCaretLineVisible
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCaretLineVisible((bool) *show);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCaretLineBackground: { // wxStyledTextCtrl::GetCaretLineBackground
+case wxStyledTextCtrl_GetCaretLineBackground: { // wxStyledTextCtrl::GetCaretLineBackground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetCaretLineBackground();
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetCaretLineBackground: { // wxStyledTextCtrl::SetCaretLineBackground
+case wxStyledTextCtrl_SetCaretLineBackground: { // wxStyledTextCtrl::SetCaretLineBackground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * backR = (int *) bp; bp += 4;
int * backG = (int *) bp; bp += 4;
@@ -27622,9 +27629,9 @@ case wxStyledTextCtrl_SetCaretLineBackground: { // wxStyledTextCtrl::SetCaretLin
wxColour back = wxColour(*backR,*backG,*backB,*backA);
if(!This) throw wxe_badarg(0);
This->SetCaretLineBackground(back);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompShow: { // wxStyledTextCtrl::AutoCompShow
+case wxStyledTextCtrl_AutoCompShow: { // wxStyledTextCtrl::AutoCompShow
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * lenEntered = (int *) bp; bp += 4;
int * itemListLen = (int *) bp; bp += 4;
@@ -27632,118 +27639,118 @@ case wxStyledTextCtrl_AutoCompShow: { // wxStyledTextCtrl::AutoCompShow
bp += *itemListLen+((8-((4+ *itemListLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->AutoCompShow((int) *lenEntered,itemList);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompCancel: { // wxStyledTextCtrl::AutoCompCancel
+case wxStyledTextCtrl_AutoCompCancel: { // wxStyledTextCtrl::AutoCompCancel
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompCancel();
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompActive: { // wxStyledTextCtrl::AutoCompActive
+case wxStyledTextCtrl_AutoCompActive: { // wxStyledTextCtrl::AutoCompActive
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AutoCompActive();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompPosStart: { // wxStyledTextCtrl::AutoCompPosStart
+case wxStyledTextCtrl_AutoCompPosStart: { // wxStyledTextCtrl::AutoCompPosStart
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->AutoCompPosStart();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompComplete: { // wxStyledTextCtrl::AutoCompComplete
+case wxStyledTextCtrl_AutoCompComplete: { // wxStyledTextCtrl::AutoCompComplete
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompComplete();
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompStops: { // wxStyledTextCtrl::AutoCompStops
+case wxStyledTextCtrl_AutoCompStops: { // wxStyledTextCtrl::AutoCompStops
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * characterSetLen = (int *) bp; bp += 4;
wxString characterSet = wxString(bp, wxConvUTF8);
bp += *characterSetLen+((8-((0+ *characterSetLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->AutoCompStops(characterSet);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetSeparator: { // wxStyledTextCtrl::AutoCompSetSeparator
+case wxStyledTextCtrl_AutoCompSetSeparator: { // wxStyledTextCtrl::AutoCompSetSeparator
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * separatorCharacter = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompSetSeparator((int) *separatorCharacter);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetSeparator: { // wxStyledTextCtrl::AutoCompGetSeparator
+case wxStyledTextCtrl_AutoCompGetSeparator: { // wxStyledTextCtrl::AutoCompGetSeparator
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->AutoCompGetSeparator();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSelect: { // wxStyledTextCtrl::AutoCompSelect
+case wxStyledTextCtrl_AutoCompSelect: { // wxStyledTextCtrl::AutoCompSelect
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->AutoCompSelect(text);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetCancelAtStart: { // wxStyledTextCtrl::AutoCompSetCancelAtStart
+case wxStyledTextCtrl_AutoCompSetCancelAtStart: { // wxStyledTextCtrl::AutoCompSetCancelAtStart
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * cancel = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompSetCancelAtStart((bool) *cancel);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetCancelAtStart: { // wxStyledTextCtrl::AutoCompGetCancelAtStart
+case wxStyledTextCtrl_AutoCompGetCancelAtStart: { // wxStyledTextCtrl::AutoCompGetCancelAtStart
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AutoCompGetCancelAtStart();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetFillUps: { // wxStyledTextCtrl::AutoCompSetFillUps
+case wxStyledTextCtrl_AutoCompSetFillUps: { // wxStyledTextCtrl::AutoCompSetFillUps
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * characterSetLen = (int *) bp; bp += 4;
wxString characterSet = wxString(bp, wxConvUTF8);
bp += *characterSetLen+((8-((0+ *characterSetLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->AutoCompSetFillUps(characterSet);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetChooseSingle: { // wxStyledTextCtrl::AutoCompSetChooseSingle
+case wxStyledTextCtrl_AutoCompSetChooseSingle: { // wxStyledTextCtrl::AutoCompSetChooseSingle
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * chooseSingle = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompSetChooseSingle((bool) *chooseSingle);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetChooseSingle: { // wxStyledTextCtrl::AutoCompGetChooseSingle
+case wxStyledTextCtrl_AutoCompGetChooseSingle: { // wxStyledTextCtrl::AutoCompGetChooseSingle
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AutoCompGetChooseSingle();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetIgnoreCase: { // wxStyledTextCtrl::AutoCompSetIgnoreCase
+case wxStyledTextCtrl_AutoCompSetIgnoreCase: { // wxStyledTextCtrl::AutoCompSetIgnoreCase
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * ignoreCase = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompSetIgnoreCase((bool) *ignoreCase);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetIgnoreCase: { // wxStyledTextCtrl::AutoCompGetIgnoreCase
+case wxStyledTextCtrl_AutoCompGetIgnoreCase: { // wxStyledTextCtrl::AutoCompGetIgnoreCase
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AutoCompGetIgnoreCase();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_UserListShow: { // wxStyledTextCtrl::UserListShow
+case wxStyledTextCtrl_UserListShow: { // wxStyledTextCtrl::UserListShow
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * listType = (int *) bp; bp += 4;
int * itemListLen = (int *) bp; bp += 4;
@@ -27751,287 +27758,287 @@ case wxStyledTextCtrl_UserListShow: { // wxStyledTextCtrl::UserListShow
bp += *itemListLen+((8-((4+ *itemListLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->UserListShow((int) *listType,itemList);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetAutoHide: { // wxStyledTextCtrl::AutoCompSetAutoHide
+case wxStyledTextCtrl_AutoCompSetAutoHide: { // wxStyledTextCtrl::AutoCompSetAutoHide
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * autoHide = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompSetAutoHide((bool) *autoHide);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetAutoHide: { // wxStyledTextCtrl::AutoCompGetAutoHide
+case wxStyledTextCtrl_AutoCompGetAutoHide: { // wxStyledTextCtrl::AutoCompGetAutoHide
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AutoCompGetAutoHide();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetDropRestOfWord: { // wxStyledTextCtrl::AutoCompSetDropRestOfWord
+case wxStyledTextCtrl_AutoCompSetDropRestOfWord: { // wxStyledTextCtrl::AutoCompSetDropRestOfWord
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * dropRestOfWord = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompSetDropRestOfWord((bool) *dropRestOfWord);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetDropRestOfWord: { // wxStyledTextCtrl::AutoCompGetDropRestOfWord
+case wxStyledTextCtrl_AutoCompGetDropRestOfWord: { // wxStyledTextCtrl::AutoCompGetDropRestOfWord
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AutoCompGetDropRestOfWord();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_RegisterImage: { // wxStyledTextCtrl::RegisterImage
+case wxStyledTextCtrl_RegisterImage: { // wxStyledTextCtrl::RegisterImage
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * type = (int *) bp; bp += 4;
wxBitmap *bmp = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->RegisterImage((int) *type,*bmp);
- break;
+ break;
}
-case wxStyledTextCtrl_ClearRegisteredImages: { // wxStyledTextCtrl::ClearRegisteredImages
+case wxStyledTextCtrl_ClearRegisteredImages: { // wxStyledTextCtrl::ClearRegisteredImages
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ClearRegisteredImages();
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetTypeSeparator: { // wxStyledTextCtrl::AutoCompGetTypeSeparator
+case wxStyledTextCtrl_AutoCompGetTypeSeparator: { // wxStyledTextCtrl::AutoCompGetTypeSeparator
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->AutoCompGetTypeSeparator();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetTypeSeparator: { // wxStyledTextCtrl::AutoCompSetTypeSeparator
+case wxStyledTextCtrl_AutoCompSetTypeSeparator: { // wxStyledTextCtrl::AutoCompSetTypeSeparator
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * separatorCharacter = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompSetTypeSeparator((int) *separatorCharacter);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetMaxWidth: { // wxStyledTextCtrl::AutoCompSetMaxWidth
+case wxStyledTextCtrl_AutoCompSetMaxWidth: { // wxStyledTextCtrl::AutoCompSetMaxWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * characterCount = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompSetMaxWidth((int) *characterCount);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetMaxWidth: { // wxStyledTextCtrl::AutoCompGetMaxWidth
+case wxStyledTextCtrl_AutoCompGetMaxWidth: { // wxStyledTextCtrl::AutoCompGetMaxWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->AutoCompGetMaxWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompSetMaxHeight: { // wxStyledTextCtrl::AutoCompSetMaxHeight
+case wxStyledTextCtrl_AutoCompSetMaxHeight: { // wxStyledTextCtrl::AutoCompSetMaxHeight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * rowCount = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->AutoCompSetMaxHeight((int) *rowCount);
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetMaxHeight: { // wxStyledTextCtrl::AutoCompGetMaxHeight
+case wxStyledTextCtrl_AutoCompGetMaxHeight: { // wxStyledTextCtrl::AutoCompGetMaxHeight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->AutoCompGetMaxHeight();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetIndent: { // wxStyledTextCtrl::SetIndent
+case wxStyledTextCtrl_SetIndent: { // wxStyledTextCtrl::SetIndent
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * indentSize = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetIndent((int) *indentSize);
- break;
+ break;
}
-case wxStyledTextCtrl_GetIndent: { // wxStyledTextCtrl::GetIndent
+case wxStyledTextCtrl_GetIndent: { // wxStyledTextCtrl::GetIndent
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetIndent();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetUseTabs: { // wxStyledTextCtrl::SetUseTabs
+case wxStyledTextCtrl_SetUseTabs: { // wxStyledTextCtrl::SetUseTabs
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useTabs = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetUseTabs((bool) *useTabs);
- break;
+ break;
}
-case wxStyledTextCtrl_GetUseTabs: { // wxStyledTextCtrl::GetUseTabs
+case wxStyledTextCtrl_GetUseTabs: { // wxStyledTextCtrl::GetUseTabs
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetUseTabs();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetLineIndentation: { // wxStyledTextCtrl::SetLineIndentation
+case wxStyledTextCtrl_SetLineIndentation: { // wxStyledTextCtrl::SetLineIndentation
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
int * indentSize = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLineIndentation((int) *line,(int) *indentSize);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLineIndentation: { // wxStyledTextCtrl::GetLineIndentation
+case wxStyledTextCtrl_GetLineIndentation: { // wxStyledTextCtrl::GetLineIndentation
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLineIndentation((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLineIndentPosition: { // wxStyledTextCtrl::GetLineIndentPosition
+case wxStyledTextCtrl_GetLineIndentPosition: { // wxStyledTextCtrl::GetLineIndentPosition
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLineIndentPosition((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetColumn: { // wxStyledTextCtrl::GetColumn
+case wxStyledTextCtrl_GetColumn: { // wxStyledTextCtrl::GetColumn
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetColumn((int) *pos);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetUseHorizontalScrollBar: { // wxStyledTextCtrl::SetUseHorizontalScrollBar
+case wxStyledTextCtrl_SetUseHorizontalScrollBar: { // wxStyledTextCtrl::SetUseHorizontalScrollBar
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetUseHorizontalScrollBar((bool) *show);
- break;
+ break;
}
-case wxStyledTextCtrl_GetUseHorizontalScrollBar: { // wxStyledTextCtrl::GetUseHorizontalScrollBar
+case wxStyledTextCtrl_GetUseHorizontalScrollBar: { // wxStyledTextCtrl::GetUseHorizontalScrollBar
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetUseHorizontalScrollBar();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetIndentationGuides: { // wxStyledTextCtrl::SetIndentationGuides
+case wxStyledTextCtrl_SetIndentationGuides: { // wxStyledTextCtrl::SetIndentationGuides
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetIndentationGuides((bool) *show);
- break;
+ break;
}
-case wxStyledTextCtrl_GetIndentationGuides: { // wxStyledTextCtrl::GetIndentationGuides
+case wxStyledTextCtrl_GetIndentationGuides: { // wxStyledTextCtrl::GetIndentationGuides
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetIndentationGuides();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetHighlightGuide: { // wxStyledTextCtrl::SetHighlightGuide
+case wxStyledTextCtrl_SetHighlightGuide: { // wxStyledTextCtrl::SetHighlightGuide
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * column = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetHighlightGuide((int) *column);
- break;
+ break;
}
-case wxStyledTextCtrl_GetHighlightGuide: { // wxStyledTextCtrl::GetHighlightGuide
+case wxStyledTextCtrl_GetHighlightGuide: { // wxStyledTextCtrl::GetHighlightGuide
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetHighlightGuide();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLineEndPosition: { // wxStyledTextCtrl::GetLineEndPosition
+case wxStyledTextCtrl_GetLineEndPosition: { // wxStyledTextCtrl::GetLineEndPosition
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLineEndPosition((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCodePage: { // wxStyledTextCtrl::GetCodePage
+case wxStyledTextCtrl_GetCodePage: { // wxStyledTextCtrl::GetCodePage
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCodePage();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCaretForeground: { // wxStyledTextCtrl::GetCaretForeground
+case wxStyledTextCtrl_GetCaretForeground: { // wxStyledTextCtrl::GetCaretForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetCaretForeground();
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetReadOnly: { // wxStyledTextCtrl::GetReadOnly
+case wxStyledTextCtrl_GetReadOnly: { // wxStyledTextCtrl::GetReadOnly
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetReadOnly();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetCurrentPos: { // wxStyledTextCtrl::SetCurrentPos
+case wxStyledTextCtrl_SetCurrentPos: { // wxStyledTextCtrl::SetCurrentPos
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCurrentPos((int) *pos);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSelectionStart: { // wxStyledTextCtrl::SetSelectionStart
+case wxStyledTextCtrl_SetSelectionStart: { // wxStyledTextCtrl::SetSelectionStart
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelectionStart((int) *pos);
- break;
+ break;
}
-case wxStyledTextCtrl_GetSelectionStart: { // wxStyledTextCtrl::GetSelectionStart
+case wxStyledTextCtrl_GetSelectionStart: { // wxStyledTextCtrl::GetSelectionStart
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelectionStart();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSelectionEnd: { // wxStyledTextCtrl::SetSelectionEnd
+case wxStyledTextCtrl_SetSelectionEnd: { // wxStyledTextCtrl::SetSelectionEnd
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelectionEnd((int) *pos);
- break;
+ break;
}
-case wxStyledTextCtrl_GetSelectionEnd: { // wxStyledTextCtrl::GetSelectionEnd
+case wxStyledTextCtrl_GetSelectionEnd: { // wxStyledTextCtrl::GetSelectionEnd
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelectionEnd();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetPrintMagnification: { // wxStyledTextCtrl::SetPrintMagnification
+case wxStyledTextCtrl_SetPrintMagnification: { // wxStyledTextCtrl::SetPrintMagnification
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * magnification = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPrintMagnification((int) *magnification);
- break;
+ break;
}
-case wxStyledTextCtrl_GetPrintMagnification: { // wxStyledTextCtrl::GetPrintMagnification
+case wxStyledTextCtrl_GetPrintMagnification: { // wxStyledTextCtrl::GetPrintMagnification
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPrintMagnification();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetPrintColourMode: { // wxStyledTextCtrl::SetPrintColourMode
+case wxStyledTextCtrl_SetPrintColourMode: { // wxStyledTextCtrl::SetPrintColourMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * mode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPrintColourMode((int) *mode);
- break;
+ break;
}
-case wxStyledTextCtrl_GetPrintColourMode: { // wxStyledTextCtrl::GetPrintColourMode
+case wxStyledTextCtrl_GetPrintColourMode: { // wxStyledTextCtrl::GetPrintColourMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPrintColourMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_FindText: { // wxStyledTextCtrl::FindText
+case wxStyledTextCtrl_FindText: { // wxStyledTextCtrl::FindText
int flags=0;
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * minPos = (int *) bp; bp += 4;
@@ -28039,17 +28046,17 @@ case wxStyledTextCtrl_FindText: { // wxStyledTextCtrl::FindText
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
flags = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
int Result = This->FindText((int) *minPos,(int) *maxPos,text,flags);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_FormatRange: { // wxStyledTextCtrl::FormatRange
+case wxStyledTextCtrl_FormatRange: { // wxStyledTextCtrl::FormatRange
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * doDraw = (bool *) bp; bp += 4;
int * startPos = (int *) bp; bp += 4;
@@ -28069,265 +28076,265 @@ case wxStyledTextCtrl_FormatRange: { // wxStyledTextCtrl::FormatRange
if(!This) throw wxe_badarg(0);
int Result = This->FormatRange((bool) *doDraw,(int) *startPos,(int) *endPos,draw,target,renderRect,pageRect);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetFirstVisibleLine: { // wxStyledTextCtrl::GetFirstVisibleLine
+case wxStyledTextCtrl_GetFirstVisibleLine: { // wxStyledTextCtrl::GetFirstVisibleLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFirstVisibleLine();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLine: { // wxStyledTextCtrl::GetLine
+case wxStyledTextCtrl_GetLine: { // wxStyledTextCtrl::GetLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetLine((int) *line);
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLineCount: { // wxStyledTextCtrl::GetLineCount
+case wxStyledTextCtrl_GetLineCount: { // wxStyledTextCtrl::GetLineCount
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLineCount();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetMarginLeft: { // wxStyledTextCtrl::SetMarginLeft
+case wxStyledTextCtrl_SetMarginLeft: { // wxStyledTextCtrl::SetMarginLeft
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pixelWidth = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMarginLeft((int) *pixelWidth);
- break;
+ break;
}
-case wxStyledTextCtrl_GetMarginLeft: { // wxStyledTextCtrl::GetMarginLeft
+case wxStyledTextCtrl_GetMarginLeft: { // wxStyledTextCtrl::GetMarginLeft
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMarginLeft();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetMarginRight: { // wxStyledTextCtrl::SetMarginRight
+case wxStyledTextCtrl_SetMarginRight: { // wxStyledTextCtrl::SetMarginRight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pixelWidth = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMarginRight((int) *pixelWidth);
- break;
+ break;
}
-case wxStyledTextCtrl_GetMarginRight: { // wxStyledTextCtrl::GetMarginRight
+case wxStyledTextCtrl_GetMarginRight: { // wxStyledTextCtrl::GetMarginRight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMarginRight();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetModify: { // wxStyledTextCtrl::GetModify
+case wxStyledTextCtrl_GetModify: { // wxStyledTextCtrl::GetModify
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetModify();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSelection: { // wxStyledTextCtrl::SetSelection
+case wxStyledTextCtrl_SetSelection: { // wxStyledTextCtrl::SetSelection
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * start = (int *) bp; bp += 4;
int * end = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((int) *start,(int) *end);
- break;
+ break;
}
-case wxStyledTextCtrl_GetSelectedText: { // wxStyledTextCtrl::GetSelectedText
+case wxStyledTextCtrl_GetSelectedText: { // wxStyledTextCtrl::GetSelectedText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetSelectedText();
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetTextRange: { // wxStyledTextCtrl::GetTextRange
+case wxStyledTextCtrl_GetTextRange: { // wxStyledTextCtrl::GetTextRange
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * startPos = (int *) bp; bp += 4;
int * endPos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetTextRange((int) *startPos,(int) *endPos);
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_HideSelection: { // wxStyledTextCtrl::HideSelection
+case wxStyledTextCtrl_HideSelection: { // wxStyledTextCtrl::HideSelection
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * normal = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->HideSelection((bool) *normal);
- break;
+ break;
}
-case wxStyledTextCtrl_LineFromPosition: { // wxStyledTextCtrl::LineFromPosition
+case wxStyledTextCtrl_LineFromPosition: { // wxStyledTextCtrl::LineFromPosition
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->LineFromPosition((int) *pos);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_PositionFromLine: { // wxStyledTextCtrl::PositionFromLine
+case wxStyledTextCtrl_PositionFromLine: { // wxStyledTextCtrl::PositionFromLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->PositionFromLine((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_LineScroll: { // wxStyledTextCtrl::LineScroll
+case wxStyledTextCtrl_LineScroll: { // wxStyledTextCtrl::LineScroll
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * columns = (int *) bp; bp += 4;
int * lines = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->LineScroll((int) *columns,(int) *lines);
- break;
+ break;
}
-case wxStyledTextCtrl_EnsureCaretVisible: { // wxStyledTextCtrl::EnsureCaretVisible
+case wxStyledTextCtrl_EnsureCaretVisible: { // wxStyledTextCtrl::EnsureCaretVisible
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->EnsureCaretVisible();
- break;
+ break;
}
-case wxStyledTextCtrl_ReplaceSelection: { // wxStyledTextCtrl::ReplaceSelection
+case wxStyledTextCtrl_ReplaceSelection: { // wxStyledTextCtrl::ReplaceSelection
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->ReplaceSelection(text);
- break;
+ break;
}
-case wxStyledTextCtrl_SetReadOnly: { // wxStyledTextCtrl::SetReadOnly
+case wxStyledTextCtrl_SetReadOnly: { // wxStyledTextCtrl::SetReadOnly
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * readOnly = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetReadOnly((bool) *readOnly);
- break;
+ break;
}
-case wxStyledTextCtrl_CanPaste: { // wxStyledTextCtrl::CanPaste
+case wxStyledTextCtrl_CanPaste: { // wxStyledTextCtrl::CanPaste
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanPaste();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_CanUndo: { // wxStyledTextCtrl::CanUndo
+case wxStyledTextCtrl_CanUndo: { // wxStyledTextCtrl::CanUndo
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanUndo();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_EmptyUndoBuffer: { // wxStyledTextCtrl::EmptyUndoBuffer
+case wxStyledTextCtrl_EmptyUndoBuffer: { // wxStyledTextCtrl::EmptyUndoBuffer
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->EmptyUndoBuffer();
- break;
+ break;
}
-case wxStyledTextCtrl_Undo: { // wxStyledTextCtrl::Undo
+case wxStyledTextCtrl_Undo: { // wxStyledTextCtrl::Undo
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Undo();
- break;
+ break;
}
-case wxStyledTextCtrl_Cut: { // wxStyledTextCtrl::Cut
+case wxStyledTextCtrl_Cut: { // wxStyledTextCtrl::Cut
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Cut();
- break;
+ break;
}
-case wxStyledTextCtrl_Copy: { // wxStyledTextCtrl::Copy
+case wxStyledTextCtrl_Copy: { // wxStyledTextCtrl::Copy
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Copy();
- break;
+ break;
}
-case wxStyledTextCtrl_Paste: { // wxStyledTextCtrl::Paste
+case wxStyledTextCtrl_Paste: { // wxStyledTextCtrl::Paste
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Paste();
- break;
+ break;
}
-case wxStyledTextCtrl_Clear: { // wxStyledTextCtrl::Clear
+case wxStyledTextCtrl_Clear: { // wxStyledTextCtrl::Clear
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Clear();
- break;
+ break;
}
-case wxStyledTextCtrl_SetText: { // wxStyledTextCtrl::SetText
+case wxStyledTextCtrl_SetText: { // wxStyledTextCtrl::SetText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetText(text);
- break;
+ break;
}
-case wxStyledTextCtrl_GetText: { // wxStyledTextCtrl::GetText
+case wxStyledTextCtrl_GetText: { // wxStyledTextCtrl::GetText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetText();
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetTextLength: { // wxStyledTextCtrl::GetTextLength
+case wxStyledTextCtrl_GetTextLength: { // wxStyledTextCtrl::GetTextLength
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetTextLength();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetOvertype: { // wxStyledTextCtrl::GetOvertype
+case wxStyledTextCtrl_GetOvertype: { // wxStyledTextCtrl::GetOvertype
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetOvertype();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetCaretWidth: { // wxStyledTextCtrl::SetCaretWidth
+case wxStyledTextCtrl_SetCaretWidth: { // wxStyledTextCtrl::SetCaretWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pixelWidth = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCaretWidth((int) *pixelWidth);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCaretWidth: { // wxStyledTextCtrl::GetCaretWidth
+case wxStyledTextCtrl_GetCaretWidth: { // wxStyledTextCtrl::GetCaretWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCaretWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetTargetStart: { // wxStyledTextCtrl::SetTargetStart
+case wxStyledTextCtrl_SetTargetStart: { // wxStyledTextCtrl::SetTargetStart
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetTargetStart((int) *pos);
- break;
+ break;
}
-case wxStyledTextCtrl_GetTargetStart: { // wxStyledTextCtrl::GetTargetStart
+case wxStyledTextCtrl_GetTargetStart: { // wxStyledTextCtrl::GetTargetStart
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetTargetStart();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetTargetEnd: { // wxStyledTextCtrl::SetTargetEnd
+case wxStyledTextCtrl_SetTargetEnd: { // wxStyledTextCtrl::SetTargetEnd
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetTargetEnd((int) *pos);
- break;
+ break;
}
-case wxStyledTextCtrl_GetTargetEnd: { // wxStyledTextCtrl::GetTargetEnd
+case wxStyledTextCtrl_GetTargetEnd: { // wxStyledTextCtrl::GetTargetEnd
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetTargetEnd();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_ReplaceTarget: { // wxStyledTextCtrl::ReplaceTarget
+case wxStyledTextCtrl_ReplaceTarget: { // wxStyledTextCtrl::ReplaceTarget
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
@@ -28335,9 +28342,9 @@ case wxStyledTextCtrl_ReplaceTarget: { // wxStyledTextCtrl::ReplaceTarget
if(!This) throw wxe_badarg(0);
int Result = This->ReplaceTarget(text);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SearchInTarget: { // wxStyledTextCtrl::SearchInTarget
+case wxStyledTextCtrl_SearchInTarget: { // wxStyledTextCtrl::SearchInTarget
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
@@ -28345,23 +28352,23 @@ case wxStyledTextCtrl_SearchInTarget: { // wxStyledTextCtrl::SearchInTarget
if(!This) throw wxe_badarg(0);
int Result = This->SearchInTarget(text);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSearchFlags: { // wxStyledTextCtrl::SetSearchFlags
+case wxStyledTextCtrl_SetSearchFlags: { // wxStyledTextCtrl::SetSearchFlags
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * flags = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSearchFlags((int) *flags);
- break;
+ break;
}
-case wxStyledTextCtrl_GetSearchFlags: { // wxStyledTextCtrl::GetSearchFlags
+case wxStyledTextCtrl_GetSearchFlags: { // wxStyledTextCtrl::GetSearchFlags
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSearchFlags();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_CallTipShow: { // wxStyledTextCtrl::CallTipShow
+case wxStyledTextCtrl_CallTipShow: { // wxStyledTextCtrl::CallTipShow
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
int * definitionLen = (int *) bp; bp += 4;
@@ -28369,37 +28376,37 @@ case wxStyledTextCtrl_CallTipShow: { // wxStyledTextCtrl::CallTipShow
bp += *definitionLen+((8-((4+ *definitionLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->CallTipShow((int) *pos,definition);
- break;
+ break;
}
-case wxStyledTextCtrl_CallTipCancel: { // wxStyledTextCtrl::CallTipCancel
+case wxStyledTextCtrl_CallTipCancel: { // wxStyledTextCtrl::CallTipCancel
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CallTipCancel();
- break;
+ break;
}
-case wxStyledTextCtrl_CallTipActive: { // wxStyledTextCtrl::CallTipActive
+case wxStyledTextCtrl_CallTipActive: { // wxStyledTextCtrl::CallTipActive
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CallTipActive();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_CallTipPosAtStart: { // wxStyledTextCtrl::CallTipPosAtStart
+case wxStyledTextCtrl_CallTipPosAtStart: { // wxStyledTextCtrl::CallTipPosAtStart
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->CallTipPosAtStart();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_CallTipSetHighlight: { // wxStyledTextCtrl::CallTipSetHighlight
+case wxStyledTextCtrl_CallTipSetHighlight: { // wxStyledTextCtrl::CallTipSetHighlight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * start = (int *) bp; bp += 4;
int * end = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->CallTipSetHighlight((int) *start,(int) *end);
- break;
+ break;
}
-case wxStyledTextCtrl_CallTipSetBackground: { // wxStyledTextCtrl::CallTipSetBackground
+case wxStyledTextCtrl_CallTipSetBackground: { // wxStyledTextCtrl::CallTipSetBackground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * backR = (int *) bp; bp += 4;
int * backG = (int *) bp; bp += 4;
@@ -28408,9 +28415,9 @@ case wxStyledTextCtrl_CallTipSetBackground: { // wxStyledTextCtrl::CallTipSetBac
wxColour back = wxColour(*backR,*backG,*backB,*backA);
if(!This) throw wxe_badarg(0);
This->CallTipSetBackground(back);
- break;
+ break;
}
-case wxStyledTextCtrl_CallTipSetForeground: { // wxStyledTextCtrl::CallTipSetForeground
+case wxStyledTextCtrl_CallTipSetForeground: { // wxStyledTextCtrl::CallTipSetForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * foreR = (int *) bp; bp += 4;
int * foreG = (int *) bp; bp += 4;
@@ -28419,9 +28426,9 @@ case wxStyledTextCtrl_CallTipSetForeground: { // wxStyledTextCtrl::CallTipSetFor
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->CallTipSetForeground(fore);
- break;
+ break;
}
-case wxStyledTextCtrl_CallTipSetForegroundHighlight: { // wxStyledTextCtrl::CallTipSetForegroundHighlight
+case wxStyledTextCtrl_CallTipSetForegroundHighlight: { // wxStyledTextCtrl::CallTipSetForegroundHighlight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * foreR = (int *) bp; bp += 4;
int * foreG = (int *) bp; bp += 4;
@@ -28430,285 +28437,285 @@ case wxStyledTextCtrl_CallTipSetForegroundHighlight: { // wxStyledTextCtrl::Call
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->CallTipSetForegroundHighlight(fore);
- break;
+ break;
}
-case wxStyledTextCtrl_CallTipUseStyle: { // wxStyledTextCtrl::CallTipUseStyle
+case wxStyledTextCtrl_CallTipUseStyle: { // wxStyledTextCtrl::CallTipUseStyle
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * tabSize = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->CallTipUseStyle((int) *tabSize);
- break;
+ break;
}
-case wxStyledTextCtrl_VisibleFromDocLine: { // wxStyledTextCtrl::VisibleFromDocLine
+case wxStyledTextCtrl_VisibleFromDocLine: { // wxStyledTextCtrl::VisibleFromDocLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->VisibleFromDocLine((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_DocLineFromVisible: { // wxStyledTextCtrl::DocLineFromVisible
+case wxStyledTextCtrl_DocLineFromVisible: { // wxStyledTextCtrl::DocLineFromVisible
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * lineDisplay = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->DocLineFromVisible((int) *lineDisplay);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_WrapCount: { // wxStyledTextCtrl::WrapCount
+case wxStyledTextCtrl_WrapCount: { // wxStyledTextCtrl::WrapCount
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->WrapCount((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetFoldLevel: { // wxStyledTextCtrl::SetFoldLevel
+case wxStyledTextCtrl_SetFoldLevel: { // wxStyledTextCtrl::SetFoldLevel
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
int * level = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFoldLevel((int) *line,(int) *level);
- break;
+ break;
}
-case wxStyledTextCtrl_GetFoldLevel: { // wxStyledTextCtrl::GetFoldLevel
+case wxStyledTextCtrl_GetFoldLevel: { // wxStyledTextCtrl::GetFoldLevel
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFoldLevel((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLastChild: { // wxStyledTextCtrl::GetLastChild
+case wxStyledTextCtrl_GetLastChild: { // wxStyledTextCtrl::GetLastChild
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
int * level = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLastChild((int) *line,(int) *level);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetFoldParent: { // wxStyledTextCtrl::GetFoldParent
+case wxStyledTextCtrl_GetFoldParent: { // wxStyledTextCtrl::GetFoldParent
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetFoldParent((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_ShowLines: { // wxStyledTextCtrl::ShowLines
+case wxStyledTextCtrl_ShowLines: { // wxStyledTextCtrl::ShowLines
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * lineStart = (int *) bp; bp += 4;
int * lineEnd = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ShowLines((int) *lineStart,(int) *lineEnd);
- break;
+ break;
}
-case wxStyledTextCtrl_HideLines: { // wxStyledTextCtrl::HideLines
+case wxStyledTextCtrl_HideLines: { // wxStyledTextCtrl::HideLines
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * lineStart = (int *) bp; bp += 4;
int * lineEnd = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->HideLines((int) *lineStart,(int) *lineEnd);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLineVisible: { // wxStyledTextCtrl::GetLineVisible
+case wxStyledTextCtrl_GetLineVisible: { // wxStyledTextCtrl::GetLineVisible
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetLineVisible((int) *line);
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetFoldExpanded: { // wxStyledTextCtrl::SetFoldExpanded
+case wxStyledTextCtrl_SetFoldExpanded: { // wxStyledTextCtrl::SetFoldExpanded
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
bool * expanded = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFoldExpanded((int) *line,(bool) *expanded);
- break;
+ break;
}
-case wxStyledTextCtrl_GetFoldExpanded: { // wxStyledTextCtrl::GetFoldExpanded
+case wxStyledTextCtrl_GetFoldExpanded: { // wxStyledTextCtrl::GetFoldExpanded
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetFoldExpanded((int) *line);
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_ToggleFold: { // wxStyledTextCtrl::ToggleFold
+case wxStyledTextCtrl_ToggleFold: { // wxStyledTextCtrl::ToggleFold
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ToggleFold((int) *line);
- break;
+ break;
}
-case wxStyledTextCtrl_EnsureVisible: { // wxStyledTextCtrl::EnsureVisible
+case wxStyledTextCtrl_EnsureVisible: { // wxStyledTextCtrl::EnsureVisible
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnsureVisible((int) *line);
- break;
+ break;
}
-case wxStyledTextCtrl_SetFoldFlags: { // wxStyledTextCtrl::SetFoldFlags
+case wxStyledTextCtrl_SetFoldFlags: { // wxStyledTextCtrl::SetFoldFlags
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * flags = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetFoldFlags((int) *flags);
- break;
+ break;
}
-case wxStyledTextCtrl_EnsureVisibleEnforcePolicy: { // wxStyledTextCtrl::EnsureVisibleEnforcePolicy
+case wxStyledTextCtrl_EnsureVisibleEnforcePolicy: { // wxStyledTextCtrl::EnsureVisibleEnforcePolicy
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->EnsureVisibleEnforcePolicy((int) *line);
- break;
+ break;
}
-case wxStyledTextCtrl_SetTabIndents: { // wxStyledTextCtrl::SetTabIndents
+case wxStyledTextCtrl_SetTabIndents: { // wxStyledTextCtrl::SetTabIndents
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * tabIndents = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetTabIndents((bool) *tabIndents);
- break;
+ break;
}
-case wxStyledTextCtrl_GetTabIndents: { // wxStyledTextCtrl::GetTabIndents
+case wxStyledTextCtrl_GetTabIndents: { // wxStyledTextCtrl::GetTabIndents
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetTabIndents();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetBackSpaceUnIndents: { // wxStyledTextCtrl::SetBackSpaceUnIndents
+case wxStyledTextCtrl_SetBackSpaceUnIndents: { // wxStyledTextCtrl::SetBackSpaceUnIndents
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * bsUnIndents = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBackSpaceUnIndents((bool) *bsUnIndents);
- break;
+ break;
}
-case wxStyledTextCtrl_GetBackSpaceUnIndents: { // wxStyledTextCtrl::GetBackSpaceUnIndents
+case wxStyledTextCtrl_GetBackSpaceUnIndents: { // wxStyledTextCtrl::GetBackSpaceUnIndents
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetBackSpaceUnIndents();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetMouseDwellTime: { // wxStyledTextCtrl::SetMouseDwellTime
+case wxStyledTextCtrl_SetMouseDwellTime: { // wxStyledTextCtrl::SetMouseDwellTime
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * periodMilliseconds = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMouseDwellTime((int) *periodMilliseconds);
- break;
+ break;
}
-case wxStyledTextCtrl_GetMouseDwellTime: { // wxStyledTextCtrl::GetMouseDwellTime
+case wxStyledTextCtrl_GetMouseDwellTime: { // wxStyledTextCtrl::GetMouseDwellTime
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMouseDwellTime();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_WordStartPosition: { // wxStyledTextCtrl::WordStartPosition
+case wxStyledTextCtrl_WordStartPosition: { // wxStyledTextCtrl::WordStartPosition
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
bool * onlyWordCharacters = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->WordStartPosition((int) *pos,(bool) *onlyWordCharacters);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_WordEndPosition: { // wxStyledTextCtrl::WordEndPosition
+case wxStyledTextCtrl_WordEndPosition: { // wxStyledTextCtrl::WordEndPosition
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
bool * onlyWordCharacters = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->WordEndPosition((int) *pos,(bool) *onlyWordCharacters);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetWrapMode: { // wxStyledTextCtrl::SetWrapMode
+case wxStyledTextCtrl_SetWrapMode: { // wxStyledTextCtrl::SetWrapMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * mode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWrapMode((int) *mode);
- break;
+ break;
}
-case wxStyledTextCtrl_GetWrapMode: { // wxStyledTextCtrl::GetWrapMode
+case wxStyledTextCtrl_GetWrapMode: { // wxStyledTextCtrl::GetWrapMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWrapMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetWrapVisualFlags: { // wxStyledTextCtrl::SetWrapVisualFlags
+case wxStyledTextCtrl_SetWrapVisualFlags: { // wxStyledTextCtrl::SetWrapVisualFlags
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * wrapVisualFlags = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWrapVisualFlags((int) *wrapVisualFlags);
- break;
+ break;
}
-case wxStyledTextCtrl_GetWrapVisualFlags: { // wxStyledTextCtrl::GetWrapVisualFlags
+case wxStyledTextCtrl_GetWrapVisualFlags: { // wxStyledTextCtrl::GetWrapVisualFlags
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWrapVisualFlags();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetWrapVisualFlagsLocation: { // wxStyledTextCtrl::SetWrapVisualFlagsLocation
+case wxStyledTextCtrl_SetWrapVisualFlagsLocation: { // wxStyledTextCtrl::SetWrapVisualFlagsLocation
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * wrapVisualFlagsLocation = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWrapVisualFlagsLocation((int) *wrapVisualFlagsLocation);
- break;
+ break;
}
-case wxStyledTextCtrl_GetWrapVisualFlagsLocation: { // wxStyledTextCtrl::GetWrapVisualFlagsLocation
+case wxStyledTextCtrl_GetWrapVisualFlagsLocation: { // wxStyledTextCtrl::GetWrapVisualFlagsLocation
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWrapVisualFlagsLocation();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetWrapStartIndent: { // wxStyledTextCtrl::SetWrapStartIndent
+case wxStyledTextCtrl_SetWrapStartIndent: { // wxStyledTextCtrl::SetWrapStartIndent
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * indent = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetWrapStartIndent((int) *indent);
- break;
+ break;
}
-case wxStyledTextCtrl_GetWrapStartIndent: { // wxStyledTextCtrl::GetWrapStartIndent
+case wxStyledTextCtrl_GetWrapStartIndent: { // wxStyledTextCtrl::GetWrapStartIndent
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetWrapStartIndent();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetLayoutCache: { // wxStyledTextCtrl::SetLayoutCache
+case wxStyledTextCtrl_SetLayoutCache: { // wxStyledTextCtrl::SetLayoutCache
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * mode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLayoutCache((int) *mode);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLayoutCache: { // wxStyledTextCtrl::GetLayoutCache
+case wxStyledTextCtrl_GetLayoutCache: { // wxStyledTextCtrl::GetLayoutCache
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLayoutCache();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetScrollWidth: { // wxStyledTextCtrl::SetScrollWidth
+case wxStyledTextCtrl_SetScrollWidth: { // wxStyledTextCtrl::SetScrollWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pixelWidth = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetScrollWidth((int) *pixelWidth);
- break;
+ break;
}
-case wxStyledTextCtrl_GetScrollWidth: { // wxStyledTextCtrl::GetScrollWidth
+case wxStyledTextCtrl_GetScrollWidth: { // wxStyledTextCtrl::GetScrollWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetScrollWidth();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_TextWidth: { // wxStyledTextCtrl::TextWidth
+case wxStyledTextCtrl_TextWidth: { // wxStyledTextCtrl::TextWidth
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
@@ -28717,80 +28724,80 @@ case wxStyledTextCtrl_TextWidth: { // wxStyledTextCtrl::TextWidth
if(!This) throw wxe_badarg(0);
int Result = This->TextWidth((int) *style,text);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetEndAtLastLine: { // wxStyledTextCtrl::GetEndAtLastLine
+case wxStyledTextCtrl_GetEndAtLastLine: { // wxStyledTextCtrl::GetEndAtLastLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetEndAtLastLine();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_TextHeight: { // wxStyledTextCtrl::TextHeight
+case wxStyledTextCtrl_TextHeight: { // wxStyledTextCtrl::TextHeight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->TextHeight((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetUseVerticalScrollBar: { // wxStyledTextCtrl::SetUseVerticalScrollBar
+case wxStyledTextCtrl_SetUseVerticalScrollBar: { // wxStyledTextCtrl::SetUseVerticalScrollBar
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * show = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetUseVerticalScrollBar((bool) *show);
- break;
+ break;
}
-case wxStyledTextCtrl_GetUseVerticalScrollBar: { // wxStyledTextCtrl::GetUseVerticalScrollBar
+case wxStyledTextCtrl_GetUseVerticalScrollBar: { // wxStyledTextCtrl::GetUseVerticalScrollBar
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetUseVerticalScrollBar();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AppendText: { // wxStyledTextCtrl::AppendText
+case wxStyledTextCtrl_AppendText: { // wxStyledTextCtrl::AppendText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->AppendText(text);
- break;
+ break;
}
-case wxStyledTextCtrl_GetTwoPhaseDraw: { // wxStyledTextCtrl::GetTwoPhaseDraw
+case wxStyledTextCtrl_GetTwoPhaseDraw: { // wxStyledTextCtrl::GetTwoPhaseDraw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetTwoPhaseDraw();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetTwoPhaseDraw: { // wxStyledTextCtrl::SetTwoPhaseDraw
+case wxStyledTextCtrl_SetTwoPhaseDraw: { // wxStyledTextCtrl::SetTwoPhaseDraw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * twoPhase = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetTwoPhaseDraw((bool) *twoPhase);
- break;
+ break;
}
-case wxStyledTextCtrl_TargetFromSelection: { // wxStyledTextCtrl::TargetFromSelection
+case wxStyledTextCtrl_TargetFromSelection: { // wxStyledTextCtrl::TargetFromSelection
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->TargetFromSelection();
- break;
+ break;
}
-case wxStyledTextCtrl_LinesJoin: { // wxStyledTextCtrl::LinesJoin
+case wxStyledTextCtrl_LinesJoin: { // wxStyledTextCtrl::LinesJoin
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LinesJoin();
- break;
+ break;
}
-case wxStyledTextCtrl_LinesSplit: { // wxStyledTextCtrl::LinesSplit
+case wxStyledTextCtrl_LinesSplit: { // wxStyledTextCtrl::LinesSplit
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pixelWidth = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->LinesSplit((int) *pixelWidth);
- break;
+ break;
}
-case wxStyledTextCtrl_SetFoldMarginColour: { // wxStyledTextCtrl::SetFoldMarginColour
+case wxStyledTextCtrl_SetFoldMarginColour: { // wxStyledTextCtrl::SetFoldMarginColour
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useSetting = (bool *) bp; bp += 4;
int * backR = (int *) bp; bp += 4;
@@ -28800,9 +28807,9 @@ case wxStyledTextCtrl_SetFoldMarginColour: { // wxStyledTextCtrl::SetFoldMarginC
wxColour back = wxColour(*backR,*backG,*backB,*backA);
if(!This) throw wxe_badarg(0);
This->SetFoldMarginColour((bool) *useSetting,back);
- break;
+ break;
}
-case wxStyledTextCtrl_SetFoldMarginHiColour: { // wxStyledTextCtrl::SetFoldMarginHiColour
+case wxStyledTextCtrl_SetFoldMarginHiColour: { // wxStyledTextCtrl::SetFoldMarginHiColour
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useSetting = (bool *) bp; bp += 4;
int * foreR = (int *) bp; bp += 4;
@@ -28812,431 +28819,431 @@ case wxStyledTextCtrl_SetFoldMarginHiColour: { // wxStyledTextCtrl::SetFoldMargi
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->SetFoldMarginHiColour((bool) *useSetting,fore);
- break;
+ break;
}
-case wxStyledTextCtrl_LineDown: { // wxStyledTextCtrl::LineDown
+case wxStyledTextCtrl_LineDown: { // wxStyledTextCtrl::LineDown
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineDown();
- break;
+ break;
}
-case wxStyledTextCtrl_LineDownExtend: { // wxStyledTextCtrl::LineDownExtend
+case wxStyledTextCtrl_LineDownExtend: { // wxStyledTextCtrl::LineDownExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineDownExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_LineUp: { // wxStyledTextCtrl::LineUp
+case wxStyledTextCtrl_LineUp: { // wxStyledTextCtrl::LineUp
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineUp();
- break;
+ break;
}
-case wxStyledTextCtrl_LineUpExtend: { // wxStyledTextCtrl::LineUpExtend
+case wxStyledTextCtrl_LineUpExtend: { // wxStyledTextCtrl::LineUpExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineUpExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_CharLeft: { // wxStyledTextCtrl::CharLeft
+case wxStyledTextCtrl_CharLeft: { // wxStyledTextCtrl::CharLeft
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CharLeft();
- break;
+ break;
}
-case wxStyledTextCtrl_CharLeftExtend: { // wxStyledTextCtrl::CharLeftExtend
+case wxStyledTextCtrl_CharLeftExtend: { // wxStyledTextCtrl::CharLeftExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CharLeftExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_CharRight: { // wxStyledTextCtrl::CharRight
+case wxStyledTextCtrl_CharRight: { // wxStyledTextCtrl::CharRight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CharRight();
- break;
+ break;
}
-case wxStyledTextCtrl_CharRightExtend: { // wxStyledTextCtrl::CharRightExtend
+case wxStyledTextCtrl_CharRightExtend: { // wxStyledTextCtrl::CharRightExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CharRightExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_WordLeft: { // wxStyledTextCtrl::WordLeft
+case wxStyledTextCtrl_WordLeft: { // wxStyledTextCtrl::WordLeft
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordLeft();
- break;
+ break;
}
-case wxStyledTextCtrl_WordLeftExtend: { // wxStyledTextCtrl::WordLeftExtend
+case wxStyledTextCtrl_WordLeftExtend: { // wxStyledTextCtrl::WordLeftExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordLeftExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_WordRight: { // wxStyledTextCtrl::WordRight
+case wxStyledTextCtrl_WordRight: { // wxStyledTextCtrl::WordRight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordRight();
- break;
+ break;
}
-case wxStyledTextCtrl_WordRightExtend: { // wxStyledTextCtrl::WordRightExtend
+case wxStyledTextCtrl_WordRightExtend: { // wxStyledTextCtrl::WordRightExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordRightExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_Home: { // wxStyledTextCtrl::Home
+case wxStyledTextCtrl_Home: { // wxStyledTextCtrl::Home
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Home();
- break;
+ break;
}
-case wxStyledTextCtrl_HomeExtend: { // wxStyledTextCtrl::HomeExtend
+case wxStyledTextCtrl_HomeExtend: { // wxStyledTextCtrl::HomeExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->HomeExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_LineEnd: { // wxStyledTextCtrl::LineEnd
+case wxStyledTextCtrl_LineEnd: { // wxStyledTextCtrl::LineEnd
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineEnd();
- break;
+ break;
}
-case wxStyledTextCtrl_LineEndExtend: { // wxStyledTextCtrl::LineEndExtend
+case wxStyledTextCtrl_LineEndExtend: { // wxStyledTextCtrl::LineEndExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineEndExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_DocumentStart: { // wxStyledTextCtrl::DocumentStart
+case wxStyledTextCtrl_DocumentStart: { // wxStyledTextCtrl::DocumentStart
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DocumentStart();
- break;
+ break;
}
-case wxStyledTextCtrl_DocumentStartExtend: { // wxStyledTextCtrl::DocumentStartExtend
+case wxStyledTextCtrl_DocumentStartExtend: { // wxStyledTextCtrl::DocumentStartExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DocumentStartExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_DocumentEnd: { // wxStyledTextCtrl::DocumentEnd
+case wxStyledTextCtrl_DocumentEnd: { // wxStyledTextCtrl::DocumentEnd
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DocumentEnd();
- break;
+ break;
}
-case wxStyledTextCtrl_DocumentEndExtend: { // wxStyledTextCtrl::DocumentEndExtend
+case wxStyledTextCtrl_DocumentEndExtend: { // wxStyledTextCtrl::DocumentEndExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DocumentEndExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_PageUp: { // wxStyledTextCtrl::PageUp
+case wxStyledTextCtrl_PageUp: { // wxStyledTextCtrl::PageUp
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->PageUp();
- break;
+ break;
}
-case wxStyledTextCtrl_PageUpExtend: { // wxStyledTextCtrl::PageUpExtend
+case wxStyledTextCtrl_PageUpExtend: { // wxStyledTextCtrl::PageUpExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->PageUpExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_PageDown: { // wxStyledTextCtrl::PageDown
+case wxStyledTextCtrl_PageDown: { // wxStyledTextCtrl::PageDown
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->PageDown();
- break;
+ break;
}
-case wxStyledTextCtrl_PageDownExtend: { // wxStyledTextCtrl::PageDownExtend
+case wxStyledTextCtrl_PageDownExtend: { // wxStyledTextCtrl::PageDownExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->PageDownExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_EditToggleOvertype: { // wxStyledTextCtrl::EditToggleOvertype
+case wxStyledTextCtrl_EditToggleOvertype: { // wxStyledTextCtrl::EditToggleOvertype
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->EditToggleOvertype();
- break;
+ break;
}
-case wxStyledTextCtrl_Cancel: { // wxStyledTextCtrl::Cancel
+case wxStyledTextCtrl_Cancel: { // wxStyledTextCtrl::Cancel
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Cancel();
- break;
+ break;
}
-case wxStyledTextCtrl_DeleteBack: { // wxStyledTextCtrl::DeleteBack
+case wxStyledTextCtrl_DeleteBack: { // wxStyledTextCtrl::DeleteBack
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DeleteBack();
- break;
+ break;
}
-case wxStyledTextCtrl_Tab: { // wxStyledTextCtrl::Tab
+case wxStyledTextCtrl_Tab: { // wxStyledTextCtrl::Tab
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Tab();
- break;
+ break;
}
-case wxStyledTextCtrl_BackTab: { // wxStyledTextCtrl::BackTab
+case wxStyledTextCtrl_BackTab: { // wxStyledTextCtrl::BackTab
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->BackTab();
- break;
+ break;
}
-case wxStyledTextCtrl_NewLine: { // wxStyledTextCtrl::NewLine
+case wxStyledTextCtrl_NewLine: { // wxStyledTextCtrl::NewLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->NewLine();
- break;
+ break;
}
-case wxStyledTextCtrl_FormFeed: { // wxStyledTextCtrl::FormFeed
+case wxStyledTextCtrl_FormFeed: { // wxStyledTextCtrl::FormFeed
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->FormFeed();
- break;
+ break;
}
-case wxStyledTextCtrl_VCHome: { // wxStyledTextCtrl::VCHome
+case wxStyledTextCtrl_VCHome: { // wxStyledTextCtrl::VCHome
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->VCHome();
- break;
+ break;
}
-case wxStyledTextCtrl_VCHomeExtend: { // wxStyledTextCtrl::VCHomeExtend
+case wxStyledTextCtrl_VCHomeExtend: { // wxStyledTextCtrl::VCHomeExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->VCHomeExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_ZoomIn: { // wxStyledTextCtrl::ZoomIn
+case wxStyledTextCtrl_ZoomIn: { // wxStyledTextCtrl::ZoomIn
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ZoomIn();
- break;
+ break;
}
-case wxStyledTextCtrl_ZoomOut: { // wxStyledTextCtrl::ZoomOut
+case wxStyledTextCtrl_ZoomOut: { // wxStyledTextCtrl::ZoomOut
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ZoomOut();
- break;
+ break;
}
-case wxStyledTextCtrl_DelWordLeft: { // wxStyledTextCtrl::DelWordLeft
+case wxStyledTextCtrl_DelWordLeft: { // wxStyledTextCtrl::DelWordLeft
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DelWordLeft();
- break;
+ break;
}
-case wxStyledTextCtrl_DelWordRight: { // wxStyledTextCtrl::DelWordRight
+case wxStyledTextCtrl_DelWordRight: { // wxStyledTextCtrl::DelWordRight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DelWordRight();
- break;
+ break;
}
-case wxStyledTextCtrl_LineCut: { // wxStyledTextCtrl::LineCut
+case wxStyledTextCtrl_LineCut: { // wxStyledTextCtrl::LineCut
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineCut();
- break;
+ break;
}
-case wxStyledTextCtrl_LineDelete: { // wxStyledTextCtrl::LineDelete
+case wxStyledTextCtrl_LineDelete: { // wxStyledTextCtrl::LineDelete
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineDelete();
- break;
+ break;
}
-case wxStyledTextCtrl_LineTranspose: { // wxStyledTextCtrl::LineTranspose
+case wxStyledTextCtrl_LineTranspose: { // wxStyledTextCtrl::LineTranspose
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineTranspose();
- break;
+ break;
}
-case wxStyledTextCtrl_LineDuplicate: { // wxStyledTextCtrl::LineDuplicate
+case wxStyledTextCtrl_LineDuplicate: { // wxStyledTextCtrl::LineDuplicate
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineDuplicate();
- break;
+ break;
}
-case wxStyledTextCtrl_LowerCase: { // wxStyledTextCtrl::LowerCase
+case wxStyledTextCtrl_LowerCase: { // wxStyledTextCtrl::LowerCase
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LowerCase();
- break;
+ break;
}
-case wxStyledTextCtrl_UpperCase: { // wxStyledTextCtrl::UpperCase
+case wxStyledTextCtrl_UpperCase: { // wxStyledTextCtrl::UpperCase
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->UpperCase();
- break;
+ break;
}
-case wxStyledTextCtrl_LineScrollDown: { // wxStyledTextCtrl::LineScrollDown
+case wxStyledTextCtrl_LineScrollDown: { // wxStyledTextCtrl::LineScrollDown
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineScrollDown();
- break;
+ break;
}
-case wxStyledTextCtrl_LineScrollUp: { // wxStyledTextCtrl::LineScrollUp
+case wxStyledTextCtrl_LineScrollUp: { // wxStyledTextCtrl::LineScrollUp
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineScrollUp();
- break;
+ break;
}
-case wxStyledTextCtrl_DeleteBackNotLine: { // wxStyledTextCtrl::DeleteBackNotLine
+case wxStyledTextCtrl_DeleteBackNotLine: { // wxStyledTextCtrl::DeleteBackNotLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DeleteBackNotLine();
- break;
+ break;
}
-case wxStyledTextCtrl_HomeDisplay: { // wxStyledTextCtrl::HomeDisplay
+case wxStyledTextCtrl_HomeDisplay: { // wxStyledTextCtrl::HomeDisplay
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->HomeDisplay();
- break;
+ break;
}
-case wxStyledTextCtrl_HomeDisplayExtend: { // wxStyledTextCtrl::HomeDisplayExtend
+case wxStyledTextCtrl_HomeDisplayExtend: { // wxStyledTextCtrl::HomeDisplayExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->HomeDisplayExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_LineEndDisplay: { // wxStyledTextCtrl::LineEndDisplay
+case wxStyledTextCtrl_LineEndDisplay: { // wxStyledTextCtrl::LineEndDisplay
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineEndDisplay();
- break;
+ break;
}
-case wxStyledTextCtrl_LineEndDisplayExtend: { // wxStyledTextCtrl::LineEndDisplayExtend
+case wxStyledTextCtrl_LineEndDisplayExtend: { // wxStyledTextCtrl::LineEndDisplayExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineEndDisplayExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_HomeWrapExtend: { // wxStyledTextCtrl::HomeWrapExtend
+case wxStyledTextCtrl_HomeWrapExtend: { // wxStyledTextCtrl::HomeWrapExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->HomeWrapExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_LineEndWrap: { // wxStyledTextCtrl::LineEndWrap
+case wxStyledTextCtrl_LineEndWrap: { // wxStyledTextCtrl::LineEndWrap
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineEndWrap();
- break;
+ break;
}
-case wxStyledTextCtrl_LineEndWrapExtend: { // wxStyledTextCtrl::LineEndWrapExtend
+case wxStyledTextCtrl_LineEndWrapExtend: { // wxStyledTextCtrl::LineEndWrapExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineEndWrapExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_VCHomeWrap: { // wxStyledTextCtrl::VCHomeWrap
+case wxStyledTextCtrl_VCHomeWrap: { // wxStyledTextCtrl::VCHomeWrap
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->VCHomeWrap();
- break;
+ break;
}
-case wxStyledTextCtrl_VCHomeWrapExtend: { // wxStyledTextCtrl::VCHomeWrapExtend
+case wxStyledTextCtrl_VCHomeWrapExtend: { // wxStyledTextCtrl::VCHomeWrapExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->VCHomeWrapExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_LineCopy: { // wxStyledTextCtrl::LineCopy
+case wxStyledTextCtrl_LineCopy: { // wxStyledTextCtrl::LineCopy
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineCopy();
- break;
+ break;
}
-case wxStyledTextCtrl_MoveCaretInsideView: { // wxStyledTextCtrl::MoveCaretInsideView
+case wxStyledTextCtrl_MoveCaretInsideView: { // wxStyledTextCtrl::MoveCaretInsideView
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->MoveCaretInsideView();
- break;
+ break;
}
-case wxStyledTextCtrl_LineLength: { // wxStyledTextCtrl::LineLength
+case wxStyledTextCtrl_LineLength: { // wxStyledTextCtrl::LineLength
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->LineLength((int) *line);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_BraceHighlight: { // wxStyledTextCtrl::BraceHighlight
+case wxStyledTextCtrl_BraceHighlight: { // wxStyledTextCtrl::BraceHighlight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos1 = (int *) bp; bp += 4;
int * pos2 = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->BraceHighlight((int) *pos1,(int) *pos2);
- break;
+ break;
}
-case wxStyledTextCtrl_BraceBadLight: { // wxStyledTextCtrl::BraceBadLight
+case wxStyledTextCtrl_BraceBadLight: { // wxStyledTextCtrl::BraceBadLight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->BraceBadLight((int) *pos);
- break;
+ break;
}
-case wxStyledTextCtrl_BraceMatch: { // wxStyledTextCtrl::BraceMatch
+case wxStyledTextCtrl_BraceMatch: { // wxStyledTextCtrl::BraceMatch
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->BraceMatch((int) *pos);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetViewEOL: { // wxStyledTextCtrl::GetViewEOL
+case wxStyledTextCtrl_GetViewEOL: { // wxStyledTextCtrl::GetViewEOL
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetViewEOL();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetViewEOL: { // wxStyledTextCtrl::SetViewEOL
+case wxStyledTextCtrl_SetViewEOL: { // wxStyledTextCtrl::SetViewEOL
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * visible = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetViewEOL((bool) *visible);
- break;
+ break;
}
-case wxStyledTextCtrl_SetModEventMask: { // wxStyledTextCtrl::SetModEventMask
+case wxStyledTextCtrl_SetModEventMask: { // wxStyledTextCtrl::SetModEventMask
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * mask = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetModEventMask((int) *mask);
- break;
+ break;
}
-case wxStyledTextCtrl_GetEdgeColumn: { // wxStyledTextCtrl::GetEdgeColumn
+case wxStyledTextCtrl_GetEdgeColumn: { // wxStyledTextCtrl::GetEdgeColumn
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetEdgeColumn();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetEdgeColumn: { // wxStyledTextCtrl::SetEdgeColumn
+case wxStyledTextCtrl_SetEdgeColumn: { // wxStyledTextCtrl::SetEdgeColumn
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * column = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetEdgeColumn((int) *column);
- break;
+ break;
}
-case wxStyledTextCtrl_GetEdgeMode: { // wxStyledTextCtrl::GetEdgeMode
+case wxStyledTextCtrl_GetEdgeMode: { // wxStyledTextCtrl::GetEdgeMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetEdgeMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetEdgeColour: { // wxStyledTextCtrl::GetEdgeColour
+case wxStyledTextCtrl_GetEdgeColour: { // wxStyledTextCtrl::GetEdgeColour
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxColour Result = This->GetEdgeColour();
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetEdgeColour: { // wxStyledTextCtrl::SetEdgeColour
+case wxStyledTextCtrl_SetEdgeColour: { // wxStyledTextCtrl::SetEdgeColour
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * edgeColourR = (int *) bp; bp += 4;
int * edgeColourG = (int *) bp; bp += 4;
@@ -29245,15 +29252,15 @@ case wxStyledTextCtrl_SetEdgeColour: { // wxStyledTextCtrl::SetEdgeColour
wxColour edgeColour = wxColour(*edgeColourR,*edgeColourG,*edgeColourB,*edgeColourA);
if(!This) throw wxe_badarg(0);
This->SetEdgeColour(edgeColour);
- break;
+ break;
}
-case wxStyledTextCtrl_SearchAnchor: { // wxStyledTextCtrl::SearchAnchor
+case wxStyledTextCtrl_SearchAnchor: { // wxStyledTextCtrl::SearchAnchor
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SearchAnchor();
- break;
+ break;
}
-case wxStyledTextCtrl_SearchNext: { // wxStyledTextCtrl::SearchNext
+case wxStyledTextCtrl_SearchNext: { // wxStyledTextCtrl::SearchNext
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * flags = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
@@ -29262,9 +29269,9 @@ case wxStyledTextCtrl_SearchNext: { // wxStyledTextCtrl::SearchNext
if(!This) throw wxe_badarg(0);
int Result = This->SearchNext((int) *flags,text);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SearchPrev: { // wxStyledTextCtrl::SearchPrev
+case wxStyledTextCtrl_SearchPrev: { // wxStyledTextCtrl::SearchPrev
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * flags = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
@@ -29273,201 +29280,201 @@ case wxStyledTextCtrl_SearchPrev: { // wxStyledTextCtrl::SearchPrev
if(!This) throw wxe_badarg(0);
int Result = This->SearchPrev((int) *flags,text);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_LinesOnScreen: { // wxStyledTextCtrl::LinesOnScreen
+case wxStyledTextCtrl_LinesOnScreen: { // wxStyledTextCtrl::LinesOnScreen
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->LinesOnScreen();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_UsePopUp: { // wxStyledTextCtrl::UsePopUp
+case wxStyledTextCtrl_UsePopUp: { // wxStyledTextCtrl::UsePopUp
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * allowPopUp = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->UsePopUp((bool) *allowPopUp);
- break;
+ break;
}
-case wxStyledTextCtrl_SelectionIsRectangle: { // wxStyledTextCtrl::SelectionIsRectangle
+case wxStyledTextCtrl_SelectionIsRectangle: { // wxStyledTextCtrl::SelectionIsRectangle
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SelectionIsRectangle();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetZoom: { // wxStyledTextCtrl::SetZoom
+case wxStyledTextCtrl_SetZoom: { // wxStyledTextCtrl::SetZoom
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * zoom = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetZoom((int) *zoom);
- break;
+ break;
}
-case wxStyledTextCtrl_GetZoom: { // wxStyledTextCtrl::GetZoom
+case wxStyledTextCtrl_GetZoom: { // wxStyledTextCtrl::GetZoom
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetZoom();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetModEventMask: { // wxStyledTextCtrl::GetModEventMask
+case wxStyledTextCtrl_GetModEventMask: { // wxStyledTextCtrl::GetModEventMask
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetModEventMask();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSTCFocus: { // wxStyledTextCtrl::SetSTCFocus
+case wxStyledTextCtrl_SetSTCFocus: { // wxStyledTextCtrl::SetSTCFocus
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * focus = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSTCFocus((bool) *focus);
- break;
+ break;
}
-case wxStyledTextCtrl_GetSTCFocus: { // wxStyledTextCtrl::GetSTCFocus
+case wxStyledTextCtrl_GetSTCFocus: { // wxStyledTextCtrl::GetSTCFocus
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetSTCFocus();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetStatus: { // wxStyledTextCtrl::SetStatus
+case wxStyledTextCtrl_SetStatus: { // wxStyledTextCtrl::SetStatus
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * statusCode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetStatus((int) *statusCode);
- break;
+ break;
}
-case wxStyledTextCtrl_GetStatus: { // wxStyledTextCtrl::GetStatus
+case wxStyledTextCtrl_GetStatus: { // wxStyledTextCtrl::GetStatus
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetStatus();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetMouseDownCaptures: { // wxStyledTextCtrl::SetMouseDownCaptures
+case wxStyledTextCtrl_SetMouseDownCaptures: { // wxStyledTextCtrl::SetMouseDownCaptures
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * captures = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMouseDownCaptures((bool) *captures);
- break;
+ break;
}
-case wxStyledTextCtrl_GetMouseDownCaptures: { // wxStyledTextCtrl::GetMouseDownCaptures
+case wxStyledTextCtrl_GetMouseDownCaptures: { // wxStyledTextCtrl::GetMouseDownCaptures
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetMouseDownCaptures();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSTCCursor: { // wxStyledTextCtrl::SetSTCCursor
+case wxStyledTextCtrl_SetSTCCursor: { // wxStyledTextCtrl::SetSTCCursor
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * cursorType = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSTCCursor((int) *cursorType);
- break;
+ break;
}
-case wxStyledTextCtrl_GetSTCCursor: { // wxStyledTextCtrl::GetSTCCursor
+case wxStyledTextCtrl_GetSTCCursor: { // wxStyledTextCtrl::GetSTCCursor
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSTCCursor();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetControlCharSymbol: { // wxStyledTextCtrl::SetControlCharSymbol
+case wxStyledTextCtrl_SetControlCharSymbol: { // wxStyledTextCtrl::SetControlCharSymbol
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * symbol = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetControlCharSymbol((int) *symbol);
- break;
+ break;
}
-case wxStyledTextCtrl_GetControlCharSymbol: { // wxStyledTextCtrl::GetControlCharSymbol
+case wxStyledTextCtrl_GetControlCharSymbol: { // wxStyledTextCtrl::GetControlCharSymbol
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetControlCharSymbol();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_WordPartLeft: { // wxStyledTextCtrl::WordPartLeft
+case wxStyledTextCtrl_WordPartLeft: { // wxStyledTextCtrl::WordPartLeft
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordPartLeft();
- break;
+ break;
}
-case wxStyledTextCtrl_WordPartLeftExtend: { // wxStyledTextCtrl::WordPartLeftExtend
+case wxStyledTextCtrl_WordPartLeftExtend: { // wxStyledTextCtrl::WordPartLeftExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordPartLeftExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_WordPartRight: { // wxStyledTextCtrl::WordPartRight
+case wxStyledTextCtrl_WordPartRight: { // wxStyledTextCtrl::WordPartRight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordPartRight();
- break;
+ break;
}
-case wxStyledTextCtrl_WordPartRightExtend: { // wxStyledTextCtrl::WordPartRightExtend
+case wxStyledTextCtrl_WordPartRightExtend: { // wxStyledTextCtrl::WordPartRightExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordPartRightExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_SetVisiblePolicy: { // wxStyledTextCtrl::SetVisiblePolicy
+case wxStyledTextCtrl_SetVisiblePolicy: { // wxStyledTextCtrl::SetVisiblePolicy
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * visiblePolicy = (int *) bp; bp += 4;
int * visibleSlop = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetVisiblePolicy((int) *visiblePolicy,(int) *visibleSlop);
- break;
+ break;
}
-case wxStyledTextCtrl_DelLineLeft: { // wxStyledTextCtrl::DelLineLeft
+case wxStyledTextCtrl_DelLineLeft: { // wxStyledTextCtrl::DelLineLeft
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DelLineLeft();
- break;
+ break;
}
-case wxStyledTextCtrl_DelLineRight: { // wxStyledTextCtrl::DelLineRight
+case wxStyledTextCtrl_DelLineRight: { // wxStyledTextCtrl::DelLineRight
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->DelLineRight();
- break;
+ break;
}
-case wxStyledTextCtrl_GetXOffset: { // wxStyledTextCtrl::GetXOffset
+case wxStyledTextCtrl_GetXOffset: { // wxStyledTextCtrl::GetXOffset
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetXOffset();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_ChooseCaretX: { // wxStyledTextCtrl::ChooseCaretX
+case wxStyledTextCtrl_ChooseCaretX: { // wxStyledTextCtrl::ChooseCaretX
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ChooseCaretX();
- break;
+ break;
}
-case wxStyledTextCtrl_SetXCaretPolicy: { // wxStyledTextCtrl::SetXCaretPolicy
+case wxStyledTextCtrl_SetXCaretPolicy: { // wxStyledTextCtrl::SetXCaretPolicy
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * caretPolicy = (int *) bp; bp += 4;
int * caretSlop = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetXCaretPolicy((int) *caretPolicy,(int) *caretSlop);
- break;
+ break;
}
-case wxStyledTextCtrl_SetYCaretPolicy: { // wxStyledTextCtrl::SetYCaretPolicy
+case wxStyledTextCtrl_SetYCaretPolicy: { // wxStyledTextCtrl::SetYCaretPolicy
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * caretPolicy = (int *) bp; bp += 4;
int * caretSlop = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetYCaretPolicy((int) *caretPolicy,(int) *caretSlop);
- break;
+ break;
}
-case wxStyledTextCtrl_GetPrintWrapMode: { // wxStyledTextCtrl::GetPrintWrapMode
+case wxStyledTextCtrl_GetPrintWrapMode: { // wxStyledTextCtrl::GetPrintWrapMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPrintWrapMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetHotspotActiveForeground: { // wxStyledTextCtrl::SetHotspotActiveForeground
+case wxStyledTextCtrl_SetHotspotActiveForeground: { // wxStyledTextCtrl::SetHotspotActiveForeground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useSetting = (bool *) bp; bp += 4;
int * foreR = (int *) bp; bp += 4;
@@ -29477,9 +29484,9 @@ case wxStyledTextCtrl_SetHotspotActiveForeground: { // wxStyledTextCtrl::SetHots
wxColour fore = wxColour(*foreR,*foreG,*foreB,*foreA);
if(!This) throw wxe_badarg(0);
This->SetHotspotActiveForeground((bool) *useSetting,fore);
- break;
+ break;
}
-case wxStyledTextCtrl_SetHotspotActiveBackground: { // wxStyledTextCtrl::SetHotspotActiveBackground
+case wxStyledTextCtrl_SetHotspotActiveBackground: { // wxStyledTextCtrl::SetHotspotActiveBackground
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useSetting = (bool *) bp; bp += 4;
int * backR = (int *) bp; bp += 4;
@@ -29489,65 +29496,65 @@ case wxStyledTextCtrl_SetHotspotActiveBackground: { // wxStyledTextCtrl::SetHots
wxColour back = wxColour(*backR,*backG,*backB,*backA);
if(!This) throw wxe_badarg(0);
This->SetHotspotActiveBackground((bool) *useSetting,back);
- break;
+ break;
}
-case wxStyledTextCtrl_SetHotspotActiveUnderline: { // wxStyledTextCtrl::SetHotspotActiveUnderline
+case wxStyledTextCtrl_SetHotspotActiveUnderline: { // wxStyledTextCtrl::SetHotspotActiveUnderline
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * underline = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetHotspotActiveUnderline((bool) *underline);
- break;
+ break;
}
-case wxStyledTextCtrl_SetHotspotSingleLine: { // wxStyledTextCtrl::SetHotspotSingleLine
+case wxStyledTextCtrl_SetHotspotSingleLine: { // wxStyledTextCtrl::SetHotspotSingleLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * singleLine = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetHotspotSingleLine((bool) *singleLine);
- break;
+ break;
}
-case wxStyledTextCtrl_ParaDownExtend: { // wxStyledTextCtrl::ParaDownExtend
+case wxStyledTextCtrl_ParaDownExtend: { // wxStyledTextCtrl::ParaDownExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ParaDownExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_ParaUp: { // wxStyledTextCtrl::ParaUp
+case wxStyledTextCtrl_ParaUp: { // wxStyledTextCtrl::ParaUp
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ParaUp();
- break;
+ break;
}
-case wxStyledTextCtrl_ParaUpExtend: { // wxStyledTextCtrl::ParaUpExtend
+case wxStyledTextCtrl_ParaUpExtend: { // wxStyledTextCtrl::ParaUpExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ParaUpExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_PositionBefore: { // wxStyledTextCtrl::PositionBefore
+case wxStyledTextCtrl_PositionBefore: { // wxStyledTextCtrl::PositionBefore
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->PositionBefore((int) *pos);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_PositionAfter: { // wxStyledTextCtrl::PositionAfter
+case wxStyledTextCtrl_PositionAfter: { // wxStyledTextCtrl::PositionAfter
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->PositionAfter((int) *pos);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_CopyRange: { // wxStyledTextCtrl::CopyRange
+case wxStyledTextCtrl_CopyRange: { // wxStyledTextCtrl::CopyRange
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * start = (int *) bp; bp += 4;
int * end = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->CopyRange((int) *start,(int) *end);
- break;
+ break;
}
-case wxStyledTextCtrl_CopyText: { // wxStyledTextCtrl::CopyText
+case wxStyledTextCtrl_CopyText: { // wxStyledTextCtrl::CopyText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * length = (int *) bp; bp += 4;
int * textLen = (int *) bp; bp += 4;
@@ -29555,251 +29562,251 @@ case wxStyledTextCtrl_CopyText: { // wxStyledTextCtrl::CopyText
bp += *textLen+((8-((4+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->CopyText((int) *length,text);
- break;
+ break;
}
-case wxStyledTextCtrl_SetSelectionMode: { // wxStyledTextCtrl::SetSelectionMode
+case wxStyledTextCtrl_SetSelectionMode: { // wxStyledTextCtrl::SetSelectionMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * mode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelectionMode((int) *mode);
- break;
+ break;
}
-case wxStyledTextCtrl_GetSelectionMode: { // wxStyledTextCtrl::GetSelectionMode
+case wxStyledTextCtrl_GetSelectionMode: { // wxStyledTextCtrl::GetSelectionMode
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelectionMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_LineDownRectExtend: { // wxStyledTextCtrl::LineDownRectExtend
+case wxStyledTextCtrl_LineDownRectExtend: { // wxStyledTextCtrl::LineDownRectExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineDownRectExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_LineUpRectExtend: { // wxStyledTextCtrl::LineUpRectExtend
+case wxStyledTextCtrl_LineUpRectExtend: { // wxStyledTextCtrl::LineUpRectExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineUpRectExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_CharLeftRectExtend: { // wxStyledTextCtrl::CharLeftRectExtend
+case wxStyledTextCtrl_CharLeftRectExtend: { // wxStyledTextCtrl::CharLeftRectExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CharLeftRectExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_CharRightRectExtend: { // wxStyledTextCtrl::CharRightRectExtend
+case wxStyledTextCtrl_CharRightRectExtend: { // wxStyledTextCtrl::CharRightRectExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->CharRightRectExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_HomeRectExtend: { // wxStyledTextCtrl::HomeRectExtend
+case wxStyledTextCtrl_HomeRectExtend: { // wxStyledTextCtrl::HomeRectExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->HomeRectExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_VCHomeRectExtend: { // wxStyledTextCtrl::VCHomeRectExtend
+case wxStyledTextCtrl_VCHomeRectExtend: { // wxStyledTextCtrl::VCHomeRectExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->VCHomeRectExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_LineEndRectExtend: { // wxStyledTextCtrl::LineEndRectExtend
+case wxStyledTextCtrl_LineEndRectExtend: { // wxStyledTextCtrl::LineEndRectExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->LineEndRectExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_PageUpRectExtend: { // wxStyledTextCtrl::PageUpRectExtend
+case wxStyledTextCtrl_PageUpRectExtend: { // wxStyledTextCtrl::PageUpRectExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->PageUpRectExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_PageDownRectExtend: { // wxStyledTextCtrl::PageDownRectExtend
+case wxStyledTextCtrl_PageDownRectExtend: { // wxStyledTextCtrl::PageDownRectExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->PageDownRectExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_StutteredPageUp: { // wxStyledTextCtrl::StutteredPageUp
+case wxStyledTextCtrl_StutteredPageUp: { // wxStyledTextCtrl::StutteredPageUp
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StutteredPageUp();
- break;
+ break;
}
-case wxStyledTextCtrl_StutteredPageUpExtend: { // wxStyledTextCtrl::StutteredPageUpExtend
+case wxStyledTextCtrl_StutteredPageUpExtend: { // wxStyledTextCtrl::StutteredPageUpExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StutteredPageUpExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_StutteredPageDown: { // wxStyledTextCtrl::StutteredPageDown
+case wxStyledTextCtrl_StutteredPageDown: { // wxStyledTextCtrl::StutteredPageDown
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StutteredPageDown();
- break;
+ break;
}
-case wxStyledTextCtrl_StutteredPageDownExtend: { // wxStyledTextCtrl::StutteredPageDownExtend
+case wxStyledTextCtrl_StutteredPageDownExtend: { // wxStyledTextCtrl::StutteredPageDownExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StutteredPageDownExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_WordLeftEnd: { // wxStyledTextCtrl::WordLeftEnd
+case wxStyledTextCtrl_WordLeftEnd: { // wxStyledTextCtrl::WordLeftEnd
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordLeftEnd();
- break;
+ break;
}
-case wxStyledTextCtrl_WordLeftEndExtend: { // wxStyledTextCtrl::WordLeftEndExtend
+case wxStyledTextCtrl_WordLeftEndExtend: { // wxStyledTextCtrl::WordLeftEndExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordLeftEndExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_WordRightEnd: { // wxStyledTextCtrl::WordRightEnd
+case wxStyledTextCtrl_WordRightEnd: { // wxStyledTextCtrl::WordRightEnd
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordRightEnd();
- break;
+ break;
}
-case wxStyledTextCtrl_WordRightEndExtend: { // wxStyledTextCtrl::WordRightEndExtend
+case wxStyledTextCtrl_WordRightEndExtend: { // wxStyledTextCtrl::WordRightEndExtend
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->WordRightEndExtend();
- break;
+ break;
}
-case wxStyledTextCtrl_SetWhitespaceChars: { // wxStyledTextCtrl::SetWhitespaceChars
+case wxStyledTextCtrl_SetWhitespaceChars: { // wxStyledTextCtrl::SetWhitespaceChars
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * charactersLen = (int *) bp; bp += 4;
wxString characters = wxString(bp, wxConvUTF8);
bp += *charactersLen+((8-((0+ *charactersLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetWhitespaceChars(characters);
- break;
+ break;
}
-case wxStyledTextCtrl_SetCharsDefault: { // wxStyledTextCtrl::SetCharsDefault
+case wxStyledTextCtrl_SetCharsDefault: { // wxStyledTextCtrl::SetCharsDefault
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCharsDefault();
- break;
+ break;
}
-case wxStyledTextCtrl_AutoCompGetCurrent: { // wxStyledTextCtrl::AutoCompGetCurrent
+case wxStyledTextCtrl_AutoCompGetCurrent: { // wxStyledTextCtrl::AutoCompGetCurrent
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->AutoCompGetCurrent();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_Allocate: { // wxStyledTextCtrl::Allocate
+case wxStyledTextCtrl_Allocate: { // wxStyledTextCtrl::Allocate
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * bytes = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Allocate((int) *bytes);
- break;
+ break;
}
-case wxStyledTextCtrl_FindColumn: { // wxStyledTextCtrl::FindColumn
+case wxStyledTextCtrl_FindColumn: { // wxStyledTextCtrl::FindColumn
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
int * column = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->FindColumn((int) *line,(int) *column);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCaretSticky: { // wxStyledTextCtrl::GetCaretSticky
+case wxStyledTextCtrl_GetCaretSticky: { // wxStyledTextCtrl::GetCaretSticky
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetCaretSticky();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetCaretSticky: { // wxStyledTextCtrl::SetCaretSticky
+case wxStyledTextCtrl_SetCaretSticky: { // wxStyledTextCtrl::SetCaretSticky
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * useCaretStickyBehaviour = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCaretSticky((bool) *useCaretStickyBehaviour);
- break;
+ break;
}
-case wxStyledTextCtrl_ToggleCaretSticky: { // wxStyledTextCtrl::ToggleCaretSticky
+case wxStyledTextCtrl_ToggleCaretSticky: { // wxStyledTextCtrl::ToggleCaretSticky
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->ToggleCaretSticky();
- break;
+ break;
}
-case wxStyledTextCtrl_SetPasteConvertEndings: { // wxStyledTextCtrl::SetPasteConvertEndings
+case wxStyledTextCtrl_SetPasteConvertEndings: { // wxStyledTextCtrl::SetPasteConvertEndings
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * convert = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPasteConvertEndings((bool) *convert);
- break;
+ break;
}
-case wxStyledTextCtrl_GetPasteConvertEndings: { // wxStyledTextCtrl::GetPasteConvertEndings
+case wxStyledTextCtrl_GetPasteConvertEndings: { // wxStyledTextCtrl::GetPasteConvertEndings
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetPasteConvertEndings();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SelectionDuplicate: { // wxStyledTextCtrl::SelectionDuplicate
+case wxStyledTextCtrl_SelectionDuplicate: { // wxStyledTextCtrl::SelectionDuplicate
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SelectionDuplicate();
- break;
+ break;
}
-case wxStyledTextCtrl_SetCaretLineBackAlpha: { // wxStyledTextCtrl::SetCaretLineBackAlpha
+case wxStyledTextCtrl_SetCaretLineBackAlpha: { // wxStyledTextCtrl::SetCaretLineBackAlpha
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * alpha = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCaretLineBackAlpha((int) *alpha);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCaretLineBackAlpha: { // wxStyledTextCtrl::GetCaretLineBackAlpha
+case wxStyledTextCtrl_GetCaretLineBackAlpha: { // wxStyledTextCtrl::GetCaretLineBackAlpha
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCaretLineBackAlpha();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_StartRecord: { // wxStyledTextCtrl::StartRecord
+case wxStyledTextCtrl_StartRecord: { // wxStyledTextCtrl::StartRecord
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StartRecord();
- break;
+ break;
}
-case wxStyledTextCtrl_StopRecord: { // wxStyledTextCtrl::StopRecord
+case wxStyledTextCtrl_StopRecord: { // wxStyledTextCtrl::StopRecord
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StopRecord();
- break;
+ break;
}
-case wxStyledTextCtrl_SetLexer: { // wxStyledTextCtrl::SetLexer
+case wxStyledTextCtrl_SetLexer: { // wxStyledTextCtrl::SetLexer
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * lexer = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLexer((int) *lexer);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLexer: { // wxStyledTextCtrl::GetLexer
+case wxStyledTextCtrl_GetLexer: { // wxStyledTextCtrl::GetLexer
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetLexer();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_Colourise: { // wxStyledTextCtrl::Colourise
+case wxStyledTextCtrl_Colourise: { // wxStyledTextCtrl::Colourise
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * start = (int *) bp; bp += 4;
int * end = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->Colourise((int) *start,(int) *end);
- break;
+ break;
}
-case wxStyledTextCtrl_SetProperty: { // wxStyledTextCtrl::SetProperty
+case wxStyledTextCtrl_SetProperty: { // wxStyledTextCtrl::SetProperty
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * keyLen = (int *) bp; bp += 4;
wxString key = wxString(bp, wxConvUTF8);
@@ -29809,9 +29816,9 @@ case wxStyledTextCtrl_SetProperty: { // wxStyledTextCtrl::SetProperty
bp += *valueLen+((8-((4+ *valueLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetProperty(key,value);
- break;
+ break;
}
-case wxStyledTextCtrl_SetKeyWords: { // wxStyledTextCtrl::SetKeyWords
+case wxStyledTextCtrl_SetKeyWords: { // wxStyledTextCtrl::SetKeyWords
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * keywordSet = (int *) bp; bp += 4;
int * keyWordsLen = (int *) bp; bp += 4;
@@ -29819,18 +29826,18 @@ case wxStyledTextCtrl_SetKeyWords: { // wxStyledTextCtrl::SetKeyWords
bp += *keyWordsLen+((8-((4+ *keyWordsLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetKeyWords((int) *keywordSet,keyWords);
- break;
+ break;
}
-case wxStyledTextCtrl_SetLexerLanguage: { // wxStyledTextCtrl::SetLexerLanguage
+case wxStyledTextCtrl_SetLexerLanguage: { // wxStyledTextCtrl::SetLexerLanguage
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * languageLen = (int *) bp; bp += 4;
wxString language = wxString(bp, wxConvUTF8);
bp += *languageLen+((8-((0+ *languageLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetLexerLanguage(language);
- break;
+ break;
}
-case wxStyledTextCtrl_GetProperty: { // wxStyledTextCtrl::GetProperty
+case wxStyledTextCtrl_GetProperty: { // wxStyledTextCtrl::GetProperty
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * keyLen = (int *) bp; bp += 4;
wxString key = wxString(bp, wxConvUTF8);
@@ -29838,23 +29845,23 @@ case wxStyledTextCtrl_GetProperty: { // wxStyledTextCtrl::GetProperty
if(!This) throw wxe_badarg(0);
wxString Result = This->GetProperty(key);
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetStyleBitsNeeded: { // wxStyledTextCtrl::GetStyleBitsNeeded
+case wxStyledTextCtrl_GetStyleBitsNeeded: { // wxStyledTextCtrl::GetStyleBitsNeeded
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetStyleBitsNeeded();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCurrentLine: { // wxStyledTextCtrl::GetCurrentLine
+case wxStyledTextCtrl_GetCurrentLine: { // wxStyledTextCtrl::GetCurrentLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetCurrentLine();
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetSpec: { // wxStyledTextCtrl::StyleSetSpec
+case wxStyledTextCtrl_StyleSetSpec: { // wxStyledTextCtrl::StyleSetSpec
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * styleNum = (int *) bp; bp += 4;
int * specLen = (int *) bp; bp += 4;
@@ -29862,17 +29869,17 @@ case wxStyledTextCtrl_StyleSetSpec: { // wxStyledTextCtrl::StyleSetSpec
bp += *specLen+((8-((4+ *specLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->StyleSetSpec((int) *styleNum,spec);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetFont: { // wxStyledTextCtrl::StyleSetFont
+case wxStyledTextCtrl_StyleSetFont: { // wxStyledTextCtrl::StyleSetFont
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * styleNum = (int *) bp; bp += 4;
wxFont *font = (wxFont *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetFont((int) *styleNum,*font);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetFontAttr: { // wxStyledTextCtrl::StyleSetFontAttr
+case wxStyledTextCtrl_StyleSetFontAttr: { // wxStyledTextCtrl::StyleSetFontAttr
wxFontEncoding encoding=wxFONTENCODING_DEFAULT;
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * styleNum = (int *) bp; bp += 4;
@@ -29884,47 +29891,47 @@ case wxStyledTextCtrl_StyleSetFontAttr: { // wxStyledTextCtrl::StyleSetFontAttr
bool * italic = (bool *) bp; bp += 4;
bool * underline = (bool *) bp; bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
encoding = *(wxFontEncoding *) bp; bp += 4;;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->StyleSetFontAttr((int) *styleNum,(int) *size,faceName,(bool) *bold,(bool) *italic,(bool) *underline,(wxFontEncoding) encoding);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetCharacterSet: { // wxStyledTextCtrl::StyleSetCharacterSet
+case wxStyledTextCtrl_StyleSetCharacterSet: { // wxStyledTextCtrl::StyleSetCharacterSet
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
int * characterSet = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->StyleSetCharacterSet((int) *style,(int) *characterSet);
- break;
+ break;
}
-case wxStyledTextCtrl_StyleSetFontEncoding: { // wxStyledTextCtrl::StyleSetFontEncoding
+case wxStyledTextCtrl_StyleSetFontEncoding: { // wxStyledTextCtrl::StyleSetFontEncoding
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * style = (int *) bp; bp += 4;
wxFontEncoding encoding = *(wxFontEncoding *) bp; bp += 4;;
if(!This) throw wxe_badarg(0);
This->StyleSetFontEncoding((int) *style,(wxFontEncoding) encoding);
- break;
+ break;
}
-case wxStyledTextCtrl_CmdKeyExecute: { // wxStyledTextCtrl::CmdKeyExecute
+case wxStyledTextCtrl_CmdKeyExecute: { // wxStyledTextCtrl::CmdKeyExecute
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * cmd = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->CmdKeyExecute((int) *cmd);
- break;
+ break;
}
-case wxStyledTextCtrl_SetMargins: { // wxStyledTextCtrl::SetMargins
+case wxStyledTextCtrl_SetMargins: { // wxStyledTextCtrl::SetMargins
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * left = (int *) bp; bp += 4;
int * right = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMargins((int) *left,(int) *right);
- break;
+ break;
}
-case wxStyledTextCtrl_GetSelection: { // wxStyledTextCtrl::GetSelection
+case wxStyledTextCtrl_GetSelection: { // wxStyledTextCtrl::GetSelection
int startPos;
int endPos;
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
@@ -29933,77 +29940,77 @@ case wxStyledTextCtrl_GetSelection: { // wxStyledTextCtrl::GetSelection
rt.addInt(startPos);
rt.addInt(endPos);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxStyledTextCtrl_PointFromPosition: { // wxStyledTextCtrl::PointFromPosition
+case wxStyledTextCtrl_PointFromPosition: { // wxStyledTextCtrl::PointFromPosition
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->PointFromPosition((int) *pos);
rt.add(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_ScrollToLine: { // wxStyledTextCtrl::ScrollToLine
+case wxStyledTextCtrl_ScrollToLine: { // wxStyledTextCtrl::ScrollToLine
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ScrollToLine((int) *line);
- break;
+ break;
}
-case wxStyledTextCtrl_ScrollToColumn: { // wxStyledTextCtrl::ScrollToColumn
+case wxStyledTextCtrl_ScrollToColumn: { // wxStyledTextCtrl::ScrollToColumn
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * column = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->ScrollToColumn((int) *column);
- break;
+ break;
}
-case wxStyledTextCtrl_SendMsg: { // wxStyledTextCtrl::SendMsg
+case wxStyledTextCtrl_SendMsg: { // wxStyledTextCtrl::SendMsg
long wp=0;
long lp=0;
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * msg = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
wp = (long)*(int *) bp; bp += 4;
} break;
case 2: {bp += 4;
lp = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
long Result = This->SendMsg((int) *msg,wp,lp);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetVScrollBar: { // wxStyledTextCtrl::SetVScrollBar
+case wxStyledTextCtrl_SetVScrollBar: { // wxStyledTextCtrl::SetVScrollBar
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
wxScrollBar *bar = (wxScrollBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetVScrollBar(bar);
- break;
+ break;
}
-case wxStyledTextCtrl_SetHScrollBar: { // wxStyledTextCtrl::SetHScrollBar
+case wxStyledTextCtrl_SetHScrollBar: { // wxStyledTextCtrl::SetHScrollBar
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
wxScrollBar *bar = (wxScrollBar *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetHScrollBar(bar);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLastKeydownProcessed: { // wxStyledTextCtrl::GetLastKeydownProcessed
+case wxStyledTextCtrl_GetLastKeydownProcessed: { // wxStyledTextCtrl::GetLastKeydownProcessed
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetLastKeydownProcessed();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_SetLastKeydownProcessed: { // wxStyledTextCtrl::SetLastKeydownProcessed
+case wxStyledTextCtrl_SetLastKeydownProcessed: { // wxStyledTextCtrl::SetLastKeydownProcessed
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
bool * val = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetLastKeydownProcessed((bool) *val);
- break;
+ break;
}
-case wxStyledTextCtrl_SaveFile: { // wxStyledTextCtrl::SaveFile
+case wxStyledTextCtrl_SaveFile: { // wxStyledTextCtrl::SaveFile
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * filenameLen = (int *) bp; bp += 4;
wxString filename = wxString(bp, wxConvUTF8);
@@ -30011,9 +30018,9 @@ case wxStyledTextCtrl_SaveFile: { // wxStyledTextCtrl::SaveFile
if(!This) throw wxe_badarg(0);
bool Result = This->SaveFile(filename);
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_LoadFile: { // wxStyledTextCtrl::LoadFile
+case wxStyledTextCtrl_LoadFile: { // wxStyledTextCtrl::LoadFile
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * filenameLen = (int *) bp; bp += 4;
wxString filename = wxString(bp, wxConvUTF8);
@@ -30021,9 +30028,9 @@ case wxStyledTextCtrl_LoadFile: { // wxStyledTextCtrl::LoadFile
if(!This) throw wxe_badarg(0);
bool Result = This->LoadFile(filename);
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_DoDragOver: { // wxStyledTextCtrl::DoDragOver
+case wxStyledTextCtrl_DoDragOver: { // wxStyledTextCtrl::DoDragOver
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -30031,9 +30038,9 @@ case wxStyledTextCtrl_DoDragOver: { // wxStyledTextCtrl::DoDragOver
if(!This) throw wxe_badarg(0);
int Result = This->DoDragOver((wxCoord) *x,(wxCoord) *y,(wxDragResult) def);
rt.addInt(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_DoDropText: { // wxStyledTextCtrl::DoDropText
+case wxStyledTextCtrl_DoDropText: { // wxStyledTextCtrl::DoDropText
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * x = (int *) bp; bp += 4;
int * y = (int *) bp; bp += 4;
@@ -30043,31 +30050,31 @@ case wxStyledTextCtrl_DoDropText: { // wxStyledTextCtrl::DoDropText
if(!This) throw wxe_badarg(0);
bool Result = This->DoDropText((long) *x,(long) *y,data);
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_GetUseAntiAliasing: { // wxStyledTextCtrl::GetUseAntiAliasing
+case wxStyledTextCtrl_GetUseAntiAliasing: { // wxStyledTextCtrl::GetUseAntiAliasing
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetUseAntiAliasing();
rt.addBool(Result);
- break;
+ break;
}
-case wxStyledTextCtrl_AddTextRaw: { // wxStyledTextCtrl::AddTextRaw
+case wxStyledTextCtrl_AddTextRaw: { // wxStyledTextCtrl::AddTextRaw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
- const char * text = (const char*) Ecmd.bin[0]->base;
+ const char * text = (const char*) Ecmd.bin[0]->base;
if(!This) throw wxe_badarg(0);
This->AddTextRaw(text);
- break;
+ break;
}
-case wxStyledTextCtrl_InsertTextRaw: { // wxStyledTextCtrl::InsertTextRaw
+case wxStyledTextCtrl_InsertTextRaw: { // wxStyledTextCtrl::InsertTextRaw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
- const char * text = (const char*) Ecmd.bin[0]->base;
+ const char * text = (const char*) Ecmd.bin[0]->base;
if(!This) throw wxe_badarg(0);
This->InsertTextRaw((int) *pos,text);
- break;
+ break;
}
-case wxStyledTextCtrl_GetCurLineRaw: { // wxStyledTextCtrl::GetCurLineRaw
+case wxStyledTextCtrl_GetCurLineRaw: { // wxStyledTextCtrl::GetCurLineRaw
int linePos;
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
@@ -30077,9 +30084,9 @@ case wxStyledTextCtrl_GetCurLineRaw: { // wxStyledTextCtrl::GetCurLineRaw
} else {rt.addAtom("null");};
rt.addInt(linePos);
rt.addTupleCount(2);
- break;
+ break;
}
-case wxStyledTextCtrl_GetLineRaw: { // wxStyledTextCtrl::GetLineRaw
+case wxStyledTextCtrl_GetLineRaw: { // wxStyledTextCtrl::GetLineRaw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * line = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
@@ -30087,18 +30094,18 @@ case wxStyledTextCtrl_GetLineRaw: { // wxStyledTextCtrl::GetLineRaw
if(Result) {
rt.addBinary(Result, strlen(Result));
} else {rt.addAtom("null");};
- break;
+ break;
}
-case wxStyledTextCtrl_GetSelectedTextRaw: { // wxStyledTextCtrl::GetSelectedTextRaw
+case wxStyledTextCtrl_GetSelectedTextRaw: { // wxStyledTextCtrl::GetSelectedTextRaw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
char * Result = This->GetSelectedTextRaw().data();
if(Result) {
rt.addBinary(Result, strlen(Result));
} else {rt.addAtom("null");};
- break;
+ break;
}
-case wxStyledTextCtrl_GetTextRangeRaw: { // wxStyledTextCtrl::GetTextRangeRaw
+case wxStyledTextCtrl_GetTextRangeRaw: { // wxStyledTextCtrl::GetTextRangeRaw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
int * startPos = (int *) bp; bp += 4;
int * endPos = (int *) bp; bp += 4;
@@ -30107,38 +30114,38 @@ case wxStyledTextCtrl_GetTextRangeRaw: { // wxStyledTextCtrl::GetTextRangeRaw
if(Result) {
rt.addBinary(Result, strlen(Result));
} else {rt.addAtom("null");};
- break;
+ break;
}
-case wxStyledTextCtrl_SetTextRaw: { // wxStyledTextCtrl::SetTextRaw
+case wxStyledTextCtrl_SetTextRaw: { // wxStyledTextCtrl::SetTextRaw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
- const char * text = (const char*) Ecmd.bin[0]->base;
+ const char * text = (const char*) Ecmd.bin[0]->base;
if(!This) throw wxe_badarg(0);
This->SetTextRaw(text);
- break;
+ break;
}
-case wxStyledTextCtrl_GetTextRaw: { // wxStyledTextCtrl::GetTextRaw
+case wxStyledTextCtrl_GetTextRaw: { // wxStyledTextCtrl::GetTextRaw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
char * Result = This->GetTextRaw().data();
if(Result) {
rt.addBinary(Result, strlen(Result));
} else {rt.addAtom("null");};
- break;
+ break;
}
-case wxStyledTextCtrl_AppendTextRaw: { // wxStyledTextCtrl::AppendTextRaw
+case wxStyledTextCtrl_AppendTextRaw: { // wxStyledTextCtrl::AppendTextRaw
wxStyledTextCtrl *This = (wxStyledTextCtrl *) getPtr(bp,memenv); bp += 4;
- const char * text = (const char*) Ecmd.bin[0]->base;
+ const char * text = (const char*) Ecmd.bin[0]->base;
if(!This) throw wxe_badarg(0);
This->AppendTextRaw(text);
- break;
+ break;
}
-case wxArtProvider_GetBitmap: { // wxArtProvider::GetBitmap
+case wxArtProvider_GetBitmap: { // wxArtProvider::GetBitmap
wxArtClient client= wxART_OTHER;
wxSize size= wxDefaultSize;
int * idLen = (int *) bp; bp += 4;
wxString id = wxString(bp, wxConvUTF8);
bp += *idLen+((8-((4+ *idLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * clientLen = (int *) bp; bp += 4;
client = wxString(bp, wxConvUTF8);
@@ -30150,18 +30157,18 @@ case wxArtProvider_GetBitmap: { // wxArtProvider::GetBitmap
size = wxSize(*sizeW,*sizeH);
bp += 4; /* Align */
} break;
- }};
+ }};
wxBitmap * Result = new wxBitmap(wxArtProvider::GetBitmap(id,client,size)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxArtProvider_GetIcon: { // wxArtProvider::GetIcon
+case wxArtProvider_GetIcon: { // wxArtProvider::GetIcon
wxArtClient client= wxART_OTHER;
wxSize size= wxDefaultSize;
int * idLen = (int *) bp; bp += 4;
wxString id = wxString(bp, wxConvUTF8);
bp += *idLen+((8-((4+ *idLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * clientLen = (int *) bp; bp += 4;
client = wxString(bp, wxConvUTF8);
@@ -30173,324 +30180,324 @@ case wxArtProvider_GetIcon: { // wxArtProvider::GetIcon
size = wxSize(*sizeW,*sizeH);
bp += 4; /* Align */
} break;
- }};
+ }};
wxIcon * Result = new wxIcon(wxArtProvider::GetIcon(id,client,size)); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxIcon");
- break;
+ break;
}
-case wxTreeEvent_GetKeyCode: { // wxTreeEvent::GetKeyCode
+case wxTreeEvent_GetKeyCode: { // wxTreeEvent::GetKeyCode
wxTreeEvent *This = (wxTreeEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetKeyCode();
rt.addInt(Result);
- break;
+ break;
}
-case wxTreeEvent_GetItem: { // wxTreeEvent::GetItem
+case wxTreeEvent_GetItem: { // wxTreeEvent::GetItem
wxTreeEvent *This = (wxTreeEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetItem();
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeEvent_GetKeyEvent: { // wxTreeEvent::GetKeyEvent
+case wxTreeEvent_GetKeyEvent: { // wxTreeEvent::GetKeyEvent
wxTreeEvent *This = (wxTreeEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxKeyEvent * Result = &This->GetKeyEvent();
rt.addRef(getRef((void *)Result,memenv), "wxKeyEvent");
- break;
+ break;
}
-case wxTreeEvent_GetLabel: { // wxTreeEvent::GetLabel
+case wxTreeEvent_GetLabel: { // wxTreeEvent::GetLabel
wxTreeEvent *This = (wxTreeEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxString * Result = &This->GetLabel();
rt.add(Result);
- break;
+ break;
}
-case wxTreeEvent_GetOldItem: { // wxTreeEvent::GetOldItem
+case wxTreeEvent_GetOldItem: { // wxTreeEvent::GetOldItem
wxTreeEvent *This = (wxTreeEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxTreeItemId Result = This->GetOldItem();
rt.add((wxUIntPtr *) Result.m_pItem);
- break;
+ break;
}
-case wxTreeEvent_GetPoint: { // wxTreeEvent::GetPoint
+case wxTreeEvent_GetPoint: { // wxTreeEvent::GetPoint
wxTreeEvent *This = (wxTreeEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxPoint Result = This->GetPoint();
rt.add(Result);
- break;
+ break;
}
-case wxTreeEvent_IsEditCancelled: { // wxTreeEvent::IsEditCancelled
+case wxTreeEvent_IsEditCancelled: { // wxTreeEvent::IsEditCancelled
wxTreeEvent *This = (wxTreeEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsEditCancelled();
rt.addBool(Result);
- break;
+ break;
}
-case wxTreeEvent_SetToolTip: { // wxTreeEvent::SetToolTip
+case wxTreeEvent_SetToolTip: { // wxTreeEvent::SetToolTip
wxTreeEvent *This = (wxTreeEvent *) getPtr(bp,memenv); bp += 4;
int * toolTipLen = (int *) bp; bp += 4;
wxString toolTip = wxString(bp, wxConvUTF8);
bp += *toolTipLen+((8-((0+ *toolTipLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetToolTip(toolTip);
- break;
+ break;
}
-case wxNotebookEvent_GetOldSelection: { // wxNotebookEvent::GetOldSelection
+case wxNotebookEvent_GetOldSelection: { // wxNotebookEvent::GetOldSelection
wxNotebookEvent *This = (wxNotebookEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetOldSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxNotebookEvent_GetSelection: { // wxNotebookEvent::GetSelection
+case wxNotebookEvent_GetSelection: { // wxNotebookEvent::GetSelection
wxNotebookEvent *This = (wxNotebookEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxNotebookEvent_SetOldSelection: { // wxNotebookEvent::SetOldSelection
+case wxNotebookEvent_SetOldSelection: { // wxNotebookEvent::SetOldSelection
wxNotebookEvent *This = (wxNotebookEvent *) getPtr(bp,memenv); bp += 4;
int * nOldSel = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetOldSelection((int) *nOldSel);
- break;
+ break;
}
-case wxNotebookEvent_SetSelection: { // wxNotebookEvent::SetSelection
+case wxNotebookEvent_SetSelection: { // wxNotebookEvent::SetSelection
wxNotebookEvent *This = (wxNotebookEvent *) getPtr(bp,memenv); bp += 4;
int * nSel = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((int) *nSel);
- break;
+ break;
}
-case wxFileDataObject_new: { // wxFileDataObject::wxFileDataObject
+case wxFileDataObject_new: { // wxFileDataObject::wxFileDataObject
wxFileDataObject * Result = new wxFileDataObject();
newPtr((void *) Result, 211, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxFileDataObject");
- break;
+ break;
}
-case wxFileDataObject_AddFile: { // wxFileDataObject::AddFile
+case wxFileDataObject_AddFile: { // wxFileDataObject::AddFile
wxFileDataObject *This = (wxFileDataObject *) getPtr(bp,memenv); bp += 4;
int * filenameLen = (int *) bp; bp += 4;
wxString filename = wxString(bp, wxConvUTF8);
bp += *filenameLen+((8-((0+ *filenameLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->AddFile(filename);
- break;
+ break;
}
-case wxFileDataObject_GetFilenames: { // wxFileDataObject::GetFilenames
+case wxFileDataObject_GetFilenames: { // wxFileDataObject::GetFilenames
wxFileDataObject *This = (wxFileDataObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxArrayString Result = This->GetFilenames();
rt.add(Result);
- break;
+ break;
}
-case wxFileDataObject_destroy: { // wxFileDataObject::destroy
+case wxFileDataObject_destroy: { // wxFileDataObject::destroy
wxFileDataObject *This = (wxFileDataObject *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxTextDataObject_new: { // wxTextDataObject::wxTextDataObject
+case wxTextDataObject_new: { // wxTextDataObject::wxTextDataObject
wxString text= wxEmptyString;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
int * textLen = (int *) bp; bp += 4;
text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
} break;
- }};
+ }};
wxTextDataObject * Result = new wxTextDataObject(text);
newPtr((void *) Result, 212, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxTextDataObject");
- break;
+ break;
}
-case wxTextDataObject_GetTextLength: { // wxTextDataObject::GetTextLength
+case wxTextDataObject_GetTextLength: { // wxTextDataObject::GetTextLength
wxTextDataObject *This = (wxTextDataObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
size_t Result = This->GetTextLength();
rt.addInt(Result);
- break;
+ break;
}
-case wxTextDataObject_GetText: { // wxTextDataObject::GetText
+case wxTextDataObject_GetText: { // wxTextDataObject::GetText
wxTextDataObject *This = (wxTextDataObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetText();
rt.add(Result);
- break;
+ break;
}
-case wxTextDataObject_SetText: { // wxTextDataObject::SetText
+case wxTextDataObject_SetText: { // wxTextDataObject::SetText
wxTextDataObject *This = (wxTextDataObject *) getPtr(bp,memenv); bp += 4;
int * textLen = (int *) bp; bp += 4;
wxString text = wxString(bp, wxConvUTF8);
bp += *textLen+((8-((0+ *textLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetText(text);
- break;
+ break;
}
-case wxTextDataObject_destroy: { // wxTextDataObject::destroy
+case wxTextDataObject_destroy: { // wxTextDataObject::destroy
wxTextDataObject *This = (wxTextDataObject *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxBitmapDataObject_new_1_1: { // wxBitmapDataObject::wxBitmapDataObject
+case wxBitmapDataObject_new_1_1: { // wxBitmapDataObject::wxBitmapDataObject
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
wxBitmapDataObject * Result = new wxBitmapDataObject(*bitmap);
newPtr((void *) Result, 213, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBitmapDataObject");
- break;
+ break;
}
-case wxBitmapDataObject_new_1_0: { // wxBitmapDataObject::wxBitmapDataObject
+case wxBitmapDataObject_new_1_0: { // wxBitmapDataObject::wxBitmapDataObject
const wxBitmap * bitmap= &wxNullBitmap;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
wxBitmapDataObject * Result = new wxBitmapDataObject(*bitmap);
newPtr((void *) Result, 213, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxBitmapDataObject");
- break;
+ break;
}
-case wxBitmapDataObject_GetBitmap: { // wxBitmapDataObject::GetBitmap
+case wxBitmapDataObject_GetBitmap: { // wxBitmapDataObject::GetBitmap
wxBitmapDataObject *This = (wxBitmapDataObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxBitmap * Result = new wxBitmap(This->GetBitmap()); newPtr((void *) Result,3, memenv);;
rt.addRef(getRef((void *)Result,memenv), "wxBitmap");
- break;
+ break;
}
-case wxBitmapDataObject_SetBitmap: { // wxBitmapDataObject::SetBitmap
+case wxBitmapDataObject_SetBitmap: { // wxBitmapDataObject::SetBitmap
wxBitmapDataObject *This = (wxBitmapDataObject *) getPtr(bp,memenv); bp += 4;
wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBitmap(*bitmap);
- break;
+ break;
}
-case wxBitmapDataObject_destroy: { // wxBitmapDataObject::destroy
+case wxBitmapDataObject_destroy: { // wxBitmapDataObject::destroy
wxBitmapDataObject *This = (wxBitmapDataObject *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
-case wxClipboard_new: { // wxClipboard::wxClipboard
+case wxClipboard_new: { // wxClipboard::wxClipboard
wxClipboard * Result = new EwxClipboard();
newPtr((void *) Result, 1, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxClipboard");
- break;
+ break;
}
-case wxClipboard_AddData: { // wxClipboard::AddData
+case wxClipboard_AddData: { // wxClipboard::AddData
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
wxDataObject *data = (wxDataObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->AddData(data);
rt.addBool(Result);
- break;
+ break;
}
-case wxClipboard_Clear: { // wxClipboard::Clear
+case wxClipboard_Clear: { // wxClipboard::Clear
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Clear();
- break;
+ break;
}
-case wxClipboard_Close: { // wxClipboard::Close
+case wxClipboard_Close: { // wxClipboard::Close
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Close();
- break;
+ break;
}
-case wxClipboard_Flush: { // wxClipboard::Flush
+case wxClipboard_Flush: { // wxClipboard::Flush
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Flush();
rt.addBool(Result);
- break;
+ break;
}
-case wxClipboard_GetData: { // wxClipboard::GetData
+case wxClipboard_GetData: { // wxClipboard::GetData
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
wxDataObject *data = (wxDataObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetData(*data);
rt.addBool(Result);
- break;
+ break;
}
-case wxClipboard_IsOpened: { // wxClipboard::IsOpened
+case wxClipboard_IsOpened: { // wxClipboard::IsOpened
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsOpened();
rt.addBool(Result);
- break;
+ break;
}
-case wxClipboard_Open: { // wxClipboard::Open
+case wxClipboard_Open: { // wxClipboard::Open
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->Open();
rt.addBool(Result);
- break;
+ break;
}
-case wxClipboard_SetData: { // wxClipboard::SetData
+case wxClipboard_SetData: { // wxClipboard::SetData
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
wxDataObject *data = (wxDataObject *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->SetData(data);
rt.addBool(Result);
- break;
+ break;
}
-case wxClipboard_UsePrimarySelection: { // wxClipboard::UsePrimarySelection
+case wxClipboard_UsePrimarySelection: { // wxClipboard::UsePrimarySelection
bool primary=false;
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
primary = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->UsePrimarySelection(primary);
- break;
+ break;
}
-case wxClipboard_IsSupported: { // wxClipboard::IsSupported
+case wxClipboard_IsSupported: { // wxClipboard::IsSupported
wxClipboard *This = (wxClipboard *) getPtr(bp,memenv); bp += 4;
const int * format = (const int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSupported((wxDataFormatId) *format);
rt.addBool(Result);
- break;
+ break;
}
-case wxClipboard_Get: { // wxClipboard::Get
+case wxClipboard_Get: { // wxClipboard::Get
wxClipboard * Result = (wxClipboard*)wxClipboard::Get();
rt.addRef(getRef((void *)Result,memenv), "wxClipboard");
- break;
+ break;
}
-case wxSpinEvent_GetPosition: { // wxSpinEvent::GetPosition
+case wxSpinEvent_GetPosition: { // wxSpinEvent::GetPosition
wxSpinEvent *This = (wxSpinEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxSpinEvent_SetPosition: { // wxSpinEvent::SetPosition
+case wxSpinEvent_SetPosition: { // wxSpinEvent::SetPosition
wxSpinEvent *This = (wxSpinEvent *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPosition((int) *pos);
- break;
+ break;
}
-case wxSplitterWindow_new_0: { // wxSplitterWindow::wxSplitterWindow
+case wxSplitterWindow_new_0: { // wxSplitterWindow::wxSplitterWindow
wxSplitterWindow * Result = new EwxSplitterWindow();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSplitterWindow");
- break;
+ break;
}
-case wxSplitterWindow_new_2: { // wxSplitterWindow::wxSplitterWindow
+case wxSplitterWindow_new_2: { // wxSplitterWindow::wxSplitterWindow
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSP_3D;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -30509,20 +30516,20 @@ case wxSplitterWindow_new_2: { // wxSplitterWindow::wxSplitterWindow
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxSplitterWindow * Result = new EwxSplitterWindow(parent,id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxSplitterWindow");
- break;
+ break;
}
-case wxSplitterWindow_Create: { // wxSplitterWindow::Create
+case wxSplitterWindow_Create: { // wxSplitterWindow::Create
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=wxSP_3D;
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -30541,220 +30548,220 @@ case wxSplitterWindow_Create: { // wxSplitterWindow::Create
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Create(parent,id,pos,size,style);
rt.addBool(Result);
- break;
+ break;
}
-case wxSplitterWindow_GetMinimumPaneSize: { // wxSplitterWindow::GetMinimumPaneSize
+case wxSplitterWindow_GetMinimumPaneSize: { // wxSplitterWindow::GetMinimumPaneSize
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetMinimumPaneSize();
rt.addInt(Result);
- break;
+ break;
}
-case wxSplitterWindow_GetSashGravity: { // wxSplitterWindow::GetSashGravity
+case wxSplitterWindow_GetSashGravity: { // wxSplitterWindow::GetSashGravity
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
double Result = This->GetSashGravity();
rt.addFloat(Result);
- break;
+ break;
}
-case wxSplitterWindow_GetSashPosition: { // wxSplitterWindow::GetSashPosition
+case wxSplitterWindow_GetSashPosition: { // wxSplitterWindow::GetSashPosition
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSashPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxSplitterWindow_GetSplitMode: { // wxSplitterWindow::GetSplitMode
+case wxSplitterWindow_GetSplitMode: { // wxSplitterWindow::GetSplitMode
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSplitMode();
rt.addInt(Result);
- break;
+ break;
}
-case wxSplitterWindow_GetWindow1: { // wxSplitterWindow::GetWindow1
+case wxSplitterWindow_GetWindow1: { // wxSplitterWindow::GetWindow1
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetWindow1();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxSplitterWindow_GetWindow2: { // wxSplitterWindow::GetWindow2
+case wxSplitterWindow_GetWindow2: { // wxSplitterWindow::GetWindow2
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetWindow2();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxSplitterWindow_Initialize: { // wxSplitterWindow::Initialize
+case wxSplitterWindow_Initialize: { // wxSplitterWindow::Initialize
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *window = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->Initialize(window);
- break;
+ break;
}
-case wxSplitterWindow_IsSplit: { // wxSplitterWindow::IsSplit
+case wxSplitterWindow_IsSplit: { // wxSplitterWindow::IsSplit
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->IsSplit();
rt.addBool(Result);
- break;
+ break;
}
-case wxSplitterWindow_ReplaceWindow: { // wxSplitterWindow::ReplaceWindow
+case wxSplitterWindow_ReplaceWindow: { // wxSplitterWindow::ReplaceWindow
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *winOld = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *winNew = (wxWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->ReplaceWindow(winOld,winNew);
rt.addBool(Result);
- break;
+ break;
}
-case wxSplitterWindow_SetSashGravity: { // wxSplitterWindow::SetSashGravity
+case wxSplitterWindow_SetSashGravity: { // wxSplitterWindow::SetSashGravity
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
double * gravity = (double *) bp; bp += 8;
if(!This) throw wxe_badarg(0);
This->SetSashGravity((double) *gravity);
- break;
+ break;
}
-case wxSplitterWindow_SetSashPosition: { // wxSplitterWindow::SetSashPosition
+case wxSplitterWindow_SetSashPosition: { // wxSplitterWindow::SetSashPosition
bool redraw=true;
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
int * position = (int *) bp; bp += 4;
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
redraw = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetSashPosition((int) *position,redraw);
- break;
+ break;
}
-case wxSplitterWindow_SetSashSize: { // wxSplitterWindow::SetSashSize
+case wxSplitterWindow_SetSashSize: { // wxSplitterWindow::SetSashSize
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
int * width = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSashSize((int) *width);
- break;
+ break;
}
-case wxSplitterWindow_SetMinimumPaneSize: { // wxSplitterWindow::SetMinimumPaneSize
+case wxSplitterWindow_SetMinimumPaneSize: { // wxSplitterWindow::SetMinimumPaneSize
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
int * min = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetMinimumPaneSize((int) *min);
- break;
+ break;
}
-case wxSplitterWindow_SetSplitMode: { // wxSplitterWindow::SetSplitMode
+case wxSplitterWindow_SetSplitMode: { // wxSplitterWindow::SetSplitMode
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
int * mode = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSplitMode((int) *mode);
- break;
+ break;
}
-case wxSplitterWindow_SplitHorizontally: { // wxSplitterWindow::SplitHorizontally
+case wxSplitterWindow_SplitHorizontally: { // wxSplitterWindow::SplitHorizontally
int sashPosition=0;
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *window1 = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *window2 = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
sashPosition = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->SplitHorizontally(window1,window2,sashPosition);
rt.addBool(Result);
- break;
+ break;
}
-case wxSplitterWindow_SplitVertically: { // wxSplitterWindow::SplitVertically
+case wxSplitterWindow_SplitVertically: { // wxSplitterWindow::SplitVertically
int sashPosition=0;
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *window1 = (wxWindow *) getPtr(bp,memenv); bp += 4;
wxWindow *window2 = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
sashPosition = (int)*(int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->SplitVertically(window1,window2,sashPosition);
rt.addBool(Result);
- break;
+ break;
}
-case wxSplitterWindow_Unsplit: { // wxSplitterWindow::Unsplit
+case wxSplitterWindow_Unsplit: { // wxSplitterWindow::Unsplit
wxWindow * toRemove=(wxWindow *) NULL;
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
toRemove = (wxWindow *) getPtr(bp,memenv); bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
bool Result = This->Unsplit(toRemove);
rt.addBool(Result);
- break;
+ break;
}
-case wxSplitterWindow_UpdateSize: { // wxSplitterWindow::UpdateSize
+case wxSplitterWindow_UpdateSize: { // wxSplitterWindow::UpdateSize
wxSplitterWindow *This = (wxSplitterWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->UpdateSize();
- break;
+ break;
}
-case wxSplitterEvent_GetSashPosition: { // wxSplitterEvent::GetSashPosition
+case wxSplitterEvent_GetSashPosition: { // wxSplitterEvent::GetSashPosition
wxSplitterEvent *This = (wxSplitterEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSashPosition();
rt.addInt(Result);
- break;
+ break;
}
-case wxSplitterEvent_GetX: { // wxSplitterEvent::GetX
+case wxSplitterEvent_GetX: { // wxSplitterEvent::GetX
wxSplitterEvent *This = (wxSplitterEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetX();
rt.addInt(Result);
- break;
+ break;
}
-case wxSplitterEvent_GetY: { // wxSplitterEvent::GetY
+case wxSplitterEvent_GetY: { // wxSplitterEvent::GetY
wxSplitterEvent *This = (wxSplitterEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetY();
rt.addInt(Result);
- break;
+ break;
}
-case wxSplitterEvent_GetWindowBeingRemoved: { // wxSplitterEvent::GetWindowBeingRemoved
+case wxSplitterEvent_GetWindowBeingRemoved: { // wxSplitterEvent::GetWindowBeingRemoved
wxSplitterEvent *This = (wxSplitterEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxWindow * Result = (wxWindow*)This->GetWindowBeingRemoved();
rt.addRef(getRef((void *)Result,memenv), "wxWindow");
- break;
+ break;
}
-case wxSplitterEvent_SetSashPosition: { // wxSplitterEvent::SetSashPosition
+case wxSplitterEvent_SetSashPosition: { // wxSplitterEvent::SetSashPosition
wxSplitterEvent *This = (wxSplitterEvent *) getPtr(bp,memenv); bp += 4;
int * pos = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSashPosition((int) *pos);
- break;
+ break;
}
-case wxHtmlWindow_new_0: { // wxHtmlWindow::wxHtmlWindow
+case wxHtmlWindow_new_0: { // wxHtmlWindow::wxHtmlWindow
wxHtmlWindow * Result = new EwxHtmlWindow();
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxHtmlWindow");
- break;
+ break;
}
-case wxHtmlWindow_new_2: { // wxHtmlWindow::wxHtmlWindow
+case wxHtmlWindow_new_2: { // wxHtmlWindow::wxHtmlWindow
wxWindowID id=wxID_ANY;
wxPoint pos= wxDefaultPosition;
wxSize size= wxDefaultSize;
long style=0x0004;
wxWindow *parent = (wxWindow *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
id = (wxWindowID)*(int *) bp; bp += 4;
} break;
@@ -30773,13 +30780,13 @@ case wxHtmlWindow_new_2: { // wxHtmlWindow::wxHtmlWindow
case 4: {bp += 4;
style = (long)*(int *) bp; bp += 4;
} break;
- }};
+ }};
wxHtmlWindow * Result = new EwxHtmlWindow(parent,id,pos,size,style);
newPtr((void *) Result, 0, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxHtmlWindow");
- break;
+ break;
}
-case wxHtmlWindow_AppendToPage: { // wxHtmlWindow::AppendToPage
+case wxHtmlWindow_AppendToPage: { // wxHtmlWindow::AppendToPage
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
int * sourceLen = (int *) bp; bp += 4;
wxString source = wxString(bp, wxConvUTF8);
@@ -30787,71 +30794,71 @@ case wxHtmlWindow_AppendToPage: { // wxHtmlWindow::AppendToPage
if(!This) throw wxe_badarg(0);
bool Result = This->AppendToPage(source);
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlWindow_GetOpenedAnchor: { // wxHtmlWindow::GetOpenedAnchor
+case wxHtmlWindow_GetOpenedAnchor: { // wxHtmlWindow::GetOpenedAnchor
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetOpenedAnchor();
rt.add(Result);
- break;
+ break;
}
-case wxHtmlWindow_GetOpenedPage: { // wxHtmlWindow::GetOpenedPage
+case wxHtmlWindow_GetOpenedPage: { // wxHtmlWindow::GetOpenedPage
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetOpenedPage();
rt.add(Result);
- break;
+ break;
}
-case wxHtmlWindow_GetOpenedPageTitle: { // wxHtmlWindow::GetOpenedPageTitle
+case wxHtmlWindow_GetOpenedPageTitle: { // wxHtmlWindow::GetOpenedPageTitle
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->GetOpenedPageTitle();
rt.add(Result);
- break;
+ break;
}
-case wxHtmlWindow_GetRelatedFrame: { // wxHtmlWindow::GetRelatedFrame
+case wxHtmlWindow_GetRelatedFrame: { // wxHtmlWindow::GetRelatedFrame
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxFrame * Result = (wxFrame*)This->GetRelatedFrame();
rt.addRef(getRef((void *)Result,memenv), "wxFrame");
- break;
+ break;
}
-case wxHtmlWindow_HistoryBack: { // wxHtmlWindow::HistoryBack
+case wxHtmlWindow_HistoryBack: { // wxHtmlWindow::HistoryBack
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HistoryBack();
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlWindow_HistoryCanBack: { // wxHtmlWindow::HistoryCanBack
+case wxHtmlWindow_HistoryCanBack: { // wxHtmlWindow::HistoryCanBack
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HistoryCanBack();
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlWindow_HistoryCanForward: { // wxHtmlWindow::HistoryCanForward
+case wxHtmlWindow_HistoryCanForward: { // wxHtmlWindow::HistoryCanForward
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HistoryCanForward();
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlWindow_HistoryClear: { // wxHtmlWindow::HistoryClear
+case wxHtmlWindow_HistoryClear: { // wxHtmlWindow::HistoryClear
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->HistoryClear();
- break;
+ break;
}
-case wxHtmlWindow_HistoryForward: { // wxHtmlWindow::HistoryForward
+case wxHtmlWindow_HistoryForward: { // wxHtmlWindow::HistoryForward
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->HistoryForward();
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlWindow_LoadFile: { // wxHtmlWindow::LoadFile
+case wxHtmlWindow_LoadFile: { // wxHtmlWindow::LoadFile
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
int * filenameLen = (int *) bp; bp += 4;
wxString filenameStr = wxString(bp, wxConvUTF8);
@@ -30860,9 +30867,9 @@ case wxHtmlWindow_LoadFile: { // wxHtmlWindow::LoadFile
if(!This) throw wxe_badarg(0);
bool Result = This->LoadFile(filename);
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlWindow_LoadPage: { // wxHtmlWindow::LoadPage
+case wxHtmlWindow_LoadPage: { // wxHtmlWindow::LoadPage
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
int * locationLen = (int *) bp; bp += 4;
wxString location = wxString(bp, wxConvUTF8);
@@ -30870,47 +30877,47 @@ case wxHtmlWindow_LoadPage: { // wxHtmlWindow::LoadPage
if(!This) throw wxe_badarg(0);
bool Result = This->LoadPage(location);
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlWindow_SelectAll: { // wxHtmlWindow::SelectAll
+case wxHtmlWindow_SelectAll: { // wxHtmlWindow::SelectAll
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SelectAll();
- break;
+ break;
}
-case wxHtmlWindow_SelectionToText: { // wxHtmlWindow::SelectionToText
+case wxHtmlWindow_SelectionToText: { // wxHtmlWindow::SelectionToText
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->SelectionToText();
rt.add(Result);
- break;
+ break;
}
-case wxHtmlWindow_SelectLine: { // wxHtmlWindow::SelectLine
+case wxHtmlWindow_SelectLine: { // wxHtmlWindow::SelectLine
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
wxPoint pos = wxPoint(*posX,*posY);
if(!This) throw wxe_badarg(0);
This->SelectLine(pos);
- break;
+ break;
}
-case wxHtmlWindow_SelectWord: { // wxHtmlWindow::SelectWord
+case wxHtmlWindow_SelectWord: { // wxHtmlWindow::SelectWord
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
int * posX = (int *) bp; bp += 4;
int * posY = (int *) bp; bp += 4;
wxPoint pos = wxPoint(*posX,*posY);
if(!This) throw wxe_badarg(0);
This->SelectWord(pos);
- break;
+ break;
}
-case wxHtmlWindow_SetBorders: { // wxHtmlWindow::SetBorders
+case wxHtmlWindow_SetBorders: { // wxHtmlWindow::SetBorders
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
int * b = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetBorders((int) *b);
- break;
+ break;
}
-case wxHtmlWindow_SetFonts: { // wxHtmlWindow::SetFonts
+case wxHtmlWindow_SetFonts: { // wxHtmlWindow::SetFonts
int *sizes=NULL;
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
int * normal_faceLen = (int *) bp; bp += 4;
@@ -30919,16 +30926,16 @@ case wxHtmlWindow_SetFonts: { // wxHtmlWindow::SetFonts
int * fixed_faceLen = (int *) bp; bp += 4;
wxString fixed_face = wxString(bp, wxConvUTF8);
bp += *fixed_faceLen+((8-((4+ *fixed_faceLen) & 7)) & 7);
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
sizes = (int *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->SetFonts(normal_face,fixed_face,sizes);
- break;
+ break;
}
-case wxHtmlWindow_SetPage: { // wxHtmlWindow::SetPage
+case wxHtmlWindow_SetPage: { // wxHtmlWindow::SetPage
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
int * sourceLen = (int *) bp; bp += 4;
wxString source = wxString(bp, wxConvUTF8);
@@ -30936,9 +30943,9 @@ case wxHtmlWindow_SetPage: { // wxHtmlWindow::SetPage
if(!This) throw wxe_badarg(0);
bool Result = This->SetPage(source);
rt.addBool(Result);
- break;
+ break;
}
-case wxHtmlWindow_SetRelatedFrame: { // wxHtmlWindow::SetRelatedFrame
+case wxHtmlWindow_SetRelatedFrame: { // wxHtmlWindow::SetRelatedFrame
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
wxFrame *frame = (wxFrame *) getPtr(bp,memenv); bp += 4;
int * formatLen = (int *) bp; bp += 4;
@@ -30946,172 +30953,172 @@ case wxHtmlWindow_SetRelatedFrame: { // wxHtmlWindow::SetRelatedFrame
bp += *formatLen+((8-((4+ *formatLen) & 7)) & 7);
if(!This) throw wxe_badarg(0);
This->SetRelatedFrame(frame,format);
- break;
+ break;
}
-case wxHtmlWindow_SetRelatedStatusBar: { // wxHtmlWindow::SetRelatedStatusBar
+case wxHtmlWindow_SetRelatedStatusBar: { // wxHtmlWindow::SetRelatedStatusBar
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
int * bar = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetRelatedStatusBar((int) *bar);
- break;
+ break;
}
-case wxHtmlWindow_ToText: { // wxHtmlWindow::ToText
+case wxHtmlWindow_ToText: { // wxHtmlWindow::ToText
wxHtmlWindow *This = (wxHtmlWindow *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxString Result = This->ToText();
rt.add(Result);
- break;
+ break;
}
-case wxHtmlLinkEvent_GetLinkInfo: { // wxHtmlLinkEvent::GetLinkInfo
+case wxHtmlLinkEvent_GetLinkInfo: { // wxHtmlLinkEvent::GetLinkInfo
wxHtmlLinkEvent *This = (wxHtmlLinkEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
const wxHtmlLinkInfo * Result = &This->GetLinkInfo();
rt.add(Result);
- break;
+ break;
}
-case wxAuiNotebookEvent_SetSelection: { // wxAuiNotebookEvent::SetSelection
+case wxAuiNotebookEvent_SetSelection: { // wxAuiNotebookEvent::SetSelection
wxAuiNotebookEvent *This = (wxAuiNotebookEvent *) getPtr(bp,memenv); bp += 4;
int * s = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetSelection((int) *s);
- break;
+ break;
}
-case wxAuiNotebookEvent_GetSelection: { // wxAuiNotebookEvent::GetSelection
+case wxAuiNotebookEvent_GetSelection: { // wxAuiNotebookEvent::GetSelection
wxAuiNotebookEvent *This = (wxAuiNotebookEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxAuiNotebookEvent_SetOldSelection: { // wxAuiNotebookEvent::SetOldSelection
+case wxAuiNotebookEvent_SetOldSelection: { // wxAuiNotebookEvent::SetOldSelection
wxAuiNotebookEvent *This = (wxAuiNotebookEvent *) getPtr(bp,memenv); bp += 4;
int * s = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetOldSelection((int) *s);
- break;
+ break;
}
-case wxAuiNotebookEvent_GetOldSelection: { // wxAuiNotebookEvent::GetOldSelection
+case wxAuiNotebookEvent_GetOldSelection: { // wxAuiNotebookEvent::GetOldSelection
wxAuiNotebookEvent *This = (wxAuiNotebookEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetOldSelection();
rt.addInt(Result);
- break;
+ break;
}
-case wxAuiNotebookEvent_SetDragSource: { // wxAuiNotebookEvent::SetDragSource
+case wxAuiNotebookEvent_SetDragSource: { // wxAuiNotebookEvent::SetDragSource
wxAuiNotebookEvent *This = (wxAuiNotebookEvent *) getPtr(bp,memenv); bp += 4;
wxAuiNotebook *s = (wxAuiNotebook *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDragSource(s);
- break;
+ break;
}
-case wxAuiNotebookEvent_GetDragSource: { // wxAuiNotebookEvent::GetDragSource
+case wxAuiNotebookEvent_GetDragSource: { // wxAuiNotebookEvent::GetDragSource
wxAuiNotebookEvent *This = (wxAuiNotebookEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiNotebook * Result = (wxAuiNotebook*)This->GetDragSource();
rt.addRef(getRef((void *)Result,memenv), "wxAuiNotebook");
- break;
+ break;
}
-case wxAuiManagerEvent_SetManager: { // wxAuiManagerEvent::SetManager
+case wxAuiManagerEvent_SetManager: { // wxAuiManagerEvent::SetManager
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
wxAuiManager *mgr = (wxAuiManager *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetManager(mgr);
- break;
+ break;
}
-case wxAuiManagerEvent_GetManager: { // wxAuiManagerEvent::GetManager
+case wxAuiManagerEvent_GetManager: { // wxAuiManagerEvent::GetManager
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiManager * Result = (wxAuiManager*)This->GetManager();
rt.addRef(getRef((void *)Result,memenv), "wxAuiManager");
- break;
+ break;
}
-case wxAuiManagerEvent_SetPane: { // wxAuiManagerEvent::SetPane
+case wxAuiManagerEvent_SetPane: { // wxAuiManagerEvent::SetPane
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
wxAuiPaneInfo *p = (wxAuiPaneInfo *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetPane(p);
- break;
+ break;
}
-case wxAuiManagerEvent_GetPane: { // wxAuiManagerEvent::GetPane
+case wxAuiManagerEvent_GetPane: { // wxAuiManagerEvent::GetPane
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxAuiPaneInfo * Result = (wxAuiPaneInfo*)This->GetPane();
rt.addRef(getRef((void *)Result,memenv), "wxAuiPaneInfo");
- break;
+ break;
}
-case wxAuiManagerEvent_SetButton: { // wxAuiManagerEvent::SetButton
+case wxAuiManagerEvent_SetButton: { // wxAuiManagerEvent::SetButton
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
int * b = (int *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetButton((int) *b);
- break;
+ break;
}
-case wxAuiManagerEvent_GetButton: { // wxAuiManagerEvent::GetButton
+case wxAuiManagerEvent_GetButton: { // wxAuiManagerEvent::GetButton
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
int Result = This->GetButton();
rt.addInt(Result);
- break;
+ break;
}
-case wxAuiManagerEvent_SetDC: { // wxAuiManagerEvent::SetDC
+case wxAuiManagerEvent_SetDC: { // wxAuiManagerEvent::SetDC
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
wxDC *pdc = (wxDC *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
This->SetDC(pdc);
- break;
+ break;
}
-case wxAuiManagerEvent_GetDC: { // wxAuiManagerEvent::GetDC
+case wxAuiManagerEvent_GetDC: { // wxAuiManagerEvent::GetDC
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
wxDC * Result = (wxDC*)This->GetDC();
rt.addRef(getRef((void *)Result,memenv), "wxDC");
- break;
+ break;
}
-case wxAuiManagerEvent_Veto: { // wxAuiManagerEvent::Veto
+case wxAuiManagerEvent_Veto: { // wxAuiManagerEvent::Veto
bool veto=true;
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
bp += 4; /* Align */
- while( * (int*) bp) { switch (* (int*) bp) {
+ while( * (int*) bp) { switch (* (int*) bp) {
case 1: {bp += 4;
veto = *(bool *) bp; bp += 4;
} break;
- }};
+ }};
if(!This) throw wxe_badarg(0);
This->Veto(veto);
- break;
+ break;
}
-case wxAuiManagerEvent_GetVeto: { // wxAuiManagerEvent::GetVeto
+case wxAuiManagerEvent_GetVeto: { // wxAuiManagerEvent::GetVeto
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->GetVeto();
rt.addBool(Result);
- break;
+ break;
}
-case wxAuiManagerEvent_SetCanVeto: { // wxAuiManagerEvent::SetCanVeto
+case wxAuiManagerEvent_SetCanVeto: { // wxAuiManagerEvent::SetCanVeto
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
bool * can_veto = (bool *) bp; bp += 4;
if(!This) throw wxe_badarg(0);
This->SetCanVeto((bool) *can_veto);
- break;
+ break;
}
-case wxAuiManagerEvent_CanVeto: { // wxAuiManagerEvent::CanVeto
+case wxAuiManagerEvent_CanVeto: { // wxAuiManagerEvent::CanVeto
wxAuiManagerEvent *This = (wxAuiManagerEvent *) getPtr(bp,memenv); bp += 4;
if(!This) throw wxe_badarg(0);
bool Result = This->CanVeto();
rt.addBool(Result);
- break;
+ break;
}
-case wxLogNull_new: { // wxLogNull::wxLogNull
+case wxLogNull_new: { // wxLogNull::wxLogNull
wxLogNull * Result = new wxLogNull();
newPtr((void *) Result, 222, memenv);
rt.addRef(getRef((void *)Result,memenv), "wxLogNull");
- break;
+ break;
}
-case wxLogNull_destroy: { // wxLogNull::destroy
+case wxLogNull_destroy: { // wxLogNull::destroy
wxLogNull *This = (wxLogNull *) getPtr(bp,memenv); bp += 4;
if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
delete This;}
- break;
+ break;
}
default: {
wxeReturn error = wxeReturn(WXE_DRV_PORT, Ecmd.caller, false); error.addAtom("_wxe_error_");
@@ -31123,7 +31130,7 @@ case wxLogNull_destroy: { // wxLogNull::destroy
}
} // switch
rt.send();
-} catch (wxe_badarg badarg) { // try
+} catch (wxe_badarg badarg) { // try
wxeReturn error = wxeReturn(WXE_DRV_PORT, Ecmd.caller, false); error.addAtom("_wxe_error_");
error.addInt((int) Ecmd.op);
error.addAtom("badarg");
@@ -31131,4 +31138,4 @@ case wxLogNull_destroy: { // wxLogNull::destroy
error.addTupleCount(2);
error.addTupleCount(3);
error.send();
-}} /* The End */
+}} /* The End */
diff --git a/lib/wx/c_src/gen/wxe_init.cpp b/lib/wx/c_src/gen/wxe_init.cpp
index c69f853203..96c775c4c0 100644
--- a/lib/wx/c_src/gen/wxe_init.cpp
+++ b/lib/wx/c_src/gen/wxe_init.cpp
@@ -1,19 +1,19 @@
/*
* %CopyrightBegin%
- *
- * Copyright Ericsson AB 2008-2009. All Rights Reserved.
- *
+ *
+ * Copyright Ericsson AB 2008-2010. All Rights Reserved.
+ *
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
* compliance with the License. You should have received a copy of the
* Erlang Public License along with this software. If not, it can be
* retrieved online at http://www.erlang.org/.
- *
+ *
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
- *
+ *
* %CopyrightEnd%
*/
/* This file is also generated */
diff --git a/lib/wx/c_src/gen/wxe_macros.h b/lib/wx/c_src/gen/wxe_macros.h
index 74d82a54f3..cb5a4f3c41 100644
--- a/lib/wx/c_src/gen/wxe_macros.h
+++ b/lib/wx/c_src/gen/wxe_macros.h
@@ -1559,1761 +1559,1762 @@
#define wxListCtrl_GetColumnCount 1672
#define wxListCtrl_GetColumnWidth 1673
#define wxListCtrl_GetCountPerPage 1674
-#define wxListCtrl_GetImageList 1675
-#define wxListCtrl_GetItem 1676
-#define wxListCtrl_GetItemBackgroundColour 1677
-#define wxListCtrl_GetItemCount 1678
-#define wxListCtrl_GetItemData 1679
-#define wxListCtrl_GetItemFont 1680
-#define wxListCtrl_GetItemPosition 1681
-#define wxListCtrl_GetItemRect 1682
-#define wxListCtrl_GetItemSpacing 1683
-#define wxListCtrl_GetItemState 1684
-#define wxListCtrl_GetItemText 1685
-#define wxListCtrl_GetItemTextColour 1686
-#define wxListCtrl_GetNextItem 1687
-#define wxListCtrl_GetSelectedItemCount 1688
-#define wxListCtrl_GetTextColour 1689
-#define wxListCtrl_GetTopItem 1690
-#define wxListCtrl_GetViewRect 1691
-#define wxListCtrl_HitTest 1692
-#define wxListCtrl_InsertColumn_2 1693
-#define wxListCtrl_InsertColumn_3 1694
-#define wxListCtrl_InsertItem_1 1695
-#define wxListCtrl_InsertItem_2_1 1696
-#define wxListCtrl_InsertItem_2_0 1697
-#define wxListCtrl_InsertItem_3 1698
-#define wxListCtrl_RefreshItem 1699
-#define wxListCtrl_RefreshItems 1700
-#define wxListCtrl_ScrollList 1701
-#define wxListCtrl_SetBackgroundColour 1702
-#define wxListCtrl_SetColumn 1703
-#define wxListCtrl_SetColumnWidth 1704
-#define wxListCtrl_SetImageList 1705
-#define wxListCtrl_SetItem_1 1706
-#define wxListCtrl_SetItem_4 1707
-#define wxListCtrl_SetItemBackgroundColour 1708
-#define wxListCtrl_SetItemCount 1709
-#define wxListCtrl_SetItemData 1710
-#define wxListCtrl_SetItemFont 1711
-#define wxListCtrl_SetItemImage 1712
-#define wxListCtrl_SetItemColumnImage 1713
-#define wxListCtrl_SetItemPosition 1714
-#define wxListCtrl_SetItemState 1715
-#define wxListCtrl_SetItemText 1716
-#define wxListCtrl_SetItemTextColour 1717
-#define wxListCtrl_SetSingleStyle 1718
-#define wxListCtrl_SetTextColour 1719
-#define wxListCtrl_SetWindowStyleFlag 1720
-#define wxListCtrl_SortItems 1721
-#define wxListCtrl_destroy 1722
-#define wxListView_ClearColumnImage 1723
-#define wxListView_Focus 1724
-#define wxListView_GetFirstSelected 1725
-#define wxListView_GetFocusedItem 1726
-#define wxListView_GetNextSelected 1727
-#define wxListView_IsSelected 1728
-#define wxListView_Select 1729
-#define wxListView_SetColumnImage 1730
-#define wxListItem_new_0 1731
-#define wxListItem_new_1 1732
-#define wxListItem_destruct 1733
-#define wxListItem_Clear 1734
-#define wxListItem_GetAlign 1735
-#define wxListItem_GetBackgroundColour 1736
-#define wxListItem_GetColumn 1737
-#define wxListItem_GetFont 1738
-#define wxListItem_GetId 1739
-#define wxListItem_GetImage 1740
-#define wxListItem_GetMask 1741
-#define wxListItem_GetState 1742
-#define wxListItem_GetText 1743
-#define wxListItem_GetTextColour 1744
-#define wxListItem_GetWidth 1745
-#define wxListItem_SetAlign 1746
-#define wxListItem_SetBackgroundColour 1747
-#define wxListItem_SetColumn 1748
-#define wxListItem_SetFont 1749
-#define wxListItem_SetId 1750
-#define wxListItem_SetImage 1751
-#define wxListItem_SetMask 1752
-#define wxListItem_SetState 1753
-#define wxListItem_SetStateMask 1754
-#define wxListItem_SetText 1755
-#define wxListItem_SetTextColour 1756
-#define wxListItem_SetWidth 1757
-#define wxImageList_new_0 1758
-#define wxImageList_new_3 1759
-#define wxImageList_Add_1 1760
-#define wxImageList_Add_2_0 1761
-#define wxImageList_Add_2_1 1762
-#define wxImageList_Create 1763
-#define wxImageList_Draw 1765
-#define wxImageList_GetBitmap 1766
-#define wxImageList_GetIcon 1767
-#define wxImageList_GetImageCount 1768
-#define wxImageList_GetSize 1769
-#define wxImageList_Remove 1770
-#define wxImageList_RemoveAll 1771
-#define wxImageList_Replace_2 1772
-#define wxImageList_Replace_3 1773
-#define wxImageList_destroy 1774
-#define wxTextAttr_new_0 1775
-#define wxTextAttr_new_2 1776
-#define wxTextAttr_GetAlignment 1777
-#define wxTextAttr_GetBackgroundColour 1778
-#define wxTextAttr_GetFont 1779
-#define wxTextAttr_GetLeftIndent 1780
-#define wxTextAttr_GetLeftSubIndent 1781
-#define wxTextAttr_GetRightIndent 1782
-#define wxTextAttr_GetTabs 1783
-#define wxTextAttr_GetTextColour 1784
-#define wxTextAttr_HasBackgroundColour 1785
-#define wxTextAttr_HasFont 1786
-#define wxTextAttr_HasTextColour 1787
-#define wxTextAttr_GetFlags 1788
-#define wxTextAttr_IsDefault 1789
-#define wxTextAttr_SetAlignment 1790
-#define wxTextAttr_SetBackgroundColour 1791
-#define wxTextAttr_SetFlags 1792
-#define wxTextAttr_SetFont 1793
-#define wxTextAttr_SetLeftIndent 1794
-#define wxTextAttr_SetRightIndent 1795
-#define wxTextAttr_SetTabs 1796
-#define wxTextAttr_SetTextColour 1797
-#define wxTextAttr_destroy 1798
-#define wxTextCtrl_new_3 1800
-#define wxTextCtrl_new_0 1801
-#define wxTextCtrl_destruct 1803
-#define wxTextCtrl_AppendText 1804
-#define wxTextCtrl_CanCopy 1805
-#define wxTextCtrl_CanCut 1806
-#define wxTextCtrl_CanPaste 1807
-#define wxTextCtrl_CanRedo 1808
-#define wxTextCtrl_CanUndo 1809
-#define wxTextCtrl_Clear 1810
-#define wxTextCtrl_Copy 1811
-#define wxTextCtrl_Create 1812
-#define wxTextCtrl_Cut 1813
-#define wxTextCtrl_DiscardEdits 1814
-#define wxTextCtrl_EmulateKeyPress 1815
-#define wxTextCtrl_GetDefaultStyle 1816
-#define wxTextCtrl_GetInsertionPoint 1817
-#define wxTextCtrl_GetLastPosition 1818
-#define wxTextCtrl_GetLineLength 1819
-#define wxTextCtrl_GetLineText 1820
-#define wxTextCtrl_GetNumberOfLines 1821
-#define wxTextCtrl_GetRange 1822
-#define wxTextCtrl_GetSelection 1823
-#define wxTextCtrl_GetStringSelection 1824
-#define wxTextCtrl_GetStyle 1825
-#define wxTextCtrl_GetValue 1826
-#define wxTextCtrl_IsEditable 1827
-#define wxTextCtrl_IsModified 1828
-#define wxTextCtrl_IsMultiLine 1829
-#define wxTextCtrl_IsSingleLine 1830
-#define wxTextCtrl_LoadFile 1831
-#define wxTextCtrl_MarkDirty 1832
-#define wxTextCtrl_Paste 1833
-#define wxTextCtrl_PositionToXY 1834
-#define wxTextCtrl_Redo 1835
-#define wxTextCtrl_Remove 1836
-#define wxTextCtrl_Replace 1837
-#define wxTextCtrl_SaveFile 1838
-#define wxTextCtrl_SetDefaultStyle 1839
-#define wxTextCtrl_SetEditable 1840
-#define wxTextCtrl_SetInsertionPoint 1841
-#define wxTextCtrl_SetInsertionPointEnd 1842
-#define wxTextCtrl_SetMaxLength 1844
-#define wxTextCtrl_SetSelection 1845
-#define wxTextCtrl_SetStyle 1846
-#define wxTextCtrl_SetValue 1847
-#define wxTextCtrl_ShowPosition 1848
-#define wxTextCtrl_Undo 1849
-#define wxTextCtrl_WriteText 1850
-#define wxTextCtrl_XYToPosition 1851
-#define wxNotebook_new_0 1854
-#define wxNotebook_new_3 1855
-#define wxNotebook_destruct 1856
-#define wxNotebook_AddPage 1857
-#define wxNotebook_AdvanceSelection 1858
-#define wxNotebook_AssignImageList 1859
-#define wxNotebook_Create 1860
-#define wxNotebook_DeleteAllPages 1861
-#define wxNotebook_DeletePage 1862
-#define wxNotebook_RemovePage 1863
-#define wxNotebook_GetCurrentPage 1864
-#define wxNotebook_GetImageList 1865
-#define wxNotebook_GetPage 1867
-#define wxNotebook_GetPageCount 1868
-#define wxNotebook_GetPageImage 1869
-#define wxNotebook_GetPageText 1870
-#define wxNotebook_GetRowCount 1871
-#define wxNotebook_GetSelection 1872
-#define wxNotebook_GetThemeBackgroundColour 1873
-#define wxNotebook_HitTest 1875
-#define wxNotebook_InsertPage 1877
-#define wxNotebook_SetImageList 1878
-#define wxNotebook_SetPadding 1879
-#define wxNotebook_SetPageSize 1880
-#define wxNotebook_SetPageImage 1881
-#define wxNotebook_SetPageText 1882
-#define wxNotebook_SetSelection 1883
-#define wxNotebook_ChangeSelection 1884
-#define wxChoicebook_new_0 1885
-#define wxChoicebook_new_3 1886
-#define wxChoicebook_AddPage 1887
-#define wxChoicebook_AdvanceSelection 1888
-#define wxChoicebook_AssignImageList 1889
-#define wxChoicebook_Create 1890
-#define wxChoicebook_DeleteAllPages 1891
-#define wxChoicebook_DeletePage 1892
-#define wxChoicebook_RemovePage 1893
-#define wxChoicebook_GetCurrentPage 1894
-#define wxChoicebook_GetImageList 1895
-#define wxChoicebook_GetPage 1897
-#define wxChoicebook_GetPageCount 1898
-#define wxChoicebook_GetPageImage 1899
-#define wxChoicebook_GetPageText 1900
-#define wxChoicebook_GetSelection 1901
-#define wxChoicebook_HitTest 1902
-#define wxChoicebook_InsertPage 1903
-#define wxChoicebook_SetImageList 1904
-#define wxChoicebook_SetPageSize 1905
-#define wxChoicebook_SetPageImage 1906
-#define wxChoicebook_SetPageText 1907
-#define wxChoicebook_SetSelection 1908
-#define wxChoicebook_ChangeSelection 1909
-#define wxChoicebook_destroy 1910
-#define wxToolbook_new_0 1911
-#define wxToolbook_new_3 1912
-#define wxToolbook_AddPage 1913
-#define wxToolbook_AdvanceSelection 1914
-#define wxToolbook_AssignImageList 1915
-#define wxToolbook_Create 1916
-#define wxToolbook_DeleteAllPages 1917
-#define wxToolbook_DeletePage 1918
-#define wxToolbook_RemovePage 1919
-#define wxToolbook_GetCurrentPage 1920
-#define wxToolbook_GetImageList 1921
-#define wxToolbook_GetPage 1923
-#define wxToolbook_GetPageCount 1924
-#define wxToolbook_GetPageImage 1925
-#define wxToolbook_GetPageText 1926
-#define wxToolbook_GetSelection 1927
-#define wxToolbook_HitTest 1929
-#define wxToolbook_InsertPage 1930
-#define wxToolbook_SetImageList 1931
-#define wxToolbook_SetPageSize 1932
-#define wxToolbook_SetPageImage 1933
-#define wxToolbook_SetPageText 1934
-#define wxToolbook_SetSelection 1935
-#define wxToolbook_ChangeSelection 1936
-#define wxToolbook_destroy 1937
-#define wxListbook_new_0 1938
-#define wxListbook_new_3 1939
-#define wxListbook_AddPage 1940
-#define wxListbook_AdvanceSelection 1941
-#define wxListbook_AssignImageList 1942
-#define wxListbook_Create 1943
-#define wxListbook_DeleteAllPages 1944
-#define wxListbook_DeletePage 1945
-#define wxListbook_RemovePage 1946
-#define wxListbook_GetCurrentPage 1947
-#define wxListbook_GetImageList 1948
-#define wxListbook_GetPage 1950
-#define wxListbook_GetPageCount 1951
-#define wxListbook_GetPageImage 1952
-#define wxListbook_GetPageText 1953
-#define wxListbook_GetSelection 1954
-#define wxListbook_HitTest 1956
-#define wxListbook_InsertPage 1957
-#define wxListbook_SetImageList 1958
-#define wxListbook_SetPageSize 1959
-#define wxListbook_SetPageImage 1960
-#define wxListbook_SetPageText 1961
-#define wxListbook_SetSelection 1962
-#define wxListbook_ChangeSelection 1963
-#define wxListbook_destroy 1964
-#define wxTreebook_new_0 1965
-#define wxTreebook_new_3 1966
-#define wxTreebook_AddPage 1967
-#define wxTreebook_AdvanceSelection 1968
-#define wxTreebook_AssignImageList 1969
-#define wxTreebook_Create 1970
-#define wxTreebook_DeleteAllPages 1971
-#define wxTreebook_DeletePage 1972
-#define wxTreebook_RemovePage 1973
-#define wxTreebook_GetCurrentPage 1974
-#define wxTreebook_GetImageList 1975
-#define wxTreebook_GetPage 1977
-#define wxTreebook_GetPageCount 1978
-#define wxTreebook_GetPageImage 1979
-#define wxTreebook_GetPageText 1980
-#define wxTreebook_GetSelection 1981
-#define wxTreebook_ExpandNode 1982
-#define wxTreebook_IsNodeExpanded 1983
-#define wxTreebook_HitTest 1985
-#define wxTreebook_InsertPage 1986
-#define wxTreebook_InsertSubPage 1987
-#define wxTreebook_SetImageList 1988
-#define wxTreebook_SetPageSize 1989
-#define wxTreebook_SetPageImage 1990
-#define wxTreebook_SetPageText 1991
-#define wxTreebook_SetSelection 1992
-#define wxTreebook_ChangeSelection 1993
-#define wxTreebook_destroy 1994
-#define wxTreeCtrl_new_2 1997
-#define wxTreeCtrl_new_0 1998
-#define wxTreeCtrl_destruct 2000
-#define wxTreeCtrl_AddRoot 2001
-#define wxTreeCtrl_AppendItem 2002
-#define wxTreeCtrl_AssignImageList 2003
-#define wxTreeCtrl_AssignStateImageList 2004
-#define wxTreeCtrl_Collapse 2005
-#define wxTreeCtrl_CollapseAndReset 2006
-#define wxTreeCtrl_Create 2007
-#define wxTreeCtrl_Delete 2008
-#define wxTreeCtrl_DeleteAllItems 2009
-#define wxTreeCtrl_DeleteChildren 2010
-#define wxTreeCtrl_EnsureVisible 2011
-#define wxTreeCtrl_Expand 2012
-#define wxTreeCtrl_GetBoundingRect 2013
-#define wxTreeCtrl_GetChildrenCount 2015
-#define wxTreeCtrl_GetCount 2016
-#define wxTreeCtrl_GetEditControl 2017
-#define wxTreeCtrl_GetFirstChild 2018
-#define wxTreeCtrl_GetNextChild 2019
-#define wxTreeCtrl_GetFirstVisibleItem 2020
-#define wxTreeCtrl_GetImageList 2021
-#define wxTreeCtrl_GetIndent 2022
-#define wxTreeCtrl_GetItemBackgroundColour 2023
-#define wxTreeCtrl_GetItemData 2024
-#define wxTreeCtrl_GetItemFont 2025
-#define wxTreeCtrl_GetItemImage_1 2026
-#define wxTreeCtrl_GetItemImage_2 2027
-#define wxTreeCtrl_GetItemText 2028
-#define wxTreeCtrl_GetItemTextColour 2029
-#define wxTreeCtrl_GetLastChild 2030
-#define wxTreeCtrl_GetNextSibling 2031
-#define wxTreeCtrl_GetNextVisible 2032
-#define wxTreeCtrl_GetItemParent 2033
-#define wxTreeCtrl_GetPrevSibling 2034
-#define wxTreeCtrl_GetPrevVisible 2035
-#define wxTreeCtrl_GetRootItem 2036
-#define wxTreeCtrl_GetSelection 2037
-#define wxTreeCtrl_GetSelections 2038
-#define wxTreeCtrl_GetStateImageList 2039
-#define wxTreeCtrl_HitTest 2040
-#define wxTreeCtrl_InsertItem 2042
-#define wxTreeCtrl_IsBold 2043
-#define wxTreeCtrl_IsExpanded 2044
-#define wxTreeCtrl_IsSelected 2045
-#define wxTreeCtrl_IsVisible 2046
-#define wxTreeCtrl_ItemHasChildren 2047
-#define wxTreeCtrl_PrependItem 2048
-#define wxTreeCtrl_ScrollTo 2049
-#define wxTreeCtrl_SelectItem_1 2050
-#define wxTreeCtrl_SelectItem_2 2051
-#define wxTreeCtrl_SetIndent 2052
-#define wxTreeCtrl_SetImageList 2053
-#define wxTreeCtrl_SetItemBackgroundColour 2054
-#define wxTreeCtrl_SetItemBold 2055
-#define wxTreeCtrl_SetItemData 2056
-#define wxTreeCtrl_SetItemDropHighlight 2057
-#define wxTreeCtrl_SetItemFont 2058
-#define wxTreeCtrl_SetItemHasChildren 2059
-#define wxTreeCtrl_SetItemImage_2 2060
-#define wxTreeCtrl_SetItemImage_3 2061
-#define wxTreeCtrl_SetItemText 2062
-#define wxTreeCtrl_SetItemTextColour 2063
-#define wxTreeCtrl_SetStateImageList 2064
-#define wxTreeCtrl_SetWindowStyle 2065
-#define wxTreeCtrl_SortChildren 2066
-#define wxTreeCtrl_Toggle 2067
-#define wxTreeCtrl_ToggleItemSelection 2068
-#define wxTreeCtrl_Unselect 2069
-#define wxTreeCtrl_UnselectAll 2070
-#define wxTreeCtrl_UnselectItem 2071
-#define wxScrollBar_new_0 2072
-#define wxScrollBar_new_3 2073
-#define wxScrollBar_destruct 2074
-#define wxScrollBar_Create 2075
-#define wxScrollBar_GetRange 2076
-#define wxScrollBar_GetPageSize 2077
-#define wxScrollBar_GetThumbPosition 2078
-#define wxScrollBar_GetThumbSize 2079
-#define wxScrollBar_SetThumbPosition 2080
-#define wxScrollBar_SetScrollbar 2081
-#define wxSpinButton_new_2 2083
-#define wxSpinButton_new_0 2084
-#define wxSpinButton_Create 2085
-#define wxSpinButton_GetMax 2086
-#define wxSpinButton_GetMin 2087
-#define wxSpinButton_GetValue 2088
-#define wxSpinButton_SetRange 2089
-#define wxSpinButton_SetValue 2090
-#define wxSpinButton_destroy 2091
-#define wxSpinCtrl_new_0 2092
-#define wxSpinCtrl_new_2 2093
-#define wxSpinCtrl_Create 2095
-#define wxSpinCtrl_SetValue_1_1 2098
-#define wxSpinCtrl_SetValue_1_0 2099
-#define wxSpinCtrl_GetValue 2101
-#define wxSpinCtrl_SetRange 2103
-#define wxSpinCtrl_SetSelection 2104
-#define wxSpinCtrl_GetMin 2106
-#define wxSpinCtrl_GetMax 2108
-#define wxSpinCtrl_destroy 2109
-#define wxStaticText_new_0 2110
-#define wxStaticText_new_4 2111
-#define wxStaticText_Create 2112
-#define wxStaticText_GetLabel 2113
-#define wxStaticText_SetLabel 2114
-#define wxStaticText_Wrap 2115
-#define wxStaticText_destroy 2116
-#define wxStaticBitmap_new_0 2117
-#define wxStaticBitmap_new_4 2118
-#define wxStaticBitmap_Create 2119
-#define wxStaticBitmap_GetBitmap 2120
-#define wxStaticBitmap_SetBitmap 2121
-#define wxStaticBitmap_destroy 2122
-#define wxRadioBox_new 2123
-#define wxRadioBox_destruct 2125
-#define wxRadioBox_Create 2126
-#define wxRadioBox_Enable_2 2127
-#define wxRadioBox_Enable_1 2128
-#define wxRadioBox_GetSelection 2129
-#define wxRadioBox_GetString 2130
-#define wxRadioBox_SetSelection 2131
-#define wxRadioBox_Show_2 2132
-#define wxRadioBox_Show_1 2133
-#define wxRadioBox_GetColumnCount 2134
-#define wxRadioBox_GetItemHelpText 2135
-#define wxRadioBox_GetItemToolTip 2136
-#define wxRadioBox_GetItemFromPoint 2138
-#define wxRadioBox_GetRowCount 2139
-#define wxRadioBox_IsItemEnabled 2140
-#define wxRadioBox_IsItemShown 2141
-#define wxRadioBox_SetItemHelpText 2142
-#define wxRadioBox_SetItemToolTip 2143
-#define wxRadioButton_new_0 2144
-#define wxRadioButton_new_4 2145
-#define wxRadioButton_Create 2146
-#define wxRadioButton_GetValue 2147
-#define wxRadioButton_SetValue 2148
-#define wxRadioButton_destroy 2149
-#define wxSlider_new_6 2151
-#define wxSlider_new_0 2152
-#define wxSlider_Create 2153
-#define wxSlider_GetLineSize 2154
-#define wxSlider_GetMax 2155
-#define wxSlider_GetMin 2156
-#define wxSlider_GetPageSize 2157
-#define wxSlider_GetThumbLength 2158
-#define wxSlider_GetValue 2159
-#define wxSlider_SetLineSize 2160
-#define wxSlider_SetPageSize 2161
-#define wxSlider_SetRange 2162
-#define wxSlider_SetThumbLength 2163
-#define wxSlider_SetValue 2164
-#define wxSlider_destroy 2165
-#define wxDialog_new_4 2167
-#define wxDialog_new_0 2168
-#define wxDialog_destruct 2170
-#define wxDialog_Create 2171
-#define wxDialog_CreateButtonSizer 2172
-#define wxDialog_CreateStdDialogButtonSizer 2173
-#define wxDialog_EndModal 2174
-#define wxDialog_GetAffirmativeId 2175
-#define wxDialog_GetReturnCode 2176
-#define wxDialog_IsModal 2177
-#define wxDialog_SetAffirmativeId 2178
-#define wxDialog_SetReturnCode 2179
-#define wxDialog_Show 2180
-#define wxDialog_ShowModal 2181
-#define wxColourDialog_new_0 2182
-#define wxColourDialog_new_2 2183
-#define wxColourDialog_destruct 2184
-#define wxColourDialog_Create 2185
-#define wxColourDialog_GetColourData 2186
-#define wxColourData_new_0 2187
-#define wxColourData_new_1 2188
-#define wxColourData_destruct 2189
-#define wxColourData_GetChooseFull 2190
-#define wxColourData_GetColour 2191
-#define wxColourData_GetCustomColour 2193
-#define wxColourData_SetChooseFull 2194
-#define wxColourData_SetColour 2195
-#define wxColourData_SetCustomColour 2196
-#define wxPalette_new_0 2197
-#define wxPalette_new_4 2198
-#define wxPalette_destruct 2200
-#define wxPalette_Create 2201
-#define wxPalette_GetColoursCount 2202
-#define wxPalette_GetPixel 2203
-#define wxPalette_GetRGB 2204
-#define wxPalette_IsOk 2205
-#define wxDirDialog_new 2209
-#define wxDirDialog_destruct 2210
-#define wxDirDialog_GetPath 2211
-#define wxDirDialog_GetMessage 2212
-#define wxDirDialog_SetMessage 2213
-#define wxDirDialog_SetPath 2214
-#define wxFileDialog_new 2218
-#define wxFileDialog_destruct 2219
-#define wxFileDialog_GetDirectory 2220
-#define wxFileDialog_GetFilename 2221
-#define wxFileDialog_GetFilenames 2222
-#define wxFileDialog_GetFilterIndex 2223
-#define wxFileDialog_GetMessage 2224
-#define wxFileDialog_GetPath 2225
-#define wxFileDialog_GetPaths 2226
-#define wxFileDialog_GetWildcard 2227
-#define wxFileDialog_SetDirectory 2228
-#define wxFileDialog_SetFilename 2229
-#define wxFileDialog_SetFilterIndex 2230
-#define wxFileDialog_SetMessage 2231
-#define wxFileDialog_SetPath 2232
-#define wxFileDialog_SetWildcard 2233
-#define wxPickerBase_SetInternalMargin 2234
-#define wxPickerBase_GetInternalMargin 2235
-#define wxPickerBase_SetTextCtrlProportion 2236
-#define wxPickerBase_SetPickerCtrlProportion 2237
-#define wxPickerBase_GetTextCtrlProportion 2238
-#define wxPickerBase_GetPickerCtrlProportion 2239
-#define wxPickerBase_HasTextCtrl 2240
-#define wxPickerBase_GetTextCtrl 2241
-#define wxPickerBase_IsTextCtrlGrowable 2242
-#define wxPickerBase_SetPickerCtrlGrowable 2243
-#define wxPickerBase_SetTextCtrlGrowable 2244
-#define wxPickerBase_IsPickerCtrlGrowable 2245
-#define wxFilePickerCtrl_new_0 2246
-#define wxFilePickerCtrl_new_3 2247
-#define wxFilePickerCtrl_Create 2248
-#define wxFilePickerCtrl_GetPath 2249
-#define wxFilePickerCtrl_SetPath 2250
-#define wxFilePickerCtrl_destroy 2251
-#define wxDirPickerCtrl_new_0 2252
-#define wxDirPickerCtrl_new_3 2253
-#define wxDirPickerCtrl_Create 2254
-#define wxDirPickerCtrl_GetPath 2255
-#define wxDirPickerCtrl_SetPath 2256
-#define wxDirPickerCtrl_destroy 2257
-#define wxColourPickerCtrl_new_0 2258
-#define wxColourPickerCtrl_new_3 2259
-#define wxColourPickerCtrl_Create 2260
-#define wxColourPickerCtrl_GetColour 2261
-#define wxColourPickerCtrl_SetColour_1_1 2262
-#define wxColourPickerCtrl_SetColour_1_0 2263
-#define wxColourPickerCtrl_destroy 2264
-#define wxDatePickerCtrl_new_0 2265
-#define wxDatePickerCtrl_new_3 2266
-#define wxDatePickerCtrl_GetRange 2267
-#define wxDatePickerCtrl_GetValue 2268
-#define wxDatePickerCtrl_SetRange 2269
-#define wxDatePickerCtrl_SetValue 2270
-#define wxDatePickerCtrl_destroy 2271
-#define wxFontPickerCtrl_new_0 2272
-#define wxFontPickerCtrl_new_3 2273
-#define wxFontPickerCtrl_Create 2274
-#define wxFontPickerCtrl_GetSelectedFont 2275
-#define wxFontPickerCtrl_SetSelectedFont 2276
-#define wxFontPickerCtrl_GetMaxPointSize 2277
-#define wxFontPickerCtrl_SetMaxPointSize 2278
-#define wxFontPickerCtrl_destroy 2279
-#define wxFindReplaceDialog_new_0 2282
-#define wxFindReplaceDialog_new_4 2283
-#define wxFindReplaceDialog_destruct 2284
-#define wxFindReplaceDialog_Create 2285
-#define wxFindReplaceDialog_GetData 2286
-#define wxFindReplaceData_new_0 2287
-#define wxFindReplaceData_new_1 2288
-#define wxFindReplaceData_GetFindString 2289
-#define wxFindReplaceData_GetReplaceString 2290
-#define wxFindReplaceData_GetFlags 2291
-#define wxFindReplaceData_SetFlags 2292
-#define wxFindReplaceData_SetFindString 2293
-#define wxFindReplaceData_SetReplaceString 2294
-#define wxFindReplaceData_destroy 2295
-#define wxMultiChoiceDialog_new_0 2296
-#define wxMultiChoiceDialog_new_5 2298
-#define wxMultiChoiceDialog_GetSelections 2299
-#define wxMultiChoiceDialog_SetSelections 2300
-#define wxMultiChoiceDialog_destroy 2301
-#define wxSingleChoiceDialog_new_0 2302
-#define wxSingleChoiceDialog_new_5 2304
-#define wxSingleChoiceDialog_GetSelection 2305
-#define wxSingleChoiceDialog_GetStringSelection 2306
-#define wxSingleChoiceDialog_SetSelection 2307
-#define wxSingleChoiceDialog_destroy 2308
-#define wxTextEntryDialog_new 2309
-#define wxTextEntryDialog_GetValue 2310
-#define wxTextEntryDialog_SetValue 2311
-#define wxTextEntryDialog_destroy 2312
-#define wxPasswordEntryDialog_new 2313
-#define wxPasswordEntryDialog_destroy 2314
-#define wxFontData_new_0 2315
-#define wxFontData_new_1 2316
-#define wxFontData_destruct 2317
-#define wxFontData_EnableEffects 2318
-#define wxFontData_GetAllowSymbols 2319
-#define wxFontData_GetColour 2320
-#define wxFontData_GetChosenFont 2321
-#define wxFontData_GetEnableEffects 2322
-#define wxFontData_GetInitialFont 2323
-#define wxFontData_GetShowHelp 2324
-#define wxFontData_SetAllowSymbols 2325
-#define wxFontData_SetChosenFont 2326
-#define wxFontData_SetColour 2327
-#define wxFontData_SetInitialFont 2328
-#define wxFontData_SetRange 2329
-#define wxFontData_SetShowHelp 2330
-#define wxFontDialog_new_0 2334
-#define wxFontDialog_new_2 2336
-#define wxFontDialog_Create 2338
-#define wxFontDialog_GetFontData 2339
-#define wxFontDialog_destroy 2341
-#define wxProgressDialog_new 2342
-#define wxProgressDialog_destruct 2343
-#define wxProgressDialog_Resume 2344
-#define wxProgressDialog_Update_2 2345
-#define wxProgressDialog_Update_0 2346
-#define wxMessageDialog_new 2347
-#define wxMessageDialog_destruct 2348
-#define wxPageSetupDialog_new 2349
-#define wxPageSetupDialog_destruct 2350
-#define wxPageSetupDialog_GetPageSetupData 2351
-#define wxPageSetupDialog_ShowModal 2352
-#define wxPageSetupDialogData_new_0 2353
-#define wxPageSetupDialogData_new_1_0 2354
-#define wxPageSetupDialogData_new_1_1 2355
-#define wxPageSetupDialogData_destruct 2356
-#define wxPageSetupDialogData_EnableHelp 2357
-#define wxPageSetupDialogData_EnableMargins 2358
-#define wxPageSetupDialogData_EnableOrientation 2359
-#define wxPageSetupDialogData_EnablePaper 2360
-#define wxPageSetupDialogData_EnablePrinter 2361
-#define wxPageSetupDialogData_GetDefaultMinMargins 2362
-#define wxPageSetupDialogData_GetEnableMargins 2363
-#define wxPageSetupDialogData_GetEnableOrientation 2364
-#define wxPageSetupDialogData_GetEnablePaper 2365
-#define wxPageSetupDialogData_GetEnablePrinter 2366
-#define wxPageSetupDialogData_GetEnableHelp 2367
-#define wxPageSetupDialogData_GetDefaultInfo 2368
-#define wxPageSetupDialogData_GetMarginTopLeft 2369
-#define wxPageSetupDialogData_GetMarginBottomRight 2370
-#define wxPageSetupDialogData_GetMinMarginTopLeft 2371
-#define wxPageSetupDialogData_GetMinMarginBottomRight 2372
-#define wxPageSetupDialogData_GetPaperId 2373
-#define wxPageSetupDialogData_GetPaperSize 2374
-#define wxPageSetupDialogData_GetPrintData 2376
-#define wxPageSetupDialogData_IsOk 2377
-#define wxPageSetupDialogData_SetDefaultInfo 2378
-#define wxPageSetupDialogData_SetDefaultMinMargins 2379
-#define wxPageSetupDialogData_SetMarginTopLeft 2380
-#define wxPageSetupDialogData_SetMarginBottomRight 2381
-#define wxPageSetupDialogData_SetMinMarginTopLeft 2382
-#define wxPageSetupDialogData_SetMinMarginBottomRight 2383
-#define wxPageSetupDialogData_SetPaperId 2384
-#define wxPageSetupDialogData_SetPaperSize_1_1 2385
-#define wxPageSetupDialogData_SetPaperSize_1_0 2386
-#define wxPageSetupDialogData_SetPrintData 2387
-#define wxPrintDialog_new_2_0 2388
-#define wxPrintDialog_new_2_1 2389
-#define wxPrintDialog_destruct 2390
-#define wxPrintDialog_GetPrintDialogData 2391
-#define wxPrintDialog_GetPrintDC 2392
-#define wxPrintDialogData_new_0 2393
-#define wxPrintDialogData_new_1_1 2394
-#define wxPrintDialogData_new_1_0 2395
-#define wxPrintDialogData_destruct 2396
-#define wxPrintDialogData_EnableHelp 2397
-#define wxPrintDialogData_EnablePageNumbers 2398
-#define wxPrintDialogData_EnablePrintToFile 2399
-#define wxPrintDialogData_EnableSelection 2400
-#define wxPrintDialogData_GetAllPages 2401
-#define wxPrintDialogData_GetCollate 2402
-#define wxPrintDialogData_GetFromPage 2403
-#define wxPrintDialogData_GetMaxPage 2404
-#define wxPrintDialogData_GetMinPage 2405
-#define wxPrintDialogData_GetNoCopies 2406
-#define wxPrintDialogData_GetPrintData 2407
-#define wxPrintDialogData_GetPrintToFile 2408
-#define wxPrintDialogData_GetSelection 2409
-#define wxPrintDialogData_GetToPage 2410
-#define wxPrintDialogData_IsOk 2411
-#define wxPrintDialogData_SetCollate 2412
-#define wxPrintDialogData_SetFromPage 2413
-#define wxPrintDialogData_SetMaxPage 2414
-#define wxPrintDialogData_SetMinPage 2415
-#define wxPrintDialogData_SetNoCopies 2416
-#define wxPrintDialogData_SetPrintData 2417
-#define wxPrintDialogData_SetPrintToFile 2418
-#define wxPrintDialogData_SetSelection 2419
-#define wxPrintDialogData_SetToPage 2420
-#define wxPrintData_new_0 2421
-#define wxPrintData_new_1 2422
-#define wxPrintData_destruct 2423
-#define wxPrintData_GetCollate 2424
-#define wxPrintData_GetBin 2425
-#define wxPrintData_GetColour 2426
-#define wxPrintData_GetDuplex 2427
-#define wxPrintData_GetNoCopies 2428
-#define wxPrintData_GetOrientation 2429
-#define wxPrintData_GetPaperId 2430
-#define wxPrintData_GetPrinterName 2431
-#define wxPrintData_GetQuality 2432
-#define wxPrintData_IsOk 2433
-#define wxPrintData_SetBin 2434
-#define wxPrintData_SetCollate 2435
-#define wxPrintData_SetColour 2436
-#define wxPrintData_SetDuplex 2437
-#define wxPrintData_SetNoCopies 2438
-#define wxPrintData_SetOrientation 2439
-#define wxPrintData_SetPaperId 2440
-#define wxPrintData_SetPrinterName 2441
-#define wxPrintData_SetQuality 2442
-#define wxPrintPreview_new_2 2445
-#define wxPrintPreview_new_3 2446
-#define wxPrintPreview_destruct 2448
-#define wxPrintPreview_GetCanvas 2449
-#define wxPrintPreview_GetCurrentPage 2450
-#define wxPrintPreview_GetFrame 2451
-#define wxPrintPreview_GetMaxPage 2452
-#define wxPrintPreview_GetMinPage 2453
-#define wxPrintPreview_GetPrintout 2454
-#define wxPrintPreview_GetPrintoutForPrinting 2455
-#define wxPrintPreview_IsOk 2456
-#define wxPrintPreview_PaintPage 2457
-#define wxPrintPreview_Print 2458
-#define wxPrintPreview_RenderPage 2459
-#define wxPrintPreview_SetCanvas 2460
-#define wxPrintPreview_SetCurrentPage 2461
-#define wxPrintPreview_SetFrame 2462
-#define wxPrintPreview_SetPrintout 2463
-#define wxPrintPreview_SetZoom 2464
-#define wxPreviewFrame_new 2465
-#define wxPreviewFrame_destruct 2466
-#define wxPreviewFrame_CreateControlBar 2467
-#define wxPreviewFrame_CreateCanvas 2468
-#define wxPreviewFrame_Initialize 2469
-#define wxPreviewFrame_OnCloseWindow 2470
-#define wxPreviewControlBar_new 2471
-#define wxPreviewControlBar_destruct 2472
-#define wxPreviewControlBar_CreateButtons 2473
-#define wxPreviewControlBar_GetPrintPreview 2474
-#define wxPreviewControlBar_GetZoomControl 2475
-#define wxPreviewControlBar_SetZoomControl 2476
-#define wxPrinter_new 2478
-#define wxPrinter_CreateAbortWindow 2479
-#define wxPrinter_GetAbort 2480
-#define wxPrinter_GetLastError 2481
-#define wxPrinter_GetPrintDialogData 2482
-#define wxPrinter_Print 2483
-#define wxPrinter_PrintDialog 2484
-#define wxPrinter_ReportError 2485
-#define wxPrinter_Setup 2486
-#define wxPrinter_destroy 2487
-#define wxXmlResource_new_1 2488
-#define wxXmlResource_new_2 2489
-#define wxXmlResource_destruct 2490
-#define wxXmlResource_AttachUnknownControl 2491
-#define wxXmlResource_ClearHandlers 2492
-#define wxXmlResource_CompareVersion 2493
-#define wxXmlResource_Get 2494
-#define wxXmlResource_GetFlags 2495
-#define wxXmlResource_GetVersion 2496
-#define wxXmlResource_GetXRCID 2497
-#define wxXmlResource_InitAllHandlers 2498
-#define wxXmlResource_Load 2499
-#define wxXmlResource_LoadBitmap 2500
-#define wxXmlResource_LoadDialog_2 2501
-#define wxXmlResource_LoadDialog_3 2502
-#define wxXmlResource_LoadFrame_2 2503
-#define wxXmlResource_LoadFrame_3 2504
-#define wxXmlResource_LoadIcon 2505
-#define wxXmlResource_LoadMenu 2506
-#define wxXmlResource_LoadMenuBar_2 2507
-#define wxXmlResource_LoadMenuBar_1 2508
-#define wxXmlResource_LoadPanel_2 2509
-#define wxXmlResource_LoadPanel_3 2510
-#define wxXmlResource_LoadToolBar 2511
-#define wxXmlResource_Set 2512
-#define wxXmlResource_SetFlags 2513
-#define wxXmlResource_Unload 2514
-#define wxXmlResource_xrcctrl 2515
-#define wxHtmlEasyPrinting_new 2516
-#define wxHtmlEasyPrinting_destruct 2517
-#define wxHtmlEasyPrinting_GetPrintData 2518
-#define wxHtmlEasyPrinting_GetPageSetupData 2519
-#define wxHtmlEasyPrinting_PreviewFile 2520
-#define wxHtmlEasyPrinting_PreviewText 2521
-#define wxHtmlEasyPrinting_PrintFile 2522
-#define wxHtmlEasyPrinting_PrintText 2523
-#define wxHtmlEasyPrinting_PageSetup 2524
-#define wxHtmlEasyPrinting_SetFonts 2525
-#define wxHtmlEasyPrinting_SetHeader 2526
-#define wxHtmlEasyPrinting_SetFooter 2527
-#define wxGLCanvas_new_2 2529
-#define wxGLCanvas_new_3_1 2530
-#define wxGLCanvas_new_3_0 2531
-#define wxGLCanvas_GetContext 2532
-#define wxGLCanvas_SetCurrent 2534
-#define wxGLCanvas_SwapBuffers 2535
-#define wxGLCanvas_destroy 2536
-#define wxAuiManager_new 2537
-#define wxAuiManager_destruct 2538
-#define wxAuiManager_AddPane_2_1 2539
-#define wxAuiManager_AddPane_3 2540
-#define wxAuiManager_AddPane_2_0 2541
-#define wxAuiManager_DetachPane 2542
-#define wxAuiManager_GetAllPanes 2543
-#define wxAuiManager_GetArtProvider 2544
-#define wxAuiManager_GetDockSizeConstraint 2545
-#define wxAuiManager_GetFlags 2546
-#define wxAuiManager_GetManagedWindow 2547
-#define wxAuiManager_GetManager 2548
-#define wxAuiManager_GetPane_1_1 2549
-#define wxAuiManager_GetPane_1_0 2550
-#define wxAuiManager_HideHint 2551
-#define wxAuiManager_InsertPane 2552
-#define wxAuiManager_LoadPaneInfo 2553
-#define wxAuiManager_LoadPerspective 2554
-#define wxAuiManager_SavePaneInfo 2555
-#define wxAuiManager_SavePerspective 2556
-#define wxAuiManager_SetArtProvider 2557
-#define wxAuiManager_SetDockSizeConstraint 2558
-#define wxAuiManager_SetFlags 2559
-#define wxAuiManager_SetManagedWindow 2560
-#define wxAuiManager_ShowHint 2561
-#define wxAuiManager_UnInit 2562
-#define wxAuiManager_Update 2563
-#define wxAuiPaneInfo_new_0 2564
-#define wxAuiPaneInfo_new_1 2565
-#define wxAuiPaneInfo_destruct 2566
-#define wxAuiPaneInfo_BestSize_1 2567
-#define wxAuiPaneInfo_BestSize_2 2568
-#define wxAuiPaneInfo_Bottom 2569
-#define wxAuiPaneInfo_BottomDockable 2570
-#define wxAuiPaneInfo_Caption 2571
-#define wxAuiPaneInfo_CaptionVisible 2572
-#define wxAuiPaneInfo_Centre 2573
-#define wxAuiPaneInfo_CentrePane 2574
-#define wxAuiPaneInfo_CloseButton 2575
-#define wxAuiPaneInfo_DefaultPane 2576
-#define wxAuiPaneInfo_DestroyOnClose 2577
-#define wxAuiPaneInfo_Direction 2578
-#define wxAuiPaneInfo_Dock 2579
-#define wxAuiPaneInfo_Dockable 2580
-#define wxAuiPaneInfo_Fixed 2581
-#define wxAuiPaneInfo_Float 2582
-#define wxAuiPaneInfo_Floatable 2583
-#define wxAuiPaneInfo_FloatingPosition_1 2584
-#define wxAuiPaneInfo_FloatingPosition_2 2585
-#define wxAuiPaneInfo_FloatingSize_1 2586
-#define wxAuiPaneInfo_FloatingSize_2 2587
-#define wxAuiPaneInfo_Gripper 2588
-#define wxAuiPaneInfo_GripperTop 2589
-#define wxAuiPaneInfo_HasBorder 2590
-#define wxAuiPaneInfo_HasCaption 2591
-#define wxAuiPaneInfo_HasCloseButton 2592
-#define wxAuiPaneInfo_HasFlag 2593
-#define wxAuiPaneInfo_HasGripper 2594
-#define wxAuiPaneInfo_HasGripperTop 2595
-#define wxAuiPaneInfo_HasMaximizeButton 2596
-#define wxAuiPaneInfo_HasMinimizeButton 2597
-#define wxAuiPaneInfo_HasPinButton 2598
-#define wxAuiPaneInfo_Hide 2599
-#define wxAuiPaneInfo_IsBottomDockable 2600
-#define wxAuiPaneInfo_IsDocked 2601
-#define wxAuiPaneInfo_IsFixed 2602
-#define wxAuiPaneInfo_IsFloatable 2603
-#define wxAuiPaneInfo_IsFloating 2604
-#define wxAuiPaneInfo_IsLeftDockable 2605
-#define wxAuiPaneInfo_IsMovable 2606
-#define wxAuiPaneInfo_IsOk 2607
-#define wxAuiPaneInfo_IsResizable 2608
-#define wxAuiPaneInfo_IsRightDockable 2609
-#define wxAuiPaneInfo_IsShown 2610
-#define wxAuiPaneInfo_IsToolbar 2611
-#define wxAuiPaneInfo_IsTopDockable 2612
-#define wxAuiPaneInfo_Layer 2613
-#define wxAuiPaneInfo_Left 2614
-#define wxAuiPaneInfo_LeftDockable 2615
-#define wxAuiPaneInfo_MaxSize_1 2616
-#define wxAuiPaneInfo_MaxSize_2 2617
-#define wxAuiPaneInfo_MaximizeButton 2618
-#define wxAuiPaneInfo_MinSize_1 2619
-#define wxAuiPaneInfo_MinSize_2 2620
-#define wxAuiPaneInfo_MinimizeButton 2621
-#define wxAuiPaneInfo_Movable 2622
-#define wxAuiPaneInfo_Name 2623
-#define wxAuiPaneInfo_PaneBorder 2624
-#define wxAuiPaneInfo_PinButton 2625
-#define wxAuiPaneInfo_Position 2626
-#define wxAuiPaneInfo_Resizable 2627
-#define wxAuiPaneInfo_Right 2628
-#define wxAuiPaneInfo_RightDockable 2629
-#define wxAuiPaneInfo_Row 2630
-#define wxAuiPaneInfo_SafeSet 2631
-#define wxAuiPaneInfo_SetFlag 2632
-#define wxAuiPaneInfo_Show 2633
-#define wxAuiPaneInfo_ToolbarPane 2634
-#define wxAuiPaneInfo_Top 2635
-#define wxAuiPaneInfo_TopDockable 2636
-#define wxAuiPaneInfo_Window 2637
-#define wxAuiNotebook_new_0 2638
-#define wxAuiNotebook_new_2 2639
-#define wxAuiNotebook_AddPage 2640
-#define wxAuiNotebook_Create 2641
-#define wxAuiNotebook_DeletePage 2642
-#define wxAuiNotebook_GetArtProvider 2643
-#define wxAuiNotebook_GetPage 2644
-#define wxAuiNotebook_GetPageBitmap 2645
-#define wxAuiNotebook_GetPageCount 2646
-#define wxAuiNotebook_GetPageIndex 2647
-#define wxAuiNotebook_GetPageText 2648
-#define wxAuiNotebook_GetSelection 2649
-#define wxAuiNotebook_InsertPage 2650
-#define wxAuiNotebook_RemovePage 2651
-#define wxAuiNotebook_SetArtProvider 2652
-#define wxAuiNotebook_SetFont 2653
-#define wxAuiNotebook_SetPageBitmap 2654
-#define wxAuiNotebook_SetPageText 2655
-#define wxAuiNotebook_SetSelection 2656
-#define wxAuiNotebook_SetTabCtrlHeight 2657
-#define wxAuiNotebook_SetUniformBitmapSize 2658
-#define wxAuiNotebook_destroy 2659
-#define wxMDIParentFrame_new_0 2660
-#define wxMDIParentFrame_new_4 2661
-#define wxMDIParentFrame_destruct 2662
-#define wxMDIParentFrame_ActivateNext 2663
-#define wxMDIParentFrame_ActivatePrevious 2664
-#define wxMDIParentFrame_ArrangeIcons 2665
-#define wxMDIParentFrame_Cascade 2666
-#define wxMDIParentFrame_Create 2667
-#define wxMDIParentFrame_GetActiveChild 2668
-#define wxMDIParentFrame_GetClientWindow 2669
-#define wxMDIParentFrame_Tile 2670
-#define wxMDIChildFrame_new_0 2671
-#define wxMDIChildFrame_new_4 2672
-#define wxMDIChildFrame_destruct 2673
-#define wxMDIChildFrame_Activate 2674
-#define wxMDIChildFrame_Create 2675
-#define wxMDIChildFrame_Maximize 2676
-#define wxMDIChildFrame_Restore 2677
-#define wxMDIClientWindow_new_0 2678
-#define wxMDIClientWindow_new_2 2679
-#define wxMDIClientWindow_destruct 2680
-#define wxMDIClientWindow_CreateClient 2681
-#define wxLayoutAlgorithm_new 2682
-#define wxLayoutAlgorithm_LayoutFrame 2683
-#define wxLayoutAlgorithm_LayoutMDIFrame 2684
-#define wxLayoutAlgorithm_LayoutWindow 2685
-#define wxLayoutAlgorithm_destroy 2686
-#define wxEvent_GetId 2687
-#define wxEvent_GetSkipped 2688
-#define wxEvent_GetTimestamp 2689
-#define wxEvent_IsCommandEvent 2690
-#define wxEvent_ResumePropagation 2691
-#define wxEvent_ShouldPropagate 2692
-#define wxEvent_Skip 2693
-#define wxEvent_StopPropagation 2694
-#define wxCommandEvent_getClientData 2695
-#define wxCommandEvent_GetExtraLong 2696
-#define wxCommandEvent_GetInt 2697
-#define wxCommandEvent_GetSelection 2698
-#define wxCommandEvent_GetString 2699
-#define wxCommandEvent_IsChecked 2700
-#define wxCommandEvent_IsSelection 2701
-#define wxCommandEvent_SetInt 2702
-#define wxCommandEvent_SetString 2703
-#define wxScrollEvent_GetOrientation 2704
-#define wxScrollEvent_GetPosition 2705
-#define wxScrollWinEvent_GetOrientation 2706
-#define wxScrollWinEvent_GetPosition 2707
-#define wxMouseEvent_AltDown 2708
-#define wxMouseEvent_Button 2709
-#define wxMouseEvent_ButtonDClick 2710
-#define wxMouseEvent_ButtonDown 2711
-#define wxMouseEvent_ButtonUp 2712
-#define wxMouseEvent_CmdDown 2713
-#define wxMouseEvent_ControlDown 2714
-#define wxMouseEvent_Dragging 2715
-#define wxMouseEvent_Entering 2716
-#define wxMouseEvent_GetButton 2717
-#define wxMouseEvent_GetPosition 2720
-#define wxMouseEvent_GetLogicalPosition 2721
-#define wxMouseEvent_GetLinesPerAction 2722
-#define wxMouseEvent_GetWheelRotation 2723
-#define wxMouseEvent_GetWheelDelta 2724
-#define wxMouseEvent_GetX 2725
-#define wxMouseEvent_GetY 2726
-#define wxMouseEvent_IsButton 2727
-#define wxMouseEvent_IsPageScroll 2728
-#define wxMouseEvent_Leaving 2729
-#define wxMouseEvent_LeftDClick 2730
-#define wxMouseEvent_LeftDown 2731
-#define wxMouseEvent_LeftIsDown 2732
-#define wxMouseEvent_LeftUp 2733
-#define wxMouseEvent_MetaDown 2734
-#define wxMouseEvent_MiddleDClick 2735
-#define wxMouseEvent_MiddleDown 2736
-#define wxMouseEvent_MiddleIsDown 2737
-#define wxMouseEvent_MiddleUp 2738
-#define wxMouseEvent_Moving 2739
-#define wxMouseEvent_RightDClick 2740
-#define wxMouseEvent_RightDown 2741
-#define wxMouseEvent_RightIsDown 2742
-#define wxMouseEvent_RightUp 2743
-#define wxMouseEvent_ShiftDown 2744
-#define wxSetCursorEvent_GetCursor 2745
-#define wxSetCursorEvent_GetX 2746
-#define wxSetCursorEvent_GetY 2747
-#define wxSetCursorEvent_HasCursor 2748
-#define wxSetCursorEvent_SetCursor 2749
-#define wxKeyEvent_AltDown 2750
-#define wxKeyEvent_CmdDown 2751
-#define wxKeyEvent_ControlDown 2752
-#define wxKeyEvent_GetKeyCode 2753
-#define wxKeyEvent_GetModifiers 2754
-#define wxKeyEvent_GetPosition 2757
-#define wxKeyEvent_GetRawKeyCode 2758
-#define wxKeyEvent_GetRawKeyFlags 2759
-#define wxKeyEvent_GetUnicodeKey 2760
-#define wxKeyEvent_GetX 2761
-#define wxKeyEvent_GetY 2762
-#define wxKeyEvent_HasModifiers 2763
-#define wxKeyEvent_MetaDown 2764
-#define wxKeyEvent_ShiftDown 2765
-#define wxSizeEvent_GetSize 2766
-#define wxMoveEvent_GetPosition 2767
-#define wxEraseEvent_GetDC 2768
-#define wxFocusEvent_GetWindow 2769
-#define wxChildFocusEvent_GetWindow 2770
-#define wxMenuEvent_GetMenu 2771
-#define wxMenuEvent_GetMenuId 2772
-#define wxMenuEvent_IsPopup 2773
-#define wxCloseEvent_CanVeto 2774
-#define wxCloseEvent_GetLoggingOff 2775
-#define wxCloseEvent_SetCanVeto 2776
-#define wxCloseEvent_SetLoggingOff 2777
-#define wxCloseEvent_Veto 2778
-#define wxShowEvent_SetShow 2779
-#define wxShowEvent_GetShow 2780
-#define wxIconizeEvent_Iconized 2781
-#define wxJoystickEvent_ButtonDown 2782
-#define wxJoystickEvent_ButtonIsDown 2783
-#define wxJoystickEvent_ButtonUp 2784
-#define wxJoystickEvent_GetButtonChange 2785
-#define wxJoystickEvent_GetButtonState 2786
-#define wxJoystickEvent_GetJoystick 2787
-#define wxJoystickEvent_GetPosition 2788
-#define wxJoystickEvent_GetZPosition 2789
-#define wxJoystickEvent_IsButton 2790
-#define wxJoystickEvent_IsMove 2791
-#define wxJoystickEvent_IsZMove 2792
-#define wxUpdateUIEvent_CanUpdate 2793
-#define wxUpdateUIEvent_Check 2794
-#define wxUpdateUIEvent_Enable 2795
-#define wxUpdateUIEvent_Show 2796
-#define wxUpdateUIEvent_GetChecked 2797
-#define wxUpdateUIEvent_GetEnabled 2798
-#define wxUpdateUIEvent_GetShown 2799
-#define wxUpdateUIEvent_GetSetChecked 2800
-#define wxUpdateUIEvent_GetSetEnabled 2801
-#define wxUpdateUIEvent_GetSetShown 2802
-#define wxUpdateUIEvent_GetSetText 2803
-#define wxUpdateUIEvent_GetText 2804
-#define wxUpdateUIEvent_GetMode 2805
-#define wxUpdateUIEvent_GetUpdateInterval 2806
-#define wxUpdateUIEvent_ResetUpdateTime 2807
-#define wxUpdateUIEvent_SetMode 2808
-#define wxUpdateUIEvent_SetText 2809
-#define wxUpdateUIEvent_SetUpdateInterval 2810
-#define wxMouseCaptureChangedEvent_GetCapturedWindow 2811
-#define wxPaletteChangedEvent_SetChangedWindow 2812
-#define wxPaletteChangedEvent_GetChangedWindow 2813
-#define wxQueryNewPaletteEvent_SetPaletteRealized 2814
-#define wxQueryNewPaletteEvent_GetPaletteRealized 2815
-#define wxNavigationKeyEvent_GetDirection 2816
-#define wxNavigationKeyEvent_SetDirection 2817
-#define wxNavigationKeyEvent_IsWindowChange 2818
-#define wxNavigationKeyEvent_SetWindowChange 2819
-#define wxNavigationKeyEvent_IsFromTab 2820
-#define wxNavigationKeyEvent_SetFromTab 2821
-#define wxNavigationKeyEvent_GetCurrentFocus 2822
-#define wxNavigationKeyEvent_SetCurrentFocus 2823
-#define wxHelpEvent_GetOrigin 2824
-#define wxHelpEvent_GetPosition 2825
-#define wxHelpEvent_SetOrigin 2826
-#define wxHelpEvent_SetPosition 2827
-#define wxContextMenuEvent_GetPosition 2828
-#define wxContextMenuEvent_SetPosition 2829
-#define wxIdleEvent_CanSend 2830
-#define wxIdleEvent_GetMode 2831
-#define wxIdleEvent_RequestMore 2832
-#define wxIdleEvent_MoreRequested 2833
-#define wxIdleEvent_SetMode 2834
-#define wxGridEvent_AltDown 2835
-#define wxGridEvent_ControlDown 2836
-#define wxGridEvent_GetCol 2837
-#define wxGridEvent_GetPosition 2838
-#define wxGridEvent_GetRow 2839
-#define wxGridEvent_MetaDown 2840
-#define wxGridEvent_Selecting 2841
-#define wxGridEvent_ShiftDown 2842
-#define wxNotifyEvent_Allow 2843
-#define wxNotifyEvent_IsAllowed 2844
-#define wxNotifyEvent_Veto 2845
-#define wxSashEvent_GetEdge 2846
-#define wxSashEvent_GetDragRect 2847
-#define wxSashEvent_GetDragStatus 2848
-#define wxListEvent_GetCacheFrom 2849
-#define wxListEvent_GetCacheTo 2850
-#define wxListEvent_GetKeyCode 2851
-#define wxListEvent_GetIndex 2852
-#define wxListEvent_GetColumn 2853
-#define wxListEvent_GetPoint 2854
-#define wxListEvent_GetLabel 2855
-#define wxListEvent_GetText 2856
-#define wxListEvent_GetImage 2857
-#define wxListEvent_GetData 2858
-#define wxListEvent_GetMask 2859
-#define wxListEvent_GetItem 2860
-#define wxListEvent_IsEditCancelled 2861
-#define wxDateEvent_GetDate 2862
-#define wxCalendarEvent_GetWeekDay 2863
-#define wxFileDirPickerEvent_GetPath 2864
-#define wxColourPickerEvent_GetColour 2865
-#define wxFontPickerEvent_GetFont 2866
-#define wxStyledTextEvent_GetPosition 2867
-#define wxStyledTextEvent_GetKey 2868
-#define wxStyledTextEvent_GetModifiers 2869
-#define wxStyledTextEvent_GetModificationType 2870
-#define wxStyledTextEvent_GetText 2871
-#define wxStyledTextEvent_GetLength 2872
-#define wxStyledTextEvent_GetLinesAdded 2873
-#define wxStyledTextEvent_GetLine 2874
-#define wxStyledTextEvent_GetFoldLevelNow 2875
-#define wxStyledTextEvent_GetFoldLevelPrev 2876
-#define wxStyledTextEvent_GetMargin 2877
-#define wxStyledTextEvent_GetMessage 2878
-#define wxStyledTextEvent_GetWParam 2879
-#define wxStyledTextEvent_GetLParam 2880
-#define wxStyledTextEvent_GetListType 2881
-#define wxStyledTextEvent_GetX 2882
-#define wxStyledTextEvent_GetY 2883
-#define wxStyledTextEvent_GetDragText 2884
-#define wxStyledTextEvent_GetDragAllowMove 2885
-#define wxStyledTextEvent_GetDragResult 2886
-#define wxStyledTextEvent_GetShift 2887
-#define wxStyledTextEvent_GetControl 2888
-#define wxStyledTextEvent_GetAlt 2889
-#define utils_wxGetKeyState 2890
-#define utils_wxGetMousePosition 2891
-#define utils_wxGetMouseState 2892
-#define utils_wxSetDetectableAutoRepeat 2893
-#define utils_wxBell 2894
-#define utils_wxFindMenuItemId 2895
-#define utils_wxGenericFindWindowAtPoint 2896
-#define utils_wxFindWindowAtPoint 2897
-#define utils_wxBeginBusyCursor 2898
-#define utils_wxEndBusyCursor 2899
-#define utils_wxIsBusy 2900
-#define utils_wxShutdown 2901
-#define utils_wxShell 2902
-#define utils_wxLaunchDefaultBrowser 2903
-#define utils_wxGetEmailAddress 2904
-#define utils_wxGetUserId 2905
-#define utils_wxGetHomeDir 2906
-#define utils_wxNewId 2907
-#define utils_wxRegisterId 2908
-#define utils_wxGetCurrentId 2909
-#define utils_wxGetOsDescription 2910
-#define utils_wxIsPlatformLittleEndian 2911
-#define utils_wxIsPlatform64Bit 2912
-#define wxPrintout_new 2913
-#define wxPrintout_destruct 2914
-#define wxPrintout_GetDC 2915
-#define wxPrintout_GetPageSizeMM 2916
-#define wxPrintout_GetPageSizePixels 2917
-#define wxPrintout_GetPaperRectPixels 2918
-#define wxPrintout_GetPPIPrinter 2919
-#define wxPrintout_GetPPIScreen 2920
-#define wxPrintout_GetTitle 2921
-#define wxPrintout_IsPreview 2922
-#define wxPrintout_FitThisSizeToPaper 2923
-#define wxPrintout_FitThisSizeToPage 2924
-#define wxPrintout_FitThisSizeToPageMargins 2925
-#define wxPrintout_MapScreenSizeToPaper 2926
-#define wxPrintout_MapScreenSizeToPage 2927
-#define wxPrintout_MapScreenSizeToPageMargins 2928
-#define wxPrintout_MapScreenSizeToDevice 2929
-#define wxPrintout_GetLogicalPaperRect 2930
-#define wxPrintout_GetLogicalPageRect 2931
-#define wxPrintout_GetLogicalPageMarginsRect 2932
-#define wxPrintout_SetLogicalOrigin 2933
-#define wxPrintout_OffsetLogicalOrigin 2934
-#define wxStyledTextCtrl_new_2 2935
-#define wxStyledTextCtrl_new_0 2936
-#define wxStyledTextCtrl_destruct 2937
-#define wxStyledTextCtrl_Create 2938
-#define wxStyledTextCtrl_AddText 2939
-#define wxStyledTextCtrl_AddStyledText 2940
-#define wxStyledTextCtrl_InsertText 2941
-#define wxStyledTextCtrl_ClearAll 2942
-#define wxStyledTextCtrl_ClearDocumentStyle 2943
-#define wxStyledTextCtrl_GetLength 2944
-#define wxStyledTextCtrl_GetCharAt 2945
-#define wxStyledTextCtrl_GetCurrentPos 2946
-#define wxStyledTextCtrl_GetAnchor 2947
-#define wxStyledTextCtrl_GetStyleAt 2948
-#define wxStyledTextCtrl_Redo 2949
-#define wxStyledTextCtrl_SetUndoCollection 2950
-#define wxStyledTextCtrl_SelectAll 2951
-#define wxStyledTextCtrl_SetSavePoint 2952
-#define wxStyledTextCtrl_GetStyledText 2953
-#define wxStyledTextCtrl_CanRedo 2954
-#define wxStyledTextCtrl_MarkerLineFromHandle 2955
-#define wxStyledTextCtrl_MarkerDeleteHandle 2956
-#define wxStyledTextCtrl_GetUndoCollection 2957
-#define wxStyledTextCtrl_GetViewWhiteSpace 2958
-#define wxStyledTextCtrl_SetViewWhiteSpace 2959
-#define wxStyledTextCtrl_PositionFromPoint 2960
-#define wxStyledTextCtrl_PositionFromPointClose 2961
-#define wxStyledTextCtrl_GotoLine 2962
-#define wxStyledTextCtrl_GotoPos 2963
-#define wxStyledTextCtrl_SetAnchor 2964
-#define wxStyledTextCtrl_GetCurLine 2965
-#define wxStyledTextCtrl_GetEndStyled 2966
-#define wxStyledTextCtrl_ConvertEOLs 2967
-#define wxStyledTextCtrl_GetEOLMode 2968
-#define wxStyledTextCtrl_SetEOLMode 2969
-#define wxStyledTextCtrl_StartStyling 2970
-#define wxStyledTextCtrl_SetStyling 2971
-#define wxStyledTextCtrl_GetBufferedDraw 2972
-#define wxStyledTextCtrl_SetBufferedDraw 2973
-#define wxStyledTextCtrl_SetTabWidth 2974
-#define wxStyledTextCtrl_GetTabWidth 2975
-#define wxStyledTextCtrl_SetCodePage 2976
-#define wxStyledTextCtrl_MarkerDefine 2977
-#define wxStyledTextCtrl_MarkerSetForeground 2978
-#define wxStyledTextCtrl_MarkerSetBackground 2979
-#define wxStyledTextCtrl_MarkerAdd 2980
-#define wxStyledTextCtrl_MarkerDelete 2981
-#define wxStyledTextCtrl_MarkerDeleteAll 2982
-#define wxStyledTextCtrl_MarkerGet 2983
-#define wxStyledTextCtrl_MarkerNext 2984
-#define wxStyledTextCtrl_MarkerPrevious 2985
-#define wxStyledTextCtrl_MarkerDefineBitmap 2986
-#define wxStyledTextCtrl_MarkerAddSet 2987
-#define wxStyledTextCtrl_MarkerSetAlpha 2988
-#define wxStyledTextCtrl_SetMarginType 2989
-#define wxStyledTextCtrl_GetMarginType 2990
-#define wxStyledTextCtrl_SetMarginWidth 2991
-#define wxStyledTextCtrl_GetMarginWidth 2992
-#define wxStyledTextCtrl_SetMarginMask 2993
-#define wxStyledTextCtrl_GetMarginMask 2994
-#define wxStyledTextCtrl_SetMarginSensitive 2995
-#define wxStyledTextCtrl_GetMarginSensitive 2996
-#define wxStyledTextCtrl_StyleClearAll 2997
-#define wxStyledTextCtrl_StyleSetForeground 2998
-#define wxStyledTextCtrl_StyleSetBackground 2999
-#define wxStyledTextCtrl_StyleSetBold 3000
-#define wxStyledTextCtrl_StyleSetItalic 3001
-#define wxStyledTextCtrl_StyleSetSize 3002
-#define wxStyledTextCtrl_StyleSetFaceName 3003
-#define wxStyledTextCtrl_StyleSetEOLFilled 3004
-#define wxStyledTextCtrl_StyleResetDefault 3005
-#define wxStyledTextCtrl_StyleSetUnderline 3006
-#define wxStyledTextCtrl_StyleSetCase 3007
-#define wxStyledTextCtrl_StyleSetHotSpot 3008
-#define wxStyledTextCtrl_SetSelForeground 3009
-#define wxStyledTextCtrl_SetSelBackground 3010
-#define wxStyledTextCtrl_GetSelAlpha 3011
-#define wxStyledTextCtrl_SetSelAlpha 3012
-#define wxStyledTextCtrl_SetCaretForeground 3013
-#define wxStyledTextCtrl_CmdKeyAssign 3014
-#define wxStyledTextCtrl_CmdKeyClear 3015
-#define wxStyledTextCtrl_CmdKeyClearAll 3016
-#define wxStyledTextCtrl_SetStyleBytes 3017
-#define wxStyledTextCtrl_StyleSetVisible 3018
-#define wxStyledTextCtrl_GetCaretPeriod 3019
-#define wxStyledTextCtrl_SetCaretPeriod 3020
-#define wxStyledTextCtrl_SetWordChars 3021
-#define wxStyledTextCtrl_BeginUndoAction 3022
-#define wxStyledTextCtrl_EndUndoAction 3023
-#define wxStyledTextCtrl_IndicatorSetStyle 3024
-#define wxStyledTextCtrl_IndicatorGetStyle 3025
-#define wxStyledTextCtrl_IndicatorSetForeground 3026
-#define wxStyledTextCtrl_IndicatorGetForeground 3027
-#define wxStyledTextCtrl_SetWhitespaceForeground 3028
-#define wxStyledTextCtrl_SetWhitespaceBackground 3029
-#define wxStyledTextCtrl_GetStyleBits 3030
-#define wxStyledTextCtrl_SetLineState 3031
-#define wxStyledTextCtrl_GetLineState 3032
-#define wxStyledTextCtrl_GetMaxLineState 3033
-#define wxStyledTextCtrl_GetCaretLineVisible 3034
-#define wxStyledTextCtrl_SetCaretLineVisible 3035
-#define wxStyledTextCtrl_GetCaretLineBackground 3036
-#define wxStyledTextCtrl_SetCaretLineBackground 3037
-#define wxStyledTextCtrl_AutoCompShow 3038
-#define wxStyledTextCtrl_AutoCompCancel 3039
-#define wxStyledTextCtrl_AutoCompActive 3040
-#define wxStyledTextCtrl_AutoCompPosStart 3041
-#define wxStyledTextCtrl_AutoCompComplete 3042
-#define wxStyledTextCtrl_AutoCompStops 3043
-#define wxStyledTextCtrl_AutoCompSetSeparator 3044
-#define wxStyledTextCtrl_AutoCompGetSeparator 3045
-#define wxStyledTextCtrl_AutoCompSelect 3046
-#define wxStyledTextCtrl_AutoCompSetCancelAtStart 3047
-#define wxStyledTextCtrl_AutoCompGetCancelAtStart 3048
-#define wxStyledTextCtrl_AutoCompSetFillUps 3049
-#define wxStyledTextCtrl_AutoCompSetChooseSingle 3050
-#define wxStyledTextCtrl_AutoCompGetChooseSingle 3051
-#define wxStyledTextCtrl_AutoCompSetIgnoreCase 3052
-#define wxStyledTextCtrl_AutoCompGetIgnoreCase 3053
-#define wxStyledTextCtrl_UserListShow 3054
-#define wxStyledTextCtrl_AutoCompSetAutoHide 3055
-#define wxStyledTextCtrl_AutoCompGetAutoHide 3056
-#define wxStyledTextCtrl_AutoCompSetDropRestOfWord 3057
-#define wxStyledTextCtrl_AutoCompGetDropRestOfWord 3058
-#define wxStyledTextCtrl_RegisterImage 3059
-#define wxStyledTextCtrl_ClearRegisteredImages 3060
-#define wxStyledTextCtrl_AutoCompGetTypeSeparator 3061
-#define wxStyledTextCtrl_AutoCompSetTypeSeparator 3062
-#define wxStyledTextCtrl_AutoCompSetMaxWidth 3063
-#define wxStyledTextCtrl_AutoCompGetMaxWidth 3064
-#define wxStyledTextCtrl_AutoCompSetMaxHeight 3065
-#define wxStyledTextCtrl_AutoCompGetMaxHeight 3066
-#define wxStyledTextCtrl_SetIndent 3067
-#define wxStyledTextCtrl_GetIndent 3068
-#define wxStyledTextCtrl_SetUseTabs 3069
-#define wxStyledTextCtrl_GetUseTabs 3070
-#define wxStyledTextCtrl_SetLineIndentation 3071
-#define wxStyledTextCtrl_GetLineIndentation 3072
-#define wxStyledTextCtrl_GetLineIndentPosition 3073
-#define wxStyledTextCtrl_GetColumn 3074
-#define wxStyledTextCtrl_SetUseHorizontalScrollBar 3075
-#define wxStyledTextCtrl_GetUseHorizontalScrollBar 3076
-#define wxStyledTextCtrl_SetIndentationGuides 3077
-#define wxStyledTextCtrl_GetIndentationGuides 3078
-#define wxStyledTextCtrl_SetHighlightGuide 3079
-#define wxStyledTextCtrl_GetHighlightGuide 3080
-#define wxStyledTextCtrl_GetLineEndPosition 3081
-#define wxStyledTextCtrl_GetCodePage 3082
-#define wxStyledTextCtrl_GetCaretForeground 3083
-#define wxStyledTextCtrl_GetReadOnly 3084
-#define wxStyledTextCtrl_SetCurrentPos 3085
-#define wxStyledTextCtrl_SetSelectionStart 3086
-#define wxStyledTextCtrl_GetSelectionStart 3087
-#define wxStyledTextCtrl_SetSelectionEnd 3088
-#define wxStyledTextCtrl_GetSelectionEnd 3089
-#define wxStyledTextCtrl_SetPrintMagnification 3090
-#define wxStyledTextCtrl_GetPrintMagnification 3091
-#define wxStyledTextCtrl_SetPrintColourMode 3092
-#define wxStyledTextCtrl_GetPrintColourMode 3093
-#define wxStyledTextCtrl_FindText 3094
-#define wxStyledTextCtrl_FormatRange 3095
-#define wxStyledTextCtrl_GetFirstVisibleLine 3096
-#define wxStyledTextCtrl_GetLine 3097
-#define wxStyledTextCtrl_GetLineCount 3098
-#define wxStyledTextCtrl_SetMarginLeft 3099
-#define wxStyledTextCtrl_GetMarginLeft 3100
-#define wxStyledTextCtrl_SetMarginRight 3101
-#define wxStyledTextCtrl_GetMarginRight 3102
-#define wxStyledTextCtrl_GetModify 3103
-#define wxStyledTextCtrl_SetSelection 3104
-#define wxStyledTextCtrl_GetSelectedText 3105
-#define wxStyledTextCtrl_GetTextRange 3106
-#define wxStyledTextCtrl_HideSelection 3107
-#define wxStyledTextCtrl_LineFromPosition 3108
-#define wxStyledTextCtrl_PositionFromLine 3109
-#define wxStyledTextCtrl_LineScroll 3110
-#define wxStyledTextCtrl_EnsureCaretVisible 3111
-#define wxStyledTextCtrl_ReplaceSelection 3112
-#define wxStyledTextCtrl_SetReadOnly 3113
-#define wxStyledTextCtrl_CanPaste 3114
-#define wxStyledTextCtrl_CanUndo 3115
-#define wxStyledTextCtrl_EmptyUndoBuffer 3116
-#define wxStyledTextCtrl_Undo 3117
-#define wxStyledTextCtrl_Cut 3118
-#define wxStyledTextCtrl_Copy 3119
-#define wxStyledTextCtrl_Paste 3120
-#define wxStyledTextCtrl_Clear 3121
-#define wxStyledTextCtrl_SetText 3122
-#define wxStyledTextCtrl_GetText 3123
-#define wxStyledTextCtrl_GetTextLength 3124
-#define wxStyledTextCtrl_GetOvertype 3125
-#define wxStyledTextCtrl_SetCaretWidth 3126
-#define wxStyledTextCtrl_GetCaretWidth 3127
-#define wxStyledTextCtrl_SetTargetStart 3128
-#define wxStyledTextCtrl_GetTargetStart 3129
-#define wxStyledTextCtrl_SetTargetEnd 3130
-#define wxStyledTextCtrl_GetTargetEnd 3131
-#define wxStyledTextCtrl_ReplaceTarget 3132
-#define wxStyledTextCtrl_SearchInTarget 3133
-#define wxStyledTextCtrl_SetSearchFlags 3134
-#define wxStyledTextCtrl_GetSearchFlags 3135
-#define wxStyledTextCtrl_CallTipShow 3136
-#define wxStyledTextCtrl_CallTipCancel 3137
-#define wxStyledTextCtrl_CallTipActive 3138
-#define wxStyledTextCtrl_CallTipPosAtStart 3139
-#define wxStyledTextCtrl_CallTipSetHighlight 3140
-#define wxStyledTextCtrl_CallTipSetBackground 3141
-#define wxStyledTextCtrl_CallTipSetForeground 3142
-#define wxStyledTextCtrl_CallTipSetForegroundHighlight 3143
-#define wxStyledTextCtrl_CallTipUseStyle 3144
-#define wxStyledTextCtrl_VisibleFromDocLine 3145
-#define wxStyledTextCtrl_DocLineFromVisible 3146
-#define wxStyledTextCtrl_WrapCount 3147
-#define wxStyledTextCtrl_SetFoldLevel 3148
-#define wxStyledTextCtrl_GetFoldLevel 3149
-#define wxStyledTextCtrl_GetLastChild 3150
-#define wxStyledTextCtrl_GetFoldParent 3151
-#define wxStyledTextCtrl_ShowLines 3152
-#define wxStyledTextCtrl_HideLines 3153
-#define wxStyledTextCtrl_GetLineVisible 3154
-#define wxStyledTextCtrl_SetFoldExpanded 3155
-#define wxStyledTextCtrl_GetFoldExpanded 3156
-#define wxStyledTextCtrl_ToggleFold 3157
-#define wxStyledTextCtrl_EnsureVisible 3158
-#define wxStyledTextCtrl_SetFoldFlags 3159
-#define wxStyledTextCtrl_EnsureVisibleEnforcePolicy 3160
-#define wxStyledTextCtrl_SetTabIndents 3161
-#define wxStyledTextCtrl_GetTabIndents 3162
-#define wxStyledTextCtrl_SetBackSpaceUnIndents 3163
-#define wxStyledTextCtrl_GetBackSpaceUnIndents 3164
-#define wxStyledTextCtrl_SetMouseDwellTime 3165
-#define wxStyledTextCtrl_GetMouseDwellTime 3166
-#define wxStyledTextCtrl_WordStartPosition 3167
-#define wxStyledTextCtrl_WordEndPosition 3168
-#define wxStyledTextCtrl_SetWrapMode 3169
-#define wxStyledTextCtrl_GetWrapMode 3170
-#define wxStyledTextCtrl_SetWrapVisualFlags 3171
-#define wxStyledTextCtrl_GetWrapVisualFlags 3172
-#define wxStyledTextCtrl_SetWrapVisualFlagsLocation 3173
-#define wxStyledTextCtrl_GetWrapVisualFlagsLocation 3174
-#define wxStyledTextCtrl_SetWrapStartIndent 3175
-#define wxStyledTextCtrl_GetWrapStartIndent 3176
-#define wxStyledTextCtrl_SetLayoutCache 3177
-#define wxStyledTextCtrl_GetLayoutCache 3178
-#define wxStyledTextCtrl_SetScrollWidth 3179
-#define wxStyledTextCtrl_GetScrollWidth 3180
-#define wxStyledTextCtrl_TextWidth 3181
-#define wxStyledTextCtrl_GetEndAtLastLine 3182
-#define wxStyledTextCtrl_TextHeight 3183
-#define wxStyledTextCtrl_SetUseVerticalScrollBar 3184
-#define wxStyledTextCtrl_GetUseVerticalScrollBar 3185
-#define wxStyledTextCtrl_AppendText 3186
-#define wxStyledTextCtrl_GetTwoPhaseDraw 3187
-#define wxStyledTextCtrl_SetTwoPhaseDraw 3188
-#define wxStyledTextCtrl_TargetFromSelection 3189
-#define wxStyledTextCtrl_LinesJoin 3190
-#define wxStyledTextCtrl_LinesSplit 3191
-#define wxStyledTextCtrl_SetFoldMarginColour 3192
-#define wxStyledTextCtrl_SetFoldMarginHiColour 3193
-#define wxStyledTextCtrl_LineDown 3194
-#define wxStyledTextCtrl_LineDownExtend 3195
-#define wxStyledTextCtrl_LineUp 3196
-#define wxStyledTextCtrl_LineUpExtend 3197
-#define wxStyledTextCtrl_CharLeft 3198
-#define wxStyledTextCtrl_CharLeftExtend 3199
-#define wxStyledTextCtrl_CharRight 3200
-#define wxStyledTextCtrl_CharRightExtend 3201
-#define wxStyledTextCtrl_WordLeft 3202
-#define wxStyledTextCtrl_WordLeftExtend 3203
-#define wxStyledTextCtrl_WordRight 3204
-#define wxStyledTextCtrl_WordRightExtend 3205
-#define wxStyledTextCtrl_Home 3206
-#define wxStyledTextCtrl_HomeExtend 3207
-#define wxStyledTextCtrl_LineEnd 3208
-#define wxStyledTextCtrl_LineEndExtend 3209
-#define wxStyledTextCtrl_DocumentStart 3210
-#define wxStyledTextCtrl_DocumentStartExtend 3211
-#define wxStyledTextCtrl_DocumentEnd 3212
-#define wxStyledTextCtrl_DocumentEndExtend 3213
-#define wxStyledTextCtrl_PageUp 3214
-#define wxStyledTextCtrl_PageUpExtend 3215
-#define wxStyledTextCtrl_PageDown 3216
-#define wxStyledTextCtrl_PageDownExtend 3217
-#define wxStyledTextCtrl_EditToggleOvertype 3218
-#define wxStyledTextCtrl_Cancel 3219
-#define wxStyledTextCtrl_DeleteBack 3220
-#define wxStyledTextCtrl_Tab 3221
-#define wxStyledTextCtrl_BackTab 3222
-#define wxStyledTextCtrl_NewLine 3223
-#define wxStyledTextCtrl_FormFeed 3224
-#define wxStyledTextCtrl_VCHome 3225
-#define wxStyledTextCtrl_VCHomeExtend 3226
-#define wxStyledTextCtrl_ZoomIn 3227
-#define wxStyledTextCtrl_ZoomOut 3228
-#define wxStyledTextCtrl_DelWordLeft 3229
-#define wxStyledTextCtrl_DelWordRight 3230
-#define wxStyledTextCtrl_LineCut 3231
-#define wxStyledTextCtrl_LineDelete 3232
-#define wxStyledTextCtrl_LineTranspose 3233
-#define wxStyledTextCtrl_LineDuplicate 3234
-#define wxStyledTextCtrl_LowerCase 3235
-#define wxStyledTextCtrl_UpperCase 3236
-#define wxStyledTextCtrl_LineScrollDown 3237
-#define wxStyledTextCtrl_LineScrollUp 3238
-#define wxStyledTextCtrl_DeleteBackNotLine 3239
-#define wxStyledTextCtrl_HomeDisplay 3240
-#define wxStyledTextCtrl_HomeDisplayExtend 3241
-#define wxStyledTextCtrl_LineEndDisplay 3242
-#define wxStyledTextCtrl_LineEndDisplayExtend 3243
-#define wxStyledTextCtrl_HomeWrapExtend 3244
-#define wxStyledTextCtrl_LineEndWrap 3245
-#define wxStyledTextCtrl_LineEndWrapExtend 3246
-#define wxStyledTextCtrl_VCHomeWrap 3247
-#define wxStyledTextCtrl_VCHomeWrapExtend 3248
-#define wxStyledTextCtrl_LineCopy 3249
-#define wxStyledTextCtrl_MoveCaretInsideView 3250
-#define wxStyledTextCtrl_LineLength 3251
-#define wxStyledTextCtrl_BraceHighlight 3252
-#define wxStyledTextCtrl_BraceBadLight 3253
-#define wxStyledTextCtrl_BraceMatch 3254
-#define wxStyledTextCtrl_GetViewEOL 3255
-#define wxStyledTextCtrl_SetViewEOL 3256
-#define wxStyledTextCtrl_SetModEventMask 3257
-#define wxStyledTextCtrl_GetEdgeColumn 3258
-#define wxStyledTextCtrl_SetEdgeColumn 3259
-#define wxStyledTextCtrl_GetEdgeMode 3260
-#define wxStyledTextCtrl_GetEdgeColour 3261
-#define wxStyledTextCtrl_SetEdgeColour 3262
-#define wxStyledTextCtrl_SearchAnchor 3263
-#define wxStyledTextCtrl_SearchNext 3264
-#define wxStyledTextCtrl_SearchPrev 3265
-#define wxStyledTextCtrl_LinesOnScreen 3266
-#define wxStyledTextCtrl_UsePopUp 3267
-#define wxStyledTextCtrl_SelectionIsRectangle 3268
-#define wxStyledTextCtrl_SetZoom 3269
-#define wxStyledTextCtrl_GetZoom 3270
-#define wxStyledTextCtrl_GetModEventMask 3271
-#define wxStyledTextCtrl_SetSTCFocus 3272
-#define wxStyledTextCtrl_GetSTCFocus 3273
-#define wxStyledTextCtrl_SetStatus 3274
-#define wxStyledTextCtrl_GetStatus 3275
-#define wxStyledTextCtrl_SetMouseDownCaptures 3276
-#define wxStyledTextCtrl_GetMouseDownCaptures 3277
-#define wxStyledTextCtrl_SetSTCCursor 3278
-#define wxStyledTextCtrl_GetSTCCursor 3279
-#define wxStyledTextCtrl_SetControlCharSymbol 3280
-#define wxStyledTextCtrl_GetControlCharSymbol 3281
-#define wxStyledTextCtrl_WordPartLeft 3282
-#define wxStyledTextCtrl_WordPartLeftExtend 3283
-#define wxStyledTextCtrl_WordPartRight 3284
-#define wxStyledTextCtrl_WordPartRightExtend 3285
-#define wxStyledTextCtrl_SetVisiblePolicy 3286
-#define wxStyledTextCtrl_DelLineLeft 3287
-#define wxStyledTextCtrl_DelLineRight 3288
-#define wxStyledTextCtrl_GetXOffset 3289
-#define wxStyledTextCtrl_ChooseCaretX 3290
-#define wxStyledTextCtrl_SetXCaretPolicy 3291
-#define wxStyledTextCtrl_SetYCaretPolicy 3292
-#define wxStyledTextCtrl_GetPrintWrapMode 3293
-#define wxStyledTextCtrl_SetHotspotActiveForeground 3294
-#define wxStyledTextCtrl_SetHotspotActiveBackground 3295
-#define wxStyledTextCtrl_SetHotspotActiveUnderline 3296
-#define wxStyledTextCtrl_SetHotspotSingleLine 3297
-#define wxStyledTextCtrl_ParaDownExtend 3298
-#define wxStyledTextCtrl_ParaUp 3299
-#define wxStyledTextCtrl_ParaUpExtend 3300
-#define wxStyledTextCtrl_PositionBefore 3301
-#define wxStyledTextCtrl_PositionAfter 3302
-#define wxStyledTextCtrl_CopyRange 3303
-#define wxStyledTextCtrl_CopyText 3304
-#define wxStyledTextCtrl_SetSelectionMode 3305
-#define wxStyledTextCtrl_GetSelectionMode 3306
-#define wxStyledTextCtrl_LineDownRectExtend 3307
-#define wxStyledTextCtrl_LineUpRectExtend 3308
-#define wxStyledTextCtrl_CharLeftRectExtend 3309
-#define wxStyledTextCtrl_CharRightRectExtend 3310
-#define wxStyledTextCtrl_HomeRectExtend 3311
-#define wxStyledTextCtrl_VCHomeRectExtend 3312
-#define wxStyledTextCtrl_LineEndRectExtend 3313
-#define wxStyledTextCtrl_PageUpRectExtend 3314
-#define wxStyledTextCtrl_PageDownRectExtend 3315
-#define wxStyledTextCtrl_StutteredPageUp 3316
-#define wxStyledTextCtrl_StutteredPageUpExtend 3317
-#define wxStyledTextCtrl_StutteredPageDown 3318
-#define wxStyledTextCtrl_StutteredPageDownExtend 3319
-#define wxStyledTextCtrl_WordLeftEnd 3320
-#define wxStyledTextCtrl_WordLeftEndExtend 3321
-#define wxStyledTextCtrl_WordRightEnd 3322
-#define wxStyledTextCtrl_WordRightEndExtend 3323
-#define wxStyledTextCtrl_SetWhitespaceChars 3324
-#define wxStyledTextCtrl_SetCharsDefault 3325
-#define wxStyledTextCtrl_AutoCompGetCurrent 3326
-#define wxStyledTextCtrl_Allocate 3327
-#define wxStyledTextCtrl_FindColumn 3328
-#define wxStyledTextCtrl_GetCaretSticky 3329
-#define wxStyledTextCtrl_SetCaretSticky 3330
-#define wxStyledTextCtrl_ToggleCaretSticky 3331
-#define wxStyledTextCtrl_SetPasteConvertEndings 3332
-#define wxStyledTextCtrl_GetPasteConvertEndings 3333
-#define wxStyledTextCtrl_SelectionDuplicate 3334
-#define wxStyledTextCtrl_SetCaretLineBackAlpha 3335
-#define wxStyledTextCtrl_GetCaretLineBackAlpha 3336
-#define wxStyledTextCtrl_StartRecord 3337
-#define wxStyledTextCtrl_StopRecord 3338
-#define wxStyledTextCtrl_SetLexer 3339
-#define wxStyledTextCtrl_GetLexer 3340
-#define wxStyledTextCtrl_Colourise 3341
-#define wxStyledTextCtrl_SetProperty 3342
-#define wxStyledTextCtrl_SetKeyWords 3343
-#define wxStyledTextCtrl_SetLexerLanguage 3344
-#define wxStyledTextCtrl_GetProperty 3345
-#define wxStyledTextCtrl_GetStyleBitsNeeded 3346
-#define wxStyledTextCtrl_GetCurrentLine 3347
-#define wxStyledTextCtrl_StyleSetSpec 3348
-#define wxStyledTextCtrl_StyleSetFont 3349
-#define wxStyledTextCtrl_StyleSetFontAttr 3350
-#define wxStyledTextCtrl_StyleSetCharacterSet 3351
-#define wxStyledTextCtrl_StyleSetFontEncoding 3352
-#define wxStyledTextCtrl_CmdKeyExecute 3353
-#define wxStyledTextCtrl_SetMargins 3354
-#define wxStyledTextCtrl_GetSelection 3355
-#define wxStyledTextCtrl_PointFromPosition 3356
-#define wxStyledTextCtrl_ScrollToLine 3357
-#define wxStyledTextCtrl_ScrollToColumn 3358
-#define wxStyledTextCtrl_SendMsg 3359
-#define wxStyledTextCtrl_SetVScrollBar 3360
-#define wxStyledTextCtrl_SetHScrollBar 3361
-#define wxStyledTextCtrl_GetLastKeydownProcessed 3362
-#define wxStyledTextCtrl_SetLastKeydownProcessed 3363
-#define wxStyledTextCtrl_SaveFile 3364
-#define wxStyledTextCtrl_LoadFile 3365
-#define wxStyledTextCtrl_DoDragOver 3366
-#define wxStyledTextCtrl_DoDropText 3367
-#define wxStyledTextCtrl_GetUseAntiAliasing 3368
-#define wxStyledTextCtrl_AddTextRaw 3369
-#define wxStyledTextCtrl_InsertTextRaw 3370
-#define wxStyledTextCtrl_GetCurLineRaw 3371
-#define wxStyledTextCtrl_GetLineRaw 3372
-#define wxStyledTextCtrl_GetSelectedTextRaw 3373
-#define wxStyledTextCtrl_GetTextRangeRaw 3374
-#define wxStyledTextCtrl_SetTextRaw 3375
-#define wxStyledTextCtrl_GetTextRaw 3376
-#define wxStyledTextCtrl_AppendTextRaw 3377
-#define wxArtProvider_GetBitmap 3378
-#define wxArtProvider_GetIcon 3379
-#define wxTreeEvent_GetKeyCode 3380
-#define wxTreeEvent_GetItem 3381
-#define wxTreeEvent_GetKeyEvent 3382
-#define wxTreeEvent_GetLabel 3383
-#define wxTreeEvent_GetOldItem 3384
-#define wxTreeEvent_GetPoint 3385
-#define wxTreeEvent_IsEditCancelled 3386
-#define wxTreeEvent_SetToolTip 3387
-#define wxNotebookEvent_GetOldSelection 3388
-#define wxNotebookEvent_GetSelection 3389
-#define wxNotebookEvent_SetOldSelection 3390
-#define wxNotebookEvent_SetSelection 3391
-#define wxFileDataObject_new 3392
-#define wxFileDataObject_AddFile 3393
-#define wxFileDataObject_GetFilenames 3394
-#define wxFileDataObject_destroy 3395
-#define wxTextDataObject_new 3396
-#define wxTextDataObject_GetTextLength 3397
-#define wxTextDataObject_GetText 3398
-#define wxTextDataObject_SetText 3399
-#define wxTextDataObject_destroy 3400
-#define wxBitmapDataObject_new_1_1 3401
-#define wxBitmapDataObject_new_1_0 3402
-#define wxBitmapDataObject_GetBitmap 3403
-#define wxBitmapDataObject_SetBitmap 3404
-#define wxBitmapDataObject_destroy 3405
-#define wxClipboard_new 3407
-#define wxClipboard_destruct 3408
-#define wxClipboard_AddData 3409
-#define wxClipboard_Clear 3410
-#define wxClipboard_Close 3411
-#define wxClipboard_Flush 3412
-#define wxClipboard_GetData 3413
-#define wxClipboard_IsOpened 3414
-#define wxClipboard_Open 3415
-#define wxClipboard_SetData 3416
-#define wxClipboard_UsePrimarySelection 3418
-#define wxClipboard_IsSupported 3419
-#define wxClipboard_Get 3420
-#define wxSpinEvent_GetPosition 3421
-#define wxSpinEvent_SetPosition 3422
-#define wxSplitterWindow_new_0 3423
-#define wxSplitterWindow_new_2 3424
-#define wxSplitterWindow_destruct 3425
-#define wxSplitterWindow_Create 3426
-#define wxSplitterWindow_GetMinimumPaneSize 3427
-#define wxSplitterWindow_GetSashGravity 3428
-#define wxSplitterWindow_GetSashPosition 3429
-#define wxSplitterWindow_GetSplitMode 3430
-#define wxSplitterWindow_GetWindow1 3431
-#define wxSplitterWindow_GetWindow2 3432
-#define wxSplitterWindow_Initialize 3433
-#define wxSplitterWindow_IsSplit 3434
-#define wxSplitterWindow_ReplaceWindow 3435
-#define wxSplitterWindow_SetSashGravity 3436
-#define wxSplitterWindow_SetSashPosition 3437
-#define wxSplitterWindow_SetSashSize 3438
-#define wxSplitterWindow_SetMinimumPaneSize 3439
-#define wxSplitterWindow_SetSplitMode 3440
-#define wxSplitterWindow_SplitHorizontally 3441
-#define wxSplitterWindow_SplitVertically 3442
-#define wxSplitterWindow_Unsplit 3443
-#define wxSplitterWindow_UpdateSize 3444
-#define wxSplitterEvent_GetSashPosition 3445
-#define wxSplitterEvent_GetX 3446
-#define wxSplitterEvent_GetY 3447
-#define wxSplitterEvent_GetWindowBeingRemoved 3448
-#define wxSplitterEvent_SetSashPosition 3449
-#define wxHtmlWindow_new_0 3450
-#define wxHtmlWindow_new_2 3451
-#define wxHtmlWindow_AppendToPage 3452
-#define wxHtmlWindow_GetOpenedAnchor 3453
-#define wxHtmlWindow_GetOpenedPage 3454
-#define wxHtmlWindow_GetOpenedPageTitle 3455
-#define wxHtmlWindow_GetRelatedFrame 3456
-#define wxHtmlWindow_HistoryBack 3457
-#define wxHtmlWindow_HistoryCanBack 3458
-#define wxHtmlWindow_HistoryCanForward 3459
-#define wxHtmlWindow_HistoryClear 3460
-#define wxHtmlWindow_HistoryForward 3461
-#define wxHtmlWindow_LoadFile 3462
-#define wxHtmlWindow_LoadPage 3463
-#define wxHtmlWindow_SelectAll 3464
-#define wxHtmlWindow_SelectionToText 3465
-#define wxHtmlWindow_SelectLine 3466
-#define wxHtmlWindow_SelectWord 3467
-#define wxHtmlWindow_SetBorders 3468
-#define wxHtmlWindow_SetFonts 3469
-#define wxHtmlWindow_SetPage 3470
-#define wxHtmlWindow_SetRelatedFrame 3471
-#define wxHtmlWindow_SetRelatedStatusBar 3472
-#define wxHtmlWindow_ToText 3473
-#define wxHtmlWindow_destroy 3474
-#define wxHtmlLinkEvent_GetLinkInfo 3475
-#define wxAuiNotebookEvent_SetSelection 3476
-#define wxAuiNotebookEvent_GetSelection 3477
-#define wxAuiNotebookEvent_SetOldSelection 3478
-#define wxAuiNotebookEvent_GetOldSelection 3479
-#define wxAuiNotebookEvent_SetDragSource 3480
-#define wxAuiNotebookEvent_GetDragSource 3481
-#define wxAuiManagerEvent_SetManager 3482
-#define wxAuiManagerEvent_GetManager 3483
-#define wxAuiManagerEvent_SetPane 3484
-#define wxAuiManagerEvent_GetPane 3485
-#define wxAuiManagerEvent_SetButton 3486
-#define wxAuiManagerEvent_GetButton 3487
-#define wxAuiManagerEvent_SetDC 3488
-#define wxAuiManagerEvent_GetDC 3489
-#define wxAuiManagerEvent_Veto 3490
-#define wxAuiManagerEvent_GetVeto 3491
-#define wxAuiManagerEvent_SetCanVeto 3492
-#define wxAuiManagerEvent_CanVeto 3493
-#define wxLogNull_new 3494
-#define wxLogNull_destroy 3495
+#define wxListCtrl_GetEditControl 1675
+#define wxListCtrl_GetImageList 1676
+#define wxListCtrl_GetItem 1677
+#define wxListCtrl_GetItemBackgroundColour 1678
+#define wxListCtrl_GetItemCount 1679
+#define wxListCtrl_GetItemData 1680
+#define wxListCtrl_GetItemFont 1681
+#define wxListCtrl_GetItemPosition 1682
+#define wxListCtrl_GetItemRect 1683
+#define wxListCtrl_GetItemSpacing 1684
+#define wxListCtrl_GetItemState 1685
+#define wxListCtrl_GetItemText 1686
+#define wxListCtrl_GetItemTextColour 1687
+#define wxListCtrl_GetNextItem 1688
+#define wxListCtrl_GetSelectedItemCount 1689
+#define wxListCtrl_GetTextColour 1690
+#define wxListCtrl_GetTopItem 1691
+#define wxListCtrl_GetViewRect 1692
+#define wxListCtrl_HitTest 1693
+#define wxListCtrl_InsertColumn_2 1694
+#define wxListCtrl_InsertColumn_3 1695
+#define wxListCtrl_InsertItem_1 1696
+#define wxListCtrl_InsertItem_2_1 1697
+#define wxListCtrl_InsertItem_2_0 1698
+#define wxListCtrl_InsertItem_3 1699
+#define wxListCtrl_RefreshItem 1700
+#define wxListCtrl_RefreshItems 1701
+#define wxListCtrl_ScrollList 1702
+#define wxListCtrl_SetBackgroundColour 1703
+#define wxListCtrl_SetColumn 1704
+#define wxListCtrl_SetColumnWidth 1705
+#define wxListCtrl_SetImageList 1706
+#define wxListCtrl_SetItem_1 1707
+#define wxListCtrl_SetItem_4 1708
+#define wxListCtrl_SetItemBackgroundColour 1709
+#define wxListCtrl_SetItemCount 1710
+#define wxListCtrl_SetItemData 1711
+#define wxListCtrl_SetItemFont 1712
+#define wxListCtrl_SetItemImage 1713
+#define wxListCtrl_SetItemColumnImage 1714
+#define wxListCtrl_SetItemPosition 1715
+#define wxListCtrl_SetItemState 1716
+#define wxListCtrl_SetItemText 1717
+#define wxListCtrl_SetItemTextColour 1718
+#define wxListCtrl_SetSingleStyle 1719
+#define wxListCtrl_SetTextColour 1720
+#define wxListCtrl_SetWindowStyleFlag 1721
+#define wxListCtrl_SortItems 1722
+#define wxListCtrl_destroy 1723
+#define wxListView_ClearColumnImage 1724
+#define wxListView_Focus 1725
+#define wxListView_GetFirstSelected 1726
+#define wxListView_GetFocusedItem 1727
+#define wxListView_GetNextSelected 1728
+#define wxListView_IsSelected 1729
+#define wxListView_Select 1730
+#define wxListView_SetColumnImage 1731
+#define wxListItem_new_0 1732
+#define wxListItem_new_1 1733
+#define wxListItem_destruct 1734
+#define wxListItem_Clear 1735
+#define wxListItem_GetAlign 1736
+#define wxListItem_GetBackgroundColour 1737
+#define wxListItem_GetColumn 1738
+#define wxListItem_GetFont 1739
+#define wxListItem_GetId 1740
+#define wxListItem_GetImage 1741
+#define wxListItem_GetMask 1742
+#define wxListItem_GetState 1743
+#define wxListItem_GetText 1744
+#define wxListItem_GetTextColour 1745
+#define wxListItem_GetWidth 1746
+#define wxListItem_SetAlign 1747
+#define wxListItem_SetBackgroundColour 1748
+#define wxListItem_SetColumn 1749
+#define wxListItem_SetFont 1750
+#define wxListItem_SetId 1751
+#define wxListItem_SetImage 1752
+#define wxListItem_SetMask 1753
+#define wxListItem_SetState 1754
+#define wxListItem_SetStateMask 1755
+#define wxListItem_SetText 1756
+#define wxListItem_SetTextColour 1757
+#define wxListItem_SetWidth 1758
+#define wxImageList_new_0 1759
+#define wxImageList_new_3 1760
+#define wxImageList_Add_1 1761
+#define wxImageList_Add_2_0 1762
+#define wxImageList_Add_2_1 1763
+#define wxImageList_Create 1764
+#define wxImageList_Draw 1766
+#define wxImageList_GetBitmap 1767
+#define wxImageList_GetIcon 1768
+#define wxImageList_GetImageCount 1769
+#define wxImageList_GetSize 1770
+#define wxImageList_Remove 1771
+#define wxImageList_RemoveAll 1772
+#define wxImageList_Replace_2 1773
+#define wxImageList_Replace_3 1774
+#define wxImageList_destroy 1775
+#define wxTextAttr_new_0 1776
+#define wxTextAttr_new_2 1777
+#define wxTextAttr_GetAlignment 1778
+#define wxTextAttr_GetBackgroundColour 1779
+#define wxTextAttr_GetFont 1780
+#define wxTextAttr_GetLeftIndent 1781
+#define wxTextAttr_GetLeftSubIndent 1782
+#define wxTextAttr_GetRightIndent 1783
+#define wxTextAttr_GetTabs 1784
+#define wxTextAttr_GetTextColour 1785
+#define wxTextAttr_HasBackgroundColour 1786
+#define wxTextAttr_HasFont 1787
+#define wxTextAttr_HasTextColour 1788
+#define wxTextAttr_GetFlags 1789
+#define wxTextAttr_IsDefault 1790
+#define wxTextAttr_SetAlignment 1791
+#define wxTextAttr_SetBackgroundColour 1792
+#define wxTextAttr_SetFlags 1793
+#define wxTextAttr_SetFont 1794
+#define wxTextAttr_SetLeftIndent 1795
+#define wxTextAttr_SetRightIndent 1796
+#define wxTextAttr_SetTabs 1797
+#define wxTextAttr_SetTextColour 1798
+#define wxTextAttr_destroy 1799
+#define wxTextCtrl_new_3 1801
+#define wxTextCtrl_new_0 1802
+#define wxTextCtrl_destruct 1804
+#define wxTextCtrl_AppendText 1805
+#define wxTextCtrl_CanCopy 1806
+#define wxTextCtrl_CanCut 1807
+#define wxTextCtrl_CanPaste 1808
+#define wxTextCtrl_CanRedo 1809
+#define wxTextCtrl_CanUndo 1810
+#define wxTextCtrl_Clear 1811
+#define wxTextCtrl_Copy 1812
+#define wxTextCtrl_Create 1813
+#define wxTextCtrl_Cut 1814
+#define wxTextCtrl_DiscardEdits 1815
+#define wxTextCtrl_EmulateKeyPress 1816
+#define wxTextCtrl_GetDefaultStyle 1817
+#define wxTextCtrl_GetInsertionPoint 1818
+#define wxTextCtrl_GetLastPosition 1819
+#define wxTextCtrl_GetLineLength 1820
+#define wxTextCtrl_GetLineText 1821
+#define wxTextCtrl_GetNumberOfLines 1822
+#define wxTextCtrl_GetRange 1823
+#define wxTextCtrl_GetSelection 1824
+#define wxTextCtrl_GetStringSelection 1825
+#define wxTextCtrl_GetStyle 1826
+#define wxTextCtrl_GetValue 1827
+#define wxTextCtrl_IsEditable 1828
+#define wxTextCtrl_IsModified 1829
+#define wxTextCtrl_IsMultiLine 1830
+#define wxTextCtrl_IsSingleLine 1831
+#define wxTextCtrl_LoadFile 1832
+#define wxTextCtrl_MarkDirty 1833
+#define wxTextCtrl_Paste 1834
+#define wxTextCtrl_PositionToXY 1835
+#define wxTextCtrl_Redo 1836
+#define wxTextCtrl_Remove 1837
+#define wxTextCtrl_Replace 1838
+#define wxTextCtrl_SaveFile 1839
+#define wxTextCtrl_SetDefaultStyle 1840
+#define wxTextCtrl_SetEditable 1841
+#define wxTextCtrl_SetInsertionPoint 1842
+#define wxTextCtrl_SetInsertionPointEnd 1843
+#define wxTextCtrl_SetMaxLength 1845
+#define wxTextCtrl_SetSelection 1846
+#define wxTextCtrl_SetStyle 1847
+#define wxTextCtrl_SetValue 1848
+#define wxTextCtrl_ShowPosition 1849
+#define wxTextCtrl_Undo 1850
+#define wxTextCtrl_WriteText 1851
+#define wxTextCtrl_XYToPosition 1852
+#define wxNotebook_new_0 1855
+#define wxNotebook_new_3 1856
+#define wxNotebook_destruct 1857
+#define wxNotebook_AddPage 1858
+#define wxNotebook_AdvanceSelection 1859
+#define wxNotebook_AssignImageList 1860
+#define wxNotebook_Create 1861
+#define wxNotebook_DeleteAllPages 1862
+#define wxNotebook_DeletePage 1863
+#define wxNotebook_RemovePage 1864
+#define wxNotebook_GetCurrentPage 1865
+#define wxNotebook_GetImageList 1866
+#define wxNotebook_GetPage 1868
+#define wxNotebook_GetPageCount 1869
+#define wxNotebook_GetPageImage 1870
+#define wxNotebook_GetPageText 1871
+#define wxNotebook_GetRowCount 1872
+#define wxNotebook_GetSelection 1873
+#define wxNotebook_GetThemeBackgroundColour 1874
+#define wxNotebook_HitTest 1876
+#define wxNotebook_InsertPage 1878
+#define wxNotebook_SetImageList 1879
+#define wxNotebook_SetPadding 1880
+#define wxNotebook_SetPageSize 1881
+#define wxNotebook_SetPageImage 1882
+#define wxNotebook_SetPageText 1883
+#define wxNotebook_SetSelection 1884
+#define wxNotebook_ChangeSelection 1885
+#define wxChoicebook_new_0 1886
+#define wxChoicebook_new_3 1887
+#define wxChoicebook_AddPage 1888
+#define wxChoicebook_AdvanceSelection 1889
+#define wxChoicebook_AssignImageList 1890
+#define wxChoicebook_Create 1891
+#define wxChoicebook_DeleteAllPages 1892
+#define wxChoicebook_DeletePage 1893
+#define wxChoicebook_RemovePage 1894
+#define wxChoicebook_GetCurrentPage 1895
+#define wxChoicebook_GetImageList 1896
+#define wxChoicebook_GetPage 1898
+#define wxChoicebook_GetPageCount 1899
+#define wxChoicebook_GetPageImage 1900
+#define wxChoicebook_GetPageText 1901
+#define wxChoicebook_GetSelection 1902
+#define wxChoicebook_HitTest 1903
+#define wxChoicebook_InsertPage 1904
+#define wxChoicebook_SetImageList 1905
+#define wxChoicebook_SetPageSize 1906
+#define wxChoicebook_SetPageImage 1907
+#define wxChoicebook_SetPageText 1908
+#define wxChoicebook_SetSelection 1909
+#define wxChoicebook_ChangeSelection 1910
+#define wxChoicebook_destroy 1911
+#define wxToolbook_new_0 1912
+#define wxToolbook_new_3 1913
+#define wxToolbook_AddPage 1914
+#define wxToolbook_AdvanceSelection 1915
+#define wxToolbook_AssignImageList 1916
+#define wxToolbook_Create 1917
+#define wxToolbook_DeleteAllPages 1918
+#define wxToolbook_DeletePage 1919
+#define wxToolbook_RemovePage 1920
+#define wxToolbook_GetCurrentPage 1921
+#define wxToolbook_GetImageList 1922
+#define wxToolbook_GetPage 1924
+#define wxToolbook_GetPageCount 1925
+#define wxToolbook_GetPageImage 1926
+#define wxToolbook_GetPageText 1927
+#define wxToolbook_GetSelection 1928
+#define wxToolbook_HitTest 1930
+#define wxToolbook_InsertPage 1931
+#define wxToolbook_SetImageList 1932
+#define wxToolbook_SetPageSize 1933
+#define wxToolbook_SetPageImage 1934
+#define wxToolbook_SetPageText 1935
+#define wxToolbook_SetSelection 1936
+#define wxToolbook_ChangeSelection 1937
+#define wxToolbook_destroy 1938
+#define wxListbook_new_0 1939
+#define wxListbook_new_3 1940
+#define wxListbook_AddPage 1941
+#define wxListbook_AdvanceSelection 1942
+#define wxListbook_AssignImageList 1943
+#define wxListbook_Create 1944
+#define wxListbook_DeleteAllPages 1945
+#define wxListbook_DeletePage 1946
+#define wxListbook_RemovePage 1947
+#define wxListbook_GetCurrentPage 1948
+#define wxListbook_GetImageList 1949
+#define wxListbook_GetPage 1951
+#define wxListbook_GetPageCount 1952
+#define wxListbook_GetPageImage 1953
+#define wxListbook_GetPageText 1954
+#define wxListbook_GetSelection 1955
+#define wxListbook_HitTest 1957
+#define wxListbook_InsertPage 1958
+#define wxListbook_SetImageList 1959
+#define wxListbook_SetPageSize 1960
+#define wxListbook_SetPageImage 1961
+#define wxListbook_SetPageText 1962
+#define wxListbook_SetSelection 1963
+#define wxListbook_ChangeSelection 1964
+#define wxListbook_destroy 1965
+#define wxTreebook_new_0 1966
+#define wxTreebook_new_3 1967
+#define wxTreebook_AddPage 1968
+#define wxTreebook_AdvanceSelection 1969
+#define wxTreebook_AssignImageList 1970
+#define wxTreebook_Create 1971
+#define wxTreebook_DeleteAllPages 1972
+#define wxTreebook_DeletePage 1973
+#define wxTreebook_RemovePage 1974
+#define wxTreebook_GetCurrentPage 1975
+#define wxTreebook_GetImageList 1976
+#define wxTreebook_GetPage 1978
+#define wxTreebook_GetPageCount 1979
+#define wxTreebook_GetPageImage 1980
+#define wxTreebook_GetPageText 1981
+#define wxTreebook_GetSelection 1982
+#define wxTreebook_ExpandNode 1983
+#define wxTreebook_IsNodeExpanded 1984
+#define wxTreebook_HitTest 1986
+#define wxTreebook_InsertPage 1987
+#define wxTreebook_InsertSubPage 1988
+#define wxTreebook_SetImageList 1989
+#define wxTreebook_SetPageSize 1990
+#define wxTreebook_SetPageImage 1991
+#define wxTreebook_SetPageText 1992
+#define wxTreebook_SetSelection 1993
+#define wxTreebook_ChangeSelection 1994
+#define wxTreebook_destroy 1995
+#define wxTreeCtrl_new_2 1998
+#define wxTreeCtrl_new_0 1999
+#define wxTreeCtrl_destruct 2001
+#define wxTreeCtrl_AddRoot 2002
+#define wxTreeCtrl_AppendItem 2003
+#define wxTreeCtrl_AssignImageList 2004
+#define wxTreeCtrl_AssignStateImageList 2005
+#define wxTreeCtrl_Collapse 2006
+#define wxTreeCtrl_CollapseAndReset 2007
+#define wxTreeCtrl_Create 2008
+#define wxTreeCtrl_Delete 2009
+#define wxTreeCtrl_DeleteAllItems 2010
+#define wxTreeCtrl_DeleteChildren 2011
+#define wxTreeCtrl_EnsureVisible 2012
+#define wxTreeCtrl_Expand 2013
+#define wxTreeCtrl_GetBoundingRect 2014
+#define wxTreeCtrl_GetChildrenCount 2016
+#define wxTreeCtrl_GetCount 2017
+#define wxTreeCtrl_GetEditControl 2018
+#define wxTreeCtrl_GetFirstChild 2019
+#define wxTreeCtrl_GetNextChild 2020
+#define wxTreeCtrl_GetFirstVisibleItem 2021
+#define wxTreeCtrl_GetImageList 2022
+#define wxTreeCtrl_GetIndent 2023
+#define wxTreeCtrl_GetItemBackgroundColour 2024
+#define wxTreeCtrl_GetItemData 2025
+#define wxTreeCtrl_GetItemFont 2026
+#define wxTreeCtrl_GetItemImage_1 2027
+#define wxTreeCtrl_GetItemImage_2 2028
+#define wxTreeCtrl_GetItemText 2029
+#define wxTreeCtrl_GetItemTextColour 2030
+#define wxTreeCtrl_GetLastChild 2031
+#define wxTreeCtrl_GetNextSibling 2032
+#define wxTreeCtrl_GetNextVisible 2033
+#define wxTreeCtrl_GetItemParent 2034
+#define wxTreeCtrl_GetPrevSibling 2035
+#define wxTreeCtrl_GetPrevVisible 2036
+#define wxTreeCtrl_GetRootItem 2037
+#define wxTreeCtrl_GetSelection 2038
+#define wxTreeCtrl_GetSelections 2039
+#define wxTreeCtrl_GetStateImageList 2040
+#define wxTreeCtrl_HitTest 2041
+#define wxTreeCtrl_InsertItem 2043
+#define wxTreeCtrl_IsBold 2044
+#define wxTreeCtrl_IsExpanded 2045
+#define wxTreeCtrl_IsSelected 2046
+#define wxTreeCtrl_IsVisible 2047
+#define wxTreeCtrl_ItemHasChildren 2048
+#define wxTreeCtrl_PrependItem 2049
+#define wxTreeCtrl_ScrollTo 2050
+#define wxTreeCtrl_SelectItem_1 2051
+#define wxTreeCtrl_SelectItem_2 2052
+#define wxTreeCtrl_SetIndent 2053
+#define wxTreeCtrl_SetImageList 2054
+#define wxTreeCtrl_SetItemBackgroundColour 2055
+#define wxTreeCtrl_SetItemBold 2056
+#define wxTreeCtrl_SetItemData 2057
+#define wxTreeCtrl_SetItemDropHighlight 2058
+#define wxTreeCtrl_SetItemFont 2059
+#define wxTreeCtrl_SetItemHasChildren 2060
+#define wxTreeCtrl_SetItemImage_2 2061
+#define wxTreeCtrl_SetItemImage_3 2062
+#define wxTreeCtrl_SetItemText 2063
+#define wxTreeCtrl_SetItemTextColour 2064
+#define wxTreeCtrl_SetStateImageList 2065
+#define wxTreeCtrl_SetWindowStyle 2066
+#define wxTreeCtrl_SortChildren 2067
+#define wxTreeCtrl_Toggle 2068
+#define wxTreeCtrl_ToggleItemSelection 2069
+#define wxTreeCtrl_Unselect 2070
+#define wxTreeCtrl_UnselectAll 2071
+#define wxTreeCtrl_UnselectItem 2072
+#define wxScrollBar_new_0 2073
+#define wxScrollBar_new_3 2074
+#define wxScrollBar_destruct 2075
+#define wxScrollBar_Create 2076
+#define wxScrollBar_GetRange 2077
+#define wxScrollBar_GetPageSize 2078
+#define wxScrollBar_GetThumbPosition 2079
+#define wxScrollBar_GetThumbSize 2080
+#define wxScrollBar_SetThumbPosition 2081
+#define wxScrollBar_SetScrollbar 2082
+#define wxSpinButton_new_2 2084
+#define wxSpinButton_new_0 2085
+#define wxSpinButton_Create 2086
+#define wxSpinButton_GetMax 2087
+#define wxSpinButton_GetMin 2088
+#define wxSpinButton_GetValue 2089
+#define wxSpinButton_SetRange 2090
+#define wxSpinButton_SetValue 2091
+#define wxSpinButton_destroy 2092
+#define wxSpinCtrl_new_0 2093
+#define wxSpinCtrl_new_2 2094
+#define wxSpinCtrl_Create 2096
+#define wxSpinCtrl_SetValue_1_1 2099
+#define wxSpinCtrl_SetValue_1_0 2100
+#define wxSpinCtrl_GetValue 2102
+#define wxSpinCtrl_SetRange 2104
+#define wxSpinCtrl_SetSelection 2105
+#define wxSpinCtrl_GetMin 2107
+#define wxSpinCtrl_GetMax 2109
+#define wxSpinCtrl_destroy 2110
+#define wxStaticText_new_0 2111
+#define wxStaticText_new_4 2112
+#define wxStaticText_Create 2113
+#define wxStaticText_GetLabel 2114
+#define wxStaticText_SetLabel 2115
+#define wxStaticText_Wrap 2116
+#define wxStaticText_destroy 2117
+#define wxStaticBitmap_new_0 2118
+#define wxStaticBitmap_new_4 2119
+#define wxStaticBitmap_Create 2120
+#define wxStaticBitmap_GetBitmap 2121
+#define wxStaticBitmap_SetBitmap 2122
+#define wxStaticBitmap_destroy 2123
+#define wxRadioBox_new 2124
+#define wxRadioBox_destruct 2126
+#define wxRadioBox_Create 2127
+#define wxRadioBox_Enable_2 2128
+#define wxRadioBox_Enable_1 2129
+#define wxRadioBox_GetSelection 2130
+#define wxRadioBox_GetString 2131
+#define wxRadioBox_SetSelection 2132
+#define wxRadioBox_Show_2 2133
+#define wxRadioBox_Show_1 2134
+#define wxRadioBox_GetColumnCount 2135
+#define wxRadioBox_GetItemHelpText 2136
+#define wxRadioBox_GetItemToolTip 2137
+#define wxRadioBox_GetItemFromPoint 2139
+#define wxRadioBox_GetRowCount 2140
+#define wxRadioBox_IsItemEnabled 2141
+#define wxRadioBox_IsItemShown 2142
+#define wxRadioBox_SetItemHelpText 2143
+#define wxRadioBox_SetItemToolTip 2144
+#define wxRadioButton_new_0 2145
+#define wxRadioButton_new_4 2146
+#define wxRadioButton_Create 2147
+#define wxRadioButton_GetValue 2148
+#define wxRadioButton_SetValue 2149
+#define wxRadioButton_destroy 2150
+#define wxSlider_new_6 2152
+#define wxSlider_new_0 2153
+#define wxSlider_Create 2154
+#define wxSlider_GetLineSize 2155
+#define wxSlider_GetMax 2156
+#define wxSlider_GetMin 2157
+#define wxSlider_GetPageSize 2158
+#define wxSlider_GetThumbLength 2159
+#define wxSlider_GetValue 2160
+#define wxSlider_SetLineSize 2161
+#define wxSlider_SetPageSize 2162
+#define wxSlider_SetRange 2163
+#define wxSlider_SetThumbLength 2164
+#define wxSlider_SetValue 2165
+#define wxSlider_destroy 2166
+#define wxDialog_new_4 2168
+#define wxDialog_new_0 2169
+#define wxDialog_destruct 2171
+#define wxDialog_Create 2172
+#define wxDialog_CreateButtonSizer 2173
+#define wxDialog_CreateStdDialogButtonSizer 2174
+#define wxDialog_EndModal 2175
+#define wxDialog_GetAffirmativeId 2176
+#define wxDialog_GetReturnCode 2177
+#define wxDialog_IsModal 2178
+#define wxDialog_SetAffirmativeId 2179
+#define wxDialog_SetReturnCode 2180
+#define wxDialog_Show 2181
+#define wxDialog_ShowModal 2182
+#define wxColourDialog_new_0 2183
+#define wxColourDialog_new_2 2184
+#define wxColourDialog_destruct 2185
+#define wxColourDialog_Create 2186
+#define wxColourDialog_GetColourData 2187
+#define wxColourData_new_0 2188
+#define wxColourData_new_1 2189
+#define wxColourData_destruct 2190
+#define wxColourData_GetChooseFull 2191
+#define wxColourData_GetColour 2192
+#define wxColourData_GetCustomColour 2194
+#define wxColourData_SetChooseFull 2195
+#define wxColourData_SetColour 2196
+#define wxColourData_SetCustomColour 2197
+#define wxPalette_new_0 2198
+#define wxPalette_new_4 2199
+#define wxPalette_destruct 2201
+#define wxPalette_Create 2202
+#define wxPalette_GetColoursCount 2203
+#define wxPalette_GetPixel 2204
+#define wxPalette_GetRGB 2205
+#define wxPalette_IsOk 2206
+#define wxDirDialog_new 2210
+#define wxDirDialog_destruct 2211
+#define wxDirDialog_GetPath 2212
+#define wxDirDialog_GetMessage 2213
+#define wxDirDialog_SetMessage 2214
+#define wxDirDialog_SetPath 2215
+#define wxFileDialog_new 2219
+#define wxFileDialog_destruct 2220
+#define wxFileDialog_GetDirectory 2221
+#define wxFileDialog_GetFilename 2222
+#define wxFileDialog_GetFilenames 2223
+#define wxFileDialog_GetFilterIndex 2224
+#define wxFileDialog_GetMessage 2225
+#define wxFileDialog_GetPath 2226
+#define wxFileDialog_GetPaths 2227
+#define wxFileDialog_GetWildcard 2228
+#define wxFileDialog_SetDirectory 2229
+#define wxFileDialog_SetFilename 2230
+#define wxFileDialog_SetFilterIndex 2231
+#define wxFileDialog_SetMessage 2232
+#define wxFileDialog_SetPath 2233
+#define wxFileDialog_SetWildcard 2234
+#define wxPickerBase_SetInternalMargin 2235
+#define wxPickerBase_GetInternalMargin 2236
+#define wxPickerBase_SetTextCtrlProportion 2237
+#define wxPickerBase_SetPickerCtrlProportion 2238
+#define wxPickerBase_GetTextCtrlProportion 2239
+#define wxPickerBase_GetPickerCtrlProportion 2240
+#define wxPickerBase_HasTextCtrl 2241
+#define wxPickerBase_GetTextCtrl 2242
+#define wxPickerBase_IsTextCtrlGrowable 2243
+#define wxPickerBase_SetPickerCtrlGrowable 2244
+#define wxPickerBase_SetTextCtrlGrowable 2245
+#define wxPickerBase_IsPickerCtrlGrowable 2246
+#define wxFilePickerCtrl_new_0 2247
+#define wxFilePickerCtrl_new_3 2248
+#define wxFilePickerCtrl_Create 2249
+#define wxFilePickerCtrl_GetPath 2250
+#define wxFilePickerCtrl_SetPath 2251
+#define wxFilePickerCtrl_destroy 2252
+#define wxDirPickerCtrl_new_0 2253
+#define wxDirPickerCtrl_new_3 2254
+#define wxDirPickerCtrl_Create 2255
+#define wxDirPickerCtrl_GetPath 2256
+#define wxDirPickerCtrl_SetPath 2257
+#define wxDirPickerCtrl_destroy 2258
+#define wxColourPickerCtrl_new_0 2259
+#define wxColourPickerCtrl_new_3 2260
+#define wxColourPickerCtrl_Create 2261
+#define wxColourPickerCtrl_GetColour 2262
+#define wxColourPickerCtrl_SetColour_1_1 2263
+#define wxColourPickerCtrl_SetColour_1_0 2264
+#define wxColourPickerCtrl_destroy 2265
+#define wxDatePickerCtrl_new_0 2266
+#define wxDatePickerCtrl_new_3 2267
+#define wxDatePickerCtrl_GetRange 2268
+#define wxDatePickerCtrl_GetValue 2269
+#define wxDatePickerCtrl_SetRange 2270
+#define wxDatePickerCtrl_SetValue 2271
+#define wxDatePickerCtrl_destroy 2272
+#define wxFontPickerCtrl_new_0 2273
+#define wxFontPickerCtrl_new_3 2274
+#define wxFontPickerCtrl_Create 2275
+#define wxFontPickerCtrl_GetSelectedFont 2276
+#define wxFontPickerCtrl_SetSelectedFont 2277
+#define wxFontPickerCtrl_GetMaxPointSize 2278
+#define wxFontPickerCtrl_SetMaxPointSize 2279
+#define wxFontPickerCtrl_destroy 2280
+#define wxFindReplaceDialog_new_0 2283
+#define wxFindReplaceDialog_new_4 2284
+#define wxFindReplaceDialog_destruct 2285
+#define wxFindReplaceDialog_Create 2286
+#define wxFindReplaceDialog_GetData 2287
+#define wxFindReplaceData_new_0 2288
+#define wxFindReplaceData_new_1 2289
+#define wxFindReplaceData_GetFindString 2290
+#define wxFindReplaceData_GetReplaceString 2291
+#define wxFindReplaceData_GetFlags 2292
+#define wxFindReplaceData_SetFlags 2293
+#define wxFindReplaceData_SetFindString 2294
+#define wxFindReplaceData_SetReplaceString 2295
+#define wxFindReplaceData_destroy 2296
+#define wxMultiChoiceDialog_new_0 2297
+#define wxMultiChoiceDialog_new_5 2299
+#define wxMultiChoiceDialog_GetSelections 2300
+#define wxMultiChoiceDialog_SetSelections 2301
+#define wxMultiChoiceDialog_destroy 2302
+#define wxSingleChoiceDialog_new_0 2303
+#define wxSingleChoiceDialog_new_5 2305
+#define wxSingleChoiceDialog_GetSelection 2306
+#define wxSingleChoiceDialog_GetStringSelection 2307
+#define wxSingleChoiceDialog_SetSelection 2308
+#define wxSingleChoiceDialog_destroy 2309
+#define wxTextEntryDialog_new 2310
+#define wxTextEntryDialog_GetValue 2311
+#define wxTextEntryDialog_SetValue 2312
+#define wxTextEntryDialog_destroy 2313
+#define wxPasswordEntryDialog_new 2314
+#define wxPasswordEntryDialog_destroy 2315
+#define wxFontData_new_0 2316
+#define wxFontData_new_1 2317
+#define wxFontData_destruct 2318
+#define wxFontData_EnableEffects 2319
+#define wxFontData_GetAllowSymbols 2320
+#define wxFontData_GetColour 2321
+#define wxFontData_GetChosenFont 2322
+#define wxFontData_GetEnableEffects 2323
+#define wxFontData_GetInitialFont 2324
+#define wxFontData_GetShowHelp 2325
+#define wxFontData_SetAllowSymbols 2326
+#define wxFontData_SetChosenFont 2327
+#define wxFontData_SetColour 2328
+#define wxFontData_SetInitialFont 2329
+#define wxFontData_SetRange 2330
+#define wxFontData_SetShowHelp 2331
+#define wxFontDialog_new_0 2335
+#define wxFontDialog_new_2 2337
+#define wxFontDialog_Create 2339
+#define wxFontDialog_GetFontData 2340
+#define wxFontDialog_destroy 2342
+#define wxProgressDialog_new 2343
+#define wxProgressDialog_destruct 2344
+#define wxProgressDialog_Resume 2345
+#define wxProgressDialog_Update_2 2346
+#define wxProgressDialog_Update_0 2347
+#define wxMessageDialog_new 2348
+#define wxMessageDialog_destruct 2349
+#define wxPageSetupDialog_new 2350
+#define wxPageSetupDialog_destruct 2351
+#define wxPageSetupDialog_GetPageSetupData 2352
+#define wxPageSetupDialog_ShowModal 2353
+#define wxPageSetupDialogData_new_0 2354
+#define wxPageSetupDialogData_new_1_0 2355
+#define wxPageSetupDialogData_new_1_1 2356
+#define wxPageSetupDialogData_destruct 2357
+#define wxPageSetupDialogData_EnableHelp 2358
+#define wxPageSetupDialogData_EnableMargins 2359
+#define wxPageSetupDialogData_EnableOrientation 2360
+#define wxPageSetupDialogData_EnablePaper 2361
+#define wxPageSetupDialogData_EnablePrinter 2362
+#define wxPageSetupDialogData_GetDefaultMinMargins 2363
+#define wxPageSetupDialogData_GetEnableMargins 2364
+#define wxPageSetupDialogData_GetEnableOrientation 2365
+#define wxPageSetupDialogData_GetEnablePaper 2366
+#define wxPageSetupDialogData_GetEnablePrinter 2367
+#define wxPageSetupDialogData_GetEnableHelp 2368
+#define wxPageSetupDialogData_GetDefaultInfo 2369
+#define wxPageSetupDialogData_GetMarginTopLeft 2370
+#define wxPageSetupDialogData_GetMarginBottomRight 2371
+#define wxPageSetupDialogData_GetMinMarginTopLeft 2372
+#define wxPageSetupDialogData_GetMinMarginBottomRight 2373
+#define wxPageSetupDialogData_GetPaperId 2374
+#define wxPageSetupDialogData_GetPaperSize 2375
+#define wxPageSetupDialogData_GetPrintData 2377
+#define wxPageSetupDialogData_IsOk 2378
+#define wxPageSetupDialogData_SetDefaultInfo 2379
+#define wxPageSetupDialogData_SetDefaultMinMargins 2380
+#define wxPageSetupDialogData_SetMarginTopLeft 2381
+#define wxPageSetupDialogData_SetMarginBottomRight 2382
+#define wxPageSetupDialogData_SetMinMarginTopLeft 2383
+#define wxPageSetupDialogData_SetMinMarginBottomRight 2384
+#define wxPageSetupDialogData_SetPaperId 2385
+#define wxPageSetupDialogData_SetPaperSize_1_1 2386
+#define wxPageSetupDialogData_SetPaperSize_1_0 2387
+#define wxPageSetupDialogData_SetPrintData 2388
+#define wxPrintDialog_new_2_0 2389
+#define wxPrintDialog_new_2_1 2390
+#define wxPrintDialog_destruct 2391
+#define wxPrintDialog_GetPrintDialogData 2392
+#define wxPrintDialog_GetPrintDC 2393
+#define wxPrintDialogData_new_0 2394
+#define wxPrintDialogData_new_1_1 2395
+#define wxPrintDialogData_new_1_0 2396
+#define wxPrintDialogData_destruct 2397
+#define wxPrintDialogData_EnableHelp 2398
+#define wxPrintDialogData_EnablePageNumbers 2399
+#define wxPrintDialogData_EnablePrintToFile 2400
+#define wxPrintDialogData_EnableSelection 2401
+#define wxPrintDialogData_GetAllPages 2402
+#define wxPrintDialogData_GetCollate 2403
+#define wxPrintDialogData_GetFromPage 2404
+#define wxPrintDialogData_GetMaxPage 2405
+#define wxPrintDialogData_GetMinPage 2406
+#define wxPrintDialogData_GetNoCopies 2407
+#define wxPrintDialogData_GetPrintData 2408
+#define wxPrintDialogData_GetPrintToFile 2409
+#define wxPrintDialogData_GetSelection 2410
+#define wxPrintDialogData_GetToPage 2411
+#define wxPrintDialogData_IsOk 2412
+#define wxPrintDialogData_SetCollate 2413
+#define wxPrintDialogData_SetFromPage 2414
+#define wxPrintDialogData_SetMaxPage 2415
+#define wxPrintDialogData_SetMinPage 2416
+#define wxPrintDialogData_SetNoCopies 2417
+#define wxPrintDialogData_SetPrintData 2418
+#define wxPrintDialogData_SetPrintToFile 2419
+#define wxPrintDialogData_SetSelection 2420
+#define wxPrintDialogData_SetToPage 2421
+#define wxPrintData_new_0 2422
+#define wxPrintData_new_1 2423
+#define wxPrintData_destruct 2424
+#define wxPrintData_GetCollate 2425
+#define wxPrintData_GetBin 2426
+#define wxPrintData_GetColour 2427
+#define wxPrintData_GetDuplex 2428
+#define wxPrintData_GetNoCopies 2429
+#define wxPrintData_GetOrientation 2430
+#define wxPrintData_GetPaperId 2431
+#define wxPrintData_GetPrinterName 2432
+#define wxPrintData_GetQuality 2433
+#define wxPrintData_IsOk 2434
+#define wxPrintData_SetBin 2435
+#define wxPrintData_SetCollate 2436
+#define wxPrintData_SetColour 2437
+#define wxPrintData_SetDuplex 2438
+#define wxPrintData_SetNoCopies 2439
+#define wxPrintData_SetOrientation 2440
+#define wxPrintData_SetPaperId 2441
+#define wxPrintData_SetPrinterName 2442
+#define wxPrintData_SetQuality 2443
+#define wxPrintPreview_new_2 2446
+#define wxPrintPreview_new_3 2447
+#define wxPrintPreview_destruct 2449
+#define wxPrintPreview_GetCanvas 2450
+#define wxPrintPreview_GetCurrentPage 2451
+#define wxPrintPreview_GetFrame 2452
+#define wxPrintPreview_GetMaxPage 2453
+#define wxPrintPreview_GetMinPage 2454
+#define wxPrintPreview_GetPrintout 2455
+#define wxPrintPreview_GetPrintoutForPrinting 2456
+#define wxPrintPreview_IsOk 2457
+#define wxPrintPreview_PaintPage 2458
+#define wxPrintPreview_Print 2459
+#define wxPrintPreview_RenderPage 2460
+#define wxPrintPreview_SetCanvas 2461
+#define wxPrintPreview_SetCurrentPage 2462
+#define wxPrintPreview_SetFrame 2463
+#define wxPrintPreview_SetPrintout 2464
+#define wxPrintPreview_SetZoom 2465
+#define wxPreviewFrame_new 2466
+#define wxPreviewFrame_destruct 2467
+#define wxPreviewFrame_CreateControlBar 2468
+#define wxPreviewFrame_CreateCanvas 2469
+#define wxPreviewFrame_Initialize 2470
+#define wxPreviewFrame_OnCloseWindow 2471
+#define wxPreviewControlBar_new 2472
+#define wxPreviewControlBar_destruct 2473
+#define wxPreviewControlBar_CreateButtons 2474
+#define wxPreviewControlBar_GetPrintPreview 2475
+#define wxPreviewControlBar_GetZoomControl 2476
+#define wxPreviewControlBar_SetZoomControl 2477
+#define wxPrinter_new 2479
+#define wxPrinter_CreateAbortWindow 2480
+#define wxPrinter_GetAbort 2481
+#define wxPrinter_GetLastError 2482
+#define wxPrinter_GetPrintDialogData 2483
+#define wxPrinter_Print 2484
+#define wxPrinter_PrintDialog 2485
+#define wxPrinter_ReportError 2486
+#define wxPrinter_Setup 2487
+#define wxPrinter_destroy 2488
+#define wxXmlResource_new_1 2489
+#define wxXmlResource_new_2 2490
+#define wxXmlResource_destruct 2491
+#define wxXmlResource_AttachUnknownControl 2492
+#define wxXmlResource_ClearHandlers 2493
+#define wxXmlResource_CompareVersion 2494
+#define wxXmlResource_Get 2495
+#define wxXmlResource_GetFlags 2496
+#define wxXmlResource_GetVersion 2497
+#define wxXmlResource_GetXRCID 2498
+#define wxXmlResource_InitAllHandlers 2499
+#define wxXmlResource_Load 2500
+#define wxXmlResource_LoadBitmap 2501
+#define wxXmlResource_LoadDialog_2 2502
+#define wxXmlResource_LoadDialog_3 2503
+#define wxXmlResource_LoadFrame_2 2504
+#define wxXmlResource_LoadFrame_3 2505
+#define wxXmlResource_LoadIcon 2506
+#define wxXmlResource_LoadMenu 2507
+#define wxXmlResource_LoadMenuBar_2 2508
+#define wxXmlResource_LoadMenuBar_1 2509
+#define wxXmlResource_LoadPanel_2 2510
+#define wxXmlResource_LoadPanel_3 2511
+#define wxXmlResource_LoadToolBar 2512
+#define wxXmlResource_Set 2513
+#define wxXmlResource_SetFlags 2514
+#define wxXmlResource_Unload 2515
+#define wxXmlResource_xrcctrl 2516
+#define wxHtmlEasyPrinting_new 2517
+#define wxHtmlEasyPrinting_destruct 2518
+#define wxHtmlEasyPrinting_GetPrintData 2519
+#define wxHtmlEasyPrinting_GetPageSetupData 2520
+#define wxHtmlEasyPrinting_PreviewFile 2521
+#define wxHtmlEasyPrinting_PreviewText 2522
+#define wxHtmlEasyPrinting_PrintFile 2523
+#define wxHtmlEasyPrinting_PrintText 2524
+#define wxHtmlEasyPrinting_PageSetup 2525
+#define wxHtmlEasyPrinting_SetFonts 2526
+#define wxHtmlEasyPrinting_SetHeader 2527
+#define wxHtmlEasyPrinting_SetFooter 2528
+#define wxGLCanvas_new_2 2530
+#define wxGLCanvas_new_3_1 2531
+#define wxGLCanvas_new_3_0 2532
+#define wxGLCanvas_GetContext 2533
+#define wxGLCanvas_SetCurrent 2535
+#define wxGLCanvas_SwapBuffers 2536
+#define wxGLCanvas_destroy 2537
+#define wxAuiManager_new 2538
+#define wxAuiManager_destruct 2539
+#define wxAuiManager_AddPane_2_1 2540
+#define wxAuiManager_AddPane_3 2541
+#define wxAuiManager_AddPane_2_0 2542
+#define wxAuiManager_DetachPane 2543
+#define wxAuiManager_GetAllPanes 2544
+#define wxAuiManager_GetArtProvider 2545
+#define wxAuiManager_GetDockSizeConstraint 2546
+#define wxAuiManager_GetFlags 2547
+#define wxAuiManager_GetManagedWindow 2548
+#define wxAuiManager_GetManager 2549
+#define wxAuiManager_GetPane_1_1 2550
+#define wxAuiManager_GetPane_1_0 2551
+#define wxAuiManager_HideHint 2552
+#define wxAuiManager_InsertPane 2553
+#define wxAuiManager_LoadPaneInfo 2554
+#define wxAuiManager_LoadPerspective 2555
+#define wxAuiManager_SavePaneInfo 2556
+#define wxAuiManager_SavePerspective 2557
+#define wxAuiManager_SetArtProvider 2558
+#define wxAuiManager_SetDockSizeConstraint 2559
+#define wxAuiManager_SetFlags 2560
+#define wxAuiManager_SetManagedWindow 2561
+#define wxAuiManager_ShowHint 2562
+#define wxAuiManager_UnInit 2563
+#define wxAuiManager_Update 2564
+#define wxAuiPaneInfo_new_0 2565
+#define wxAuiPaneInfo_new_1 2566
+#define wxAuiPaneInfo_destruct 2567
+#define wxAuiPaneInfo_BestSize_1 2568
+#define wxAuiPaneInfo_BestSize_2 2569
+#define wxAuiPaneInfo_Bottom 2570
+#define wxAuiPaneInfo_BottomDockable 2571
+#define wxAuiPaneInfo_Caption 2572
+#define wxAuiPaneInfo_CaptionVisible 2573
+#define wxAuiPaneInfo_Centre 2574
+#define wxAuiPaneInfo_CentrePane 2575
+#define wxAuiPaneInfo_CloseButton 2576
+#define wxAuiPaneInfo_DefaultPane 2577
+#define wxAuiPaneInfo_DestroyOnClose 2578
+#define wxAuiPaneInfo_Direction 2579
+#define wxAuiPaneInfo_Dock 2580
+#define wxAuiPaneInfo_Dockable 2581
+#define wxAuiPaneInfo_Fixed 2582
+#define wxAuiPaneInfo_Float 2583
+#define wxAuiPaneInfo_Floatable 2584
+#define wxAuiPaneInfo_FloatingPosition_1 2585
+#define wxAuiPaneInfo_FloatingPosition_2 2586
+#define wxAuiPaneInfo_FloatingSize_1 2587
+#define wxAuiPaneInfo_FloatingSize_2 2588
+#define wxAuiPaneInfo_Gripper 2589
+#define wxAuiPaneInfo_GripperTop 2590
+#define wxAuiPaneInfo_HasBorder 2591
+#define wxAuiPaneInfo_HasCaption 2592
+#define wxAuiPaneInfo_HasCloseButton 2593
+#define wxAuiPaneInfo_HasFlag 2594
+#define wxAuiPaneInfo_HasGripper 2595
+#define wxAuiPaneInfo_HasGripperTop 2596
+#define wxAuiPaneInfo_HasMaximizeButton 2597
+#define wxAuiPaneInfo_HasMinimizeButton 2598
+#define wxAuiPaneInfo_HasPinButton 2599
+#define wxAuiPaneInfo_Hide 2600
+#define wxAuiPaneInfo_IsBottomDockable 2601
+#define wxAuiPaneInfo_IsDocked 2602
+#define wxAuiPaneInfo_IsFixed 2603
+#define wxAuiPaneInfo_IsFloatable 2604
+#define wxAuiPaneInfo_IsFloating 2605
+#define wxAuiPaneInfo_IsLeftDockable 2606
+#define wxAuiPaneInfo_IsMovable 2607
+#define wxAuiPaneInfo_IsOk 2608
+#define wxAuiPaneInfo_IsResizable 2609
+#define wxAuiPaneInfo_IsRightDockable 2610
+#define wxAuiPaneInfo_IsShown 2611
+#define wxAuiPaneInfo_IsToolbar 2612
+#define wxAuiPaneInfo_IsTopDockable 2613
+#define wxAuiPaneInfo_Layer 2614
+#define wxAuiPaneInfo_Left 2615
+#define wxAuiPaneInfo_LeftDockable 2616
+#define wxAuiPaneInfo_MaxSize_1 2617
+#define wxAuiPaneInfo_MaxSize_2 2618
+#define wxAuiPaneInfo_MaximizeButton 2619
+#define wxAuiPaneInfo_MinSize_1 2620
+#define wxAuiPaneInfo_MinSize_2 2621
+#define wxAuiPaneInfo_MinimizeButton 2622
+#define wxAuiPaneInfo_Movable 2623
+#define wxAuiPaneInfo_Name 2624
+#define wxAuiPaneInfo_PaneBorder 2625
+#define wxAuiPaneInfo_PinButton 2626
+#define wxAuiPaneInfo_Position 2627
+#define wxAuiPaneInfo_Resizable 2628
+#define wxAuiPaneInfo_Right 2629
+#define wxAuiPaneInfo_RightDockable 2630
+#define wxAuiPaneInfo_Row 2631
+#define wxAuiPaneInfo_SafeSet 2632
+#define wxAuiPaneInfo_SetFlag 2633
+#define wxAuiPaneInfo_Show 2634
+#define wxAuiPaneInfo_ToolbarPane 2635
+#define wxAuiPaneInfo_Top 2636
+#define wxAuiPaneInfo_TopDockable 2637
+#define wxAuiPaneInfo_Window 2638
+#define wxAuiNotebook_new_0 2639
+#define wxAuiNotebook_new_2 2640
+#define wxAuiNotebook_AddPage 2641
+#define wxAuiNotebook_Create 2642
+#define wxAuiNotebook_DeletePage 2643
+#define wxAuiNotebook_GetArtProvider 2644
+#define wxAuiNotebook_GetPage 2645
+#define wxAuiNotebook_GetPageBitmap 2646
+#define wxAuiNotebook_GetPageCount 2647
+#define wxAuiNotebook_GetPageIndex 2648
+#define wxAuiNotebook_GetPageText 2649
+#define wxAuiNotebook_GetSelection 2650
+#define wxAuiNotebook_InsertPage 2651
+#define wxAuiNotebook_RemovePage 2652
+#define wxAuiNotebook_SetArtProvider 2653
+#define wxAuiNotebook_SetFont 2654
+#define wxAuiNotebook_SetPageBitmap 2655
+#define wxAuiNotebook_SetPageText 2656
+#define wxAuiNotebook_SetSelection 2657
+#define wxAuiNotebook_SetTabCtrlHeight 2658
+#define wxAuiNotebook_SetUniformBitmapSize 2659
+#define wxAuiNotebook_destroy 2660
+#define wxMDIParentFrame_new_0 2661
+#define wxMDIParentFrame_new_4 2662
+#define wxMDIParentFrame_destruct 2663
+#define wxMDIParentFrame_ActivateNext 2664
+#define wxMDIParentFrame_ActivatePrevious 2665
+#define wxMDIParentFrame_ArrangeIcons 2666
+#define wxMDIParentFrame_Cascade 2667
+#define wxMDIParentFrame_Create 2668
+#define wxMDIParentFrame_GetActiveChild 2669
+#define wxMDIParentFrame_GetClientWindow 2670
+#define wxMDIParentFrame_Tile 2671
+#define wxMDIChildFrame_new_0 2672
+#define wxMDIChildFrame_new_4 2673
+#define wxMDIChildFrame_destruct 2674
+#define wxMDIChildFrame_Activate 2675
+#define wxMDIChildFrame_Create 2676
+#define wxMDIChildFrame_Maximize 2677
+#define wxMDIChildFrame_Restore 2678
+#define wxMDIClientWindow_new_0 2679
+#define wxMDIClientWindow_new_2 2680
+#define wxMDIClientWindow_destruct 2681
+#define wxMDIClientWindow_CreateClient 2682
+#define wxLayoutAlgorithm_new 2683
+#define wxLayoutAlgorithm_LayoutFrame 2684
+#define wxLayoutAlgorithm_LayoutMDIFrame 2685
+#define wxLayoutAlgorithm_LayoutWindow 2686
+#define wxLayoutAlgorithm_destroy 2687
+#define wxEvent_GetId 2688
+#define wxEvent_GetSkipped 2689
+#define wxEvent_GetTimestamp 2690
+#define wxEvent_IsCommandEvent 2691
+#define wxEvent_ResumePropagation 2692
+#define wxEvent_ShouldPropagate 2693
+#define wxEvent_Skip 2694
+#define wxEvent_StopPropagation 2695
+#define wxCommandEvent_getClientData 2696
+#define wxCommandEvent_GetExtraLong 2697
+#define wxCommandEvent_GetInt 2698
+#define wxCommandEvent_GetSelection 2699
+#define wxCommandEvent_GetString 2700
+#define wxCommandEvent_IsChecked 2701
+#define wxCommandEvent_IsSelection 2702
+#define wxCommandEvent_SetInt 2703
+#define wxCommandEvent_SetString 2704
+#define wxScrollEvent_GetOrientation 2705
+#define wxScrollEvent_GetPosition 2706
+#define wxScrollWinEvent_GetOrientation 2707
+#define wxScrollWinEvent_GetPosition 2708
+#define wxMouseEvent_AltDown 2709
+#define wxMouseEvent_Button 2710
+#define wxMouseEvent_ButtonDClick 2711
+#define wxMouseEvent_ButtonDown 2712
+#define wxMouseEvent_ButtonUp 2713
+#define wxMouseEvent_CmdDown 2714
+#define wxMouseEvent_ControlDown 2715
+#define wxMouseEvent_Dragging 2716
+#define wxMouseEvent_Entering 2717
+#define wxMouseEvent_GetButton 2718
+#define wxMouseEvent_GetPosition 2721
+#define wxMouseEvent_GetLogicalPosition 2722
+#define wxMouseEvent_GetLinesPerAction 2723
+#define wxMouseEvent_GetWheelRotation 2724
+#define wxMouseEvent_GetWheelDelta 2725
+#define wxMouseEvent_GetX 2726
+#define wxMouseEvent_GetY 2727
+#define wxMouseEvent_IsButton 2728
+#define wxMouseEvent_IsPageScroll 2729
+#define wxMouseEvent_Leaving 2730
+#define wxMouseEvent_LeftDClick 2731
+#define wxMouseEvent_LeftDown 2732
+#define wxMouseEvent_LeftIsDown 2733
+#define wxMouseEvent_LeftUp 2734
+#define wxMouseEvent_MetaDown 2735
+#define wxMouseEvent_MiddleDClick 2736
+#define wxMouseEvent_MiddleDown 2737
+#define wxMouseEvent_MiddleIsDown 2738
+#define wxMouseEvent_MiddleUp 2739
+#define wxMouseEvent_Moving 2740
+#define wxMouseEvent_RightDClick 2741
+#define wxMouseEvent_RightDown 2742
+#define wxMouseEvent_RightIsDown 2743
+#define wxMouseEvent_RightUp 2744
+#define wxMouseEvent_ShiftDown 2745
+#define wxSetCursorEvent_GetCursor 2746
+#define wxSetCursorEvent_GetX 2747
+#define wxSetCursorEvent_GetY 2748
+#define wxSetCursorEvent_HasCursor 2749
+#define wxSetCursorEvent_SetCursor 2750
+#define wxKeyEvent_AltDown 2751
+#define wxKeyEvent_CmdDown 2752
+#define wxKeyEvent_ControlDown 2753
+#define wxKeyEvent_GetKeyCode 2754
+#define wxKeyEvent_GetModifiers 2755
+#define wxKeyEvent_GetPosition 2758
+#define wxKeyEvent_GetRawKeyCode 2759
+#define wxKeyEvent_GetRawKeyFlags 2760
+#define wxKeyEvent_GetUnicodeKey 2761
+#define wxKeyEvent_GetX 2762
+#define wxKeyEvent_GetY 2763
+#define wxKeyEvent_HasModifiers 2764
+#define wxKeyEvent_MetaDown 2765
+#define wxKeyEvent_ShiftDown 2766
+#define wxSizeEvent_GetSize 2767
+#define wxMoveEvent_GetPosition 2768
+#define wxEraseEvent_GetDC 2769
+#define wxFocusEvent_GetWindow 2770
+#define wxChildFocusEvent_GetWindow 2771
+#define wxMenuEvent_GetMenu 2772
+#define wxMenuEvent_GetMenuId 2773
+#define wxMenuEvent_IsPopup 2774
+#define wxCloseEvent_CanVeto 2775
+#define wxCloseEvent_GetLoggingOff 2776
+#define wxCloseEvent_SetCanVeto 2777
+#define wxCloseEvent_SetLoggingOff 2778
+#define wxCloseEvent_Veto 2779
+#define wxShowEvent_SetShow 2780
+#define wxShowEvent_GetShow 2781
+#define wxIconizeEvent_Iconized 2782
+#define wxJoystickEvent_ButtonDown 2783
+#define wxJoystickEvent_ButtonIsDown 2784
+#define wxJoystickEvent_ButtonUp 2785
+#define wxJoystickEvent_GetButtonChange 2786
+#define wxJoystickEvent_GetButtonState 2787
+#define wxJoystickEvent_GetJoystick 2788
+#define wxJoystickEvent_GetPosition 2789
+#define wxJoystickEvent_GetZPosition 2790
+#define wxJoystickEvent_IsButton 2791
+#define wxJoystickEvent_IsMove 2792
+#define wxJoystickEvent_IsZMove 2793
+#define wxUpdateUIEvent_CanUpdate 2794
+#define wxUpdateUIEvent_Check 2795
+#define wxUpdateUIEvent_Enable 2796
+#define wxUpdateUIEvent_Show 2797
+#define wxUpdateUIEvent_GetChecked 2798
+#define wxUpdateUIEvent_GetEnabled 2799
+#define wxUpdateUIEvent_GetShown 2800
+#define wxUpdateUIEvent_GetSetChecked 2801
+#define wxUpdateUIEvent_GetSetEnabled 2802
+#define wxUpdateUIEvent_GetSetShown 2803
+#define wxUpdateUIEvent_GetSetText 2804
+#define wxUpdateUIEvent_GetText 2805
+#define wxUpdateUIEvent_GetMode 2806
+#define wxUpdateUIEvent_GetUpdateInterval 2807
+#define wxUpdateUIEvent_ResetUpdateTime 2808
+#define wxUpdateUIEvent_SetMode 2809
+#define wxUpdateUIEvent_SetText 2810
+#define wxUpdateUIEvent_SetUpdateInterval 2811
+#define wxMouseCaptureChangedEvent_GetCapturedWindow 2812
+#define wxPaletteChangedEvent_SetChangedWindow 2813
+#define wxPaletteChangedEvent_GetChangedWindow 2814
+#define wxQueryNewPaletteEvent_SetPaletteRealized 2815
+#define wxQueryNewPaletteEvent_GetPaletteRealized 2816
+#define wxNavigationKeyEvent_GetDirection 2817
+#define wxNavigationKeyEvent_SetDirection 2818
+#define wxNavigationKeyEvent_IsWindowChange 2819
+#define wxNavigationKeyEvent_SetWindowChange 2820
+#define wxNavigationKeyEvent_IsFromTab 2821
+#define wxNavigationKeyEvent_SetFromTab 2822
+#define wxNavigationKeyEvent_GetCurrentFocus 2823
+#define wxNavigationKeyEvent_SetCurrentFocus 2824
+#define wxHelpEvent_GetOrigin 2825
+#define wxHelpEvent_GetPosition 2826
+#define wxHelpEvent_SetOrigin 2827
+#define wxHelpEvent_SetPosition 2828
+#define wxContextMenuEvent_GetPosition 2829
+#define wxContextMenuEvent_SetPosition 2830
+#define wxIdleEvent_CanSend 2831
+#define wxIdleEvent_GetMode 2832
+#define wxIdleEvent_RequestMore 2833
+#define wxIdleEvent_MoreRequested 2834
+#define wxIdleEvent_SetMode 2835
+#define wxGridEvent_AltDown 2836
+#define wxGridEvent_ControlDown 2837
+#define wxGridEvent_GetCol 2838
+#define wxGridEvent_GetPosition 2839
+#define wxGridEvent_GetRow 2840
+#define wxGridEvent_MetaDown 2841
+#define wxGridEvent_Selecting 2842
+#define wxGridEvent_ShiftDown 2843
+#define wxNotifyEvent_Allow 2844
+#define wxNotifyEvent_IsAllowed 2845
+#define wxNotifyEvent_Veto 2846
+#define wxSashEvent_GetEdge 2847
+#define wxSashEvent_GetDragRect 2848
+#define wxSashEvent_GetDragStatus 2849
+#define wxListEvent_GetCacheFrom 2850
+#define wxListEvent_GetCacheTo 2851
+#define wxListEvent_GetKeyCode 2852
+#define wxListEvent_GetIndex 2853
+#define wxListEvent_GetColumn 2854
+#define wxListEvent_GetPoint 2855
+#define wxListEvent_GetLabel 2856
+#define wxListEvent_GetText 2857
+#define wxListEvent_GetImage 2858
+#define wxListEvent_GetData 2859
+#define wxListEvent_GetMask 2860
+#define wxListEvent_GetItem 2861
+#define wxListEvent_IsEditCancelled 2862
+#define wxDateEvent_GetDate 2863
+#define wxCalendarEvent_GetWeekDay 2864
+#define wxFileDirPickerEvent_GetPath 2865
+#define wxColourPickerEvent_GetColour 2866
+#define wxFontPickerEvent_GetFont 2867
+#define wxStyledTextEvent_GetPosition 2868
+#define wxStyledTextEvent_GetKey 2869
+#define wxStyledTextEvent_GetModifiers 2870
+#define wxStyledTextEvent_GetModificationType 2871
+#define wxStyledTextEvent_GetText 2872
+#define wxStyledTextEvent_GetLength 2873
+#define wxStyledTextEvent_GetLinesAdded 2874
+#define wxStyledTextEvent_GetLine 2875
+#define wxStyledTextEvent_GetFoldLevelNow 2876
+#define wxStyledTextEvent_GetFoldLevelPrev 2877
+#define wxStyledTextEvent_GetMargin 2878
+#define wxStyledTextEvent_GetMessage 2879
+#define wxStyledTextEvent_GetWParam 2880
+#define wxStyledTextEvent_GetLParam 2881
+#define wxStyledTextEvent_GetListType 2882
+#define wxStyledTextEvent_GetX 2883
+#define wxStyledTextEvent_GetY 2884
+#define wxStyledTextEvent_GetDragText 2885
+#define wxStyledTextEvent_GetDragAllowMove 2886
+#define wxStyledTextEvent_GetDragResult 2887
+#define wxStyledTextEvent_GetShift 2888
+#define wxStyledTextEvent_GetControl 2889
+#define wxStyledTextEvent_GetAlt 2890
+#define utils_wxGetKeyState 2891
+#define utils_wxGetMousePosition 2892
+#define utils_wxGetMouseState 2893
+#define utils_wxSetDetectableAutoRepeat 2894
+#define utils_wxBell 2895
+#define utils_wxFindMenuItemId 2896
+#define utils_wxGenericFindWindowAtPoint 2897
+#define utils_wxFindWindowAtPoint 2898
+#define utils_wxBeginBusyCursor 2899
+#define utils_wxEndBusyCursor 2900
+#define utils_wxIsBusy 2901
+#define utils_wxShutdown 2902
+#define utils_wxShell 2903
+#define utils_wxLaunchDefaultBrowser 2904
+#define utils_wxGetEmailAddress 2905
+#define utils_wxGetUserId 2906
+#define utils_wxGetHomeDir 2907
+#define utils_wxNewId 2908
+#define utils_wxRegisterId 2909
+#define utils_wxGetCurrentId 2910
+#define utils_wxGetOsDescription 2911
+#define utils_wxIsPlatformLittleEndian 2912
+#define utils_wxIsPlatform64Bit 2913
+#define wxPrintout_new 2914
+#define wxPrintout_destruct 2915
+#define wxPrintout_GetDC 2916
+#define wxPrintout_GetPageSizeMM 2917
+#define wxPrintout_GetPageSizePixels 2918
+#define wxPrintout_GetPaperRectPixels 2919
+#define wxPrintout_GetPPIPrinter 2920
+#define wxPrintout_GetPPIScreen 2921
+#define wxPrintout_GetTitle 2922
+#define wxPrintout_IsPreview 2923
+#define wxPrintout_FitThisSizeToPaper 2924
+#define wxPrintout_FitThisSizeToPage 2925
+#define wxPrintout_FitThisSizeToPageMargins 2926
+#define wxPrintout_MapScreenSizeToPaper 2927
+#define wxPrintout_MapScreenSizeToPage 2928
+#define wxPrintout_MapScreenSizeToPageMargins 2929
+#define wxPrintout_MapScreenSizeToDevice 2930
+#define wxPrintout_GetLogicalPaperRect 2931
+#define wxPrintout_GetLogicalPageRect 2932
+#define wxPrintout_GetLogicalPageMarginsRect 2933
+#define wxPrintout_SetLogicalOrigin 2934
+#define wxPrintout_OffsetLogicalOrigin 2935
+#define wxStyledTextCtrl_new_2 2936
+#define wxStyledTextCtrl_new_0 2937
+#define wxStyledTextCtrl_destruct 2938
+#define wxStyledTextCtrl_Create 2939
+#define wxStyledTextCtrl_AddText 2940
+#define wxStyledTextCtrl_AddStyledText 2941
+#define wxStyledTextCtrl_InsertText 2942
+#define wxStyledTextCtrl_ClearAll 2943
+#define wxStyledTextCtrl_ClearDocumentStyle 2944
+#define wxStyledTextCtrl_GetLength 2945
+#define wxStyledTextCtrl_GetCharAt 2946
+#define wxStyledTextCtrl_GetCurrentPos 2947
+#define wxStyledTextCtrl_GetAnchor 2948
+#define wxStyledTextCtrl_GetStyleAt 2949
+#define wxStyledTextCtrl_Redo 2950
+#define wxStyledTextCtrl_SetUndoCollection 2951
+#define wxStyledTextCtrl_SelectAll 2952
+#define wxStyledTextCtrl_SetSavePoint 2953
+#define wxStyledTextCtrl_GetStyledText 2954
+#define wxStyledTextCtrl_CanRedo 2955
+#define wxStyledTextCtrl_MarkerLineFromHandle 2956
+#define wxStyledTextCtrl_MarkerDeleteHandle 2957
+#define wxStyledTextCtrl_GetUndoCollection 2958
+#define wxStyledTextCtrl_GetViewWhiteSpace 2959
+#define wxStyledTextCtrl_SetViewWhiteSpace 2960
+#define wxStyledTextCtrl_PositionFromPoint 2961
+#define wxStyledTextCtrl_PositionFromPointClose 2962
+#define wxStyledTextCtrl_GotoLine 2963
+#define wxStyledTextCtrl_GotoPos 2964
+#define wxStyledTextCtrl_SetAnchor 2965
+#define wxStyledTextCtrl_GetCurLine 2966
+#define wxStyledTextCtrl_GetEndStyled 2967
+#define wxStyledTextCtrl_ConvertEOLs 2968
+#define wxStyledTextCtrl_GetEOLMode 2969
+#define wxStyledTextCtrl_SetEOLMode 2970
+#define wxStyledTextCtrl_StartStyling 2971
+#define wxStyledTextCtrl_SetStyling 2972
+#define wxStyledTextCtrl_GetBufferedDraw 2973
+#define wxStyledTextCtrl_SetBufferedDraw 2974
+#define wxStyledTextCtrl_SetTabWidth 2975
+#define wxStyledTextCtrl_GetTabWidth 2976
+#define wxStyledTextCtrl_SetCodePage 2977
+#define wxStyledTextCtrl_MarkerDefine 2978
+#define wxStyledTextCtrl_MarkerSetForeground 2979
+#define wxStyledTextCtrl_MarkerSetBackground 2980
+#define wxStyledTextCtrl_MarkerAdd 2981
+#define wxStyledTextCtrl_MarkerDelete 2982
+#define wxStyledTextCtrl_MarkerDeleteAll 2983
+#define wxStyledTextCtrl_MarkerGet 2984
+#define wxStyledTextCtrl_MarkerNext 2985
+#define wxStyledTextCtrl_MarkerPrevious 2986
+#define wxStyledTextCtrl_MarkerDefineBitmap 2987
+#define wxStyledTextCtrl_MarkerAddSet 2988
+#define wxStyledTextCtrl_MarkerSetAlpha 2989
+#define wxStyledTextCtrl_SetMarginType 2990
+#define wxStyledTextCtrl_GetMarginType 2991
+#define wxStyledTextCtrl_SetMarginWidth 2992
+#define wxStyledTextCtrl_GetMarginWidth 2993
+#define wxStyledTextCtrl_SetMarginMask 2994
+#define wxStyledTextCtrl_GetMarginMask 2995
+#define wxStyledTextCtrl_SetMarginSensitive 2996
+#define wxStyledTextCtrl_GetMarginSensitive 2997
+#define wxStyledTextCtrl_StyleClearAll 2998
+#define wxStyledTextCtrl_StyleSetForeground 2999
+#define wxStyledTextCtrl_StyleSetBackground 3000
+#define wxStyledTextCtrl_StyleSetBold 3001
+#define wxStyledTextCtrl_StyleSetItalic 3002
+#define wxStyledTextCtrl_StyleSetSize 3003
+#define wxStyledTextCtrl_StyleSetFaceName 3004
+#define wxStyledTextCtrl_StyleSetEOLFilled 3005
+#define wxStyledTextCtrl_StyleResetDefault 3006
+#define wxStyledTextCtrl_StyleSetUnderline 3007
+#define wxStyledTextCtrl_StyleSetCase 3008
+#define wxStyledTextCtrl_StyleSetHotSpot 3009
+#define wxStyledTextCtrl_SetSelForeground 3010
+#define wxStyledTextCtrl_SetSelBackground 3011
+#define wxStyledTextCtrl_GetSelAlpha 3012
+#define wxStyledTextCtrl_SetSelAlpha 3013
+#define wxStyledTextCtrl_SetCaretForeground 3014
+#define wxStyledTextCtrl_CmdKeyAssign 3015
+#define wxStyledTextCtrl_CmdKeyClear 3016
+#define wxStyledTextCtrl_CmdKeyClearAll 3017
+#define wxStyledTextCtrl_SetStyleBytes 3018
+#define wxStyledTextCtrl_StyleSetVisible 3019
+#define wxStyledTextCtrl_GetCaretPeriod 3020
+#define wxStyledTextCtrl_SetCaretPeriod 3021
+#define wxStyledTextCtrl_SetWordChars 3022
+#define wxStyledTextCtrl_BeginUndoAction 3023
+#define wxStyledTextCtrl_EndUndoAction 3024
+#define wxStyledTextCtrl_IndicatorSetStyle 3025
+#define wxStyledTextCtrl_IndicatorGetStyle 3026
+#define wxStyledTextCtrl_IndicatorSetForeground 3027
+#define wxStyledTextCtrl_IndicatorGetForeground 3028
+#define wxStyledTextCtrl_SetWhitespaceForeground 3029
+#define wxStyledTextCtrl_SetWhitespaceBackground 3030
+#define wxStyledTextCtrl_GetStyleBits 3031
+#define wxStyledTextCtrl_SetLineState 3032
+#define wxStyledTextCtrl_GetLineState 3033
+#define wxStyledTextCtrl_GetMaxLineState 3034
+#define wxStyledTextCtrl_GetCaretLineVisible 3035
+#define wxStyledTextCtrl_SetCaretLineVisible 3036
+#define wxStyledTextCtrl_GetCaretLineBackground 3037
+#define wxStyledTextCtrl_SetCaretLineBackground 3038
+#define wxStyledTextCtrl_AutoCompShow 3039
+#define wxStyledTextCtrl_AutoCompCancel 3040
+#define wxStyledTextCtrl_AutoCompActive 3041
+#define wxStyledTextCtrl_AutoCompPosStart 3042
+#define wxStyledTextCtrl_AutoCompComplete 3043
+#define wxStyledTextCtrl_AutoCompStops 3044
+#define wxStyledTextCtrl_AutoCompSetSeparator 3045
+#define wxStyledTextCtrl_AutoCompGetSeparator 3046
+#define wxStyledTextCtrl_AutoCompSelect 3047
+#define wxStyledTextCtrl_AutoCompSetCancelAtStart 3048
+#define wxStyledTextCtrl_AutoCompGetCancelAtStart 3049
+#define wxStyledTextCtrl_AutoCompSetFillUps 3050
+#define wxStyledTextCtrl_AutoCompSetChooseSingle 3051
+#define wxStyledTextCtrl_AutoCompGetChooseSingle 3052
+#define wxStyledTextCtrl_AutoCompSetIgnoreCase 3053
+#define wxStyledTextCtrl_AutoCompGetIgnoreCase 3054
+#define wxStyledTextCtrl_UserListShow 3055
+#define wxStyledTextCtrl_AutoCompSetAutoHide 3056
+#define wxStyledTextCtrl_AutoCompGetAutoHide 3057
+#define wxStyledTextCtrl_AutoCompSetDropRestOfWord 3058
+#define wxStyledTextCtrl_AutoCompGetDropRestOfWord 3059
+#define wxStyledTextCtrl_RegisterImage 3060
+#define wxStyledTextCtrl_ClearRegisteredImages 3061
+#define wxStyledTextCtrl_AutoCompGetTypeSeparator 3062
+#define wxStyledTextCtrl_AutoCompSetTypeSeparator 3063
+#define wxStyledTextCtrl_AutoCompSetMaxWidth 3064
+#define wxStyledTextCtrl_AutoCompGetMaxWidth 3065
+#define wxStyledTextCtrl_AutoCompSetMaxHeight 3066
+#define wxStyledTextCtrl_AutoCompGetMaxHeight 3067
+#define wxStyledTextCtrl_SetIndent 3068
+#define wxStyledTextCtrl_GetIndent 3069
+#define wxStyledTextCtrl_SetUseTabs 3070
+#define wxStyledTextCtrl_GetUseTabs 3071
+#define wxStyledTextCtrl_SetLineIndentation 3072
+#define wxStyledTextCtrl_GetLineIndentation 3073
+#define wxStyledTextCtrl_GetLineIndentPosition 3074
+#define wxStyledTextCtrl_GetColumn 3075
+#define wxStyledTextCtrl_SetUseHorizontalScrollBar 3076
+#define wxStyledTextCtrl_GetUseHorizontalScrollBar 3077
+#define wxStyledTextCtrl_SetIndentationGuides 3078
+#define wxStyledTextCtrl_GetIndentationGuides 3079
+#define wxStyledTextCtrl_SetHighlightGuide 3080
+#define wxStyledTextCtrl_GetHighlightGuide 3081
+#define wxStyledTextCtrl_GetLineEndPosition 3082
+#define wxStyledTextCtrl_GetCodePage 3083
+#define wxStyledTextCtrl_GetCaretForeground 3084
+#define wxStyledTextCtrl_GetReadOnly 3085
+#define wxStyledTextCtrl_SetCurrentPos 3086
+#define wxStyledTextCtrl_SetSelectionStart 3087
+#define wxStyledTextCtrl_GetSelectionStart 3088
+#define wxStyledTextCtrl_SetSelectionEnd 3089
+#define wxStyledTextCtrl_GetSelectionEnd 3090
+#define wxStyledTextCtrl_SetPrintMagnification 3091
+#define wxStyledTextCtrl_GetPrintMagnification 3092
+#define wxStyledTextCtrl_SetPrintColourMode 3093
+#define wxStyledTextCtrl_GetPrintColourMode 3094
+#define wxStyledTextCtrl_FindText 3095
+#define wxStyledTextCtrl_FormatRange 3096
+#define wxStyledTextCtrl_GetFirstVisibleLine 3097
+#define wxStyledTextCtrl_GetLine 3098
+#define wxStyledTextCtrl_GetLineCount 3099
+#define wxStyledTextCtrl_SetMarginLeft 3100
+#define wxStyledTextCtrl_GetMarginLeft 3101
+#define wxStyledTextCtrl_SetMarginRight 3102
+#define wxStyledTextCtrl_GetMarginRight 3103
+#define wxStyledTextCtrl_GetModify 3104
+#define wxStyledTextCtrl_SetSelection 3105
+#define wxStyledTextCtrl_GetSelectedText 3106
+#define wxStyledTextCtrl_GetTextRange 3107
+#define wxStyledTextCtrl_HideSelection 3108
+#define wxStyledTextCtrl_LineFromPosition 3109
+#define wxStyledTextCtrl_PositionFromLine 3110
+#define wxStyledTextCtrl_LineScroll 3111
+#define wxStyledTextCtrl_EnsureCaretVisible 3112
+#define wxStyledTextCtrl_ReplaceSelection 3113
+#define wxStyledTextCtrl_SetReadOnly 3114
+#define wxStyledTextCtrl_CanPaste 3115
+#define wxStyledTextCtrl_CanUndo 3116
+#define wxStyledTextCtrl_EmptyUndoBuffer 3117
+#define wxStyledTextCtrl_Undo 3118
+#define wxStyledTextCtrl_Cut 3119
+#define wxStyledTextCtrl_Copy 3120
+#define wxStyledTextCtrl_Paste 3121
+#define wxStyledTextCtrl_Clear 3122
+#define wxStyledTextCtrl_SetText 3123
+#define wxStyledTextCtrl_GetText 3124
+#define wxStyledTextCtrl_GetTextLength 3125
+#define wxStyledTextCtrl_GetOvertype 3126
+#define wxStyledTextCtrl_SetCaretWidth 3127
+#define wxStyledTextCtrl_GetCaretWidth 3128
+#define wxStyledTextCtrl_SetTargetStart 3129
+#define wxStyledTextCtrl_GetTargetStart 3130
+#define wxStyledTextCtrl_SetTargetEnd 3131
+#define wxStyledTextCtrl_GetTargetEnd 3132
+#define wxStyledTextCtrl_ReplaceTarget 3133
+#define wxStyledTextCtrl_SearchInTarget 3134
+#define wxStyledTextCtrl_SetSearchFlags 3135
+#define wxStyledTextCtrl_GetSearchFlags 3136
+#define wxStyledTextCtrl_CallTipShow 3137
+#define wxStyledTextCtrl_CallTipCancel 3138
+#define wxStyledTextCtrl_CallTipActive 3139
+#define wxStyledTextCtrl_CallTipPosAtStart 3140
+#define wxStyledTextCtrl_CallTipSetHighlight 3141
+#define wxStyledTextCtrl_CallTipSetBackground 3142
+#define wxStyledTextCtrl_CallTipSetForeground 3143
+#define wxStyledTextCtrl_CallTipSetForegroundHighlight 3144
+#define wxStyledTextCtrl_CallTipUseStyle 3145
+#define wxStyledTextCtrl_VisibleFromDocLine 3146
+#define wxStyledTextCtrl_DocLineFromVisible 3147
+#define wxStyledTextCtrl_WrapCount 3148
+#define wxStyledTextCtrl_SetFoldLevel 3149
+#define wxStyledTextCtrl_GetFoldLevel 3150
+#define wxStyledTextCtrl_GetLastChild 3151
+#define wxStyledTextCtrl_GetFoldParent 3152
+#define wxStyledTextCtrl_ShowLines 3153
+#define wxStyledTextCtrl_HideLines 3154
+#define wxStyledTextCtrl_GetLineVisible 3155
+#define wxStyledTextCtrl_SetFoldExpanded 3156
+#define wxStyledTextCtrl_GetFoldExpanded 3157
+#define wxStyledTextCtrl_ToggleFold 3158
+#define wxStyledTextCtrl_EnsureVisible 3159
+#define wxStyledTextCtrl_SetFoldFlags 3160
+#define wxStyledTextCtrl_EnsureVisibleEnforcePolicy 3161
+#define wxStyledTextCtrl_SetTabIndents 3162
+#define wxStyledTextCtrl_GetTabIndents 3163
+#define wxStyledTextCtrl_SetBackSpaceUnIndents 3164
+#define wxStyledTextCtrl_GetBackSpaceUnIndents 3165
+#define wxStyledTextCtrl_SetMouseDwellTime 3166
+#define wxStyledTextCtrl_GetMouseDwellTime 3167
+#define wxStyledTextCtrl_WordStartPosition 3168
+#define wxStyledTextCtrl_WordEndPosition 3169
+#define wxStyledTextCtrl_SetWrapMode 3170
+#define wxStyledTextCtrl_GetWrapMode 3171
+#define wxStyledTextCtrl_SetWrapVisualFlags 3172
+#define wxStyledTextCtrl_GetWrapVisualFlags 3173
+#define wxStyledTextCtrl_SetWrapVisualFlagsLocation 3174
+#define wxStyledTextCtrl_GetWrapVisualFlagsLocation 3175
+#define wxStyledTextCtrl_SetWrapStartIndent 3176
+#define wxStyledTextCtrl_GetWrapStartIndent 3177
+#define wxStyledTextCtrl_SetLayoutCache 3178
+#define wxStyledTextCtrl_GetLayoutCache 3179
+#define wxStyledTextCtrl_SetScrollWidth 3180
+#define wxStyledTextCtrl_GetScrollWidth 3181
+#define wxStyledTextCtrl_TextWidth 3182
+#define wxStyledTextCtrl_GetEndAtLastLine 3183
+#define wxStyledTextCtrl_TextHeight 3184
+#define wxStyledTextCtrl_SetUseVerticalScrollBar 3185
+#define wxStyledTextCtrl_GetUseVerticalScrollBar 3186
+#define wxStyledTextCtrl_AppendText 3187
+#define wxStyledTextCtrl_GetTwoPhaseDraw 3188
+#define wxStyledTextCtrl_SetTwoPhaseDraw 3189
+#define wxStyledTextCtrl_TargetFromSelection 3190
+#define wxStyledTextCtrl_LinesJoin 3191
+#define wxStyledTextCtrl_LinesSplit 3192
+#define wxStyledTextCtrl_SetFoldMarginColour 3193
+#define wxStyledTextCtrl_SetFoldMarginHiColour 3194
+#define wxStyledTextCtrl_LineDown 3195
+#define wxStyledTextCtrl_LineDownExtend 3196
+#define wxStyledTextCtrl_LineUp 3197
+#define wxStyledTextCtrl_LineUpExtend 3198
+#define wxStyledTextCtrl_CharLeft 3199
+#define wxStyledTextCtrl_CharLeftExtend 3200
+#define wxStyledTextCtrl_CharRight 3201
+#define wxStyledTextCtrl_CharRightExtend 3202
+#define wxStyledTextCtrl_WordLeft 3203
+#define wxStyledTextCtrl_WordLeftExtend 3204
+#define wxStyledTextCtrl_WordRight 3205
+#define wxStyledTextCtrl_WordRightExtend 3206
+#define wxStyledTextCtrl_Home 3207
+#define wxStyledTextCtrl_HomeExtend 3208
+#define wxStyledTextCtrl_LineEnd 3209
+#define wxStyledTextCtrl_LineEndExtend 3210
+#define wxStyledTextCtrl_DocumentStart 3211
+#define wxStyledTextCtrl_DocumentStartExtend 3212
+#define wxStyledTextCtrl_DocumentEnd 3213
+#define wxStyledTextCtrl_DocumentEndExtend 3214
+#define wxStyledTextCtrl_PageUp 3215
+#define wxStyledTextCtrl_PageUpExtend 3216
+#define wxStyledTextCtrl_PageDown 3217
+#define wxStyledTextCtrl_PageDownExtend 3218
+#define wxStyledTextCtrl_EditToggleOvertype 3219
+#define wxStyledTextCtrl_Cancel 3220
+#define wxStyledTextCtrl_DeleteBack 3221
+#define wxStyledTextCtrl_Tab 3222
+#define wxStyledTextCtrl_BackTab 3223
+#define wxStyledTextCtrl_NewLine 3224
+#define wxStyledTextCtrl_FormFeed 3225
+#define wxStyledTextCtrl_VCHome 3226
+#define wxStyledTextCtrl_VCHomeExtend 3227
+#define wxStyledTextCtrl_ZoomIn 3228
+#define wxStyledTextCtrl_ZoomOut 3229
+#define wxStyledTextCtrl_DelWordLeft 3230
+#define wxStyledTextCtrl_DelWordRight 3231
+#define wxStyledTextCtrl_LineCut 3232
+#define wxStyledTextCtrl_LineDelete 3233
+#define wxStyledTextCtrl_LineTranspose 3234
+#define wxStyledTextCtrl_LineDuplicate 3235
+#define wxStyledTextCtrl_LowerCase 3236
+#define wxStyledTextCtrl_UpperCase 3237
+#define wxStyledTextCtrl_LineScrollDown 3238
+#define wxStyledTextCtrl_LineScrollUp 3239
+#define wxStyledTextCtrl_DeleteBackNotLine 3240
+#define wxStyledTextCtrl_HomeDisplay 3241
+#define wxStyledTextCtrl_HomeDisplayExtend 3242
+#define wxStyledTextCtrl_LineEndDisplay 3243
+#define wxStyledTextCtrl_LineEndDisplayExtend 3244
+#define wxStyledTextCtrl_HomeWrapExtend 3245
+#define wxStyledTextCtrl_LineEndWrap 3246
+#define wxStyledTextCtrl_LineEndWrapExtend 3247
+#define wxStyledTextCtrl_VCHomeWrap 3248
+#define wxStyledTextCtrl_VCHomeWrapExtend 3249
+#define wxStyledTextCtrl_LineCopy 3250
+#define wxStyledTextCtrl_MoveCaretInsideView 3251
+#define wxStyledTextCtrl_LineLength 3252
+#define wxStyledTextCtrl_BraceHighlight 3253
+#define wxStyledTextCtrl_BraceBadLight 3254
+#define wxStyledTextCtrl_BraceMatch 3255
+#define wxStyledTextCtrl_GetViewEOL 3256
+#define wxStyledTextCtrl_SetViewEOL 3257
+#define wxStyledTextCtrl_SetModEventMask 3258
+#define wxStyledTextCtrl_GetEdgeColumn 3259
+#define wxStyledTextCtrl_SetEdgeColumn 3260
+#define wxStyledTextCtrl_GetEdgeMode 3261
+#define wxStyledTextCtrl_GetEdgeColour 3262
+#define wxStyledTextCtrl_SetEdgeColour 3263
+#define wxStyledTextCtrl_SearchAnchor 3264
+#define wxStyledTextCtrl_SearchNext 3265
+#define wxStyledTextCtrl_SearchPrev 3266
+#define wxStyledTextCtrl_LinesOnScreen 3267
+#define wxStyledTextCtrl_UsePopUp 3268
+#define wxStyledTextCtrl_SelectionIsRectangle 3269
+#define wxStyledTextCtrl_SetZoom 3270
+#define wxStyledTextCtrl_GetZoom 3271
+#define wxStyledTextCtrl_GetModEventMask 3272
+#define wxStyledTextCtrl_SetSTCFocus 3273
+#define wxStyledTextCtrl_GetSTCFocus 3274
+#define wxStyledTextCtrl_SetStatus 3275
+#define wxStyledTextCtrl_GetStatus 3276
+#define wxStyledTextCtrl_SetMouseDownCaptures 3277
+#define wxStyledTextCtrl_GetMouseDownCaptures 3278
+#define wxStyledTextCtrl_SetSTCCursor 3279
+#define wxStyledTextCtrl_GetSTCCursor 3280
+#define wxStyledTextCtrl_SetControlCharSymbol 3281
+#define wxStyledTextCtrl_GetControlCharSymbol 3282
+#define wxStyledTextCtrl_WordPartLeft 3283
+#define wxStyledTextCtrl_WordPartLeftExtend 3284
+#define wxStyledTextCtrl_WordPartRight 3285
+#define wxStyledTextCtrl_WordPartRightExtend 3286
+#define wxStyledTextCtrl_SetVisiblePolicy 3287
+#define wxStyledTextCtrl_DelLineLeft 3288
+#define wxStyledTextCtrl_DelLineRight 3289
+#define wxStyledTextCtrl_GetXOffset 3290
+#define wxStyledTextCtrl_ChooseCaretX 3291
+#define wxStyledTextCtrl_SetXCaretPolicy 3292
+#define wxStyledTextCtrl_SetYCaretPolicy 3293
+#define wxStyledTextCtrl_GetPrintWrapMode 3294
+#define wxStyledTextCtrl_SetHotspotActiveForeground 3295
+#define wxStyledTextCtrl_SetHotspotActiveBackground 3296
+#define wxStyledTextCtrl_SetHotspotActiveUnderline 3297
+#define wxStyledTextCtrl_SetHotspotSingleLine 3298
+#define wxStyledTextCtrl_ParaDownExtend 3299
+#define wxStyledTextCtrl_ParaUp 3300
+#define wxStyledTextCtrl_ParaUpExtend 3301
+#define wxStyledTextCtrl_PositionBefore 3302
+#define wxStyledTextCtrl_PositionAfter 3303
+#define wxStyledTextCtrl_CopyRange 3304
+#define wxStyledTextCtrl_CopyText 3305
+#define wxStyledTextCtrl_SetSelectionMode 3306
+#define wxStyledTextCtrl_GetSelectionMode 3307
+#define wxStyledTextCtrl_LineDownRectExtend 3308
+#define wxStyledTextCtrl_LineUpRectExtend 3309
+#define wxStyledTextCtrl_CharLeftRectExtend 3310
+#define wxStyledTextCtrl_CharRightRectExtend 3311
+#define wxStyledTextCtrl_HomeRectExtend 3312
+#define wxStyledTextCtrl_VCHomeRectExtend 3313
+#define wxStyledTextCtrl_LineEndRectExtend 3314
+#define wxStyledTextCtrl_PageUpRectExtend 3315
+#define wxStyledTextCtrl_PageDownRectExtend 3316
+#define wxStyledTextCtrl_StutteredPageUp 3317
+#define wxStyledTextCtrl_StutteredPageUpExtend 3318
+#define wxStyledTextCtrl_StutteredPageDown 3319
+#define wxStyledTextCtrl_StutteredPageDownExtend 3320
+#define wxStyledTextCtrl_WordLeftEnd 3321
+#define wxStyledTextCtrl_WordLeftEndExtend 3322
+#define wxStyledTextCtrl_WordRightEnd 3323
+#define wxStyledTextCtrl_WordRightEndExtend 3324
+#define wxStyledTextCtrl_SetWhitespaceChars 3325
+#define wxStyledTextCtrl_SetCharsDefault 3326
+#define wxStyledTextCtrl_AutoCompGetCurrent 3327
+#define wxStyledTextCtrl_Allocate 3328
+#define wxStyledTextCtrl_FindColumn 3329
+#define wxStyledTextCtrl_GetCaretSticky 3330
+#define wxStyledTextCtrl_SetCaretSticky 3331
+#define wxStyledTextCtrl_ToggleCaretSticky 3332
+#define wxStyledTextCtrl_SetPasteConvertEndings 3333
+#define wxStyledTextCtrl_GetPasteConvertEndings 3334
+#define wxStyledTextCtrl_SelectionDuplicate 3335
+#define wxStyledTextCtrl_SetCaretLineBackAlpha 3336
+#define wxStyledTextCtrl_GetCaretLineBackAlpha 3337
+#define wxStyledTextCtrl_StartRecord 3338
+#define wxStyledTextCtrl_StopRecord 3339
+#define wxStyledTextCtrl_SetLexer 3340
+#define wxStyledTextCtrl_GetLexer 3341
+#define wxStyledTextCtrl_Colourise 3342
+#define wxStyledTextCtrl_SetProperty 3343
+#define wxStyledTextCtrl_SetKeyWords 3344
+#define wxStyledTextCtrl_SetLexerLanguage 3345
+#define wxStyledTextCtrl_GetProperty 3346
+#define wxStyledTextCtrl_GetStyleBitsNeeded 3347
+#define wxStyledTextCtrl_GetCurrentLine 3348
+#define wxStyledTextCtrl_StyleSetSpec 3349
+#define wxStyledTextCtrl_StyleSetFont 3350
+#define wxStyledTextCtrl_StyleSetFontAttr 3351
+#define wxStyledTextCtrl_StyleSetCharacterSet 3352
+#define wxStyledTextCtrl_StyleSetFontEncoding 3353
+#define wxStyledTextCtrl_CmdKeyExecute 3354
+#define wxStyledTextCtrl_SetMargins 3355
+#define wxStyledTextCtrl_GetSelection 3356
+#define wxStyledTextCtrl_PointFromPosition 3357
+#define wxStyledTextCtrl_ScrollToLine 3358
+#define wxStyledTextCtrl_ScrollToColumn 3359
+#define wxStyledTextCtrl_SendMsg 3360
+#define wxStyledTextCtrl_SetVScrollBar 3361
+#define wxStyledTextCtrl_SetHScrollBar 3362
+#define wxStyledTextCtrl_GetLastKeydownProcessed 3363
+#define wxStyledTextCtrl_SetLastKeydownProcessed 3364
+#define wxStyledTextCtrl_SaveFile 3365
+#define wxStyledTextCtrl_LoadFile 3366
+#define wxStyledTextCtrl_DoDragOver 3367
+#define wxStyledTextCtrl_DoDropText 3368
+#define wxStyledTextCtrl_GetUseAntiAliasing 3369
+#define wxStyledTextCtrl_AddTextRaw 3370
+#define wxStyledTextCtrl_InsertTextRaw 3371
+#define wxStyledTextCtrl_GetCurLineRaw 3372
+#define wxStyledTextCtrl_GetLineRaw 3373
+#define wxStyledTextCtrl_GetSelectedTextRaw 3374
+#define wxStyledTextCtrl_GetTextRangeRaw 3375
+#define wxStyledTextCtrl_SetTextRaw 3376
+#define wxStyledTextCtrl_GetTextRaw 3377
+#define wxStyledTextCtrl_AppendTextRaw 3378
+#define wxArtProvider_GetBitmap 3379
+#define wxArtProvider_GetIcon 3380
+#define wxTreeEvent_GetKeyCode 3381
+#define wxTreeEvent_GetItem 3382
+#define wxTreeEvent_GetKeyEvent 3383
+#define wxTreeEvent_GetLabel 3384
+#define wxTreeEvent_GetOldItem 3385
+#define wxTreeEvent_GetPoint 3386
+#define wxTreeEvent_IsEditCancelled 3387
+#define wxTreeEvent_SetToolTip 3388
+#define wxNotebookEvent_GetOldSelection 3389
+#define wxNotebookEvent_GetSelection 3390
+#define wxNotebookEvent_SetOldSelection 3391
+#define wxNotebookEvent_SetSelection 3392
+#define wxFileDataObject_new 3393
+#define wxFileDataObject_AddFile 3394
+#define wxFileDataObject_GetFilenames 3395
+#define wxFileDataObject_destroy 3396
+#define wxTextDataObject_new 3397
+#define wxTextDataObject_GetTextLength 3398
+#define wxTextDataObject_GetText 3399
+#define wxTextDataObject_SetText 3400
+#define wxTextDataObject_destroy 3401
+#define wxBitmapDataObject_new_1_1 3402
+#define wxBitmapDataObject_new_1_0 3403
+#define wxBitmapDataObject_GetBitmap 3404
+#define wxBitmapDataObject_SetBitmap 3405
+#define wxBitmapDataObject_destroy 3406
+#define wxClipboard_new 3408
+#define wxClipboard_destruct 3409
+#define wxClipboard_AddData 3410
+#define wxClipboard_Clear 3411
+#define wxClipboard_Close 3412
+#define wxClipboard_Flush 3413
+#define wxClipboard_GetData 3414
+#define wxClipboard_IsOpened 3415
+#define wxClipboard_Open 3416
+#define wxClipboard_SetData 3417
+#define wxClipboard_UsePrimarySelection 3419
+#define wxClipboard_IsSupported 3420
+#define wxClipboard_Get 3421
+#define wxSpinEvent_GetPosition 3422
+#define wxSpinEvent_SetPosition 3423
+#define wxSplitterWindow_new_0 3424
+#define wxSplitterWindow_new_2 3425
+#define wxSplitterWindow_destruct 3426
+#define wxSplitterWindow_Create 3427
+#define wxSplitterWindow_GetMinimumPaneSize 3428
+#define wxSplitterWindow_GetSashGravity 3429
+#define wxSplitterWindow_GetSashPosition 3430
+#define wxSplitterWindow_GetSplitMode 3431
+#define wxSplitterWindow_GetWindow1 3432
+#define wxSplitterWindow_GetWindow2 3433
+#define wxSplitterWindow_Initialize 3434
+#define wxSplitterWindow_IsSplit 3435
+#define wxSplitterWindow_ReplaceWindow 3436
+#define wxSplitterWindow_SetSashGravity 3437
+#define wxSplitterWindow_SetSashPosition 3438
+#define wxSplitterWindow_SetSashSize 3439
+#define wxSplitterWindow_SetMinimumPaneSize 3440
+#define wxSplitterWindow_SetSplitMode 3441
+#define wxSplitterWindow_SplitHorizontally 3442
+#define wxSplitterWindow_SplitVertically 3443
+#define wxSplitterWindow_Unsplit 3444
+#define wxSplitterWindow_UpdateSize 3445
+#define wxSplitterEvent_GetSashPosition 3446
+#define wxSplitterEvent_GetX 3447
+#define wxSplitterEvent_GetY 3448
+#define wxSplitterEvent_GetWindowBeingRemoved 3449
+#define wxSplitterEvent_SetSashPosition 3450
+#define wxHtmlWindow_new_0 3451
+#define wxHtmlWindow_new_2 3452
+#define wxHtmlWindow_AppendToPage 3453
+#define wxHtmlWindow_GetOpenedAnchor 3454
+#define wxHtmlWindow_GetOpenedPage 3455
+#define wxHtmlWindow_GetOpenedPageTitle 3456
+#define wxHtmlWindow_GetRelatedFrame 3457
+#define wxHtmlWindow_HistoryBack 3458
+#define wxHtmlWindow_HistoryCanBack 3459
+#define wxHtmlWindow_HistoryCanForward 3460
+#define wxHtmlWindow_HistoryClear 3461
+#define wxHtmlWindow_HistoryForward 3462
+#define wxHtmlWindow_LoadFile 3463
+#define wxHtmlWindow_LoadPage 3464
+#define wxHtmlWindow_SelectAll 3465
+#define wxHtmlWindow_SelectionToText 3466
+#define wxHtmlWindow_SelectLine 3467
+#define wxHtmlWindow_SelectWord 3468
+#define wxHtmlWindow_SetBorders 3469
+#define wxHtmlWindow_SetFonts 3470
+#define wxHtmlWindow_SetPage 3471
+#define wxHtmlWindow_SetRelatedFrame 3472
+#define wxHtmlWindow_SetRelatedStatusBar 3473
+#define wxHtmlWindow_ToText 3474
+#define wxHtmlWindow_destroy 3475
+#define wxHtmlLinkEvent_GetLinkInfo 3476
+#define wxAuiNotebookEvent_SetSelection 3477
+#define wxAuiNotebookEvent_GetSelection 3478
+#define wxAuiNotebookEvent_SetOldSelection 3479
+#define wxAuiNotebookEvent_GetOldSelection 3480
+#define wxAuiNotebookEvent_SetDragSource 3481
+#define wxAuiNotebookEvent_GetDragSource 3482
+#define wxAuiManagerEvent_SetManager 3483
+#define wxAuiManagerEvent_GetManager 3484
+#define wxAuiManagerEvent_SetPane 3485
+#define wxAuiManagerEvent_GetPane 3486
+#define wxAuiManagerEvent_SetButton 3487
+#define wxAuiManagerEvent_GetButton 3488
+#define wxAuiManagerEvent_SetDC 3489
+#define wxAuiManagerEvent_GetDC 3490
+#define wxAuiManagerEvent_Veto 3491
+#define wxAuiManagerEvent_GetVeto 3492
+#define wxAuiManagerEvent_SetCanVeto 3493
+#define wxAuiManagerEvent_CanVeto 3494
+#define wxLogNull_new 3495
+#define wxLogNull_destroy 3496
diff --git a/lib/wx/configure.in b/lib/wx/configure.in
index 2b47f86baa..855c0c975e 100755
--- a/lib/wx/configure.in
+++ b/lib/wx/configure.in
@@ -1,20 +1,20 @@
dnl Process this file with autoconf to produce a configure script. -*-m4-*-
dnl %CopyrightBegin%
-dnl
-dnl Copyright Ericsson AB 2008-2009. All Rights Reserved.
-dnl
+dnl
+dnl Copyright Ericsson AB 2008-2010. All Rights Reserved.
+dnl
dnl The contents of this file are subject to the Erlang Public License,
dnl Version 1.1, (the "License"); you may not use this file except in
dnl compliance with the License. You should have received a copy of the
dnl Erlang Public License along with this software. If not, it can be
dnl retrieved online at http://www.erlang.org/.
-dnl
+dnl
dnl Software distributed under the License is distributed on an "AS IS"
dnl basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
dnl the License for the specific language governing rights and limitations
dnl under the License.
-dnl
+dnl
dnl %CopyrightEnd%
AC_INIT()
@@ -244,7 +244,10 @@ AC_SUBST(ERLANG_ROOT_DIR)
dnl
dnl Check for wxwidgets
dnl
-if test X"$MIXED_CYGWIN_VC" != X"yes" ; then
+if test "$cross_compiling" = "yes"; then
+ echo "Cross compilation of the wx driver is not supported yet, wx will NOT be usable" > ./CONF_INFO
+ WXERL_CAN_BUILD_DRIVER=false
+elif test X"$MIXED_CYGWIN_VC" != X"yes" ; then
m4_include(wxwin.m4)
AM_OPTIONS_WXCONFIG
@@ -306,7 +309,7 @@ define(wx_warn_text,[
if test X"$WX_BUILDING_INSIDE_ERLSRC" != X"true" ; then
AC_MSG_ERROR([wx_warn_text])
else
- echo "wxWidgets not found, wx will NOT be useable" > ./CONF_INFO
+ echo "wxWidgets not found, wx will NOT be usable" > ./CONF_INFO
WXERL_CAN_BUILD_DRIVER=false
AC_MSG_WARN([wx_warn_text])
fi
@@ -378,6 +381,8 @@ else
AC_SUBST(WX_RESCOMP)
fi
+if test "$WXERL_CAN_BUILD_DRIVER" != "false"; then
+
AC_SUBST(WX_HAVE_STATIC_LIBS)
AC_SUBST(RC_FILE_TYPE)
@@ -544,6 +549,8 @@ if test X"$CAN_LINK_WX" != X"yes" ; then
AC_MSG_WARN([Can not link wx program are all developer packages installed?])
fi
+fi dnl - if test "$WXERL_CAN_BUILD_DRIVER" != "false"
+
AC_SUBST(WXERL_CAN_BUILD_DRIVER)
#############################################################################
diff --git a/lib/wx/include/gl.hrl b/lib/wx/include/gl.hrl
index 7891ebf568..2fa0d72a59 100644
--- a/lib/wx/include/gl.hrl
+++ b/lib/wx/include/gl.hrl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% OPENGL DEFINITIONS
diff --git a/lib/wx/include/glu.hrl b/lib/wx/include/glu.hrl
index 27985aa8f7..a2ab55d054 100644
--- a/lib/wx/include/glu.hrl
+++ b/lib/wx/include/glu.hrl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% GLU DEFINITIONS
diff --git a/lib/wx/include/wx.hrl b/lib/wx/include/wx.hrl
index f5824196b0..6fef625b14 100644
--- a/lib/wx/include/wx.hrl
+++ b/lib/wx/include/wx.hrl
@@ -17,7 +17,7 @@
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
-%% All event messages are encapsulated in a wx record
+%% All event messages are encapsulated in a wx record
%% they contain the widget id and a specialized event record.
%% Each event record may be sent for one or more event types.
%% The mapping to wxWidgets is one record per class.
@@ -26,7 +26,7 @@
-record(wx, {id, %% Integer Identity of object.
obj, %% Object reference that was used in the connect call.
userData, %% User data specified in the connect call.
- event}).%% The event record
+ event}).%% The event record
%% Here comes the definitions of all event records.
%% they contain the event type and possible some extra information.
@@ -34,254 +34,254 @@
%% @type wxNavigationKey() = #wxNavigationKey{type=wxEventType(),flags=integer(),focus=wxWindow:wxWindow()}.
%% <dl><dt>EventType:</dt> <dd><em>navigation_key</em></dd></dl>
%% Callback event: {@link wxNavigationKeyEvent}
--record(wxNavigationKey,{type, flags,focus}).
+-record(wxNavigationKey,{type, flags,focus}).
%% @type wxSash() = #wxSash{type=wxEventType(),edge=WxSashEdgePosition,dragRect={X::integer(),Y::integer(),W::integer(),H::integer()},dragStatus=WxSashDragStatus}.
%% <dl><dt>EventType:</dt> <dd><em>sash_dragged</em></dd></dl>
%% Callback event: {@link wxSashEvent}
--record(wxSash,{type, edge,dragRect,dragStatus}).
+-record(wxSash,{type, edge,dragRect,dragStatus}).
%% @type wxList() = #wxList{type=wxEventType(),code=integer(),oldItemIndex=integer(),itemIndex=integer(),col=integer(),pointDrag={X::integer(),Y::integer()}}.
%% <dl><dt>EventType:</dt> <dd><em>command_list_begin_drag</em>, <em>command_list_begin_rdrag</em>, <em>command_list_begin_label_edit</em>, <em>command_list_end_label_edit</em>, <em>command_list_delete_item</em>, <em>command_list_delete_all_items</em>, <em>command_list_key_down</em>, <em>command_list_insert_item</em>, <em>command_list_col_click</em>, <em>command_list_col_right_click</em>, <em>command_list_col_begin_drag</em>, <em>command_list_col_dragging</em>, <em>command_list_col_end_drag</em>, <em>command_list_item_selected</em>, <em>command_list_item_deselected</em>, <em>command_list_item_right_click</em>, <em>command_list_item_middle_click</em>, <em>command_list_item_activated</em>, <em>command_list_item_focused</em>, <em>command_list_cache_hint</em></dd></dl>
%% Callback event: {@link wxListEvent}
--record(wxList,{type, code,oldItemIndex,itemIndex,col,pointDrag}).
+-record(wxList,{type, code,oldItemIndex,itemIndex,col,pointDrag}).
%% @type wxNotebook() = #wxNotebook{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>command_notebook_page_changed</em>, <em>command_notebook_page_changing</em></dd></dl>
%% Callback event: {@link wxNotebookEvent}
--record(wxNotebook, {type}).
+-record(wxNotebook, {type}).
%% @type wxDisplayChanged() = #wxDisplayChanged{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>display_changed</em></dd></dl>
%% Callback event: {@link wxDisplayChangedEvent}
--record(wxDisplayChanged, {type}).
+-record(wxDisplayChanged, {type}).
%% @type wxErase() = #wxErase{type=wxEventType(),dc=wxDC:wxDC()}.
%% <dl><dt>EventType:</dt> <dd><em>erase_background</em></dd></dl>
%% Callback event: {@link wxEraseEvent}
--record(wxErase,{type, dc}).
+-record(wxErase,{type, dc}).
%% @type wxKey() = #wxKey{type=wxEventType(),x=integer(),y=integer(),keyCode=integer(),controlDown=bool(),shiftDown=bool(),altDown=bool(),metaDown=bool(),scanCode=bool(),uniChar=integer(),rawCode=integer(),rawFlags=integer()}.
%% <dl><dt>EventType:</dt> <dd><em>char</em>, <em>char_hook</em>, <em>key_down</em>, <em>key_up</em></dd></dl>
%% Callback event: {@link wxKeyEvent}
--record(wxKey,{type, x,y,keyCode,controlDown,shiftDown,altDown,metaDown,scanCode,uniChar,rawCode,rawFlags}).
+-record(wxKey,{type, x,y,keyCode,controlDown,shiftDown,altDown,metaDown,scanCode,uniChar,rawCode,rawFlags}).
%% @type wxWindowDestroy() = #wxWindowDestroy{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>destroy</em></dd></dl>
%% Callback event: {@link wxWindowDestroyEvent}
--record(wxWindowDestroy, {type}).
+-record(wxWindowDestroy, {type}).
%% @type wxCalendar() = #wxCalendar{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>calendar_sel_changed</em>, <em>calendar_day_changed</em>, <em>calendar_month_changed</em>, <em>calendar_year_changed</em>, <em>calendar_doubleclicked</em>, <em>calendar_weekday_clicked</em></dd></dl>
%% Callback event: {@link wxCalendarEvent}
--record(wxCalendar, {type}).
+-record(wxCalendar, {type}).
%% @type wxSplitter() = #wxSplitter{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>command_splitter_sash_pos_changed</em>, <em>command_splitter_sash_pos_changing</em>, <em>command_splitter_doubleclicked</em>, <em>command_splitter_unsplit</em></dd></dl>
%% Callback event: {@link wxSplitterEvent}
--record(wxSplitter, {type}).
+-record(wxSplitter, {type}).
%% @type wxScroll() = #wxScroll{type=wxEventType(),commandInt=integer(),extraLong=integer()}.
%% <dl><dt>EventType:</dt> <dd><em>scroll_top</em>, <em>scroll_bottom</em>, <em>scroll_lineup</em>, <em>scroll_linedown</em>, <em>scroll_pageup</em>, <em>scroll_pagedown</em>, <em>scroll_thumbtrack</em>, <em>scroll_thumbrelease</em>, <em>scroll_changed</em></dd></dl>
%% Callback event: {@link wxScrollEvent}
--record(wxScroll,{type, commandInt,extraLong}).
+-record(wxScroll,{type, commandInt,extraLong}).
%% @type wxMenu() = #wxMenu{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>menu_open</em>, <em>menu_close</em>, <em>menu_highlight</em></dd></dl>
%% Callback event: {@link wxMenuEvent}
--record(wxMenu, {type}).
+-record(wxMenu, {type}).
%% @type wxContextMenu() = #wxContextMenu{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>context_menu</em></dd></dl>
%% Callback event: {@link wxContextMenuEvent}
--record(wxContextMenu, {type}).
+-record(wxContextMenu, {type}).
%% @type wxShow() = #wxShow{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>show</em></dd></dl>
%% Callback event: {@link wxShowEvent}
--record(wxShow, {type}).
+-record(wxShow, {type}).
%% @type wxSpin() = #wxSpin{type=wxEventType(),commandInt=integer()}.
%% <dl><dt>EventType:</dt> <dd><em>command_spinctrl_updated</em>, <em>spin_up</em>, <em>spin_down</em>, <em>spin</em></dd></dl>
%% Callback event: {@link wxSpinEvent}
--record(wxSpin,{type, commandInt}).
+-record(wxSpin,{type, commandInt}).
%% @type wxSetCursor() = #wxSetCursor{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>set_cursor</em></dd></dl>
%% Callback event: {@link wxSetCursorEvent}
--record(wxSetCursor, {type}).
+-record(wxSetCursor, {type}).
%% @type wxFontPicker() = #wxFontPicker{type=wxEventType(),font=wxFont:wxFont()}.
%% <dl><dt>EventType:</dt> <dd><em>command_fontpicker_changed</em></dd></dl>
%% Callback event: {@link wxFontPickerEvent}
--record(wxFontPicker,{type, font}).
+-record(wxFontPicker,{type, font}).
%% @type wxScrollWin() = #wxScrollWin{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>scrollwin_top</em>, <em>scrollwin_bottom</em>, <em>scrollwin_lineup</em>, <em>scrollwin_linedown</em>, <em>scrollwin_pageup</em>, <em>scrollwin_pagedown</em>, <em>scrollwin_thumbtrack</em>, <em>scrollwin_thumbrelease</em></dd></dl>
%% Callback event: {@link wxScrollWinEvent}
--record(wxScrollWin, {type}).
+-record(wxScrollWin, {type}).
%% @type wxPaint() = #wxPaint{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>paint</em>, <em>paint_icon</em></dd></dl>
%% Callback event: {@link wxPaintEvent}
--record(wxPaint, {type}).
+-record(wxPaint, {type}).
%% @type wxChildFocus() = #wxChildFocus{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>child_focus</em></dd></dl>
%% Callback event: {@link wxChildFocusEvent}
--record(wxChildFocus, {type}).
+-record(wxChildFocus, {type}).
%% @type wxMaximize() = #wxMaximize{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>maximize</em></dd></dl>
%% Callback event: {@link wxMaximizeEvent}
--record(wxMaximize, {type}).
+-record(wxMaximize, {type}).
%% @type wxFileDirPicker() = #wxFileDirPicker{type=wxEventType(),path=string()}.
%% <dl><dt>EventType:</dt> <dd><em>command_filepicker_changed</em>, <em>command_dirpicker_changed</em></dd></dl>
%% Callback event: {@link wxFileDirPickerEvent}
--record(wxFileDirPicker,{type, path}).
+-record(wxFileDirPicker,{type, path}).
%% @type wxFocus() = #wxFocus{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>set_focus</em>, <em>kill_focus</em></dd></dl>
%% Callback event: {@link wxFocusEvent}
--record(wxFocus, {type}).
+-record(wxFocus, {type}).
%% @type wxDate() = #wxDate{type=wxEventType(),date=wx:datetime()}.
%% <dl><dt>EventType:</dt> <dd><em>date_changed</em></dd></dl>
%% Callback event: {@link wxDateEvent}
--record(wxDate,{type, date}).
+-record(wxDate,{type, date}).
%% @type wxHtmlLink() = #wxHtmlLink{type=wxEventType(),linkInfo=wx:wxHtmlLinkInfo()}.
%% <dl><dt>EventType:</dt> <dd><em>command_html_link_clicked</em></dd></dl>
%% Callback event: {@link wxHtmlLinkEvent}
--record(wxHtmlLink,{type, linkInfo}).
+-record(wxHtmlLink,{type, linkInfo}).
%% @type wxHelp() = #wxHelp{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>help</em>, <em>detailed_help</em></dd></dl>
%% Callback event: {@link wxHelpEvent}
--record(wxHelp, {type}).
+-record(wxHelp, {type}).
%% @type wxStyledText() = #wxStyledText{type=wxEventType(),position=integer(),key=integer(),modifiers=integer(),modificationType=integer(),text=string(),length=integer(),linesAdded=integer(),line=integer(),foldLevelNow=integer(),foldLevelPrev=integer(),margin=integer(),message=integer(),wParam=integer(),lParam=integer(),listType=integer(),x=integer(),y=integer(),dragText=string(),dragAllowMove=bool(),dragResult=WxDragResult}.
%% <dl><dt>EventType:</dt> <dd><em>stc_change</em>, <em>stc_styleneeded</em>, <em>stc_charadded</em>, <em>stc_savepointreached</em>, <em>stc_savepointleft</em>, <em>stc_romodifyattempt</em>, <em>stc_key</em>, <em>stc_doubleclick</em>, <em>stc_updateui</em>, <em>stc_modified</em>, <em>stc_macrorecord</em>, <em>stc_marginclick</em>, <em>stc_needshown</em>, <em>stc_painted</em>, <em>stc_userlistselection</em>, <em>stc_uridropped</em>, <em>stc_dwellstart</em>, <em>stc_dwellend</em>, <em>stc_start_drag</em>, <em>stc_drag_over</em>, <em>stc_do_drop</em>, <em>stc_zoom</em>, <em>stc_hotspot_click</em>, <em>stc_hotspot_dclick</em>, <em>stc_calltip_click</em>, <em>stc_autocomp_selection</em></dd></dl>
%% Callback event: {@link wxStyledTextEvent}
--record(wxStyledText,{type, position,key,modifiers,modificationType,text,length,linesAdded,line,foldLevelNow,foldLevelPrev,margin,message,wParam,lParam,listType,x,y,dragText,dragAllowMove,dragResult}).
+-record(wxStyledText,{type, position,key,modifiers,modificationType,text,length,linesAdded,line,foldLevelNow,foldLevelPrev,margin,message,wParam,lParam,listType,x,y,dragText,dragAllowMove,dragResult}).
%% @type wxSysColourChanged() = #wxSysColourChanged{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>sys_colour_changed</em></dd></dl>
%% Callback event: {@link wxSysColourChangedEvent}
--record(wxSysColourChanged, {type}).
+-record(wxSysColourChanged, {type}).
%% @type wxGrid() = #wxGrid{type=wxEventType(),row=integer(),col=integer(),x=integer(),y=integer(),selecting=bool(),control=bool(),meta=bool(),shift=bool(),alt=bool()}.
%% <dl><dt>EventType:</dt> <dd><em>grid_cell_left_click</em>, <em>grid_cell_right_click</em>, <em>grid_cell_left_dclick</em>, <em>grid_cell_right_dclick</em>, <em>grid_label_left_click</em>, <em>grid_label_right_click</em>, <em>grid_label_left_dclick</em>, <em>grid_label_right_dclick</em>, <em>grid_row_size</em>, <em>grid_col_size</em>, <em>grid_range_select</em>, <em>grid_cell_change</em>, <em>grid_select_cell</em>, <em>grid_editor_shown</em>, <em>grid_editor_hidden</em>, <em>grid_editor_created</em>, <em>grid_cell_begin_drag</em></dd></dl>
%% Callback event: {@link wxGridEvent}
--record(wxGrid,{type, row,col,x,y,selecting,control,meta,shift,alt}).
+-record(wxGrid,{type, row,col,x,y,selecting,control,meta,shift,alt}).
%% @type wxPaletteChanged() = #wxPaletteChanged{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>palette_changed</em></dd></dl>
%% Callback event: {@link wxPaletteChangedEvent}
--record(wxPaletteChanged, {type}).
+-record(wxPaletteChanged, {type}).
%% @type wxUpdateUI() = #wxUpdateUI{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>update_ui</em></dd></dl>
%% Callback event: {@link wxUpdateUIEvent}
--record(wxUpdateUI, {type}).
+-record(wxUpdateUI, {type}).
%% @type wxSize() = #wxSize{type=wxEventType(),size={W::integer(),H::integer()},rect={X::integer(),Y::integer(),W::integer(),H::integer()}}.
%% <dl><dt>EventType:</dt> <dd><em>size</em></dd></dl>
%% Callback event: {@link wxSizeEvent}
--record(wxSize,{type, size,rect}).
+-record(wxSize,{type, size,rect}).
%% @type wxIconize() = #wxIconize{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>iconize</em></dd></dl>
%% Callback event: {@link wxIconizeEvent}
--record(wxIconize, {type}).
+-record(wxIconize, {type}).
%% @type wxAuiNotebook() = #wxAuiNotebook{type=wxEventType(),old_selection=integer(),selection=integer(),drag_source=wxAuiNotebook:wxAuiNotebook()}.
%% <dl><dt>EventType:</dt> <dd><em>command_auinotebook_page_close</em>, <em>command_auinotebook_page_changed</em>, <em>command_auinotebook_page_changing</em>, <em>command_auinotebook_button</em>, <em>command_auinotebook_begin_drag</em>, <em>command_auinotebook_end_drag</em>, <em>command_auinotebook_drag_motion</em>, <em>command_auinotebook_allow_dnd</em>, <em>command_auinotebook_tab_middle_down</em>, <em>command_auinotebook_tab_middle_up</em>, <em>command_auinotebook_tab_right_down</em>, <em>command_auinotebook_tab_right_up</em>, <em>command_auinotebook_page_closed</em>, <em>command_auinotebook_drag_done</em>, <em>command_auinotebook_bg_dclick</em></dd></dl>
%% Callback event: {@link wxAuiNotebookEvent}
--record(wxAuiNotebook,{type, old_selection,selection,drag_source}).
+-record(wxAuiNotebook,{type, old_selection,selection,drag_source}).
%% @type wxClose() = #wxClose{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>close_window</em>, <em>end_session</em>, <em>query_end_session</em></dd></dl>
%% Callback event: {@link wxCloseEvent}
--record(wxClose, {type}).
+-record(wxClose, {type}).
%% @type wxMouseCaptureChanged() = #wxMouseCaptureChanged{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>mouse_capture_changed</em></dd></dl>
%% Callback event: {@link wxMouseCaptureChangedEvent}
--record(wxMouseCaptureChanged, {type}).
+-record(wxMouseCaptureChanged, {type}).
%% @type wxMouse() = #wxMouse{type=wxEventType(),x=integer(),y=integer(),leftDown=bool(),middleDown=bool(),rightDown=bool(),controlDown=bool(),shiftDown=bool(),altDown=bool(),metaDown=bool(),wheelRotation=integer(),wheelDelta=integer(),linesPerAction=integer()}.
%% <dl><dt>EventType:</dt> <dd><em>left_down</em>, <em>left_up</em>, <em>middle_down</em>, <em>middle_up</em>, <em>right_down</em>, <em>right_up</em>, <em>motion</em>, <em>enter_window</em>, <em>leave_window</em>, <em>left_dclick</em>, <em>middle_dclick</em>, <em>right_dclick</em>, <em>mousewheel</em>, <em>nc_left_down</em>, <em>nc_left_up</em>, <em>nc_middle_down</em>, <em>nc_middle_up</em>, <em>nc_right_down</em>, <em>nc_right_up</em>, <em>nc_motion</em>, <em>nc_enter_window</em>, <em>nc_leave_window</em>, <em>nc_left_dclick</em>, <em>nc_middle_dclick</em>, <em>nc_right_dclick</em></dd></dl>
%% Callback event: {@link wxMouseEvent}
--record(wxMouse,{type, x,y,leftDown,middleDown,rightDown,controlDown,shiftDown,altDown,metaDown,wheelRotation,wheelDelta,linesPerAction}).
+-record(wxMouse,{type, x,y,leftDown,middleDown,rightDown,controlDown,shiftDown,altDown,metaDown,wheelRotation,wheelDelta,linesPerAction}).
%% @type wxWindowCreate() = #wxWindowCreate{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>create</em></dd></dl>
%% Callback event: {@link wxWindowCreateEvent}
--record(wxWindowCreate, {type}).
+-record(wxWindowCreate, {type}).
%% @type wxAuiManager() = #wxAuiManager{type=wxEventType(),manager=wxAuiManager:wxAuiManager(),pane=wxAuiPaneInfo:wxAuiPaneInfo(),button=integer(),veto_flag=bool(),canveto_flag=bool(),dc=wxDC:wxDC()}.
%% <dl><dt>EventType:</dt> <dd><em>aui_pane_button</em>, <em>aui_pane_close</em>, <em>aui_pane_maximize</em>, <em>aui_pane_restore</em>, <em>aui_render</em>, <em>aui_find_manager</em></dd></dl>
%% Callback event: {@link wxAuiManagerEvent}
--record(wxAuiManager,{type, manager,pane,button,veto_flag,canveto_flag,dc}).
+-record(wxAuiManager,{type, manager,pane,button,veto_flag,canveto_flag,dc}).
%% @type wxCommand() = #wxCommand{type=wxEventType(),cmdString=string(),commandInt=integer(),extraLong=integer()}.
%% <dl><dt>EventType:</dt> <dd><em>command_button_clicked</em>, <em>command_checkbox_clicked</em>, <em>command_choice_selected</em>, <em>command_listbox_selected</em>, <em>command_listbox_doubleclicked</em>, <em>command_text_updated</em>, <em>command_text_enter</em>, <em>command_menu_selected</em>, <em>command_slider_updated</em>, <em>command_radiobox_selected</em>, <em>command_radiobutton_selected</em>, <em>command_scrollbar_updated</em>, <em>command_vlbox_selected</em>, <em>command_combobox_selected</em>, <em>command_tool_rclicked</em>, <em>command_tool_enter</em>, <em>command_checklistbox_toggled</em>, <em>command_togglebutton_clicked</em>, <em>command_left_click</em>, <em>command_left_dclick</em>, <em>command_right_click</em>, <em>command_set_focus</em>, <em>command_kill_focus</em>, <em>command_enter</em></dd></dl>
%% Callback event: {@link wxCommandEvent}
--record(wxCommand,{type, cmdString,commandInt,extraLong}).
+-record(wxCommand,{type, cmdString,commandInt,extraLong}).
%% @type wxJoystick() = #wxJoystick{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>joy_button_down</em>, <em>joy_button_up</em>, <em>joy_move</em>, <em>joy_zmove</em></dd></dl>
%% Callback event: {@link wxJoystickEvent}
--record(wxJoystick, {type}).
+-record(wxJoystick, {type}).
%% @type wxQueryNewPalette() = #wxQueryNewPalette{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>query_new_palette</em></dd></dl>
%% Callback event: {@link wxQueryNewPaletteEvent}
--record(wxQueryNewPalette, {type}).
+-record(wxQueryNewPalette, {type}).
%% @type wxMove() = #wxMove{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>move</em></dd></dl>
%% Callback event: {@link wxMoveEvent}
--record(wxMove, {type}).
+-record(wxMove, {type}).
%% @type wxIdle() = #wxIdle{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>idle</em></dd></dl>
%% Callback event: {@link wxIdleEvent}
--record(wxIdle, {type}).
+-record(wxIdle, {type}).
%% @type wxNcPaint() = #wxNcPaint{type=wxEventType()}.
%% <dl><dt>EventType:</dt> <dd><em>nc_paint</em></dd></dl>
%% Callback event: {@link wxNcPaintEvent}
--record(wxNcPaint, {type}).
+-record(wxNcPaint, {type}).
%% @type wxColourPicker() = #wxColourPicker{type=wxEventType(),colour=wx:colour()}.
%% <dl><dt>EventType:</dt> <dd><em>command_colourpicker_changed</em></dd></dl>
%% Callback event: {@link wxColourPickerEvent}
--record(wxColourPicker,{type, colour}).
+-record(wxColourPicker,{type, colour}).
%% @type wxTree() = #wxTree{type=wxEventType(),item=integer(),itemOld=integer(),pointDrag={X::integer(),Y::integer()}}.
%% <dl><dt>EventType:</dt> <dd><em>command_tree_begin_drag</em>, <em>command_tree_begin_rdrag</em>, <em>command_tree_begin_label_edit</em>, <em>command_tree_end_label_edit</em>, <em>command_tree_delete_item</em>, <em>command_tree_get_info</em>, <em>command_tree_set_info</em>, <em>command_tree_item_expanded</em>, <em>command_tree_item_expanding</em>, <em>command_tree_item_collapsed</em>, <em>command_tree_item_collapsing</em>, <em>command_tree_sel_changed</em>, <em>command_tree_sel_changing</em>, <em>command_tree_key_down</em>, <em>command_tree_item_activated</em>, <em>command_tree_item_right_click</em>, <em>command_tree_item_middle_click</em>, <em>command_tree_end_drag</em>, <em>command_tree_state_image_click</em>, <em>command_tree_item_gettooltip</em>, <em>command_tree_item_menu</em></dd></dl>
%% Callback event: {@link wxTreeEvent}
--record(wxTree,{type, item,itemOld,pointDrag}).
+-record(wxTree,{type, item,itemOld,pointDrag}).
%% @type wxEventType() = aui_find_manager | aui_pane_button | aui_pane_close | aui_pane_maximize | aui_pane_restore | aui_render | calendar_day_changed | calendar_doubleclicked | calendar_month_changed | calendar_sel_changed | calendar_weekday_clicked | calendar_year_changed | char | char_hook | child_focus | close_window | command_auinotebook_allow_dnd | command_auinotebook_begin_drag | command_auinotebook_bg_dclick | command_auinotebook_button | command_auinotebook_drag_done | command_auinotebook_drag_motion | command_auinotebook_end_drag | command_auinotebook_page_changed | command_auinotebook_page_changing | command_auinotebook_page_close | command_auinotebook_page_closed | command_auinotebook_tab_middle_down | command_auinotebook_tab_middle_up | command_auinotebook_tab_right_down | command_auinotebook_tab_right_up | command_button_clicked | command_checkbox_clicked | command_checklistbox_toggled | command_choice_selected | command_colourpicker_changed | command_combobox_selected | command_dirpicker_changed | command_enter | command_filepicker_changed | command_fontpicker_changed | command_html_link_clicked | command_kill_focus | command_left_click | command_left_dclick | command_list_begin_drag | command_list_begin_label_edit | command_list_begin_rdrag | command_list_cache_hint | command_list_col_begin_drag | command_list_col_click | command_list_col_dragging | command_list_col_end_drag | command_list_col_right_click | command_list_delete_all_items | command_list_delete_item | command_list_end_label_edit | command_list_insert_item | command_list_item_activated | command_list_item_deselected | command_list_item_focused | command_list_item_middle_click | command_list_item_right_click | command_list_item_selected | command_list_key_down | command_listbox_doubleclicked | command_listbox_selected | command_menu_selected | command_notebook_page_changed | command_notebook_page_changing | command_radiobox_selected | command_radiobutton_selected | command_right_click | command_scrollbar_updated | command_set_focus | command_slider_updated | command_spinctrl_updated | command_splitter_doubleclicked | command_splitter_sash_pos_changed | command_splitter_sash_pos_changing | command_splitter_unsplit | command_text_enter | command_text_updated | command_togglebutton_clicked | command_tool_enter | command_tool_rclicked | command_tree_begin_drag | command_tree_begin_label_edit | command_tree_begin_rdrag | command_tree_delete_item | command_tree_end_drag | command_tree_end_label_edit | command_tree_get_info | command_tree_item_activated | command_tree_item_collapsed | command_tree_item_collapsing | command_tree_item_expanded | command_tree_item_expanding | command_tree_item_gettooltip | command_tree_item_menu | command_tree_item_middle_click | command_tree_item_right_click | command_tree_key_down | command_tree_sel_changed | command_tree_sel_changing | command_tree_set_info | command_tree_state_image_click | command_vlbox_selected | context_menu | create | date_changed | destroy | detailed_help | display_changed | end_session | enter_window | erase_background | grid_cell_begin_drag | grid_cell_change | grid_cell_left_click | grid_cell_left_dclick | grid_cell_right_click | grid_cell_right_dclick | grid_col_size | grid_editor_created | grid_editor_hidden | grid_editor_shown | grid_label_left_click | grid_label_left_dclick | grid_label_right_click | grid_label_right_dclick | grid_range_select | grid_row_size | grid_select_cell | help | iconize | idle | joy_button_down | joy_button_up | joy_move | joy_zmove | key_down | key_up | kill_focus | leave_window | left_dclick | left_down | left_up | maximize | menu_close | menu_highlight | menu_open | middle_dclick | middle_down | middle_up | motion | mouse_capture_changed | mousewheel | move | navigation_key | nc_enter_window | nc_leave_window | nc_left_dclick | nc_left_down | nc_left_up | nc_middle_dclick | nc_middle_down | nc_middle_up | nc_motion | nc_paint | nc_right_dclick | nc_right_down | nc_right_up | paint | paint_icon | palette_changed | query_end_session | query_new_palette | right_dclick | right_down | right_up | sash_dragged | scroll_bottom | scroll_changed | scroll_linedown | scroll_lineup | scroll_pagedown | scroll_pageup | scroll_thumbrelease | scroll_thumbtrack | scroll_top | scrollwin_bottom | scrollwin_linedown | scrollwin_lineup | scrollwin_pagedown | scrollwin_pageup | scrollwin_thumbrelease | scrollwin_thumbtrack | scrollwin_top | set_cursor | set_focus | show | size | spin | spin_down | spin_up | stc_autocomp_selection | stc_calltip_click | stc_change | stc_charadded | stc_do_drop | stc_doubleclick | stc_drag_over | stc_dwellend | stc_dwellstart | stc_hotspot_click | stc_hotspot_dclick | stc_key | stc_macrorecord | stc_marginclick | stc_modified | stc_needshown | stc_painted | stc_romodifyattempt | stc_savepointleft | stc_savepointreached | stc_start_drag | stc_styleneeded | stc_updateui | stc_uridropped | stc_userlistselection | stc_zoom | sys_colour_changed | update_ui.
-%% Hardcoded Records
--record(wxMouseState, {x, y, %% integer()
- leftDown, middleDown, rightDown, %% bool()
+%% Hardcoded Records
+-record(wxMouseState, {x, y, %% integer()
+ leftDown, middleDown, rightDown, %% bool()
controlDown, shiftDown, altDown, metaDown, cmdDown %% bool()
}).
--record(wxHtmlLinkInfo, {
- href, target %% string()
+-record(wxHtmlLinkInfo, {
+ href, target %% string()
}).
-%% Hardcoded Defines
+%% Hardcoded Defines
-define(wxDefaultSize, {-1,-1}).
-define(wxDefaultPosition, {-1,-1}).
-%% Global Variables
+%% Global Variables
-define(wxBLACK, wxe_util:get_const(wxBLACK)).
-define(wxBLACK_BRUSH, wxe_util:get_const(wxBLACK_BRUSH)).
-define(wxBLACK_DASHED_PEN, wxe_util:get_const(wxBLACK_DASHED_PEN)).
@@ -324,8 +324,8 @@
-define(wxWHITE_BRUSH, wxe_util:get_const(wxWHITE_BRUSH)).
-define(wxWHITE_PEN, wxe_util:get_const(wxWHITE_PEN)).
-%% Enum and defines
-% From define::From bookctrl.h
+%% Enum and defines
+% From define::From bookctrl.h
-define(wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGING, ?wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING).
-define(wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED, ?wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED).
-define(wxBK_ALIGN_MASK, (?wxBK_TOP bor ?wxBK_BOTTOM bor ?wxBK_LEFT bor ?wxBK_RIGHT)).
@@ -334,7 +334,7 @@
-define(wxBK_BOTTOM, 32).
-define(wxBK_TOP, 16).
-define(wxBK_DEFAULT, 0).
-% From define::From button.h
+% From define::From button.h
-define(wxBU_EXACTFIT, 1).
-define(wxBU_AUTODRAW, 4).
-define(wxBU_NOAUTODRAW, 0).
@@ -343,38 +343,38 @@
-define(wxBU_RIGHT, 256).
-define(wxBU_TOP, 128).
-define(wxBU_LEFT, 64).
-% From define::From checkbox.h
+% From define::From checkbox.h
-define(wxCHK_ALLOW_3RD_STATE_FOR_USER, 8192).
-define(wxCHK_3STATE, 4096).
-define(wxCHK_2STATE, 0).
-% From define::From choicdgg.h
+% From define::From choicdgg.h
-define(wxCHOICEDLG_STYLE, (?wxDEFAULT_DIALOG_STYLE bor ?wxRESIZE_BORDER bor ?wxOK bor ?wxCANCEL bor ?wxCENTRE)).
-define(wxCHOICE_WIDTH, 200).
-define(wxCHOICE_HEIGHT, 150).
-% From define::From choicebk.h
+% From define::From choicebk.h
-define(wxCHB_ALIGN_MASK, ?wxBK_ALIGN_MASK).
-define(wxCHB_RIGHT, ?wxBK_RIGHT).
-define(wxCHB_LEFT, ?wxBK_LEFT).
-define(wxCHB_BOTTOM, ?wxBK_BOTTOM).
-define(wxCHB_TOP, ?wxBK_TOP).
-define(wxCHB_DEFAULT, ?wxBK_DEFAULT).
-% From define::From clrpicker.h
+% From define::From clrpicker.h
-define(wxCLRP_DEFAULT_STYLE, 0).
-define(wxCLRP_USE_TEXTCTRL, ?wxPB_USE_TEXTCTRL).
-define(wxCLRP_SHOW_LABEL, 8).
-% From define::From colour.h
+% From define::From colour.h
-define(wxC2S_HTML_SYNTAX, 4).
-define(wxC2S_CSS_SYNTAX, 2).
-define(wxC2S_NAME, 1).
-% From define::From confbase.h
+% From define::From confbase.h
-define(wxCONFIG_CASE_SENSITIVE, 0).
-% From define::From datetime.h
+% From define::From datetime.h
-define(wxInvalidDateTime, ?wxDefaultDateTime).
-% From define::From dcbuffer.h
+% From define::From dcbuffer.h
-define(wxBUFFER_CLIENT_AREA, 2).
-define(wxBUFFER_VIRTUAL_AREA, 1).
-define(wxALWAYS_NATIVE_DOUBLE_BUFFER, 0).
-% From define::From defs.h
+% From define::From defs.h
-define(wxPRINT_QUALITY_DRAFT, -4).
-define(wxPRINT_QUALITY_LOW, -3).
-define(wxPRINT_QUALITY_MEDIUM, -2).
@@ -503,21 +503,21 @@
-define(wxBIG_ENDIAN, 4321).
-define(wxHAS_INT64, wxe_util:get_const(wxHAS_INT64)).
-define(wxNOT_FOUND, -1).
-% From define::From dialog.h
+% From define::From dialog.h
-define(wxDEFAULT_DIALOG_STYLE, (?wxCAPTION bor ?wxSYSTEM_MENU bor ?wxCLOSE_BOX)).
-define(wxDIALOG_NO_PARENT, 1).
-% From define::From dirctrlg.h
+% From define::From dirctrlg.h
-define(wxID_FILTERLISTCTRL, 7001).
-define(wxID_TREECTRL, 7000).
-% From define::From dirdlg.h
+% From define::From dirdlg.h
-define(wxDD_DEFAULT_STYLE, (?wxDEFAULT_DIALOG_STYLE bor ?wxRESIZE_BORDER)).
-define(wxDD_NEW_DIR_BUTTON, 0).
-define(wxDD_DIR_MUST_EXIST, 512).
-define(wxDD_CHANGE_DIR, 256).
-% From define::From dirdlgg.h
-% From define::From filedlg.h
+% From define::From dirdlgg.h
+% From define::From filedlg.h
-define(wxFD_DEFAULT_STYLE, ?wxFD_OPEN).
-% From define::From filepicker.h
+% From define::From filepicker.h
-define(wxDIRP_DEFAULT_STYLE, ?wxDIRP_DIR_MUST_EXIST).
-define(wxDIRP_USE_TEXTCTRL, ?wxPB_USE_TEXTCTRL).
-define(wxFLP_DEFAULT_STYLE, (?wxFLP_OPEN bor ?wxFLP_FILE_MUST_EXIST)).
@@ -529,30 +529,30 @@
-define(wxFLP_OVERWRITE_PROMPT, 4096).
-define(wxFLP_SAVE, 2048).
-define(wxFLP_OPEN, 1024).
-% From define::From fontpicker.h
+% From define::From fontpicker.h
-define(wxFNTP_MAXPOINT_SIZE, 100).
-define(wxFNTP_DEFAULT_STYLE, (?wxFNTP_FONTDESC_AS_LABEL bor ?wxFNTP_USEFONT_FOR_LABEL)).
-define(wxFNTP_USE_TEXTCTRL, ?wxPB_USE_TEXTCTRL).
-define(wxFNTP_USEFONT_FOR_LABEL, 16).
-define(wxFNTP_FONTDESC_AS_LABEL, 8).
-% From define::From frame.h
+% From define::From frame.h
-define(wxFRAME_SHAPED, 16).
-define(wxFRAME_FLOAT_ON_PARENT, 8).
-define(wxFRAME_TOOL_WINDOW, 4).
-define(wxFRAME_NO_TASKBAR, 2).
-% From define::From gauge.h
+% From define::From gauge.h
-define(wxGAUGE_EMULATE_INDETERMINATE_MODE, 1).
-define(wxGA_SMOOTH, 32).
-define(wxGA_VERTICAL, ?wxVERTICAL).
-define(wxGA_HORIZONTAL, ?wxHORIZONTAL).
-% From define::From gdicmn.h
+% From define::From gdicmn.h
-define(wxGetDisplayDepth, ?wxDisplayDepth).
-% From define::From generic_2laywin.h
+% From define::From generic_2laywin.h
-define(wxLAYOUT_QUERY, 256).
-define(wxLAYOUT_MRU_LENGTH, 16).
-define(wxLAYOUT_LENGTH_X, 0).
-define(wxLAYOUT_LENGTH_Y, 8).
-% From define::From generic_2sashwin.h
+% From define::From generic_2sashwin.h
-define(wxSW_3D, (?wxSW_3DSASH bor ?wxSW_3DBORDER)).
-define(wxSW_3DBORDER, 128).
-define(wxSW_3DSASH, 64).
@@ -561,27 +561,27 @@
-define(wxSASH_DRAG_LEFT_DOWN, 2).
-define(wxSASH_DRAG_DRAGGING, 1).
-define(wxSASH_DRAG_NONE, 0).
-% From define::From generic_2splash.h
+% From define::From generic_2splash.h
-define(wxSPLASH_NO_TIMEOUT, 0).
-define(wxSPLASH_TIMEOUT, 4).
-define(wxSPLASH_NO_CENTRE, 0).
-define(wxSPLASH_CENTRE_ON_SCREEN, 2).
-define(wxSPLASH_CENTRE_ON_PARENT, 1).
-% From define::From hash.h
+% From define::From hash.h
-define(wxHASH_SIZE_DEFAULT, 1000).
-% From define::From htmlwin.h
+% From define::From htmlwin.h
-define(wxHW_DEFAULT_STYLE, ?wxHW_SCROLLBAR_AUTO).
-define(wxHW_NO_SELECTION, 8).
-define(wxHW_SCROLLBAR_AUTO, 4).
-define(wxHW_SCROLLBAR_NEVER, 2).
-% From define::From imaglist.h
+% From define::From imaglist.h
-define(wxIMAGELIST_DRAW_FOCUSED, 8).
-define(wxIMAGELIST_DRAW_SELECTED, 4).
-define(wxIMAGELIST_DRAW_TRANSPARENT, 2).
-define(wxIMAGELIST_DRAW_NORMAL, 1).
-% From define::From layout.h
+% From define::From layout.h
-define(wxLAYOUT_DEFAULT_MARGIN, 0).
-% From define::From listbase.h
+% From define::From listbase.h
-define(wxLIST_HITTEST_ONITEM, (?wxLIST_HITTEST_ONITEMICON bor ?wxLIST_HITTEST_ONITEMLABEL bor ?wxLIST_HITTEST_ONITEMSTATEICON)).
-define(wxLIST_HITTEST_TORIGHT, 2048).
-define(wxLIST_HITTEST_TOLEFT, 1024).
@@ -629,20 +629,20 @@
-define(wxLC_ICON, 4).
-define(wxLC_HRULES, 2).
-define(wxLC_VRULES, 1).
-% From define::From listbook.h
+% From define::From listbook.h
-define(wxLB_ALIGN_MASK, ?wxBK_ALIGN_MASK).
-define(wxLB_RIGHT, ?wxBK_RIGHT).
-define(wxLB_LEFT, ?wxBK_LEFT).
-define(wxLB_BOTTOM, ?wxBK_BOTTOM).
-define(wxLB_TOP, ?wxBK_TOP).
-define(wxLB_DEFAULT, ?wxBK_DEFAULT).
-% From define::From log.h
+% From define::From log.h
-define(wxTRACE_OleCalls, ?wxEmptyString).
-define(wxTraceRefCount, 8).
-define(wxTraceResAlloc, 4).
-define(wxTraceMessages, 2).
-define(wxTraceMemAlloc, 1).
-% From define::From notebook.h
+% From define::From notebook.h
-define(wxNB_FLAT, 2048).
-define(wxNB_NOPAGETHEME, 1024).
-define(wxNB_MULTILINE, 512).
@@ -652,9 +652,9 @@
-define(wxNB_BOTTOM, ?wxBK_BOTTOM).
-define(wxNB_TOP, ?wxBK_TOP).
-define(wxNB_DEFAULT, ?wxBK_DEFAULT).
-% From define::From pickerbase.h
+% From define::From pickerbase.h
-define(wxPB_USE_TEXTCTRL, 2).
-% From define::From prntbase.h
+% From define::From prntbase.h
-define(wxID_PREVIEW_GOTO, 8).
-define(wxID_PREVIEW_LAST, 7).
-define(wxID_PREVIEW_FIRST, 6).
@@ -671,7 +671,7 @@
-define(wxPREVIEW_NEXT, 4).
-define(wxPREVIEW_PREVIOUS, 2).
-define(wxPREVIEW_PRINT, 1).
-% From define::From progdlg.h
+% From define::From progdlg.h
-define(wxPD_CAN_SKIP, 128).
-define(wxPD_REMAINING_TIME, 64).
-define(wxPD_SMOOTH, 32).
@@ -680,9 +680,9 @@
-define(wxPD_AUTO_HIDE, 4).
-define(wxPD_APP_MODAL, 2).
-define(wxPD_CAN_ABORT, 1).
-% From define::From scrolwin.h
+% From define::From scrolwin.h
-define(wxScrolledWindowStyle, (?wxHSCROLL bor ?wxVSCROLL)).
-% From define::From slider.h
+% From define::From slider.h
-define(wxSL_INVERSE, 4096).
-define(wxSL_SELRANGE, 2048).
-define(wxSL_BOTH, 1024).
@@ -695,7 +695,7 @@
-define(wxSL_TICKS, 16).
-define(wxSL_VERTICAL, ?wxVERTICAL).
-define(wxSL_HORIZONTAL, ?wxHORIZONTAL).
-% From define::From splitter.h
+% From define::From splitter.h
-define(wxSP_3D, (?wxSP_3DBORDER bor ?wxSP_3DSASH)).
-define(wxSP_BORDER, ?wxSP_3DBORDER).
-define(wxSP_NO_XP_THEME, 1024).
@@ -705,11 +705,11 @@
-define(wxSP_PERMIT_UNSPLIT, 64).
-define(wxSP_NOSASH, 16).
-define(wxSP_NOBORDER, 0).
-% From define::From statusbr.h
+% From define::From statusbr.h
-define(wxSB_RAISED, 2).
-define(wxSB_FLAT, 1).
-define(wxSB_NORMAL, 0).
-% From define::From stc.h
+% From define::From stc.h
-define(wxSTC_CMD_WORDRIGHTENDEXTEND, 2442).
-define(wxSTC_CMD_WORDRIGHTEND, 2441).
-define(wxSTC_CMD_WORDLEFTENDEXTEND, 2440).
@@ -2045,7 +2045,7 @@
-define(wxSTC_START, 2000).
-define(wxSTC_INVALID_POSITION, -1).
-define(wxSTC_USE_POPUP, 1).
-% From define::From textctrl.h
+% From define::From textctrl.h
-define(wxTEXT_ATTR_TABS, 1024).
-define(wxTEXT_ATTR_RIGHT_INDENT, 512).
-define(wxTEXT_ATTR_LEFT_INDENT, 256).
@@ -2080,11 +2080,11 @@
-define(wxTE_AUTO_SCROLL, 8).
-define(wxTE_NO_VSCROLL, 2).
-define(wxHAS_TEXT_WINDOW_STREAM, 0).
-% From define::From textdlgg.h
+% From define::From textdlgg.h
-define(wxTextEntryDialogStyle, (?wxOK bor ?wxCANCEL bor ?wxCENTRE bor ?wxWS_EX_VALIDATE_RECURSIVELY)).
-% From define::From toolbook.h
+% From define::From toolbook.h
-define(wxBK_BUTTONBAR, 256).
-% From define::From toplevel.h
+% From define::From toplevel.h
-define(wxTOPLEVEL_EX_DIALOG, 8).
-define(wxDEFAULT_FRAME_STYLE, (?wxSYSTEM_MENU bor ?wxRESIZE_BORDER bor ?wxMINIMIZE_BOX bor ?wxMAXIMIZE_BOX bor ?wxCLOSE_BOX bor ?wxCAPTION bor ?wxCLIP_CHILDREN)).
-define(wxRESIZE_BORDER, 64).
@@ -2098,7 +2098,7 @@
-define(wxMINIMIZE, ?wxICONIZE).
-define(wxICONIZE, 16384).
-define(wxSTAY_ON_TOP, 32768).
-% From define::From treebase.h
+% From define::From treebase.h
-define(wxTR_DEFAULT_STYLE, (?wxTR_HAS_BUTTONS bor ?wxTR_LINES_AT_ROOT)).
-define(wxTR_FULL_ROW_HIGHLIGHT, 8192).
-define(wxTR_HIDE_ROOT, 2048).
@@ -2113,7 +2113,7 @@
-define(wxTR_NO_LINES, 4).
-define(wxTR_HAS_BUTTONS, 1).
-define(wxTR_NO_BUTTONS, 0).
-% From define::From valtext.h
+% From define::From valtext.h
-define(wxFILTER_EXCLUDE_CHAR_LIST, 128).
-define(wxFILTER_INCLUDE_CHAR_LIST, 64).
-define(wxFILTER_EXCLUDE_LIST, 32).
@@ -2123,20 +2123,20 @@
-define(wxFILTER_ALPHA, 2).
-define(wxFILTER_ASCII, 1).
-define(wxFILTER_NONE, 0).
-% From define::From version.h
+% From define::From version.h
-define(wxBETA_NUMBER, wxe_util:get_const(wxBETA_NUMBER)).
-define(wxSUBRELEASE_NUMBER, wxe_util:get_const(wxSUBRELEASE_NUMBER)).
-define(wxRELEASE_NUMBER, wxe_util:get_const(wxRELEASE_NUMBER)).
-define(wxMINOR_VERSION, wxe_util:get_const(wxMINOR_VERSION)).
-define(wxMAJOR_VERSION, wxe_util:get_const(wxMAJOR_VERSION)).
-% From class wxAuiManager
+% From class wxAuiManager
-define(wxAuiManager_actionNone, 0).
-define(wxAuiManager_actionResize, 1).
-define(wxAuiManager_actionClickButton, 2).
-define(wxAuiManager_actionClickCaption, 3).
-define(wxAuiManager_actionDragToolbarPane, 4).
-define(wxAuiManager_actionDragFloatingPane, 5).
-% From wxAuiPaneInfo::wxAuiPaneState
+% From wxAuiPaneInfo::wxAuiPaneState
-define(wxAuiPaneInfo_optionFloating, 1).
-define(wxAuiPaneInfo_optionHidden, 2).
-define(wxAuiPaneInfo_optionLeftDockable, 4).
@@ -2164,15 +2164,15 @@
-define(wxAuiPaneInfo_buttonCustom3, 268435456).
-define(wxAuiPaneInfo_savedHiddenState, 1073741824).
-define(wxAuiPaneInfo_actionPane, 2147483648).
-% From wxBitmap::Representation
+% From wxBitmap::Representation
-define(wxBitmap_Pixmap, 0).
-define(wxBitmap_Pixbuf, 1).
-% From class wxChoicebook
+% From class wxChoicebook
-define(wxChoicebook_SetSelection_SendEvent, 1).
-% From wxDateTime::Calendar
+% From wxDateTime::Calendar
-define(wxDateTime_Gregorian, 0).
-define(wxDateTime_Julian, 1).
-% From wxDateTime::Country
+% From wxDateTime::Country
-define(wxDateTime_Country_Unknown, 0).
-define(wxDateTime_Country_Default, 1).
-define(wxDateTime_Country_WesternEurope_Start, 2).
@@ -2183,7 +2183,7 @@
-define(wxDateTime_Country_WesternEurope_End, ?UK).
-define(wxDateTime_Russia, (?UK+1)).
-define(wxDateTime_USA, (?UK+2)).
-% From wxDateTime::GregorianAdoption
+% From wxDateTime::GregorianAdoption
-define(wxDateTime_Gr_Unknown, 0).
-define(wxDateTime_Gr_Standard, 1).
-define(wxDateTime_Gr_Alaska, 2).
@@ -2248,7 +2248,7 @@
-define(wxDateTime_Gr_USA, ?Gr_GreatBritain).
-define(wxDateTime_Gr_Wales, ?Gr_GreatBritain).
-define(wxDateTime_Gr_Yugoslavia, (?Gr_GreatBritain+1)).
-% From wxDateTime::Month
+% From wxDateTime::Month
-define(wxDateTime_Jan, 0).
-define(wxDateTime_Feb, 1).
-define(wxDateTime_Mar, 2).
@@ -2262,10 +2262,10 @@
-define(wxDateTime_Nov, 10).
-define(wxDateTime_Dec, 11).
-define(wxDateTime_Inv_Month, 12).
-% From wxDateTime::NameFlags
+% From wxDateTime::NameFlags
-define(wxDateTime_Name_Full, 1).
-define(wxDateTime_Name_Abbr, 2).
-% From wxDateTime::TZ
+% From wxDateTime::TZ
-define(wxDateTime_Local, 0).
-define(wxDateTime_GMT_12, 1).
-define(wxDateTime_GMT_11, 2).
@@ -2321,7 +2321,7 @@
-define(wxDateTime_NZST, ?GMT12).
-define(wxDateTime_NZDT, ?GMT13).
-define(wxDateTime_UTC, ?GMT0).
-% From wxDateTime::WeekDay
+% From wxDateTime::WeekDay
-define(wxDateTime_Sun, 0).
-define(wxDateTime_Mon, 1).
-define(wxDateTime_Tue, 2).
@@ -2330,93 +2330,93 @@
-define(wxDateTime_Fri, 5).
-define(wxDateTime_Sat, 6).
-define(wxDateTime_Inv_WeekDay, 7).
-% From wxDateTime::WeekFlags
+% From wxDateTime::WeekFlags
-define(wxDateTime_Default_First, 0).
-define(wxDateTime_Monday_First, 1).
-define(wxDateTime_Sunday_First, 2).
-% From wxDateTime::Year
+% From wxDateTime::Year
-define(wxDateTime_Inv_Year, ?SHRT_MIN).
-% From class wxDialog
+% From class wxDialog
-define(wxDialog_ButtonSizerFlags, (?wxOK bor ?wxCANCEL bor ?wxYES bor ?wxNO bor ?wxHELP bor ?wxNO_DEFAULT)).
-% From class wxGrid
+% From class wxGrid
-define(wxGrid_wxGRID_CELLCTRL, 2000).
-define(wxGrid_wxGRID_TOPCTRL, 2001).
-% From class wxGrid
+% From class wxGrid
-define(wxGrid_wxGRID_TEXTCTRL, 2100).
-define(wxGrid_wxGRID_CHECKBOX, 2101).
-define(wxGrid_wxGRID_CHOICE, 2102).
-define(wxGrid_wxGRID_COMBOBOX, 2103).
-% From wxGrid::CursorMode
+% From wxGrid::CursorMode
-define(wxGrid_WXGRID_CURSOR_SELECT_CELL, 0).
-define(wxGrid_WXGRID_CURSOR_RESIZE_ROW, 1).
-define(wxGrid_WXGRID_CURSOR_RESIZE_COL, 2).
-define(wxGrid_WXGRID_CURSOR_SELECT_ROW, 3).
-define(wxGrid_WXGRID_CURSOR_SELECT_COL, 4).
-define(wxGrid_WXGRID_CURSOR_MOVE_COL, 5).
-% From wxGrid::wxGridSelectionModes
+% From wxGrid::wxGridSelectionModes
-define(wxGrid_wxGridSelectCells, 0).
-define(wxGrid_wxGridSelectRows, 1).
-define(wxGrid_wxGridSelectColumns, 2).
-% From wxGridCellAttr::wxAttrKind
+% From wxGridCellAttr::wxAttrKind
-define(wxGridCellAttr_Any, 0).
-define(wxGridCellAttr_Default, 1).
-define(wxGridCellAttr_Cell, 2).
-define(wxGridCellAttr_Row, 3).
-define(wxGridCellAttr_Col, 4).
-define(wxGridCellAttr_Merged, 5).
-% From wxGridCellAttr::wxAttrOverflowMode
+% From wxGridCellAttr::wxAttrOverflowMode
-define(wxGridCellAttr_UnsetOverflow, -1).
-define(wxGridCellAttr_Overflow, 0).
-define(wxGridCellAttr_SingleCell, 1).
-% From wxGridCellAttr::wxAttrReadMode
+% From wxGridCellAttr::wxAttrReadMode
-define(wxGridCellAttr_Unset, -1).
-define(wxGridCellAttr_ReadWrite, 0).
-define(wxGridCellAttr_ReadOnly, 1).
-% From wxHelpEvent::Origin
+% From wxHelpEvent::Origin
-define(wxHelpEvent_Origin_Unknown, 0).
-define(wxHelpEvent_Origin_Keyboard, 1).
-define(wxHelpEvent_Origin_HelpButton, 2).
-% From wxHtmlEasyPrinting::FontMode
+% From wxHtmlEasyPrinting::FontMode
-define(wxHtmlEasyPrinting_FontMode_Explicit, 0).
-define(wxHtmlEasyPrinting_FontMode_Standard, 1).
-% From wxHtmlWindow::ClipboardType
+% From wxHtmlWindow::ClipboardType
-define(wxHtmlWindow_Primary, 0).
-define(wxHtmlWindow_Secondary, 1).
-% From class wxListbook
+% From class wxListbook
-define(wxListbook_SetSelection_SendEvent, 1).
-% From class wxNavigationKeyEvent
+% From class wxNavigationKeyEvent
-define(wxNavigationKeyEvent_IsBackward, 0).
-define(wxNavigationKeyEvent_IsForward, 1).
-define(wxNavigationKeyEvent_WinChange, 2).
-define(wxNavigationKeyEvent_FromTab, 4).
-% From class wxNotebook
+% From class wxNotebook
-define(wxNotebook_SetSelection_SendEvent, 1).
-% From class wxProgressDialog
+% From class wxProgressDialog
-define(wxProgressDialog_Uncancelable, -1).
-define(wxProgressDialog_Canceled, 0).
-define(wxProgressDialog_Continue, 1).
-define(wxProgressDialog_Finished, 2).
-% From class wxSizerItem
+% From class wxSizerItem
-define(wxSizerItem_Item_None, 0).
-define(wxSizerItem_Item_Window, 1).
-define(wxSizerItem_Item_Sizer, 2).
-define(wxSizerItem_Item_Spacer, 3).
-define(wxSizerItem_Item_Max, 4).
-% From class wxTextCtrl
+% From class wxTextCtrl
-define(wxTextCtrl_SetValue_SendEvent, 1).
-define(wxTextCtrl_SetValue_SelectionOnly, 2).
-% From class wxToolbook
+% From class wxToolbook
-define(wxToolbook_SetSelection_SendEvent, 1).
-% From class wxTreebook
+% From class wxTreebook
-define(wxTreebook_SetSelection_SendEvent, 1).
-% From wxWindow::MoveKind
+% From wxWindow::MoveKind
-define(wxWindow_MoveBefore, 0).
-define(wxWindow_MoveAfter, 1).
-% From wxWindowGTK::ScrollDir
+% From wxWindowGTK::ScrollDir
-define(wxWindowGTK_ScrollDir_Horz, 0).
-define(wxWindowGTK_ScrollDir_Vert, 1).
-define(wxWindowGTK_ScrollDir_Max, 2).
-% From wxWindowGTK::ScrollUnit
+% From wxWindowGTK::ScrollUnit
-define(wxWindowGTK_ScrollUnit_Line, 0).
-define(wxWindowGTK_ScrollUnit_Page, 1).
-define(wxWindowGTK_ScrollUnit_Max, 2).
@@ -2739,10 +2739,10 @@
-define(wxMM_ANISOTROPIC, 8).
-define(wxMM_POINTS, 9).
-define(wxMM_METRIC, 10).
-% Type Propagation_state
+% Type Propagation_state
-define(wxEVENT_PROPAGATE_NONE, 0).
-define(wxEVENT_PROPAGATE_MAX, ?INT_MAX).
-% Type form_ops_t
+% Type form_ops_t
-define(wxCLEAR, 0).
-define(wxROP_BLACK, ?wxCLEAR).
-define(wxBLIT_BLACKNESS, ?wxCLEAR).
@@ -2791,7 +2791,7 @@
-define(wxSET, (?wxOR+1)).
-define(wxROP_WHITE, ?wxSET).
-define(wxBLIT_WHITENESS, ?wxSET).
-% Type wxAlignment
+% Type wxAlignment
-define(wxALIGN_NOT, 0).
-define(wxALIGN_CENTER_HORIZONTAL, 256).
-define(wxALIGN_CENTRE_HORIZONTAL, ?wxALIGN_CENTER_HORIZONTAL).
@@ -2804,7 +2804,7 @@
-define(wxALIGN_CENTER, (?wxALIGN_CENTER_HORIZONTAL bor ?wxALIGN_CENTER_VERTICAL)).
-define(wxALIGN_CENTRE, ?wxALIGN_CENTER).
-define(wxALIGN_MASK, 3840).
-% Type wxAuiButtonId
+% Type wxAuiButtonId
-define(wxAUI_BUTTON_CLOSE, 101).
-define(wxAUI_BUTTON_MAXIMIZE_RESTORE, 102).
-define(wxAUI_BUTTON_MINIMIZE, 103).
@@ -2818,7 +2818,7 @@
-define(wxAUI_BUTTON_CUSTOM1, 201).
-define(wxAUI_BUTTON_CUSTOM2, 202).
-define(wxAUI_BUTTON_CUSTOM3, 203).
-% Type wxAuiManagerDock
+% Type wxAuiManagerDock
-define(wxAUI_DOCK_NONE, 0).
-define(wxAUI_DOCK_TOP, 1).
-define(wxAUI_DOCK_RIGHT, 2).
@@ -2826,7 +2826,7 @@
-define(wxAUI_DOCK_LEFT, 4).
-define(wxAUI_DOCK_CENTER, 5).
-define(wxAUI_DOCK_CENTRE, ?wxAUI_DOCK_CENTER).
-% Type wxAuiManagerOption
+% Type wxAuiManagerOption
-define(wxAUI_MGR_ALLOW_FLOATING, 1).
-define(wxAUI_MGR_ALLOW_ACTIVE_PANE, 2).
-define(wxAUI_MGR_TRANSPARENT_DRAG, 4).
@@ -2837,7 +2837,7 @@
-define(wxAUI_MGR_NO_VENETIAN_BLINDS_FADE, 128).
-define(wxAUI_MGR_LIVE_RESIZE, 256).
-define(wxAUI_MGR_DEFAULT, (?wxAUI_MGR_ALLOW_FLOATING bor ?wxAUI_MGR_TRANSPARENT_HINT bor ?wxAUI_MGR_HINT_FADE bor ?wxAUI_MGR_NO_VENETIAN_BLINDS_FADE)).
-% Type wxAuiNotebookOption
+% Type wxAuiNotebookOption
-define(wxAUI_NB_TOP, 1).
-define(wxAUI_NB_LEFT, 2).
-define(wxAUI_NB_RIGHT, 4).
@@ -2853,18 +2853,18 @@
-define(wxAUI_NB_CLOSE_ON_ALL_TABS, 4096).
-define(wxAUI_NB_MIDDLE_CLICK_CLOSE, 8192).
-define(wxAUI_NB_DEFAULT_STYLE, (?wxAUI_NB_TOP bor ?wxAUI_NB_TAB_SPLIT bor ?wxAUI_NB_TAB_MOVE bor ?wxAUI_NB_SCROLL_BUTTONS bor ?wxAUI_NB_CLOSE_ON_ACTIVE_TAB bor ?wxAUI_NB_MIDDLE_CLICK_CLOSE)).
-% Type wxAuiPaneButtonState
+% Type wxAuiPaneButtonState
-define(wxAUI_BUTTON_STATE_NORMAL, 0).
-define(wxAUI_BUTTON_STATE_HOVER, 2).
-define(wxAUI_BUTTON_STATE_PRESSED, 4).
-define(wxAUI_BUTTON_STATE_DISABLED, 8).
-define(wxAUI_BUTTON_STATE_HIDDEN, 16).
-define(wxAUI_BUTTON_STATE_CHECKED, 32).
-% Type wxAuiPaneDockArtGradients
+% Type wxAuiPaneDockArtGradients
-define(wxAUI_GRADIENT_NONE, 0).
-define(wxAUI_GRADIENT_VERTICAL, 1).
-define(wxAUI_GRADIENT_HORIZONTAL, 2).
-% Type wxAuiPaneDockArtSetting
+% Type wxAuiPaneDockArtSetting
-define(wxAUI_DOCKART_SASH_SIZE, 0).
-define(wxAUI_DOCKART_CAPTION_SIZE, 1).
-define(wxAUI_DOCKART_GRIPPER_SIZE, 2).
@@ -2882,15 +2882,15 @@
-define(wxAUI_DOCKART_GRIPPER_COLOUR, 14).
-define(wxAUI_DOCKART_CAPTION_FONT, 15).
-define(wxAUI_DOCKART_GRADIENT_TYPE, 16).
-% Type wxAuiPaneInsertLevel
+% Type wxAuiPaneInsertLevel
-define(wxAUI_INSERT_PANE, 0).
-define(wxAUI_INSERT_ROW, 1).
-define(wxAUI_INSERT_DOCK, 2).
-% Type wxBackgroundStyle
+% Type wxBackgroundStyle
-define(wxBG_STYLE_SYSTEM, 0).
-define(wxBG_STYLE_COLOUR, 1).
-define(wxBG_STYLE_CUSTOM, 2).
-% Type wxBitmapType
+% Type wxBitmapType
-define(wxBITMAP_TYPE_INVALID, 0).
-define(wxBITMAP_TYPE_BMP, 1).
-define(wxBITMAP_TYPE_BMP_RESOURCE, 2).
@@ -2925,7 +2925,7 @@
-define(wxBITMAP_TYPE_MACCURSOR, (?wxBITMAP_TYPE_BMP_RESOURCE+28)).
-define(wxBITMAP_TYPE_MACCURSOR_RESOURCE, (?wxBITMAP_TYPE_BMP_RESOURCE+29)).
-define(wxBITMAP_TYPE_ANY, 50).
-% Type wxBorder
+% Type wxBorder
-define(wxBORDER_DEFAULT, 0).
-define(wxBORDER_NONE, 2097152).
-define(wxBORDER_STATIC, 16777216).
@@ -2935,26 +2935,26 @@
-define(wxBORDER_DOUBLE, 268435456).
-define(wxBORDER_THEME, 268435456).
-define(wxBORDER_MASK, 522190848).
-% Type wxCalendarDateBorder
+% Type wxCalendarDateBorder
-define(wxCAL_BORDER_NONE, 0).
-define(wxCAL_BORDER_SQUARE, 1).
-define(wxCAL_BORDER_ROUND, 2).
-% Type wxCalendarHitTestResult
+% Type wxCalendarHitTestResult
-define(wxCAL_HITTEST_NOWHERE, 0).
-define(wxCAL_HITTEST_HEADER, 1).
-define(wxCAL_HITTEST_DAY, 2).
-define(wxCAL_HITTEST_INCMONTH, 3).
-define(wxCAL_HITTEST_DECMONTH, 4).
-define(wxCAL_HITTEST_SURROUNDING_WEEK, 5).
-% Type wxCheckBoxState
+% Type wxCheckBoxState
-define(wxCHK_UNCHECKED, 0).
-define(wxCHK_CHECKED, 1).
-define(wxCHK_UNDETERMINED, 2).
-% Type wxClientDataType
+% Type wxClientDataType
-define(wxClientData_None, 0).
-define(wxClientData_Object, 1).
-define(wxClientData_Void, 2).
-% Type wxDataFormatId
+% Type wxDataFormatId
-define(wxDF_INVALID, 0).
-define(wxDF_TEXT, 1).
-define(wxDF_BITMAP, 2).
@@ -2975,7 +2975,7 @@
-define(wxDF_PRIVATE, 20).
-define(wxDF_HTML, 30).
-define(wxDF_MAX, 31).
-% Type wxDirection
+% Type wxDirection
-define(wxLEFT, 16).
-define(wxRIGHT, 32).
-define(wxUP, 64).
@@ -2987,18 +2987,18 @@
-define(wxWEST, ?wxLEFT).
-define(wxEAST, ?wxRIGHT).
-define(wxALL, (?wxUP bor ?wxDOWN bor ?wxRIGHT bor ?wxLEFT)).
-% Type wxDragResult
+% Type wxDragResult
-define(wxDragError, 0).
-define(wxDragNone, 1).
-define(wxDragCopy, 2).
-define(wxDragMove, 3).
-define(wxDragLink, 4).
-define(wxDragCancel, 5).
-% Type wxDuplexMode
+% Type wxDuplexMode
-define(wxDUPLEX_SIMPLEX, 0).
-define(wxDUPLEX_HORIZONTAL, 1).
-define(wxDUPLEX_VERTICAL, 2).
-% Type wxEdge
+% Type wxEdge
-define(wxLeft, 0).
-define(wxTop, 1).
-define(wxRight, 2).
@@ -3009,20 +3009,20 @@
-define(wxCenter, ?wxCentre).
-define(wxCentreX, (?wxCentre+1)).
-define(wxCentreY, (?wxCentre+2)).
-% Type wxFindReplaceDialogStyles
+% Type wxFindReplaceDialogStyles
-define(wxFR_REPLACEDIALOG, 1).
-define(wxFR_NOUPDOWN, 2).
-define(wxFR_NOMATCHCASE, 4).
-define(wxFR_NOWHOLEWORD, 8).
-% Type wxFindReplaceFlags
+% Type wxFindReplaceFlags
-define(wxFR_DOWN, 1).
-define(wxFR_WHOLEWORD, 2).
-define(wxFR_MATCHCASE, 4).
-% Type wxFlexSizerGrowMode
+% Type wxFlexSizerGrowMode
-define(wxFLEX_GROWMODE_NONE, 0).
-define(wxFLEX_GROWMODE_SPECIFIED, 1).
-define(wxFLEX_GROWMODE_ALL, 2).
-% Type wxFontEncoding
+% Type wxFontEncoding
-define(wxFONTENCODING_SYSTEM, -1).
-define(wxFONTENCODING_DEFAULT, 0).
-define(wxFONTENCODING_ISO8859_1, 1).
@@ -3120,7 +3120,7 @@
-define(wxFONTENCODING_GB2312, ?wxFONTENCODING_CP936).
-define(wxFONTENCODING_BIG5, ?wxFONTENCODING_CP950).
-define(wxFONTENCODING_SHIFT_JIS, ?wxFONTENCODING_CP932).
-% Type wxFontFamily
+% Type wxFontFamily
-define(wxFONTFAMILY_DEFAULT, ?wxDEFAULT).
-define(wxFONTFAMILY_DECORATIVE, ?wxDECORATIVE).
-define(wxFONTFAMILY_ROMAN, ?wxROMAN).
@@ -3130,20 +3130,20 @@
-define(wxFONTFAMILY_TELETYPE, ?wxTELETYPE).
-define(wxFONTFAMILY_MAX, (?wxTELETYPE+1)).
-define(wxFONTFAMILY_UNKNOWN, ?wxFONTFAMILY_MAX).
-% Type wxFontStyle
+% Type wxFontStyle
-define(wxFONTSTYLE_NORMAL, ?wxNORMAL).
-define(wxFONTSTYLE_ITALIC, ?wxITALIC).
-define(wxFONTSTYLE_SLANT, ?wxSLANT).
-define(wxFONTSTYLE_MAX, (?wxSLANT+1)).
-% Type wxFontWeight
+% Type wxFontWeight
-define(wxFONTWEIGHT_NORMAL, ?wxNORMAL).
-define(wxFONTWEIGHT_LIGHT, ?wxLIGHT).
-define(wxFONTWEIGHT_BOLD, ?wxBOLD).
-define(wxFONTWEIGHT_MAX, (?wxBOLD+1)).
-% Type wxGeometryCentre
+% Type wxGeometryCentre
-define(wxCENTRE, 1).
-define(wxCENTER, ?wxCENTRE).
-% Type wxHitTest
+% Type wxHitTest
-define(wxHT_NOWHERE, 0).
-define(wxHT_SCROLLBAR_FIRST, ?wxHT_NOWHERE).
-define(wxHT_SCROLLBAR_ARROW_LINE_1, (?wxHT_NOWHERE+1)).
@@ -3160,20 +3160,20 @@
-define(wxHT_WINDOW_HORZ_SCROLLBAR, (?wxHT_NOWHERE+12)).
-define(wxHT_WINDOW_CORNER, (?wxHT_NOWHERE+13)).
-define(wxHT_MAX, (?wxHT_NOWHERE+14)).
-% Type wxHtmlOpeningStatus
+% Type wxHtmlOpeningStatus
-define(wxHTML_OPEN, 0).
-define(wxHTML_BLOCK, 1).
-define(wxHTML_REDIRECT, 2).
-% Type wxIdleMode
+% Type wxIdleMode
-define(wxIDLE_PROCESS_ALL, 0).
-define(wxIDLE_PROCESS_SPECIFIED, 1).
-% Type wxItemKind
+% Type wxItemKind
-define(wxITEM_SEPARATOR, -1).
-define(wxITEM_NORMAL, 0).
-define(wxITEM_CHECK, 1).
-define(wxITEM_RADIO, 2).
-define(wxITEM_MAX, 3).
-% Type wxKeyCode
+% Type wxKeyCode
-define(WXK_BACK, 8).
-define(WXK_TAB, 9).
-define(WXK_RETURN, 13).
@@ -3297,7 +3297,7 @@
-define(WXK_SPECIAL18, 210).
-define(WXK_SPECIAL19, 211).
-define(WXK_SPECIAL20, 212).
-% Type wxKeyModifier
+% Type wxKeyModifier
-define(wxMOD_NONE, 0).
-define(wxMOD_ALT, 1).
-define(wxMOD_CONTROL, 2).
@@ -3307,46 +3307,46 @@
-define(wxMOD_WIN, ?wxMOD_META).
-define(wxMOD_CMD, wxe_util:get_const(wxMOD_CMD)).
-define(wxMOD_ALL, 65535).
-% Type wxKeyType
+% Type wxKeyType
-define(wxKEY_NONE, 0).
-define(wxKEY_INTEGER, 1).
-define(wxKEY_STRING, 2).
-% Type wxKillError
+% Type wxKillError
-define(wxKILL_OK, 0).
-define(wxKILL_BAD_SIGNAL, 1).
-define(wxKILL_ACCESS_DENIED, 2).
-define(wxKILL_NO_PROCESS, 3).
-define(wxKILL_ERROR, 4).
-% Type wxKillFlags
+% Type wxKillFlags
-define(wxKILL_NOCHILDREN, 0).
-define(wxKILL_CHILDREN, 1).
-% Type wxLayoutAlignment
+% Type wxLayoutAlignment
-define(wxLAYOUT_NONE, 0).
-define(wxLAYOUT_TOP, 1).
-define(wxLAYOUT_LEFT, 2).
-define(wxLAYOUT_RIGHT, 3).
-define(wxLAYOUT_BOTTOM, 4).
-% Type wxLayoutDirection
+% Type wxLayoutDirection
-define(wxLayout_Default, 0).
-define(wxLayout_LeftToRight, 1).
-define(wxLayout_RightToLeft, 2).
-% Type wxLayoutOrientation
+% Type wxLayoutOrientation
-define(wxLAYOUT_HORIZONTAL, 0).
-define(wxLAYOUT_VERTICAL, 1).
-% Type wxListColumnFormat
+% Type wxListColumnFormat
-define(wxLIST_FORMAT_LEFT, 0).
-define(wxLIST_FORMAT_RIGHT, 1).
-define(wxLIST_FORMAT_CENTRE, 2).
-define(wxLIST_FORMAT_CENTER, ?wxLIST_FORMAT_CENTRE).
-% Type wxNotificationOptions
+% Type wxNotificationOptions
-define(wxNOTIFY_NONE, 0).
-define(wxNOTIFY_ONCE, 1).
-define(wxNOTIFY_REPEAT, 2).
-% Type wxOrientation
+% Type wxOrientation
-define(wxHORIZONTAL, 4).
-define(wxVERTICAL, 8).
-define(wxBOTH, (?wxVERTICAL bor ?wxHORIZONTAL)).
-% Type wxPaperSize
+% Type wxPaperSize
-define(wxPAPER_NONE, 0).
-define(wxPAPER_LETTER, 1).
-define(wxPAPER_LEGAL, 2).
@@ -3464,7 +3464,7 @@
-define(wxPAPER_PENV_8_ROTATED, 114).
-define(wxPAPER_PENV_9_ROTATED, 115).
-define(wxPAPER_PENV_10_ROTATED, 116).
-% Type wxPrintBin
+% Type wxPrintBin
-define(wxPRINTBIN_DEFAULT, 0).
-define(wxPRINTBIN_ONLYONE, 1).
-define(wxPRINTBIN_LOWER, 2).
@@ -3480,27 +3480,27 @@
-define(wxPRINTBIN_CASSETTE, 12).
-define(wxPRINTBIN_FORMSOURCE, 13).
-define(wxPRINTBIN_USER, 14).
-% Type wxPrintMode
+% Type wxPrintMode
-define(wxPRINT_MODE_NONE, 0).
-define(wxPRINT_MODE_PREVIEW, 1).
-define(wxPRINT_MODE_FILE, 2).
-define(wxPRINT_MODE_PRINTER, 3).
-define(wxPRINT_MODE_STREAM, 4).
-% Type wxPrinterError
+% Type wxPrinterError
-define(wxPRINTER_NO_ERROR, 0).
-define(wxPRINTER_CANCELLED, 1).
-define(wxPRINTER_ERROR, 2).
-% Type wxRegionContain
+% Type wxRegionContain
-define(wxOutRegion, 0).
-define(wxPartRegion, 1).
-define(wxInRegion, 2).
-% Type wxRegionOp
+% Type wxRegionOp
-define(wxRGN_AND, 0).
-define(wxRGN_COPY, 1).
-define(wxRGN_DIFF, 2).
-define(wxRGN_OR, 3).
-define(wxRGN_XOR, 4).
-% Type wxRelationship
+% Type wxRelationship
-define(wxUnconstrained, 0).
-define(wxAsIs, 1).
-define(wxPercentOf, 2).
@@ -3510,19 +3510,19 @@
-define(wxRightOf, 6).
-define(wxSameAs, 7).
-define(wxAbsolute, 8).
-% Type wxSashDragStatus
+% Type wxSashDragStatus
-define(wxSASH_STATUS_OK, 0).
-define(wxSASH_STATUS_OUT_OF_RANGE, 1).
-% Type wxSashEdgePosition
+% Type wxSashEdgePosition
-define(wxSASH_TOP, 0).
-define(wxSASH_RIGHT, 1).
-define(wxSASH_BOTTOM, 2).
-define(wxSASH_LEFT, 3).
-define(wxSASH_NONE, 100).
-% Type wxShutdownFlags
+% Type wxShutdownFlags
-define(wxSHUTDOWN_POWEROFF, 0).
-define(wxSHUTDOWN_REBOOT, 1).
-% Type wxSignal
+% Type wxSignal
-define(wxSIGNONE, 0).
-define(wxSIGHUP, 1).
-define(wxSIGINT, 2).
@@ -3540,10 +3540,10 @@
-define(wxSIGPIPE, (?wxSIGABRT+7)).
-define(wxSIGALRM, (?wxSIGABRT+8)).
-define(wxSIGTERM, (?wxSIGABRT+9)).
-% Type wxSplitMode
+% Type wxSplitMode
-define(wxSPLIT_HORIZONTAL, 1).
-define(wxSPLIT_VERTICAL, 2).
-% Type wxStockCursor
+% Type wxStockCursor
-define(wxCURSOR_NONE, 0).
-define(wxCURSOR_ARROW, 1).
-define(wxCURSOR_RIGHT_ARROW, 2).
@@ -3574,7 +3574,7 @@
-define(wxCURSOR_DEFAULT, 27).
-define(wxCURSOR_ARROWWAIT, 28).
-define(wxCURSOR_MAX, 29).
-% Type wxStretch
+% Type wxStretch
-define(wxSTRETCH_NOT, 0).
-define(wxSHRINK, 4096).
-define(wxGROW, 8192).
@@ -3584,7 +3584,7 @@
-define(wxRESERVE_SPACE_EVEN_IF_HIDDEN, 2).
-define(wxTILE, 49152).
-define(wxADJUST_MINSIZE, 0).
-% Type wxSystemColour
+% Type wxSystemColour
-define(wxSYS_COLOUR_SCROLLBAR, 0).
-define(wxSYS_COLOUR_BACKGROUND, 1).
-define(wxSYS_COLOUR_DESKTOP, ?wxSYS_COLOUR_BACKGROUND).
@@ -3624,11 +3624,11 @@
-define(wxSYS_COLOUR_MENUBAR, (?wxSYS_COLOUR_BTNHIGHLIGHT+10)).
-define(wxSYS_COLOUR_LISTBOXTEXT, (?wxSYS_COLOUR_BTNHIGHLIGHT+11)).
-define(wxSYS_COLOUR_MAX, (?wxSYS_COLOUR_BTNHIGHLIGHT+12)).
-% Type wxSystemFeature
+% Type wxSystemFeature
-define(wxSYS_CAN_DRAW_FRAME_DECORATIONS, 1).
-define(wxSYS_CAN_ICONIZE_FRAME, 2).
-define(wxSYS_TABLET_PRESENT, 3).
-% Type wxSystemFont
+% Type wxSystemFont
-define(wxSYS_OEM_FIXED_FONT, 10).
-define(wxSYS_ANSI_FIXED_FONT, 11).
-define(wxSYS_ANSI_VAR_FONT, 12).
@@ -3638,7 +3638,7 @@
-define(wxSYS_SYSTEM_FIXED_FONT, 16).
-define(wxSYS_DEFAULT_GUI_FONT, 17).
-define(wxSYS_ICONTITLE_FONT, ?wxSYS_DEFAULT_GUI_FONT).
-% Type wxSystemMetric
+% Type wxSystemMetric
-define(wxSYS_MOUSE_BUTTONS, 1).
-define(wxSYS_BORDER_X, 2).
-define(wxSYS_BORDER_Y, 3).
@@ -3676,49 +3676,49 @@
-define(wxSYS_PENWINDOWS_PRESENT, 35).
-define(wxSYS_SHOW_SOUNDS, 36).
-define(wxSYS_SWAP_BUTTONS, 37).
-% Type wxSystemScreenType
+% Type wxSystemScreenType
-define(wxSYS_SCREEN_NONE, 0).
-define(wxSYS_SCREEN_TINY, 1).
-define(wxSYS_SCREEN_PDA, 2).
-define(wxSYS_SCREEN_SMALL, 3).
-define(wxSYS_SCREEN_DESKTOP, 4).
-% Type wxTextAttrAlignment
+% Type wxTextAttrAlignment
-define(wxTEXT_ALIGNMENT_DEFAULT, 0).
-define(wxTEXT_ALIGNMENT_LEFT, 1).
-define(wxTEXT_ALIGNMENT_CENTRE, 2).
-define(wxTEXT_ALIGNMENT_CENTER, ?wxTEXT_ALIGNMENT_CENTRE).
-define(wxTEXT_ALIGNMENT_RIGHT, (?wxTEXT_ALIGNMENT_CENTRE+1)).
-define(wxTEXT_ALIGNMENT_JUSTIFIED, (?wxTEXT_ALIGNMENT_CENTRE+2)).
-% Type wxTextCtrlHitTestResult
+% Type wxTextCtrlHitTestResult
-define(wxTE_HT_UNKNOWN, -2).
-define(wxTE_HT_BEFORE, -1).
-define(wxTE_HT_ON_TEXT, 0).
-define(wxTE_HT_BELOW, 1).
-define(wxTE_HT_BEYOND, 2).
-% Type wxToolBarToolStyle
+% Type wxToolBarToolStyle
-define(wxTOOL_STYLE_BUTTON, 1).
-define(wxTOOL_STYLE_SEPARATOR, 2).
-define(wxTOOL_STYLE_CONTROL, 3).
-% Type wxTreeItemIcon
+% Type wxTreeItemIcon
-define(wxTreeItemIcon_Normal, 0).
-define(wxTreeItemIcon_Selected, 1).
-define(wxTreeItemIcon_Expanded, 2).
-define(wxTreeItemIcon_SelectedExpanded, 3).
-define(wxTreeItemIcon_Max, 4).
-% Type wxUpdateUI
+% Type wxUpdateUI
-define(wxUPDATE_UI_NONE, 0).
-define(wxUPDATE_UI_RECURSE, 1).
-define(wxUPDATE_UI_FROMIDLE, 2).
-% Type wxUpdateUIMode
+% Type wxUpdateUIMode
-define(wxUPDATE_UI_PROCESS_ALL, 0).
-define(wxUPDATE_UI_PROCESS_SPECIFIED, 1).
-% Type wxWindowVariant
+% Type wxWindowVariant
-define(wxWINDOW_VARIANT_NORMAL, 0).
-define(wxWINDOW_VARIANT_SMALL, 1).
-define(wxWINDOW_VARIANT_MINI, 2).
-define(wxWINDOW_VARIANT_LARGE, 3).
-define(wxWINDOW_VARIANT_MAX, 4).
-% Type wxXmlResourceFlags
+% Type wxXmlResourceFlags
-define(wxXRC_USE_LOCALE, 1).
-define(wxXRC_NO_SUBCLASSING, 2).
-define(wxXRC_NO_RELOADING, 4).
diff --git a/lib/wx/src/gen/gl.erl b/lib/wx/src/gen/gl.erl
index 8220acad98..d789f1b72f 100644
--- a/lib/wx/src/gen/gl.erl
+++ b/lib/wx/src/gen/gl.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% OPENGL API
diff --git a/lib/wx/src/gen/gl_debug.hrl b/lib/wx/src/gen/gl_debug.hrl
index 8c25d94590..68225197cf 100644
--- a/lib/wx/src/gen/gl_debug.hrl
+++ b/lib/wx/src/gen/gl_debug.hrl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/glu.erl b/lib/wx/src/gen/glu.erl
index 9a06be4077..ae4bac4e06 100644
--- a/lib/wx/src/gen/glu.erl
+++ b/lib/wx/src/gen/glu.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% OPENGL UTILITY API
diff --git a/lib/wx/src/gen/wxAcceleratorEntry.erl b/lib/wx/src/gen/wxAcceleratorEntry.erl
index 4c6d35829c..d76299b300 100644
--- a/lib/wx/src/gen/wxAcceleratorEntry.erl
+++ b/lib/wx/src/gen/wxAcceleratorEntry.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -39,7 +39,7 @@ new() ->
%% @spec (X::term()|wxAcceleratorEntry()) -> wxAcceleratorEntry()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxacceleratorentry.html#wxacceleratorentrywxacceleratorentry">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new([Option]) -> wxAcceleratorEntry() </c>
%%<br /> Option = {flags, integer()} | {keyCode, integer()} | {cmd, integer()} | {item, wxMenuItem:wxMenuItem()}
@@ -103,7 +103,7 @@ set(#wx_ref{type=ThisT,ref=ThisRef},Flags,KeyCode,Cmd, Options)
%% @spec (This::wxAcceleratorEntry()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxAcceleratorEntry),
wxe_util:destroy(?wxAcceleratorEntry_destroy,Obj),
ok.
diff --git a/lib/wx/src/gen/wxAcceleratorTable.erl b/lib/wx/src/gen/wxAcceleratorTable.erl
index f4f7f55f70..5d070294e2 100644
--- a/lib/wx/src/gen/wxAcceleratorTable.erl
+++ b/lib/wx/src/gen/wxAcceleratorTable.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -56,7 +56,7 @@ ok(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxAcceleratorTable()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxAcceleratorTable),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxArtProvider.erl b/lib/wx/src/gen/wxArtProvider.erl
index 4708f0844b..7a45b0d79d 100644
--- a/lib/wx/src/gen/wxArtProvider.erl
+++ b/lib/wx/src/gen/wxArtProvider.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxAuiDockArt.erl b/lib/wx/src/gen/wxAuiDockArt.erl
index 9997e69dfd..f2be643dd9 100644
--- a/lib/wx/src/gen/wxAuiDockArt.erl
+++ b/lib/wx/src/gen/wxAuiDockArt.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxAuiManager.erl b/lib/wx/src/gen/wxAuiManager.erl
index 7f46a36991..ad0af6652d 100644
--- a/lib/wx/src/gen/wxAuiManager.erl
+++ b/lib/wx/src/gen/wxAuiManager.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxauimanager.html">wxAuiManager</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvtHandler}
%% </p>
%% @type wxAuiManager(). An object reference, The representation is internal
@@ -66,7 +66,7 @@ addPane(This,Window)
%% @spec (This::wxAuiManager(),Window::wxWindow:wxWindow(),X::term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxauimanager.html#wxauimanageraddpane">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% addPane(This::wxAuiManager(), Window::wxWindow:wxWindow(), [Option]) -> bool() </c>
%%<br /> Option = {direction, integer()} | {caption, string()}
@@ -153,7 +153,7 @@ getManager(#wx_ref{type=WindowT,ref=WindowRef}) ->
%% @spec (This::wxAuiManager(),X::string()|term()) -> wxAuiPaneInfo:wxAuiPaneInfo()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxauimanager.html#wxauimanagergetpane">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% getPane(This::wxAuiManager(), Name::string()) -> wxAuiPaneInfo:wxAuiPaneInfo() </c>
%% </p>
@@ -299,11 +299,11 @@ update(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxAuiManager()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxAuiManager),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxAuiManagerEvent.erl b/lib/wx/src/gen/wxAuiManagerEvent.erl
index c15eeb4ad6..b5e45f1860 100644
--- a/lib/wx/src/gen/wxAuiManagerEvent.erl
+++ b/lib/wx/src/gen/wxAuiManagerEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>aui_pane_button</em>, <em>aui_pane_close</em>, <em>aui_pane_maximize</em>, <em>aui_pane_restore</em>, <em>aui_render</em>, <em>aui_find_manager</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxAuiManager(). #wxAuiManager{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxAuiManagerEvent(). An object reference, The representation is internal
@@ -142,7 +142,7 @@ canVeto(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxAuiManagerEvent_CanVeto,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxAuiNotebook.erl b/lib/wx/src/gen/wxAuiNotebook.erl
index abd2cf618b..5d486aeaa2 100644
--- a/lib/wx/src/gen/wxAuiNotebook.erl
+++ b/lib/wx/src/gen/wxAuiNotebook.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxauinotebook.html">wxAuiNotebook</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -299,16 +299,16 @@ setUniformBitmapSize(#wx_ref{type=ThisT,ref=ThisRef},{SizeW,SizeH})
%% @spec (This::wxAuiNotebook()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxAuiNotebook),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -653,7 +653,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxAuiNotebookEvent.erl b/lib/wx/src/gen/wxAuiNotebookEvent.erl
index 763d7092f2..09a2abf214 100644
--- a/lib/wx/src/gen/wxAuiNotebookEvent.erl
+++ b/lib/wx/src/gen/wxAuiNotebookEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_auinotebook_page_close</em>, <em>command_auinotebook_page_changed</em>, <em>command_auinotebook_page_changing</em>, <em>command_auinotebook_button</em>, <em>command_auinotebook_begin_drag</em>, <em>command_auinotebook_end_drag</em>, <em>command_auinotebook_drag_motion</em>, <em>command_auinotebook_allow_dnd</em>, <em>command_auinotebook_tab_middle_down</em>, <em>command_auinotebook_tab_middle_up</em>, <em>command_auinotebook_tab_right_down</em>, <em>command_auinotebook_tab_right_up</em>, <em>command_auinotebook_page_closed</em>, <em>command_auinotebook_drag_done</em>, <em>command_auinotebook_bg_dclick</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxAuiNotebook(). #wxAuiNotebook{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxNotifyEvent}
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
@@ -93,14 +93,14 @@ getDragSource(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxAuiNotebookEvent_GetDragSource,
<<ThisRef:32/?UI>>).
- %% From wxNotifyEvent
+ %% From wxNotifyEvent
%% @hidden
veto(This) -> wxNotifyEvent:veto(This).
%% @hidden
isAllowed(This) -> wxNotifyEvent:isAllowed(This).
%% @hidden
allow(This) -> wxNotifyEvent:allow(This).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -117,7 +117,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxAuiPaneInfo.erl b/lib/wx/src/gen/wxAuiPaneInfo.erl
index 1683045a90..7b1401b069 100644
--- a/lib/wx/src/gen/wxAuiPaneInfo.erl
+++ b/lib/wx/src/gen/wxAuiPaneInfo.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -779,7 +779,7 @@ window(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=WT,ref=WRef}) ->
%% @spec (This::wxAuiPaneInfo()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxAuiPaneInfo),
wxe_util:destroy(?wxAuiPaneInfo_destruct,Obj),
ok.
diff --git a/lib/wx/src/gen/wxAuiTabArt.erl b/lib/wx/src/gen/wxAuiTabArt.erl
index 354ab611d0..725bac9664 100644
--- a/lib/wx/src/gen/wxAuiTabArt.erl
+++ b/lib/wx/src/gen/wxAuiTabArt.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxBitmap.erl b/lib/wx/src/gen/wxBitmap.erl
index 930d87198c..53c57e4393 100644
--- a/lib/wx/src/gen/wxBitmap.erl
+++ b/lib/wx/src/gen/wxBitmap.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -43,7 +43,7 @@ new() ->
%% @spec (X::string()|term()) -> wxBitmap()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbitmap.html#wxbitmapwxbitmap">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Filename::string()) -> new(Filename, []) </c></p>
%% <p><c>
@@ -59,7 +59,7 @@ new(Image)
%% @spec (X::integer()|string()|term(),X::integer()|term()) -> wxBitmap()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbitmap.html#wxbitmapwxbitmap">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Width::integer(), Height::integer()) -> new(Width,Height, []) </c></p>
%% <p><c>
@@ -95,7 +95,7 @@ new(#wx_ref{type=ImageT,ref=ImageRef}, Options)
%% @spec (X::binary()|integer(),X::integer(),X::integer()|term()) -> wxBitmap()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbitmap.html#wxbitmapwxbitmap">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Bits::binary(), Width::integer(), Height::integer()) -> new(Bits,Width,Height, []) </c></p>
%% <p><c>
@@ -293,7 +293,7 @@ setWidth(#wx_ref{type=ThisT,ref=ThisRef},Width)
%% @spec (This::wxBitmap()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxBitmap),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxBitmapButton.erl b/lib/wx/src/gen/wxBitmapButton.erl
index 78d43d4918..0c187bf1c1 100644
--- a/lib/wx/src/gen/wxBitmapButton.erl
+++ b/lib/wx/src/gen/wxBitmapButton.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbitmapbutton.html">wxBitmapButton</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxButton}
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
@@ -192,19 +192,19 @@ setBitmapSelected(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=SelT,ref=SelRef})
%% @spec (This::wxBitmapButton()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxBitmapButton),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxButton
+ %% From wxButton
%% @hidden
setLabel(This,Label) -> wxButton:setLabel(This,Label).
%% @hidden
setDefault(This) -> wxButton:setDefault(This).
- %% From wxControl
+ %% From wxControl
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -551,7 +551,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxBitmapDataObject.erl b/lib/wx/src/gen/wxBitmapDataObject.erl
index 7c7f6a20b0..b5207072e3 100644
--- a/lib/wx/src/gen/wxBitmapDataObject.erl
+++ b/lib/wx/src/gen/wxBitmapDataObject.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbitmapdataobject.html">wxBitmapDataObject</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDataObject}
%% </p>
%% @type wxBitmapDataObject(). An object reference, The representation is internal
@@ -43,7 +43,7 @@ new() ->
%% @spec (X::term()) -> wxBitmapDataObject()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbitmapdataobject.html#wxbitmapdataobjectwxbitmapdataobject">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new([Option]) -> wxBitmapDataObject() </c>
%%<br /> Option = {bitmap, wxBitmap:wxBitmap()}
@@ -80,8 +80,8 @@ setBitmap(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=BitmapT,ref=BitmapRef}) -
%% @spec (This::wxBitmapDataObject()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxBitmapDataObject),
wxe_util:destroy(?wxBitmapDataObject_destroy,Obj),
ok.
- %% From wxDataObject
+ %% From wxDataObject
diff --git a/lib/wx/src/gen/wxBoxSizer.erl b/lib/wx/src/gen/wxBoxSizer.erl
index 3599cd11b6..1d5b1cf2fa 100644
--- a/lib/wx/src/gen/wxBoxSizer.erl
+++ b/lib/wx/src/gen/wxBoxSizer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxboxsizer.html">wxBoxSizer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxSizer}
%% </p>
%% @type wxBoxSizer(). An object reference, The representation is internal
@@ -60,11 +60,11 @@ getOrientation(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxBoxSizer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxBoxSizer),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxSizer
+ %% From wxSizer
%% @hidden
show(This,Index, Options) -> wxSizer:show(This,Index, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxBrush.erl b/lib/wx/src/gen/wxBrush.erl
index 2a5f184ce6..e42edd62e3 100644
--- a/lib/wx/src/gen/wxBrush.erl
+++ b/lib/wx/src/gen/wxBrush.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -41,7 +41,7 @@ new() ->
%% @spec (X::term()) -> wxBrush()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbrush.html#wxbrushwxbrush">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Colour::wx:colour()) -> new(Colour, []) </c></p>
%% <p><c>
@@ -136,7 +136,7 @@ setStyle(#wx_ref{type=ThisT,ref=ThisRef},Style)
%% @spec (This::wxBrush()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxBrush),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxBufferedDC.erl b/lib/wx/src/gen/wxBufferedDC.erl
index b99822040d..6e341a8552 100644
--- a/lib/wx/src/gen/wxBufferedDC.erl
+++ b/lib/wx/src/gen/wxBufferedDC.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbuffereddc.html">wxBufferedDC</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxMemoryDC}
%% <br />{@link wxDC}
%% </p>
@@ -72,7 +72,7 @@ new(Dc)
%% @spec (Dc::wxDC:wxDC(),X::term()) -> wxBufferedDC()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbuffereddc.html#wxbuffereddcwxbuffereddc">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Dc::wxDC:wxDC(), Area::{W::integer(),H::integer()}) -> new(Dc,Area, []) </c></p>
%% <p><c>
@@ -113,7 +113,7 @@ init(This,Dc)
%% @spec (This::wxBufferedDC(),Dc::wxDC:wxDC(),X::term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbuffereddc.html#wxbuffereddcinit">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% init(This::wxBufferedDC(), Dc::wxDC:wxDC(), Area::{W::integer(),H::integer()}) -> init(This,Dc,Area, []) </c></p>
%% <p><c>
@@ -150,16 +150,16 @@ init(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=DcT,ref=DcRef},{AreaW,AreaH},
%% @spec (This::wxBufferedDC()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxBufferedDC),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxMemoryDC
+ %% From wxMemoryDC
%% @hidden
selectObjectAsSource(This,Bmp) -> wxMemoryDC:selectObjectAsSource(This,Bmp).
%% @hidden
selectObject(This,Bmp) -> wxMemoryDC:selectObject(This,Bmp).
- %% From wxDC
+ %% From wxDC
%% @hidden
startPage(This) -> wxDC:startPage(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxBufferedPaintDC.erl b/lib/wx/src/gen/wxBufferedPaintDC.erl
index 5674712055..2712394dd8 100644
--- a/lib/wx/src/gen/wxBufferedPaintDC.erl
+++ b/lib/wx/src/gen/wxBufferedPaintDC.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbufferedpaintdc.html">wxBufferedPaintDC</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxBufferedDC}
%% <br />{@link wxMemoryDC}
%% <br />{@link wxDC}
@@ -69,7 +69,7 @@ new(Window)
%% @spec (Window::wxWindow:wxWindow(),X::term()) -> wxBufferedPaintDC()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbufferedpaintdc.html#wxbufferedpaintdcwxbufferedpaintdc">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Window::wxWindow:wxWindow(), Buffer::wxBitmap:wxBitmap()) -> new(Window,Buffer, []) </c></p>
%% <p><c>
@@ -104,23 +104,23 @@ new(#wx_ref{type=WindowT,ref=WindowRef},#wx_ref{type=BufferT,ref=BufferRef}, Opt
%% @spec (This::wxBufferedPaintDC()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxBufferedPaintDC),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxBufferedDC
+ %% From wxBufferedDC
%% @hidden
init(This,Dc,Area, Options) -> wxBufferedDC:init(This,Dc,Area, Options).
%% @hidden
init(This,Dc,Area) -> wxBufferedDC:init(This,Dc,Area).
%% @hidden
init(This,Dc) -> wxBufferedDC:init(This,Dc).
- %% From wxMemoryDC
+ %% From wxMemoryDC
%% @hidden
selectObjectAsSource(This,Bmp) -> wxMemoryDC:selectObjectAsSource(This,Bmp).
%% @hidden
selectObject(This,Bmp) -> wxMemoryDC:selectObject(This,Bmp).
- %% From wxDC
+ %% From wxDC
%% @hidden
startPage(This) -> wxDC:startPage(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxButton.erl b/lib/wx/src/gen/wxButton.erl
index 261a961063..c0e21a5657 100644
--- a/lib/wx/src/gen/wxButton.erl
+++ b/lib/wx/src/gen/wxButton.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxbutton.html">wxButton</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -151,14 +151,14 @@ setLabel(#wx_ref{type=ThisT,ref=ThisRef},Label)
%% @spec (This::wxButton()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxButton),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -505,7 +505,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxCalendarCtrl.erl b/lib/wx/src/gen/wxCalendarCtrl.erl
index 5b87ac54e4..8ad4d5954b 100644
--- a/lib/wx/src/gen/wxCalendarCtrl.erl
+++ b/lib/wx/src/gen/wxCalendarCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcalendarctrl.html">wxCalendarCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -311,16 +311,16 @@ hitTest(#wx_ref{type=ThisT,ref=ThisRef},{PosX,PosY})
%% @spec (This::wxCalendarCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxCalendarCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -667,7 +667,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxCalendarDateAttr.erl b/lib/wx/src/gen/wxCalendarDateAttr.erl
index 197e0eb996..aea8abbe54 100644
--- a/lib/wx/src/gen/wxCalendarDateAttr.erl
+++ b/lib/wx/src/gen/wxCalendarDateAttr.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -43,7 +43,7 @@ new() ->
%% @spec (X::WxCalendarDateBorder|term()) -> wxCalendarDateAttr()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcalendardateattr.html#wxcalendardateattrwxcalendardateattr">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Border::WxCalendarDateBorder) -> new(Border, []) </c></p>
%% <p><c>
@@ -59,7 +59,7 @@ new(ColText)
%% @spec (X::WxCalendarDateBorder|term(),[Option]) -> wxCalendarDateAttr()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcalendardateattr.html#wxcalendardateattrwxcalendardateattr">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Border::WxCalendarDateBorder, [Option]) -> wxCalendarDateAttr() </c>
%%<br /> Option = {colBorder, wx:colour()}
@@ -221,7 +221,7 @@ getBorder(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxCalendarDateAttr()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxCalendarDateAttr),
wxe_util:destroy(?wxCalendarDateAttr_destroy,Obj),
ok.
diff --git a/lib/wx/src/gen/wxCalendarEvent.erl b/lib/wx/src/gen/wxCalendarEvent.erl
index de51d20cae..40723711af 100644
--- a/lib/wx/src/gen/wxCalendarEvent.erl
+++ b/lib/wx/src/gen/wxCalendarEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>calendar_sel_changed</em>, <em>calendar_day_changed</em>, <em>calendar_month_changed</em>, <em>calendar_year_changed</em>, <em>calendar_doubleclicked</em>, <em>calendar_weekday_clicked</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxCalendar(). #wxCalendar{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDateEvent}
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
@@ -56,10 +56,10 @@ getWeekDay(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxCalendarEvent_GetWeekDay,
<<ThisRef:32/?UI>>).
- %% From wxDateEvent
+ %% From wxDateEvent
%% @hidden
getDate(This) -> wxDateEvent:getDate(This).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -78,7 +78,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxCaret.erl b/lib/wx/src/gen/wxCaret.erl
index 50844d36ff..3e1a3d544c 100644
--- a/lib/wx/src/gen/wxCaret.erl
+++ b/lib/wx/src/gen/wxCaret.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -175,7 +175,7 @@ show(#wx_ref{type=ThisT,ref=ThisRef}, Options)
%% @spec (This::wxCaret()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxCaret),
wxe_util:destroy(?wxCaret_destruct,Obj),
ok.
diff --git a/lib/wx/src/gen/wxCheckBox.erl b/lib/wx/src/gen/wxCheckBox.erl
index bf368dc965..c484483379 100644
--- a/lib/wx/src/gen/wxCheckBox.erl
+++ b/lib/wx/src/gen/wxCheckBox.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcheckbox.html">wxCheckBox</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -185,16 +185,16 @@ set3StateValue(#wx_ref{type=ThisT,ref=ThisRef},State)
%% @spec (This::wxCheckBox()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxCheckBox),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -541,7 +541,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxCheckListBox.erl b/lib/wx/src/gen/wxCheckListBox.erl
index 7cbf9d18df..c692997311 100644
--- a/lib/wx/src/gen/wxCheckListBox.erl
+++ b/lib/wx/src/gen/wxCheckListBox.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxchecklistbox.html">wxCheckListBox</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxListBox}
%% <br />{@link wxControlWithItems}
%% <br />{@link wxControl}
@@ -139,11 +139,11 @@ isChecked(#wx_ref{type=ThisT,ref=ThisRef},Index)
%% @spec (This::wxCheckListBox()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxCheckListBox),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxListBox
+ %% From wxListBox
%% @hidden
setFirstItem(This,N) -> wxListBox:setFirstItem(This,N).
%% @hidden
@@ -158,7 +158,7 @@ insertItems(This,Items,Pos) -> wxListBox:insertItems(This,Items,Pos).
getSelections(This) -> wxListBox:getSelections(This).
%% @hidden
deselect(This,N) -> wxListBox:deselect(This,N).
- %% From wxControlWithItems
+ %% From wxControlWithItems
%% @hidden
setStringSelection(This,S) -> wxControlWithItems:setStringSelection(This,S).
%% @hidden
@@ -199,12 +199,12 @@ appendStrings(This,Strings) -> wxControlWithItems:appendStrings(This,Strings).
append(This,Item,ClientData) -> wxControlWithItems:append(This,Item,ClientData).
%% @hidden
append(This,Item) -> wxControlWithItems:append(This,Item).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -551,7 +551,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxChildFocusEvent.erl b/lib/wx/src/gen/wxChildFocusEvent.erl
index ea04e6863b..a20071cbf5 100644
--- a/lib/wx/src/gen/wxChildFocusEvent.erl
+++ b/lib/wx/src/gen/wxChildFocusEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>child_focus</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxChildFocus(). #wxChildFocus{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -52,7 +52,7 @@ getWindow(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxChildFocusEvent_GetWindow,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -71,7 +71,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxChoice.erl b/lib/wx/src/gen/wxChoice.erl
index 3e20d5f933..eaf2f0352f 100644
--- a/lib/wx/src/gen/wxChoice.erl
+++ b/lib/wx/src/gen/wxChoice.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxchoice.html">wxChoice</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControlWithItems}
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
@@ -166,11 +166,11 @@ setColumns(#wx_ref{type=ThisT,ref=ThisRef}, Options)
%% @spec (This::wxChoice()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxChoice),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControlWithItems
+ %% From wxControlWithItems
%% @hidden
setStringSelection(This,S) -> wxControlWithItems:setStringSelection(This,S).
%% @hidden
@@ -209,12 +209,12 @@ appendStrings(This,Strings) -> wxControlWithItems:appendStrings(This,Strings).
append(This,Item,ClientData) -> wxControlWithItems:append(This,Item,ClientData).
%% @hidden
append(This,Item) -> wxControlWithItems:append(This,Item).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -561,7 +561,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxChoicebook.erl b/lib/wx/src/gen/wxChoicebook.erl
index faf7c402b7..b724d0cad2 100644
--- a/lib/wx/src/gen/wxChoicebook.erl
+++ b/lib/wx/src/gen/wxChoicebook.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxchoicebook.html">wxChoicebook</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -329,16 +329,16 @@ changeSelection(#wx_ref{type=ThisT,ref=ThisRef},N)
%% @spec (This::wxChoicebook()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxChoicebook),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -685,7 +685,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxClientDC.erl b/lib/wx/src/gen/wxClientDC.erl
index 86418cc922..c966fb50cc 100644
--- a/lib/wx/src/gen/wxClientDC.erl
+++ b/lib/wx/src/gen/wxClientDC.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxclientdc.html">wxClientDC</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindowDC}
%% <br />{@link wxDC}
%% </p>
@@ -73,12 +73,12 @@ new(#wx_ref{type=WinT,ref=WinRef}) ->
%% @spec (This::wxClientDC()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxClientDC),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxWindowDC
- %% From wxDC
+ %% From wxWindowDC
+ %% From wxDC
%% @hidden
startPage(This) -> wxDC:startPage(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxClipboard.erl b/lib/wx/src/gen/wxClipboard.erl
index c92f7b9af4..7ae27b3133 100644
--- a/lib/wx/src/gen/wxClipboard.erl
+++ b/lib/wx/src/gen/wxClipboard.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -132,7 +132,7 @@ get() ->
%% @spec (This::wxClipboard()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxClipboard),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxCloseEvent.erl b/lib/wx/src/gen/wxCloseEvent.erl
index e8e25a448c..706d7701de 100644
--- a/lib/wx/src/gen/wxCloseEvent.erl
+++ b/lib/wx/src/gen/wxCloseEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>close_window</em>, <em>end_session</em>, <em>query_end_session</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxClose(). #wxClose{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxCloseEvent(). An object reference, The representation is internal
@@ -89,7 +89,7 @@ veto(#wx_ref{type=ThisT,ref=ThisRef}, Options)
wxe_util:cast(?wxCloseEvent_Veto,
<<ThisRef:32/?UI, 0:32,BinOpt/binary>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxColourData.erl b/lib/wx/src/gen/wxColourData.erl
index 973086c295..dc77ea043c 100644
--- a/lib/wx/src/gen/wxColourData.erl
+++ b/lib/wx/src/gen/wxColourData.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -94,7 +94,7 @@ setCustomColour(#wx_ref{type=ThisT,ref=ThisRef},I,Colour)
%% @spec (This::wxColourData()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxColourData),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxColourDialog.erl b/lib/wx/src/gen/wxColourDialog.erl
index 08a6b73775..f5677d00ff 100644
--- a/lib/wx/src/gen/wxColourDialog.erl
+++ b/lib/wx/src/gen/wxColourDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcolourdialog.html">wxColourDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -136,11 +136,11 @@ getColourData(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxColourDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxColourDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -163,7 +163,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -210,7 +210,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -557,7 +557,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxColourPickerCtrl.erl b/lib/wx/src/gen/wxColourPickerCtrl.erl
index 1f345b4294..4f0816e1fd 100644
--- a/lib/wx/src/gen/wxColourPickerCtrl.erl
+++ b/lib/wx/src/gen/wxColourPickerCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcolourpickerctrl.html">wxColourPickerCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxPickerBase}
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
@@ -141,7 +141,7 @@ getColour(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxColourPickerCtrl(),X::string()|term()) -> bool()|ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcolourpickerctrl.html#wxcolourpickerctrlsetcolour">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setColour(This::wxColourPickerCtrl(), Text::string()) -> bool() </c>
%% </p>
@@ -162,11 +162,11 @@ setColour(#wx_ref{type=ThisT,ref=ThisRef},Col)
%% @spec (This::wxColourPickerCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxColourPickerCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxPickerBase
+ %% From wxPickerBase
%% @hidden
isPickerCtrlGrowable(This) -> wxPickerBase:isPickerCtrlGrowable(This).
%% @hidden
@@ -195,12 +195,12 @@ setTextCtrlProportion(This,Prop) -> wxPickerBase:setTextCtrlProportion(This,Prop
getInternalMargin(This) -> wxPickerBase:getInternalMargin(This).
%% @hidden
setInternalMargin(This,Newmargin) -> wxPickerBase:setInternalMargin(This,Newmargin).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -547,7 +547,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxColourPickerEvent.erl b/lib/wx/src/gen/wxColourPickerEvent.erl
index 0ed131fc30..9ba431b841 100644
--- a/lib/wx/src/gen/wxColourPickerEvent.erl
+++ b/lib/wx/src/gen/wxColourPickerEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_colourpicker_changed</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxColourPicker(). #wxColourPicker{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -52,7 +52,7 @@ getColour(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxColourPickerEvent_GetColour,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -71,7 +71,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxComboBox.erl b/lib/wx/src/gen/wxComboBox.erl
index 6a40aacd50..061e886734 100644
--- a/lib/wx/src/gen/wxComboBox.erl
+++ b/lib/wx/src/gen/wxComboBox.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcombobox.html">wxComboBox</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControlWithItems}
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
@@ -285,11 +285,11 @@ undo(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxComboBox()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxComboBox),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControlWithItems
+ %% From wxControlWithItems
%% @hidden
setStringSelection(This,S) -> wxControlWithItems:setStringSelection(This,S).
%% @hidden
@@ -328,12 +328,12 @@ appendStrings(This,Strings) -> wxControlWithItems:appendStrings(This,Strings).
append(This,Item,ClientData) -> wxControlWithItems:append(This,Item,ClientData).
%% @hidden
append(This,Item) -> wxControlWithItems:append(This,Item).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -680,7 +680,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxCommandEvent.erl b/lib/wx/src/gen/wxCommandEvent.erl
index f1df933d78..57fb9cecda 100644
--- a/lib/wx/src/gen/wxCommandEvent.erl
+++ b/lib/wx/src/gen/wxCommandEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_button_clicked</em>, <em>command_checkbox_clicked</em>, <em>command_choice_selected</em>, <em>command_listbox_selected</em>, <em>command_listbox_doubleclicked</em>, <em>command_text_updated</em>, <em>command_text_enter</em>, <em>command_menu_selected</em>, <em>command_slider_updated</em>, <em>command_radiobox_selected</em>, <em>command_radiobutton_selected</em>, <em>command_scrollbar_updated</em>, <em>command_vlbox_selected</em>, <em>command_combobox_selected</em>, <em>command_tool_rclicked</em>, <em>command_tool_enter</em>, <em>command_checklistbox_toggled</em>, <em>command_togglebutton_clicked</em>, <em>command_left_click</em>, <em>command_left_dclick</em>, <em>command_right_click</em>, <em>command_set_focus</em>, <em>command_kill_focus</em>, <em>command_enter</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxCommand(). #wxCommand{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxCommandEvent(). An object reference, The representation is internal
@@ -108,7 +108,7 @@ setString(#wx_ref{type=ThisT,ref=ThisRef},S)
wxe_util:cast(?wxCommandEvent_SetString,
<<ThisRef:32/?UI,(byte_size(S_UC)):32/?UI,(S_UC)/binary, 0:(((8- ((0+byte_size(S_UC)) band 16#7)) band 16#7))/unit:8>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxContextMenuEvent.erl b/lib/wx/src/gen/wxContextMenuEvent.erl
index 15167b0996..56ed82f37c 100644
--- a/lib/wx/src/gen/wxContextMenuEvent.erl
+++ b/lib/wx/src/gen/wxContextMenuEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>context_menu</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxContextMenu(). #wxContextMenu{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -60,7 +60,7 @@ setPosition(#wx_ref{type=ThisT,ref=ThisRef},{PosX,PosY})
wxe_util:cast(?wxContextMenuEvent_SetPosition,
<<ThisRef:32/?UI,PosX:32/?UI,PosY:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -79,7 +79,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxControl.erl b/lib/wx/src/gen/wxControl.erl
index 1088afcc43..e3f602e65a 100644
--- a/lib/wx/src/gen/wxControl.erl
+++ b/lib/wx/src/gen/wxControl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcontrol.html">wxControl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
%% </p>
@@ -89,7 +89,7 @@ setLabel(#wx_ref{type=ThisT,ref=ThisRef},Label)
wxe_util:cast(?wxControl_SetLabel,
<<ThisRef:32/?UI,(byte_size(Label_UC)):32/?UI,(Label_UC)/binary, 0:(((8- ((0+byte_size(Label_UC)) band 16#7)) band 16#7))/unit:8>>).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -436,7 +436,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxControlWithItems.erl b/lib/wx/src/gen/wxControlWithItems.erl
index ff5e3aaedf..0838b75bad 100644
--- a/lib/wx/src/gen/wxControlWithItems.erl
+++ b/lib/wx/src/gen/wxControlWithItems.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcontrolwithitems.html">wxControlWithItems</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -247,12 +247,12 @@ setStringSelection(#wx_ref{type=ThisT,ref=ThisRef},S)
wxe_util:call(?wxControlWithItems_SetStringSelection,
<<ThisRef:32/?UI,(byte_size(S_UC)):32/?UI,(S_UC)/binary, 0:(((8- ((0+byte_size(S_UC)) band 16#7)) band 16#7))/unit:8>>).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -599,7 +599,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxCursor.erl b/lib/wx/src/gen/wxCursor.erl
index 4c2a46cc84..beb731fee3 100644
--- a/lib/wx/src/gen/wxCursor.erl
+++ b/lib/wx/src/gen/wxCursor.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcursor.html">wxCursor</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxBitmap}
%% </p>
%% @type wxCursor(). An object reference, The representation is internal
@@ -46,7 +46,7 @@ new() ->
%% @spec (X::integer()|term()) -> wxCursor()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxcursor.html#wxcursorwxcursor">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(CursorId::integer()) -> wxCursor() </c>
%% </p>
@@ -90,11 +90,11 @@ ok(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxCursor()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxCursor),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxBitmap
+ %% From wxBitmap
%% @hidden
setWidth(This,Width) -> wxBitmap:setWidth(This,Width).
%% @hidden
diff --git a/lib/wx/src/gen/wxDC.erl b/lib/wx/src/gen/wxDC.erl
index 17bf77c331..9bce1249f8 100644
--- a/lib/wx/src/gen/wxDC.erl
+++ b/lib/wx/src/gen/wxDC.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -705,7 +705,7 @@ setBrush(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=BrushT,ref=BrushRef}) ->
%% @spec (This::wxDC(),X::term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxdc.html#wxdcsetclippingregion">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setClippingRegion(This::wxDC(), Region::wxRegion:wxRegion()) -> ok </c>
%% </p>
diff --git a/lib/wx/src/gen/wxDataObject.erl b/lib/wx/src/gen/wxDataObject.erl
index 801bd3dfba..bad6d96fb5 100644
--- a/lib/wx/src/gen/wxDataObject.erl
+++ b/lib/wx/src/gen/wxDataObject.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxDateEvent.erl b/lib/wx/src/gen/wxDateEvent.erl
index 9885d6729a..b4b010e122 100644
--- a/lib/wx/src/gen/wxDateEvent.erl
+++ b/lib/wx/src/gen/wxDateEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>date_changed</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxDate(). #wxDate{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -52,7 +52,7 @@ getDate(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxDateEvent_GetDate,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -71,7 +71,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxDatePickerCtrl.erl b/lib/wx/src/gen/wxDatePickerCtrl.erl
index b9ac9cdbad..2de51ce71d 100644
--- a/lib/wx/src/gen/wxDatePickerCtrl.erl
+++ b/lib/wx/src/gen/wxDatePickerCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxdatepickerctrl.html">wxDatePickerCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxPickerBase}
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
@@ -142,11 +142,11 @@ setValue(#wx_ref{type=ThisT,ref=ThisRef},Date)
%% @spec (This::wxDatePickerCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxDatePickerCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxPickerBase
+ %% From wxPickerBase
%% @hidden
isPickerCtrlGrowable(This) -> wxPickerBase:isPickerCtrlGrowable(This).
%% @hidden
@@ -175,12 +175,12 @@ setTextCtrlProportion(This,Prop) -> wxPickerBase:setTextCtrlProportion(This,Prop
getInternalMargin(This) -> wxPickerBase:getInternalMargin(This).
%% @hidden
setInternalMargin(This,Newmargin) -> wxPickerBase:setInternalMargin(This,Newmargin).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -527,7 +527,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxDialog.erl b/lib/wx/src/gen/wxDialog.erl
index 75b8064bf7..8c0bd2cd76 100644
--- a/lib/wx/src/gen/wxDialog.erl
+++ b/lib/wx/src/gen/wxDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxdialog.html">wxDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -219,11 +219,11 @@ showModal(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -270,7 +270,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -617,7 +617,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxDirDialog.erl b/lib/wx/src/gen/wxDirDialog.erl
index 4329be13bd..7849dce0a7 100644
--- a/lib/wx/src/gen/wxDirDialog.erl
+++ b/lib/wx/src/gen/wxDirDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxdirdialog.html">wxDirDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -140,11 +140,11 @@ setPath(#wx_ref{type=ThisT,ref=ThisRef},Path)
%% @spec (This::wxDirDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxDirDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -167,7 +167,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -214,7 +214,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -561,7 +561,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxDirPickerCtrl.erl b/lib/wx/src/gen/wxDirPickerCtrl.erl
index 787d3606f5..7fb70b71e3 100644
--- a/lib/wx/src/gen/wxDirPickerCtrl.erl
+++ b/lib/wx/src/gen/wxDirPickerCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxdirpickerctrl.html">wxDirPickerCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxPickerBase}
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
@@ -152,11 +152,11 @@ setPath(#wx_ref{type=ThisT,ref=ThisRef},Str)
%% @spec (This::wxDirPickerCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxDirPickerCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxPickerBase
+ %% From wxPickerBase
%% @hidden
isPickerCtrlGrowable(This) -> wxPickerBase:isPickerCtrlGrowable(This).
%% @hidden
@@ -185,12 +185,12 @@ setTextCtrlProportion(This,Prop) -> wxPickerBase:setTextCtrlProportion(This,Prop
getInternalMargin(This) -> wxPickerBase:getInternalMargin(This).
%% @hidden
setInternalMargin(This,Newmargin) -> wxPickerBase:setInternalMargin(This,Newmargin).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -537,7 +537,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxDisplayChangedEvent.erl b/lib/wx/src/gen/wxDisplayChangedEvent.erl
index 280a51ffc2..c86ef62462 100644
--- a/lib/wx/src/gen/wxDisplayChangedEvent.erl
+++ b/lib/wx/src/gen/wxDisplayChangedEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>display_changed</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxDisplayChanged(). #wxDisplayChanged{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxDisplayChangedEvent(). An object reference, The representation is internal
@@ -41,7 +41,7 @@
parent_class(wxEvent) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxEraseEvent.erl b/lib/wx/src/gen/wxEraseEvent.erl
index 66fc161aba..77139b6790 100644
--- a/lib/wx/src/gen/wxEraseEvent.erl
+++ b/lib/wx/src/gen/wxEraseEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>erase_background</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxErase(). #wxErase{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxEraseEvent(). An object reference, The representation is internal
@@ -48,7 +48,7 @@ getDC(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxEraseEvent_GetDC,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxEvent.erl b/lib/wx/src/gen/wxEvent.erl
index dda4c0189d..403fd89f1f 100644
--- a/lib/wx/src/gen/wxEvent.erl
+++ b/lib/wx/src/gen/wxEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxEvtHandler.erl b/lib/wx/src/gen/wxEvtHandler.erl
index 0d4e224fc5..f155351b66 100644
--- a/lib/wx/src/gen/wxEvtHandler.erl
+++ b/lib/wx/src/gen/wxEvtHandler.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxFileDataObject.erl b/lib/wx/src/gen/wxFileDataObject.erl
index 513f15eb00..2fcfbd5374 100644
--- a/lib/wx/src/gen/wxFileDataObject.erl
+++ b/lib/wx/src/gen/wxFileDataObject.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxfiledataobject.html">wxFileDataObject</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDataObject}
%% </p>
%% @type wxFileDataObject(). An object reference, The representation is internal
@@ -60,8 +60,8 @@ getFilenames(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxFileDataObject()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFileDataObject),
wxe_util:destroy(?wxFileDataObject_destroy,Obj),
ok.
- %% From wxDataObject
+ %% From wxDataObject
diff --git a/lib/wx/src/gen/wxFileDialog.erl b/lib/wx/src/gen/wxFileDialog.erl
index efe1ff57f3..cba9705335 100644
--- a/lib/wx/src/gen/wxFileDialog.erl
+++ b/lib/wx/src/gen/wxFileDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxfiledialog.html">wxFileDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -221,11 +221,11 @@ setWildcard(#wx_ref{type=ThisT,ref=ThisRef},WildCard)
%% @spec (This::wxFileDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFileDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -248,7 +248,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -295,7 +295,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -642,7 +642,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxFileDirPickerEvent.erl b/lib/wx/src/gen/wxFileDirPickerEvent.erl
index 0f9166e542..cc4880b88c 100644
--- a/lib/wx/src/gen/wxFileDirPickerEvent.erl
+++ b/lib/wx/src/gen/wxFileDirPickerEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_filepicker_changed</em>, <em>command_dirpicker_changed</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxFileDirPicker(). #wxFileDirPicker{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -52,7 +52,7 @@ getPath(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxFileDirPickerEvent_GetPath,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -71,7 +71,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxFilePickerCtrl.erl b/lib/wx/src/gen/wxFilePickerCtrl.erl
index c182d20f36..a3034aaa86 100644
--- a/lib/wx/src/gen/wxFilePickerCtrl.erl
+++ b/lib/wx/src/gen/wxFilePickerCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxfilepickerctrl.html">wxFilePickerCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxPickerBase}
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
@@ -154,11 +154,11 @@ setPath(#wx_ref{type=ThisT,ref=ThisRef},Str)
%% @spec (This::wxFilePickerCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFilePickerCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxPickerBase
+ %% From wxPickerBase
%% @hidden
isPickerCtrlGrowable(This) -> wxPickerBase:isPickerCtrlGrowable(This).
%% @hidden
@@ -187,12 +187,12 @@ setTextCtrlProportion(This,Prop) -> wxPickerBase:setTextCtrlProportion(This,Prop
getInternalMargin(This) -> wxPickerBase:getInternalMargin(This).
%% @hidden
setInternalMargin(This,Newmargin) -> wxPickerBase:setInternalMargin(This,Newmargin).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -539,7 +539,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxFindReplaceData.erl b/lib/wx/src/gen/wxFindReplaceData.erl
index ac09a23e89..52eafa8398 100644
--- a/lib/wx/src/gen/wxFindReplaceData.erl
+++ b/lib/wx/src/gen/wxFindReplaceData.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -95,7 +95,7 @@ setReplaceString(#wx_ref{type=ThisT,ref=ThisRef},Str)
%% @spec (This::wxFindReplaceData()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFindReplaceData),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxFindReplaceDialog.erl b/lib/wx/src/gen/wxFindReplaceDialog.erl
index 82da24abf5..b37fd41831 100644
--- a/lib/wx/src/gen/wxFindReplaceDialog.erl
+++ b/lib/wx/src/gen/wxFindReplaceDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxfindreplacedialog.html">wxFindReplaceDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -140,11 +140,11 @@ getData(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxFindReplaceDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFindReplaceDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -167,7 +167,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -214,7 +214,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -561,7 +561,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxFlexGridSizer.erl b/lib/wx/src/gen/wxFlexGridSizer.erl
index 5387d04043..9471cc8a01 100644
--- a/lib/wx/src/gen/wxFlexGridSizer.erl
+++ b/lib/wx/src/gen/wxFlexGridSizer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxflexgridsizer.html">wxFlexGridSizer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridSizer}
%% <br />{@link wxSizer}
%% </p>
@@ -163,11 +163,11 @@ setNonFlexibleGrowMode(#wx_ref{type=ThisT,ref=ThisRef},Mode)
%% @spec (This::wxFlexGridSizer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFlexGridSizer),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxGridSizer
+ %% From wxGridSizer
%% @hidden
setVGap(This,Gap) -> wxGridSizer:setVGap(This,Gap).
%% @hidden
@@ -184,7 +184,7 @@ getRows(This) -> wxGridSizer:getRows(This).
getHGap(This) -> wxGridSizer:getHGap(This).
%% @hidden
getCols(This) -> wxGridSizer:getCols(This).
- %% From wxSizer
+ %% From wxSizer
%% @hidden
show(This,Index, Options) -> wxSizer:show(This,Index, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxFocusEvent.erl b/lib/wx/src/gen/wxFocusEvent.erl
index 48a0f65e4f..46f2e2a3df 100644
--- a/lib/wx/src/gen/wxFocusEvent.erl
+++ b/lib/wx/src/gen/wxFocusEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>set_focus</em>, <em>kill_focus</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxFocus(). #wxFocus{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxFocusEvent(). An object reference, The representation is internal
@@ -48,7 +48,7 @@ getWindow(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxFocusEvent_GetWindow,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxFont.erl b/lib/wx/src/gen/wxFont.erl
index 4ee829d83d..4afc53cfa8 100644
--- a/lib/wx/src/gen/wxFont.erl
+++ b/lib/wx/src/gen/wxFont.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -221,7 +221,7 @@ setWeight(#wx_ref{type=ThisT,ref=ThisRef},Weight)
%% @spec (This::wxFont()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFont),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxFontData.erl b/lib/wx/src/gen/wxFontData.erl
index 9b8de9212f..33015b7ca9 100644
--- a/lib/wx/src/gen/wxFontData.erl
+++ b/lib/wx/src/gen/wxFontData.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -147,7 +147,7 @@ setShowHelp(#wx_ref{type=ThisT,ref=ThisRef},Flag)
%% @spec (This::wxFontData()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFontData),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxFontDialog.erl b/lib/wx/src/gen/wxFontDialog.erl
index 009e320117..357bfe532d 100644
--- a/lib/wx/src/gen/wxFontDialog.erl
+++ b/lib/wx/src/gen/wxFontDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxfontdialog.html">wxFontDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -116,11 +116,11 @@ getFontData(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxFontDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFontDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -143,7 +143,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -190,7 +190,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -537,7 +537,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxFontPickerCtrl.erl b/lib/wx/src/gen/wxFontPickerCtrl.erl
index fca934df49..93d63cc930 100644
--- a/lib/wx/src/gen/wxFontPickerCtrl.erl
+++ b/lib/wx/src/gen/wxFontPickerCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxfontpickerctrl.html">wxFontPickerCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxPickerBase}
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
@@ -165,11 +165,11 @@ setMaxPointSize(#wx_ref{type=ThisT,ref=ThisRef},Max)
%% @spec (This::wxFontPickerCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFontPickerCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxPickerBase
+ %% From wxPickerBase
%% @hidden
isPickerCtrlGrowable(This) -> wxPickerBase:isPickerCtrlGrowable(This).
%% @hidden
@@ -198,12 +198,12 @@ setTextCtrlProportion(This,Prop) -> wxPickerBase:setTextCtrlProportion(This,Prop
getInternalMargin(This) -> wxPickerBase:getInternalMargin(This).
%% @hidden
setInternalMargin(This,Newmargin) -> wxPickerBase:setInternalMargin(This,Newmargin).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -550,7 +550,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxFontPickerEvent.erl b/lib/wx/src/gen/wxFontPickerEvent.erl
index 28c1e0fc98..6eb456767f 100644
--- a/lib/wx/src/gen/wxFontPickerEvent.erl
+++ b/lib/wx/src/gen/wxFontPickerEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_fontpicker_changed</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxFontPicker(). #wxFontPicker{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -52,7 +52,7 @@ getFont(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxFontPickerEvent_GetFont,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -71,7 +71,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxFrame.erl b/lib/wx/src/gen/wxFrame.erl
index 136651c001..5cd1e3dfd3 100644
--- a/lib/wx/src/gen/wxFrame.erl
+++ b/lib/wx/src/gen/wxFrame.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxframe.html">wxFrame</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -284,11 +284,11 @@ setToolBar(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ToolbarT,ref=ToolbarRef}
%% @spec (This::wxFrame()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxFrame),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -335,7 +335,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -686,7 +686,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxGBSizerItem.erl b/lib/wx/src/gen/wxGBSizerItem.erl
index 4d79e5c3db..90dd98fdf2 100644
--- a/lib/wx/src/gen/wxGBSizerItem.erl
+++ b/lib/wx/src/gen/wxGBSizerItem.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgbsizeritem.html">wxGBSizerItem</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxSizerItem}
%% </p>
%% @type wxGBSizerItem(). An object reference, The representation is internal
@@ -41,7 +41,7 @@
parent_class(wxSizerItem) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxSizerItem
+ %% From wxSizerItem
%% @hidden
show(This,Show) -> wxSizerItem:show(This,Show).
%% @hidden
diff --git a/lib/wx/src/gen/wxGLCanvas.erl b/lib/wx/src/gen/wxGLCanvas.erl
index 25d4ddc9f2..3e0d1bd9ae 100644
--- a/lib/wx/src/gen/wxGLCanvas.erl
+++ b/lib/wx/src/gen/wxGLCanvas.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxglcanvas.html">wxGLCanvas</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
%% </p>
@@ -81,7 +81,7 @@ new(Parent)
%% @spec (Parent::wxWindow:wxWindow(),X::term()) -> wxGLCanvas()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxglcanvas.html#wxglcanvaswxglcanvas">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Parent::wxWindow:wxWindow(), Shared::wxGLContext:wxGLContext() | wxGLCanvas()) -> new(Parent,Shared, []) </c></p>
%% <p><c>
@@ -156,11 +156,11 @@ swapBuffers(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxGLCanvas()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGLCanvas),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -511,7 +511,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxGauge.erl b/lib/wx/src/gen/wxGauge.erl
index 3a5e117e19..5028b29bba 100644
--- a/lib/wx/src/gen/wxGauge.erl
+++ b/lib/wx/src/gen/wxGauge.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgauge.html">wxGauge</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -202,16 +202,16 @@ pulse(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxGauge()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGauge),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -558,7 +558,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxGenericDirCtrl.erl b/lib/wx/src/gen/wxGenericDirCtrl.erl
index bd97e14816..97944710f0 100644
--- a/lib/wx/src/gen/wxGenericDirCtrl.erl
+++ b/lib/wx/src/gen/wxGenericDirCtrl.erl
@@ -18,7 +18,7 @@
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgenericdirctrl.html">wxGenericDirCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -249,16 +249,16 @@ setPath(#wx_ref{type=ThisT,ref=ThisRef},Path)
%% @spec (This::wxGenericDirCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGenericDirCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -605,7 +605,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxGraphicsBrush.erl b/lib/wx/src/gen/wxGraphicsBrush.erl
index c1db82dcb3..e1ad01567d 100644
--- a/lib/wx/src/gen/wxGraphicsBrush.erl
+++ b/lib/wx/src/gen/wxGraphicsBrush.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgraphicsbrush.html">wxGraphicsBrush</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGraphicsObject}
%% </p>
%% @type wxGraphicsBrush(). An object reference, The representation is internal
@@ -36,7 +36,7 @@
parent_class(wxGraphicsObject) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxGraphicsObject
+ %% From wxGraphicsObject
%% @hidden
isNull(This) -> wxGraphicsObject:isNull(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxGraphicsContext.erl b/lib/wx/src/gen/wxGraphicsContext.erl
index 885578657d..040867cb11 100644
--- a/lib/wx/src/gen/wxGraphicsContext.erl
+++ b/lib/wx/src/gen/wxGraphicsContext.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgraphicscontext.html">wxGraphicsContext</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGraphicsObject}
%% </p>
%% @type wxGraphicsContext(). An object reference, The representation is internal
@@ -256,7 +256,7 @@ drawText(#wx_ref{type=ThisT,ref=ThisRef},Str,X,Y)
%% @spec (This::wxGraphicsContext(),Str::string(),X::float(),Y::float(),X::float()|term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgraphicscontext.html#wxgraphicscontextdrawtext">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% drawText(This::wxGraphicsContext(), Str::string(), X::float(), Y::float(), Angle::float()) -> ok </c>
%% </p>
@@ -454,7 +454,7 @@ strokeLines(#wx_ref{type=ThisT,ref=ThisRef},N,{BeginPointsX,BeginPointsY},{EndPo
wxe_util:cast(?wxGraphicsContext_StrokeLines_3,
<<ThisRef:32/?UI,N:32/?UI,BeginPointsX:64/float,BeginPointsY:64/float,EndPointsX:64/float,EndPointsY:64/float>>).
- %% From wxGraphicsObject
+ %% From wxGraphicsObject
%% @hidden
isNull(This) -> wxGraphicsObject:isNull(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxGraphicsFont.erl b/lib/wx/src/gen/wxGraphicsFont.erl
index 07c964d9b9..19b2172176 100644
--- a/lib/wx/src/gen/wxGraphicsFont.erl
+++ b/lib/wx/src/gen/wxGraphicsFont.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgraphicsfont.html">wxGraphicsFont</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGraphicsObject}
%% </p>
%% @type wxGraphicsFont(). An object reference, The representation is internal
@@ -36,7 +36,7 @@
parent_class(wxGraphicsObject) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxGraphicsObject
+ %% From wxGraphicsObject
%% @hidden
isNull(This) -> wxGraphicsObject:isNull(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxGraphicsMatrix.erl b/lib/wx/src/gen/wxGraphicsMatrix.erl
index b8c7b3eefb..38ea007c58 100644
--- a/lib/wx/src/gen/wxGraphicsMatrix.erl
+++ b/lib/wx/src/gen/wxGraphicsMatrix.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgraphicsmatrix.html">wxGraphicsMatrix</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGraphicsObject}
%% </p>
%% @type wxGraphicsMatrix(). An object reference, The representation is internal
@@ -142,7 +142,7 @@ transformDistance(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxGraphicsMatrix_TransformDistance,
<<ThisRef:32/?UI>>).
- %% From wxGraphicsObject
+ %% From wxGraphicsObject
%% @hidden
isNull(This) -> wxGraphicsObject:isNull(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxGraphicsObject.erl b/lib/wx/src/gen/wxGraphicsObject.erl
index 5b8b44ceca..7e63285b7a 100644
--- a/lib/wx/src/gen/wxGraphicsObject.erl
+++ b/lib/wx/src/gen/wxGraphicsObject.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxGraphicsPath.erl b/lib/wx/src/gen/wxGraphicsPath.erl
index 7b27545d5f..ff2dfb07a4 100644
--- a/lib/wx/src/gen/wxGraphicsPath.erl
+++ b/lib/wx/src/gen/wxGraphicsPath.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgraphicspath.html">wxGraphicsPath</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGraphicsObject}
%% </p>
%% @type wxGraphicsPath(). An object reference, The representation is internal
@@ -175,7 +175,7 @@ contains(This,C={CX,CY})
%% @spec (This::wxGraphicsPath(),X::float()|term(),X::float()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgraphicspath.html#wxgraphicspathcontains">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% contains(This::wxGraphicsPath(), X::float(), Y::float()) -> contains(This,X,Y, []) </c></p>
%% <p><c>
@@ -229,7 +229,7 @@ transform(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=MatrixT,ref=MatrixRef}) -
wxe_util:cast(?wxGraphicsPath_Transform,
<<ThisRef:32/?UI,MatrixRef:32/?UI>>).
- %% From wxGraphicsObject
+ %% From wxGraphicsObject
%% @hidden
isNull(This) -> wxGraphicsObject:isNull(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxGraphicsPen.erl b/lib/wx/src/gen/wxGraphicsPen.erl
index 6abf52f025..395b05f8af 100644
--- a/lib/wx/src/gen/wxGraphicsPen.erl
+++ b/lib/wx/src/gen/wxGraphicsPen.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgraphicspen.html">wxGraphicsPen</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGraphicsObject}
%% </p>
%% @type wxGraphicsPen(). An object reference, The representation is internal
@@ -36,7 +36,7 @@
parent_class(wxGraphicsObject) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxGraphicsObject
+ %% From wxGraphicsObject
%% @hidden
isNull(This) -> wxGraphicsObject:isNull(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxGraphicsRenderer.erl b/lib/wx/src/gen/wxGraphicsRenderer.erl
index 457ffe2b6e..ed53ebf468 100644
--- a/lib/wx/src/gen/wxGraphicsRenderer.erl
+++ b/lib/wx/src/gen/wxGraphicsRenderer.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxGrid.erl b/lib/wx/src/gen/wxGrid.erl
index 2a45bc3d6b..7b62ec33a4 100644
--- a/lib/wx/src/gen/wxGrid.erl
+++ b/lib/wx/src/gen/wxGrid.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgrid.html">wxGrid</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxScrolledWindow}
%% <br />{@link wxPanel}
%% <br />{@link wxWindow}
@@ -146,7 +146,7 @@ new(Parent,Id)
%% @spec (Parent::wxWindow:wxWindow(),X::integer(),X::integer()|term()) -> wxGrid()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgrid.html#wxgridwxgrid">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Parent::wxWindow:wxWindow(), X::integer(), Y::integer()) -> new(Parent,X,Y, []) </c></p>
%% <p><c>
@@ -1104,7 +1104,7 @@ isVisible(This,Coords={CoordsR,CoordsC})
%% @spec (This::wxGrid(),X::integer()|term(),X::integer()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgrid.html#wxgridisvisible">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% isVisible(This::wxGrid(), Row::integer(), Col::integer()) -> isVisible(This,Row,Col, []) </c></p>
%% <p><c>
@@ -1361,7 +1361,7 @@ setCellBackgroundColour(#wx_ref{type=ThisT,ref=ThisRef},Col)
%% @spec (This::wxGrid(),X::integer()|term(),X::integer(),X::term()|integer()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgrid.html#wxgridsetcellbackgroundcolour">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setCellBackgroundColour(This::wxGrid(), Row::integer(), Col::integer(), Val::wx:colour()) -> ok </c>
%% </p>
@@ -1416,7 +1416,7 @@ setCellTextColour(#wx_ref{type=ThisT,ref=ThisRef},Col)
%% @spec (This::wxGrid(),X::integer()|term(),X::integer(),X::term()|integer()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgrid.html#wxgridsetcelltextcolour">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setCellTextColour(This::wxGrid(), Row::integer(), Col::integer(), Val::wx:colour()) -> ok </c>
%% </p>
@@ -1445,7 +1445,7 @@ setCellValue(#wx_ref{type=ThisT,ref=ThisRef},{CoordsR,CoordsC},S)
%% @spec (This::wxGrid(),X::integer()|string(),X::integer(),X::string()|integer()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgrid.html#wxgridsetcellvalue">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setCellValue(This::wxGrid(), Row::integer(), Col::integer(), S::string()) -> ok </c>
%% </p>
@@ -1868,11 +1868,11 @@ yToRow(#wx_ref{type=ThisT,ref=ThisRef},Y)
%% @spec (This::wxGrid()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGrid),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxScrolledWindow
+ %% From wxScrolledWindow
%% @hidden
setTargetWindow(This,Target) -> wxScrolledWindow:setTargetWindow(This,Target).
%% @hidden
@@ -1901,10 +1901,10 @@ calcUnscrolledPosition(This,Pt) -> wxScrolledWindow:calcUnscrolledPosition(This,
calcScrolledPosition(This,X,Y) -> wxScrolledWindow:calcScrolledPosition(This,X,Y).
%% @hidden
calcScrolledPosition(This,Pt) -> wxScrolledWindow:calcScrolledPosition(This,Pt).
- %% From wxPanel
+ %% From wxPanel
%% @hidden
initDialog(This) -> wxPanel:initDialog(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -2251,7 +2251,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridBagSizer.erl b/lib/wx/src/gen/wxGridBagSizer.erl
index 56dc6092ad..d8cc210d3b 100644
--- a/lib/wx/src/gen/wxGridBagSizer.erl
+++ b/lib/wx/src/gen/wxGridBagSizer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridbagsizer.html">wxGridBagSizer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxFlexGridSizer}
%% <br />{@link wxGridSizer}
%% <br />{@link wxSizer}
@@ -86,7 +86,7 @@ add(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ItemT,ref=ItemRef}) ->
%% @spec (This::wxGridBagSizer(),X::integer()|term(),X::integer()|term()) -> wxSizerItem:wxSizerItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridbagsizer.html#wxgridbagsizeradd">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% add(This::wxGridBagSizer(), Width::integer(), Height::integer()) -> add(This,Width,Height, []) </c></p>
%% <p><c>
@@ -123,7 +123,7 @@ add(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=WindowT,ref=WindowRef}, Options
%% @spec (This::wxGridBagSizer(),X::integer()|term(),X::integer()|term(),X::term()) -> wxSizerItem:wxSizerItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridbagsizer.html#wxgridbagsizeradd">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% add(This::wxGridBagSizer(), Width::integer(), Height::integer(), Pos::{R::integer(),C::integer()}) -> add(This,Width,Height,Pos, []) </c></p>
%% <p><c>
@@ -197,7 +197,7 @@ checkForIntersection(This,Item)
%% @spec (This::wxGridBagSizer(),X::term(),X::term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridbagsizer.html#wxgridbagsizercheckforintersection">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% checkForIntersection(This::wxGridBagSizer(), Pos::{R::integer(),C::integer()}, Span::{RS::integer(),CS::integer()}) -> checkForIntersection(This,Pos,Span, []) </c></p>
%% <p><c>
@@ -284,7 +284,7 @@ getEmptyCellSize(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxGridBagSizer(),X::integer()|term()) -> {R::integer(),C::integer()}
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridbagsizer.html#wxgridbagsizergetitemposition">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% getItemPosition(This::wxGridBagSizer(), Index::integer()) -> {R::integer(),C::integer()} </c>
%% </p>
@@ -309,7 +309,7 @@ getItemPosition(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=WindowT,ref=WindowR
%% @spec (This::wxGridBagSizer(),X::integer()|term()) -> {RS::integer(),CS::integer()}
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridbagsizer.html#wxgridbagsizergetitemspan">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% getItemSpan(This::wxGridBagSizer(), Index::integer()) -> {RS::integer(),CS::integer()} </c>
%% </p>
@@ -342,7 +342,7 @@ setEmptyCellSize(#wx_ref{type=ThisT,ref=ThisRef},{SzW,SzH})
%% @spec (This::wxGridBagSizer(),X::integer()|term(),Pos::{R::integer(),C::integer()}) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridbagsizer.html#wxgridbagsizersetitemposition">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setItemPosition(This::wxGridBagSizer(), Index::integer(), Pos::{R::integer(),C::integer()}) -> bool() </c>
%% </p>
@@ -368,7 +368,7 @@ setItemPosition(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=WindowT,ref=WindowR
%% @spec (This::wxGridBagSizer(),X::integer()|term(),Span::{RS::integer(),CS::integer()}) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridbagsizer.html#wxgridbagsizersetitemspan">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setItemSpan(This::wxGridBagSizer(), Index::integer(), Span::{RS::integer(),CS::integer()}) -> bool() </c>
%% </p>
@@ -394,11 +394,11 @@ setItemSpan(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=WindowT,ref=WindowRef},
%% @spec (This::wxGridBagSizer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridBagSizer),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxFlexGridSizer
+ %% From wxFlexGridSizer
%% @hidden
setNonFlexibleGrowMode(This,Mode) -> wxFlexGridSizer:setNonFlexibleGrowMode(This,Mode).
%% @hidden
@@ -419,7 +419,7 @@ addGrowableRow(This,Idx) -> wxFlexGridSizer:addGrowableRow(This,Idx).
addGrowableCol(This,Idx, Options) -> wxFlexGridSizer:addGrowableCol(This,Idx, Options).
%% @hidden
addGrowableCol(This,Idx) -> wxFlexGridSizer:addGrowableCol(This,Idx).
- %% From wxGridSizer
+ %% From wxGridSizer
%% @hidden
setVGap(This,Gap) -> wxGridSizer:setVGap(This,Gap).
%% @hidden
@@ -436,7 +436,7 @@ getRows(This) -> wxGridSizer:getRows(This).
getHGap(This) -> wxGridSizer:getHGap(This).
%% @hidden
getCols(This) -> wxGridSizer:getCols(This).
- %% From wxSizer
+ %% From wxSizer
%% @hidden
show(This,Index, Options) -> wxSizer:show(This,Index, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridCellAttr.erl b/lib/wx/src/gen/wxGridCellAttr.erl
index b9fd65304c..3d23c2acfc 100644
--- a/lib/wx/src/gen/wxGridCellAttr.erl
+++ b/lib/wx/src/gen/wxGridCellAttr.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxGridCellBoolEditor.erl b/lib/wx/src/gen/wxGridCellBoolEditor.erl
index b5afaba68f..a54cfe5eab 100644
--- a/lib/wx/src/gen/wxGridCellBoolEditor.erl
+++ b/lib/wx/src/gen/wxGridCellBoolEditor.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridcellbooleditor.html">wxGridCellBoolEditor</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridCellEditor}
%% </p>
%% @type wxGridCellBoolEditor(). An object reference, The representation is internal
@@ -70,11 +70,11 @@ useStringValues(Options)
%% @spec (This::wxGridCellBoolEditor()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridCellBoolEditor),
wxe_util:destroy(?wxGridCellBoolEditor_destroy,Obj),
ok.
- %% From wxGridCellEditor
+ %% From wxGridCellEditor
%% @hidden
handleReturn(This,Event) -> wxGridCellEditor:handleReturn(This,Event).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridCellBoolRenderer.erl b/lib/wx/src/gen/wxGridCellBoolRenderer.erl
index 442c00df1c..a98091f62c 100644
--- a/lib/wx/src/gen/wxGridCellBoolRenderer.erl
+++ b/lib/wx/src/gen/wxGridCellBoolRenderer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridcellboolrenderer.html">wxGridCellBoolRenderer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridCellRenderer}
%% </p>
%% @type wxGridCellBoolRenderer(). An object reference, The representation is internal
@@ -44,11 +44,11 @@ new() ->
%% @spec (This::wxGridCellBoolRenderer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridCellBoolRenderer),
wxe_util:destroy(?wxGridCellBoolRenderer_destroy,Obj),
ok.
- %% From wxGridCellRenderer
+ %% From wxGridCellRenderer
%% @hidden
getBestSize(This,Grid,Attr,Dc,Row,Col) -> wxGridCellRenderer:getBestSize(This,Grid,Attr,Dc,Row,Col).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridCellChoiceEditor.erl b/lib/wx/src/gen/wxGridCellChoiceEditor.erl
index d62933fd07..1adee550f8 100644
--- a/lib/wx/src/gen/wxGridCellChoiceEditor.erl
+++ b/lib/wx/src/gen/wxGridCellChoiceEditor.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridcellchoiceeditor.html">wxGridCellChoiceEditor</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridCellEditor}
%% </p>
%% @type wxGridCellChoiceEditor(). An object reference, The representation is internal
@@ -67,11 +67,11 @@ setParameters(#wx_ref{type=ThisT,ref=ThisRef},Params)
%% @spec (This::wxGridCellChoiceEditor()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridCellChoiceEditor),
wxe_util:destroy(?wxGridCellChoiceEditor_destroy,Obj),
ok.
- %% From wxGridCellEditor
+ %% From wxGridCellEditor
%% @hidden
handleReturn(This,Event) -> wxGridCellEditor:handleReturn(This,Event).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridCellEditor.erl b/lib/wx/src/gen/wxGridCellEditor.erl
index c08027e040..a27ba7bd0f 100644
--- a/lib/wx/src/gen/wxGridCellEditor.erl
+++ b/lib/wx/src/gen/wxGridCellEditor.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxGridCellFloatEditor.erl b/lib/wx/src/gen/wxGridCellFloatEditor.erl
index e924c8f9a5..3caad74f0e 100644
--- a/lib/wx/src/gen/wxGridCellFloatEditor.erl
+++ b/lib/wx/src/gen/wxGridCellFloatEditor.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridcellfloateditor.html">wxGridCellFloatEditor</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridCellEditor}
%% </p>
%% @type wxGridCellFloatEditor(). An object reference, The representation is internal
@@ -65,11 +65,11 @@ setParameters(#wx_ref{type=ThisT,ref=ThisRef},Params)
%% @spec (This::wxGridCellFloatEditor()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridCellFloatEditor),
wxe_util:destroy(?wxGridCellFloatEditor_destroy,Obj),
ok.
- %% From wxGridCellEditor
+ %% From wxGridCellEditor
%% @hidden
handleReturn(This,Event) -> wxGridCellEditor:handleReturn(This,Event).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridCellFloatRenderer.erl b/lib/wx/src/gen/wxGridCellFloatRenderer.erl
index 1d207ae4e0..84ffd21b37 100644
--- a/lib/wx/src/gen/wxGridCellFloatRenderer.erl
+++ b/lib/wx/src/gen/wxGridCellFloatRenderer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridcellfloatrenderer.html">wxGridCellFloatRenderer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridCellStringRenderer}
%% <br />{@link wxGridCellRenderer}
%% </p>
@@ -97,12 +97,12 @@ setWidth(#wx_ref{type=ThisT,ref=ThisRef},Width)
%% @spec (This::wxGridCellFloatRenderer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridCellFloatRenderer),
wxe_util:destroy(?wxGridCellFloatRenderer_destroy,Obj),
ok.
- %% From wxGridCellStringRenderer
- %% From wxGridCellRenderer
+ %% From wxGridCellStringRenderer
+ %% From wxGridCellRenderer
%% @hidden
getBestSize(This,Grid,Attr,Dc,Row,Col) -> wxGridCellRenderer:getBestSize(This,Grid,Attr,Dc,Row,Col).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridCellNumberEditor.erl b/lib/wx/src/gen/wxGridCellNumberEditor.erl
index 347c03c377..4ebdbb14e9 100644
--- a/lib/wx/src/gen/wxGridCellNumberEditor.erl
+++ b/lib/wx/src/gen/wxGridCellNumberEditor.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridcellnumbereditor.html">wxGridCellNumberEditor</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridCellTextEditor}
%% <br />{@link wxGridCellEditor}
%% </p>
@@ -74,12 +74,12 @@ setParameters(#wx_ref{type=ThisT,ref=ThisRef},Params)
%% @spec (This::wxGridCellNumberEditor()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridCellNumberEditor),
wxe_util:destroy(?wxGridCellNumberEditor_destroy,Obj),
ok.
- %% From wxGridCellTextEditor
- %% From wxGridCellEditor
+ %% From wxGridCellTextEditor
+ %% From wxGridCellEditor
%% @hidden
handleReturn(This,Event) -> wxGridCellEditor:handleReturn(This,Event).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridCellNumberRenderer.erl b/lib/wx/src/gen/wxGridCellNumberRenderer.erl
index cf90987dc9..651057bb4b 100644
--- a/lib/wx/src/gen/wxGridCellNumberRenderer.erl
+++ b/lib/wx/src/gen/wxGridCellNumberRenderer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridcellnumberrenderer.html">wxGridCellNumberRenderer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridCellStringRenderer}
%% <br />{@link wxGridCellRenderer}
%% </p>
@@ -46,12 +46,12 @@ new() ->
%% @spec (This::wxGridCellNumberRenderer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridCellNumberRenderer),
wxe_util:destroy(?wxGridCellNumberRenderer_destroy,Obj),
ok.
- %% From wxGridCellStringRenderer
- %% From wxGridCellRenderer
+ %% From wxGridCellStringRenderer
+ %% From wxGridCellRenderer
%% @hidden
getBestSize(This,Grid,Attr,Dc,Row,Col) -> wxGridCellRenderer:getBestSize(This,Grid,Attr,Dc,Row,Col).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridCellRenderer.erl b/lib/wx/src/gen/wxGridCellRenderer.erl
index c7040049a4..d9520c478f 100644
--- a/lib/wx/src/gen/wxGridCellRenderer.erl
+++ b/lib/wx/src/gen/wxGridCellRenderer.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxGridCellStringRenderer.erl b/lib/wx/src/gen/wxGridCellStringRenderer.erl
index 1c37cf4d6c..28a79e0453 100644
--- a/lib/wx/src/gen/wxGridCellStringRenderer.erl
+++ b/lib/wx/src/gen/wxGridCellStringRenderer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridcellstringrenderer.html">wxGridCellStringRenderer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridCellRenderer}
%% </p>
%% @type wxGridCellStringRenderer(). An object reference, The representation is internal
@@ -44,11 +44,11 @@ new() ->
%% @spec (This::wxGridCellStringRenderer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridCellStringRenderer),
wxe_util:destroy(?wxGridCellStringRenderer_destroy,Obj),
ok.
- %% From wxGridCellRenderer
+ %% From wxGridCellRenderer
%% @hidden
getBestSize(This,Grid,Attr,Dc,Row,Col) -> wxGridCellRenderer:getBestSize(This,Grid,Attr,Dc,Row,Col).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridCellTextEditor.erl b/lib/wx/src/gen/wxGridCellTextEditor.erl
index f785d736f0..d9ab1dc107 100644
--- a/lib/wx/src/gen/wxGridCellTextEditor.erl
+++ b/lib/wx/src/gen/wxGridCellTextEditor.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridcelltexteditor.html">wxGridCellTextEditor</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxGridCellEditor}
%% </p>
%% @type wxGridCellTextEditor(). An object reference, The representation is internal
@@ -54,11 +54,11 @@ setParameters(#wx_ref{type=ThisT,ref=ThisRef},Params)
%% @spec (This::wxGridCellTextEditor()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridCellTextEditor),
wxe_util:destroy(?wxGridCellTextEditor_destroy,Obj),
ok.
- %% From wxGridCellEditor
+ %% From wxGridCellEditor
%% @hidden
handleReturn(This,Event) -> wxGridCellEditor:handleReturn(This,Event).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridEvent.erl b/lib/wx/src/gen/wxGridEvent.erl
index 4d89408c98..9b7e0012ca 100644
--- a/lib/wx/src/gen/wxGridEvent.erl
+++ b/lib/wx/src/gen/wxGridEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>grid_cell_left_click</em>, <em>grid_cell_right_click</em>, <em>grid_cell_left_dclick</em>, <em>grid_cell_right_dclick</em>, <em>grid_label_left_click</em>, <em>grid_label_right_click</em>, <em>grid_label_left_dclick</em>, <em>grid_label_right_dclick</em>, <em>grid_row_size</em>, <em>grid_col_size</em>, <em>grid_range_select</em>, <em>grid_cell_change</em>, <em>grid_select_cell</em>, <em>grid_editor_shown</em>, <em>grid_editor_hidden</em>, <em>grid_editor_created</em>, <em>grid_cell_begin_drag</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxGrid(). #wxGrid{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxNotifyEvent}
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
@@ -104,14 +104,14 @@ shiftDown(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxGridEvent_ShiftDown,
<<ThisRef:32/?UI>>).
- %% From wxNotifyEvent
+ %% From wxNotifyEvent
%% @hidden
veto(This) -> wxNotifyEvent:veto(This).
%% @hidden
isAllowed(This) -> wxNotifyEvent:isAllowed(This).
%% @hidden
allow(This) -> wxNotifyEvent:allow(This).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -130,7 +130,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxGridSizer.erl b/lib/wx/src/gen/wxGridSizer.erl
index bcc62be429..7b62774347 100644
--- a/lib/wx/src/gen/wxGridSizer.erl
+++ b/lib/wx/src/gen/wxGridSizer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxgridsizer.html">wxGridSizer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxSizer}
%% </p>
%% @type wxGridSizer(). An object reference, The representation is internal
@@ -132,11 +132,11 @@ setVGap(#wx_ref{type=ThisT,ref=ThisRef},Gap)
%% @spec (This::wxGridSizer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxGridSizer),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxSizer
+ %% From wxSizer
%% @hidden
show(This,Index, Options) -> wxSizer:show(This,Index, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxHelpEvent.erl b/lib/wx/src/gen/wxHelpEvent.erl
index 4785ff10de..ef3c666ab7 100644
--- a/lib/wx/src/gen/wxHelpEvent.erl
+++ b/lib/wx/src/gen/wxHelpEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>help</em>, <em>detailed_help</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxHelp(). #wxHelp{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxHelpEvent(). An object reference, The representation is internal
@@ -75,7 +75,7 @@ setPosition(#wx_ref{type=ThisT,ref=ThisRef},{PosX,PosY})
wxe_util:cast(?wxHelpEvent_SetPosition,
<<ThisRef:32/?UI,PosX:32/?UI,PosY:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxHtmlEasyPrinting.erl b/lib/wx/src/gen/wxHtmlEasyPrinting.erl
index a782bd71c3..15d673169a 100644
--- a/lib/wx/src/gen/wxHtmlEasyPrinting.erl
+++ b/lib/wx/src/gen/wxHtmlEasyPrinting.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -190,7 +190,7 @@ setFooter(#wx_ref{type=ThisT,ref=ThisRef},Footer, Options)
%% @spec (This::wxHtmlEasyPrinting()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxHtmlEasyPrinting),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxHtmlLinkEvent.erl b/lib/wx/src/gen/wxHtmlLinkEvent.erl
index 04eccad939..166493ccbc 100644
--- a/lib/wx/src/gen/wxHtmlLinkEvent.erl
+++ b/lib/wx/src/gen/wxHtmlLinkEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_html_link_clicked</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxHtmlLink(). #wxHtmlLink{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -52,7 +52,7 @@ getLinkInfo(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxHtmlLinkEvent_GetLinkInfo,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -71,7 +71,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxHtmlWindow.erl b/lib/wx/src/gen/wxHtmlWindow.erl
index 6f43c17890..ba8278ff56 100644
--- a/lib/wx/src/gen/wxHtmlWindow.erl
+++ b/lib/wx/src/gen/wxHtmlWindow.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxhtmlwindow.html">wxHtmlWindow</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxScrolledWindow}
%% <br />{@link wxPanel}
%% <br />{@link wxWindow}
@@ -297,11 +297,11 @@ toText(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxHtmlWindow()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxHtmlWindow),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxScrolledWindow
+ %% From wxScrolledWindow
%% @hidden
setTargetWindow(This,Target) -> wxScrolledWindow:setTargetWindow(This,Target).
%% @hidden
@@ -330,10 +330,10 @@ calcUnscrolledPosition(This,Pt) -> wxScrolledWindow:calcUnscrolledPosition(This,
calcScrolledPosition(This,X,Y) -> wxScrolledWindow:calcScrolledPosition(This,X,Y).
%% @hidden
calcScrolledPosition(This,Pt) -> wxScrolledWindow:calcScrolledPosition(This,Pt).
- %% From wxPanel
+ %% From wxPanel
%% @hidden
initDialog(This) -> wxPanel:initDialog(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -682,7 +682,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxIcon.erl b/lib/wx/src/gen/wxIcon.erl
index d95fad1458..5b224c00b6 100644
--- a/lib/wx/src/gen/wxIcon.erl
+++ b/lib/wx/src/gen/wxIcon.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxicon.html">wxIcon</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxBitmap}
%% </p>
%% @type wxIcon(). An object reference, The representation is internal
@@ -47,7 +47,7 @@ new() ->
%% @spec (X::string()|term()) -> wxIcon()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxicon.html#wxiconwxicon">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Filename::string()) -> new(Filename, []) </c></p>
%% <p><c>
@@ -88,11 +88,11 @@ copyFromBitmap(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=BmpT,ref=BmpRef}) ->
%% @spec (This::wxIcon()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxIcon),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxBitmap
+ %% From wxBitmap
%% @hidden
setWidth(This,Width) -> wxBitmap:setWidth(This,Width).
%% @hidden
diff --git a/lib/wx/src/gen/wxIconBundle.erl b/lib/wx/src/gen/wxIconBundle.erl
index be600c69da..ee133cbcb9 100644
--- a/lib/wx/src/gen/wxIconBundle.erl
+++ b/lib/wx/src/gen/wxIconBundle.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -83,7 +83,7 @@ getIcon(This)
%% @spec (This::wxIconBundle(),X::term()) -> wxIcon:wxIcon()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxiconbundle.html#wxiconbundlegeticon">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% getIcon(This::wxIconBundle(), [Option]) -> wxIcon:wxIcon() </c>
%%<br /> Option = {size, integer()}
@@ -107,7 +107,7 @@ getIcon(#wx_ref{type=ThisT,ref=ThisRef},{SizeW,SizeH})
%% @spec (This::wxIconBundle()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxIconBundle),
wxe_util:destroy(?wxIconBundle_destruct,Obj),
ok.
diff --git a/lib/wx/src/gen/wxIconizeEvent.erl b/lib/wx/src/gen/wxIconizeEvent.erl
index 09f8843b74..647d8019a1 100644
--- a/lib/wx/src/gen/wxIconizeEvent.erl
+++ b/lib/wx/src/gen/wxIconizeEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>iconize</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxIconize(). #wxIconize{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxIconizeEvent(). An object reference, The representation is internal
@@ -48,7 +48,7 @@ iconized(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxIconizeEvent_Iconized,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxIdleEvent.erl b/lib/wx/src/gen/wxIdleEvent.erl
index e205eff522..87ed7e0cd2 100644
--- a/lib/wx/src/gen/wxIdleEvent.erl
+++ b/lib/wx/src/gen/wxIdleEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>idle</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxIdle(). #wxIdle{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxIdleEvent(). An object reference, The representation is internal
@@ -90,7 +90,7 @@ setMode(Mode)
wxe_util:cast(?wxIdleEvent_SetMode,
<<Mode:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxImage.erl b/lib/wx/src/gen/wxImage.erl
index f90ae09707..5fe105fbb2 100644
--- a/lib/wx/src/gen/wxImage.erl
+++ b/lib/wx/src/gen/wxImage.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -64,7 +64,7 @@ new(Name)
%% @spec (X::integer()|string(),X::integer()|term()) -> wxImage()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wximage.html#wximagewximage">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Width::integer(), Height::integer()) -> new(Width,Height, []) </c></p>
%% <p><c>
@@ -87,7 +87,7 @@ new(Name, Options)
%% @spec (X::integer()|string(),X::integer()|string(),X::binary()|term()) -> wxImage()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wximage.html#wximagewximage">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Width::integer(), Height::integer(), Data::binary()) -> new(Width,Height,Data, []) </c></p>
%% <p><c>
@@ -121,7 +121,7 @@ new(Name,Mimetype, Options)
%% @spec (Width::integer(),Height::integer(),Data::binary(),X::binary()|term()) -> wxImage()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wximage.html#wximagewximage">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Width::integer(), Height::integer(), Data::binary(), Alpha::binary()) -> new(Width,Height,Data,Alpha, []) </c></p>
%% <p><c>
@@ -239,7 +239,7 @@ create(This,Width,Height)
%% @spec (This::wxImage(),Width::integer(),Height::integer(),X::binary()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wximage.html#wximagecreate">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% create(This::wxImage(), Width::integer(), Height::integer(), Data::binary()) -> create(This,Width,Height,Data, []) </c></p>
%% <p><c>
@@ -261,7 +261,7 @@ create(#wx_ref{type=ThisT,ref=ThisRef},Width,Height, Options)
%% @spec (This::wxImage(),Width::integer(),Height::integer(),Data::binary(),X::binary()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wximage.html#wximagecreate">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% create(This::wxImage(), Width::integer(), Height::integer(), Data::binary(), Alpha::binary()) -> create(This,Width,Height,Data,Alpha, []) </c></p>
%% <p><c>
@@ -691,7 +691,7 @@ saveFile(#wx_ref{type=ThisT,ref=ThisRef},Name)
%% @spec (This::wxImage(),Name::string(),X::integer()|string()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wximage.html#wximagesavefile">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% saveFile(This::wxImage(), Name::string(), Type::integer()) -> bool() </c>
%% </p>
@@ -852,7 +852,7 @@ setMaskFromImage(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=MaskT,ref=MaskRef}
%% @spec (This::wxImage(),Name::string(),X::integer()|string()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wximage.html#wximagesetoption">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setOption(This::wxImage(), Name::string(), Value::integer()) -> ok </c>
%% </p>
@@ -899,7 +899,7 @@ setRGB(#wx_ref{type=ThisT,ref=ThisRef},X,Y,R,G,B)
%% @spec (This::wxImage()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxImage),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxImageList.erl b/lib/wx/src/gen/wxImageList.erl
index b20dfda315..dbd51bc47b 100644
--- a/lib/wx/src/gen/wxImageList.erl
+++ b/lib/wx/src/gen/wxImageList.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -68,7 +68,7 @@ add(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=BitmapT,ref=BitmapRef}) ->
%% @spec (This::wxImageList(),Bitmap::wxBitmap:wxBitmap(),X::term()) -> integer()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wximagelist.html#wximagelistadd">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% add(This::wxImageList(), Bitmap::wxBitmap:wxBitmap(), Mask::wxBitmap:wxBitmap()) -> integer() </c>
%% </p>
@@ -194,7 +194,7 @@ replace(#wx_ref{type=ThisT,ref=ThisRef},Index,#wx_ref{type=BitmapT,ref=BitmapRef
%% @spec (This::wxImageList()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxImageList),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxJoystickEvent.erl b/lib/wx/src/gen/wxJoystickEvent.erl
index b07cbd6d9a..2c2d7f3968 100644
--- a/lib/wx/src/gen/wxJoystickEvent.erl
+++ b/lib/wx/src/gen/wxJoystickEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>joy_button_down</em>, <em>joy_button_up</em>, <em>joy_move</em>, <em>joy_zmove</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxJoystick(). #wxJoystick{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxJoystickEvent(). An object reference, The representation is internal
@@ -153,7 +153,7 @@ isZMove(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxJoystickEvent_IsZMove,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxKeyEvent.erl b/lib/wx/src/gen/wxKeyEvent.erl
index 0e92402435..00d1e2033a 100644
--- a/lib/wx/src/gen/wxKeyEvent.erl
+++ b/lib/wx/src/gen/wxKeyEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>char</em>, <em>char_hook</em>, <em>key_down</em>, <em>key_up</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxKey(). #wxKey{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxKeyEvent(). An object reference, The representation is internal
@@ -141,7 +141,7 @@ shiftDown(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxKeyEvent_ShiftDown,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxLayoutAlgorithm.erl b/lib/wx/src/gen/wxLayoutAlgorithm.erl
index 8ea920d80b..402d116338 100644
--- a/lib/wx/src/gen/wxLayoutAlgorithm.erl
+++ b/lib/wx/src/gen/wxLayoutAlgorithm.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -98,7 +98,7 @@ layoutWindow(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=FrameT,ref=FrameRef},
%% @spec (This::wxLayoutAlgorithm()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxLayoutAlgorithm),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxListBox.erl b/lib/wx/src/gen/wxListBox.erl
index 5fd9f329d0..731209c586 100644
--- a/lib/wx/src/gen/wxListBox.erl
+++ b/lib/wx/src/gen/wxListBox.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistbox.html">wxListBox</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControlWithItems}
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
@@ -184,7 +184,7 @@ hitTest(#wx_ref{type=ThisT,ref=ThisRef},{PointX,PointY})
%% @spec (This::wxListBox(),X::integer()|string()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistbox.html#wxlistboxsetfirstitem">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setFirstItem(This::wxListBox(), N::integer()) -> ok </c>
%% </p>
@@ -205,11 +205,11 @@ setFirstItem(#wx_ref{type=ThisT,ref=ThisRef},S)
%% @spec (This::wxListBox()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxListBox),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControlWithItems
+ %% From wxControlWithItems
%% @hidden
setStringSelection(This,S) -> wxControlWithItems:setStringSelection(This,S).
%% @hidden
@@ -250,12 +250,12 @@ appendStrings(This,Strings) -> wxControlWithItems:appendStrings(This,Strings).
append(This,Item,ClientData) -> wxControlWithItems:append(This,Item,ClientData).
%% @hidden
append(This,Item) -> wxControlWithItems:append(This,Item).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -602,7 +602,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxListCtrl.erl b/lib/wx/src/gen/wxListCtrl.erl
index 980415f577..9c4ba1e5a3 100644
--- a/lib/wx/src/gen/wxListCtrl.erl
+++ b/lib/wx/src/gen/wxListCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistctrl.html">wxListCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -32,16 +32,17 @@
-export([ sortItems/2 ,arrange/1,arrange/2,assignImageList/3,clearAll/1,create/2,
create/3,deleteAllItems/1,deleteColumn/2,deleteItem/2,destroy/1,editLabel/2,
ensureVisible/2,findItem/3,findItem/4,getColumn/3,getColumnCount/1,
- getColumnWidth/2,getCountPerPage/1,getImageList/2,getItem/2,getItemBackgroundColour/2,
- getItemCount/1,getItemData/2,getItemFont/2,getItemPosition/3,getItemRect/3,
- getItemRect/4,getItemSpacing/1,getItemState/3,getItemText/2,getItemTextColour/2,
- getNextItem/2,getNextItem/3,getSelectedItemCount/1,getTextColour/1,
- getTopItem/1,getViewRect/1,hitTest/2,insertColumn/3,insertColumn/4,
- insertItem/2,insertItem/3,insertItem/4,new/0,new/1,new/2,refreshItem/2,
- refreshItems/3,scrollList/3,setBackgroundColour/2,setColumn/3,setColumnWidth/3,
- setImageList/3,setItem/2,setItem/4,setItem/5,setItemBackgroundColour/3,
- setItemColumnImage/4,setItemCount/2,setItemData/3,setItemFont/3,setItemImage/3,
- setItemImage/4,setItemPosition/3,setItemState/4,setItemText/3,setItemTextColour/3,
+ getColumnWidth/2,getCountPerPage/1,getEditControl/1,getImageList/2,
+ getItem/2,getItemBackgroundColour/2,getItemCount/1,getItemData/2,
+ getItemFont/2,getItemPosition/3,getItemRect/3,getItemRect/4,getItemSpacing/1,
+ getItemState/3,getItemText/2,getItemTextColour/2,getNextItem/2,getNextItem/3,
+ getSelectedItemCount/1,getTextColour/1,getTopItem/1,getViewRect/1,
+ hitTest/2,insertColumn/3,insertColumn/4,insertItem/2,insertItem/3,
+ insertItem/4,new/0,new/1,new/2,refreshItem/2,refreshItems/3,scrollList/3,
+ setBackgroundColour/2,setColumn/3,setColumnWidth/3,setImageList/3,
+ setItem/2,setItem/4,setItem/5,setItemBackgroundColour/3,setItemColumnImage/4,
+ setItemCount/2,setItemData/3,setItemFont/3,setItemImage/3,setItemImage/4,
+ setItemPosition/3,setItemState/4,setItemText/3,setItemTextColour/3,
setSingleStyle/2,setSingleStyle/3,setTextColour/2,setWindowStyleFlag/2]).
%% inherited exports
@@ -220,7 +221,7 @@ findItem(This,Start,Str)
%% @spec (This::wxListCtrl(),Start::integer(),X::string()|term(),X::term()|integer()) -> integer()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistctrl.html#wxlistctrlfinditem">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% findItem(This::wxListCtrl(), Start::integer(), Str::string(), [Option]) -> integer() </c>
%%<br /> Option = {partial, bool()}
@@ -274,6 +275,13 @@ getCountPerPage(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxListCtrl_GetCountPerPage,
<<ThisRef:32/?UI>>).
+%% @spec (This::wxListCtrl()) -> wxTextCtrl:wxTextCtrl()
+%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistctrl.html#wxlistctrlgeteditcontrol">external documentation</a>.
+getEditControl(#wx_ref{type=ThisT,ref=ThisRef}) ->
+ ?CLASS(ThisT,wxListCtrl),
+ wxe_util:call(?wxListCtrl_GetEditControl,
+ <<ThisRef:32/?UI>>).
+
%% @spec (This::wxListCtrl(), Which::integer()) -> wxImageList:wxImageList()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistctrl.html#wxlistctrlgetimagelist">external documentation</a>.
getImageList(#wx_ref{type=ThisT,ref=ThisRef},Which)
@@ -435,7 +443,7 @@ hitTest(#wx_ref{type=ThisT,ref=ThisRef},{PointX,PointY})
%% @spec (This::wxListCtrl(),Col::integer(),X::string()|term()) -> integer()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistctrl.html#wxlistctrlinsertcolumn">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% insertColumn(This::wxListCtrl(), Col::integer(), Heading::string()) -> insertColumn(This,Col,Heading, []) </c></p>
%% <p><c>
@@ -476,7 +484,7 @@ insertItem(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=InfoT,ref=InfoRef}) ->
%% @spec (This::wxListCtrl(),Index::integer(),X::integer()|string()) -> integer()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistctrl.html#wxlistctrlinsertitem">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% insertItem(This::wxListCtrl(), Index::integer(), ImageIndex::integer()) -> integer() </c>
%% </p>
@@ -735,16 +743,16 @@ sortItems(#wx_ref{type=ThisT,ref=ThisRef}, SortCallBack)
wxe_util:call(?wxListCtrl_SortItems, <<ThisRef:32/?UI,SortId:32/?UI>>).
%% @spec (This::wxListCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxListCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -1087,7 +1095,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxListEvent.erl b/lib/wx/src/gen/wxListEvent.erl
index fd1cc381ed..74f9e6095c 100644
--- a/lib/wx/src/gen/wxListEvent.erl
+++ b/lib/wx/src/gen/wxListEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_list_begin_drag</em>, <em>command_list_begin_rdrag</em>, <em>command_list_begin_label_edit</em>, <em>command_list_end_label_edit</em>, <em>command_list_delete_item</em>, <em>command_list_delete_all_items</em>, <em>command_list_key_down</em>, <em>command_list_insert_item</em>, <em>command_list_col_click</em>, <em>command_list_col_right_click</em>, <em>command_list_col_begin_drag</em>, <em>command_list_col_dragging</em>, <em>command_list_col_end_drag</em>, <em>command_list_item_selected</em>, <em>command_list_item_deselected</em>, <em>command_list_item_right_click</em>, <em>command_list_item_middle_click</em>, <em>command_list_item_activated</em>, <em>command_list_item_focused</em>, <em>command_list_cache_hint</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxList(). #wxList{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxNotifyEvent}
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
@@ -139,14 +139,14 @@ isEditCancelled(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxListEvent_IsEditCancelled,
<<ThisRef:32/?UI>>).
- %% From wxNotifyEvent
+ %% From wxNotifyEvent
%% @hidden
veto(This) -> wxNotifyEvent:veto(This).
%% @hidden
isAllowed(This) -> wxNotifyEvent:isAllowed(This).
%% @hidden
allow(This) -> wxNotifyEvent:allow(This).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -165,7 +165,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxListItem.erl b/lib/wx/src/gen/wxListItem.erl
index 31d44b9601..326f674b28 100644
--- a/lib/wx/src/gen/wxListItem.erl
+++ b/lib/wx/src/gen/wxListItem.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -236,7 +236,7 @@ setWidth(#wx_ref{type=ThisT,ref=ThisRef},Width)
%% @spec (This::wxListItem()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxListItem),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxListView.erl b/lib/wx/src/gen/wxListView.erl
index a39a594a6a..95a233a562 100644
--- a/lib/wx/src/gen/wxListView.erl
+++ b/lib/wx/src/gen/wxListView.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistview.html">wxListView</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -148,12 +148,12 @@ setColumnImage(#wx_ref{type=ThisT,ref=ThisRef},Col,Image)
wxe_util:cast(?wxListView_SetColumnImage,
<<ThisRef:32/?UI,Col:32/?UI,Image:32/?UI>>).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -500,7 +500,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxListbook.erl b/lib/wx/src/gen/wxListbook.erl
index 385c50c316..b1f0e3d9a4 100644
--- a/lib/wx/src/gen/wxListbook.erl
+++ b/lib/wx/src/gen/wxListbook.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxlistbook.html">wxListbook</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -329,16 +329,16 @@ changeSelection(#wx_ref{type=ThisT,ref=ThisRef},N)
%% @spec (This::wxListbook()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxListbook),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -685,7 +685,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxLogNull.erl b/lib/wx/src/gen/wxLogNull.erl
index f33070b197..676fdf6d85 100644
--- a/lib/wx/src/gen/wxLogNull.erl
+++ b/lib/wx/src/gen/wxLogNull.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -40,7 +40,7 @@ new() ->
%% @spec (This::wxLogNull()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxLogNull),
wxe_util:destroy(?wxLogNull_destroy,Obj),
ok.
diff --git a/lib/wx/src/gen/wxMDIChildFrame.erl b/lib/wx/src/gen/wxMDIChildFrame.erl
index 3403ab6c9c..34edac4213 100644
--- a/lib/wx/src/gen/wxMDIChildFrame.erl
+++ b/lib/wx/src/gen/wxMDIChildFrame.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmdichildframe.html">wxMDIChildFrame</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxFrame}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -170,11 +170,11 @@ restore(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxMDIChildFrame()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMDIChildFrame),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxFrame
+ %% From wxFrame
%% @hidden
setToolBar(This,Toolbar) -> wxFrame:setToolBar(This,Toolbar).
%% @hidden
@@ -211,7 +211,7 @@ createToolBar(This) -> wxFrame:createToolBar(This).
createStatusBar(This, Options) -> wxFrame:createStatusBar(This, Options).
%% @hidden
createStatusBar(This) -> wxFrame:createStatusBar(This).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -254,7 +254,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -605,7 +605,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxMDIClientWindow.erl b/lib/wx/src/gen/wxMDIClientWindow.erl
index 6a6fbab4a7..79a11b4eb7 100644
--- a/lib/wx/src/gen/wxMDIClientWindow.erl
+++ b/lib/wx/src/gen/wxMDIClientWindow.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmdiclientwindow.html">wxMDIClientWindow</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
%% </p>
@@ -118,11 +118,11 @@ createClient(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ParentT,ref=ParentRef}
%% @spec (This::wxMDIClientWindow()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMDIClientWindow),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -473,7 +473,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxMDIParentFrame.erl b/lib/wx/src/gen/wxMDIParentFrame.erl
index 2638309ce7..db47e7ac74 100644
--- a/lib/wx/src/gen/wxMDIParentFrame.erl
+++ b/lib/wx/src/gen/wxMDIParentFrame.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmdiparentframe.html">wxMDIParentFrame</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxFrame}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -202,11 +202,11 @@ tile(#wx_ref{type=ThisT,ref=ThisRef}, Options)
%% @spec (This::wxMDIParentFrame()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMDIParentFrame),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxFrame
+ %% From wxFrame
%% @hidden
setToolBar(This,Toolbar) -> wxFrame:setToolBar(This,Toolbar).
%% @hidden
@@ -243,7 +243,7 @@ createToolBar(This) -> wxFrame:createToolBar(This).
createStatusBar(This, Options) -> wxFrame:createStatusBar(This, Options).
%% @hidden
createStatusBar(This) -> wxFrame:createStatusBar(This).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -290,7 +290,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -641,7 +641,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxMask.erl b/lib/wx/src/gen/wxMask.erl
index 881f8ba183..3b5d3340ea 100644
--- a/lib/wx/src/gen/wxMask.erl
+++ b/lib/wx/src/gen/wxMask.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -47,7 +47,7 @@ new(#wx_ref{type=BitmapT,ref=BitmapRef}) ->
%% @spec (Bitmap::wxBitmap:wxBitmap(),X::integer()|term()) -> wxMask()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmask.html#wxmaskwxmask">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Bitmap::wxBitmap:wxBitmap(), PaletteIndex::integer()) -> wxMask() </c>
%% </p>
@@ -75,7 +75,7 @@ create(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=BitmapT,ref=BitmapRef}) ->
%% @spec (This::wxMask(),Bitmap::wxBitmap:wxBitmap(),X::integer()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmask.html#wxmaskcreate">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% create(This::wxMask(), Bitmap::wxBitmap:wxBitmap(), PaletteIndex::integer()) -> bool() </c>
%% </p>
@@ -97,7 +97,7 @@ create(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=BitmapT,ref=BitmapRef},Colou
%% @spec (This::wxMask()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMask),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxMaximizeEvent.erl b/lib/wx/src/gen/wxMaximizeEvent.erl
index 4ad1be3de0..6dd371908b 100644
--- a/lib/wx/src/gen/wxMaximizeEvent.erl
+++ b/lib/wx/src/gen/wxMaximizeEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>maximize</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxMaximize(). #wxMaximize{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxMaximizeEvent(). An object reference, The representation is internal
@@ -41,7 +41,7 @@
parent_class(wxEvent) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxMemoryDC.erl b/lib/wx/src/gen/wxMemoryDC.erl
index 28471cc8d3..d17ebba4b7 100644
--- a/lib/wx/src/gen/wxMemoryDC.erl
+++ b/lib/wx/src/gen/wxMemoryDC.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmemorydc.html">wxMemoryDC</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDC}
%% </p>
%% @type wxMemoryDC(). An object reference, The representation is internal
@@ -92,11 +92,11 @@ selectObjectAsSource(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=BmpT,ref=BmpRe
%% @spec (This::wxMemoryDC()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMemoryDC),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDC
+ %% From wxDC
%% @hidden
startPage(This) -> wxDC:startPage(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxMenu.erl b/lib/wx/src/gen/wxMenu.erl
index bc4fef6f18..615a845d11 100644
--- a/lib/wx/src/gen/wxMenu.erl
+++ b/lib/wx/src/gen/wxMenu.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html">wxMenu</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvtHandler}
%% </p>
%% @type wxMenu(). An object reference, The representation is internal
@@ -88,7 +88,7 @@ append(This,Itemid,Text)
%% @spec (This::wxMenu(),Itemid::integer(),Text::string(),X::wxMenu()|term()) -> wxMenuItem:wxMenuItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenuappend">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% append(This::wxMenu(), Itemid::integer(), Text::string(), Submenu::wxMenu()) -> append(This,Itemid,Text,Submenu, []) </c></p>
%% <p><c>
@@ -114,7 +114,7 @@ append(#wx_ref{type=ThisT,ref=ThisRef},Itemid,Text, Options)
%% @spec (This::wxMenu(),Itemid::integer(),Text::string(),X::string()|wxMenu(),X::bool()|term()) -> ok|wxMenuItem:wxMenuItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenuappend">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% append(This::wxMenu(), Itemid::integer(), Text::string(), Help::string(), IsCheckable::bool()) -> ok </c>
%% </p>
@@ -202,7 +202,7 @@ check(#wx_ref{type=ThisT,ref=ThisRef},Itemid,Check)
%% @spec (This::wxMenu(),X::integer()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenudelete">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% delete(This::wxMenu(), Itemid::integer()) -> bool() </c>
%% </p>
@@ -222,7 +222,7 @@ delete(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ItemT,ref=ItemRef}) ->
%% @spec (This::wxMenu(),X::integer()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenudestroy">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% 'Destroy'(This::wxMenu(), Itemid::integer()) -> bool() </c>
%% </p>
@@ -250,7 +250,7 @@ enable(#wx_ref{type=ThisT,ref=ThisRef},Itemid,Enable)
%% @spec (This::wxMenu(),X::integer()|string()) -> wxMenuItem:wxMenuItem()|integer()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenufinditem">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% findItem(This::wxMenu(), Itemid::integer()) -> wxMenuItem:wxMenuItem() </c>
%% </p>
@@ -316,7 +316,7 @@ getTitle(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxMenu(),Pos::integer(),X::integer()|term()) -> wxMenuItem:wxMenuItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenuinsert">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% insert(This::wxMenu(), Pos::integer(), Itemid::integer()) -> insert(This,Pos,Itemid, []) </c></p>
%% <p><c>
@@ -357,7 +357,7 @@ insert(This,Pos,Itemid,Text,Submenu)
%% @spec (This::wxMenu(),Pos::integer(),Itemid::integer(),Text::string(),X::string()|wxMenu(),X::bool()|term()) -> ok|wxMenuItem:wxMenuItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenuinsert">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% insert(This::wxMenu(), Pos::integer(), Itemid::integer(), Text::string(), Help::string(), IsCheckable::bool()) -> ok </c>
%% </p>
@@ -447,7 +447,7 @@ isEnabled(#wx_ref{type=ThisT,ref=ThisRef},Itemid)
%% @spec (This::wxMenu(),X::integer()|term()) -> wxMenuItem:wxMenuItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenuprepend">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% prepend(This::wxMenu(), Itemid::integer()) -> prepend(This,Itemid, []) </c></p>
%% <p><c>
@@ -487,7 +487,7 @@ prepend(This,Itemid,Text,Submenu)
%% @spec (This::wxMenu(),Itemid::integer(),Text::string(),X::string()|wxMenu(),X::bool()|term()) -> ok|wxMenuItem:wxMenuItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenuprepend">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% prepend(This::wxMenu(), Itemid::integer(), Text::string(), Help::string(), IsCheckable::bool()) -> ok </c>
%% </p>
@@ -560,7 +560,7 @@ prependSeparator(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxMenu(),X::integer()|term()) -> wxMenuItem:wxMenuItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenu.html#wxmenuremove">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% remove(This::wxMenu(), Itemid::integer()) -> wxMenuItem:wxMenuItem() </c>
%% </p>
@@ -607,11 +607,11 @@ setTitle(#wx_ref{type=ThisT,ref=ThisRef},Title)
%% @spec (This::wxMenu()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMenu),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxMenuBar.erl b/lib/wx/src/gen/wxMenuBar.erl
index 28dab451b8..4ed1b2cbe6 100644
--- a/lib/wx/src/gen/wxMenuBar.erl
+++ b/lib/wx/src/gen/wxMenuBar.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmenubar.html">wxMenuBar</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
%% </p>
@@ -304,11 +304,11 @@ setLabelTop(#wx_ref{type=ThisT,ref=ThisRef},Pos,Label)
%% @spec (This::wxMenuBar()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMenuBar),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -649,7 +649,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxMenuEvent.erl b/lib/wx/src/gen/wxMenuEvent.erl
index 77ce7c04b7..fe368e679a 100644
--- a/lib/wx/src/gen/wxMenuEvent.erl
+++ b/lib/wx/src/gen/wxMenuEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>menu_open</em>, <em>menu_close</em>, <em>menu_highlight</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxMenu(). #wxMenu{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxMenuEvent(). An object reference, The representation is internal
@@ -62,7 +62,7 @@ isPopup(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxMenuEvent_IsPopup,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxMenuItem.erl b/lib/wx/src/gen/wxMenuItem.erl
index 2d9fd15d86..e2bbe681c5 100644
--- a/lib/wx/src/gen/wxMenuItem.erl
+++ b/lib/wx/src/gen/wxMenuItem.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -239,7 +239,7 @@ setText(#wx_ref{type=ThisT,ref=ThisRef},Str)
%% @spec (This::wxMenuItem()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMenuItem),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxMessageDialog.erl b/lib/wx/src/gen/wxMessageDialog.erl
index eab41919ba..916b201d3f 100644
--- a/lib/wx/src/gen/wxMessageDialog.erl
+++ b/lib/wx/src/gen/wxMessageDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmessagedialog.html">wxMessageDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -107,11 +107,11 @@ new(#wx_ref{type=ParentT,ref=ParentRef},Message, Options)
%% @spec (This::wxMessageDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMessageDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -134,7 +134,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -181,7 +181,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -528,7 +528,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxMiniFrame.erl b/lib/wx/src/gen/wxMiniFrame.erl
index 3e7799a66f..b86f1d7cfa 100644
--- a/lib/wx/src/gen/wxMiniFrame.erl
+++ b/lib/wx/src/gen/wxMiniFrame.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxminiframe.html">wxMiniFrame</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxFrame}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -138,11 +138,11 @@ create(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ParentT,ref=ParentRef},Id,Ti
%% @spec (This::wxMiniFrame()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMiniFrame),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxFrame
+ %% From wxFrame
%% @hidden
setToolBar(This,Toolbar) -> wxFrame:setToolBar(This,Toolbar).
%% @hidden
@@ -179,7 +179,7 @@ createToolBar(This) -> wxFrame:createToolBar(This).
createStatusBar(This, Options) -> wxFrame:createStatusBar(This, Options).
%% @hidden
createStatusBar(This) -> wxFrame:createStatusBar(This).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -226,7 +226,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -577,7 +577,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxMirrorDC.erl b/lib/wx/src/gen/wxMirrorDC.erl
index 9300f7a31e..c218bd7e72 100644
--- a/lib/wx/src/gen/wxMirrorDC.erl
+++ b/lib/wx/src/gen/wxMirrorDC.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmirrordc.html">wxMirrorDC</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDC}
%% </p>
%% @type wxMirrorDC(). An object reference, The representation is internal
@@ -66,11 +66,11 @@ new(#wx_ref{type=DcT,ref=DcRef},Mirror)
%% @spec (This::wxMirrorDC()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMirrorDC),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDC
+ %% From wxDC
%% @hidden
startPage(This) -> wxDC:startPage(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxMouseCaptureChangedEvent.erl b/lib/wx/src/gen/wxMouseCaptureChangedEvent.erl
index 629dcde795..cb921bf2df 100644
--- a/lib/wx/src/gen/wxMouseCaptureChangedEvent.erl
+++ b/lib/wx/src/gen/wxMouseCaptureChangedEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>mouse_capture_changed</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxMouseCaptureChanged(). #wxMouseCaptureChanged{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxMouseCaptureChangedEvent(). An object reference, The representation is internal
@@ -48,7 +48,7 @@ getCapturedWindow(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxMouseCaptureChangedEvent_GetCapturedWindow,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxMouseEvent.erl b/lib/wx/src/gen/wxMouseEvent.erl
index 0772e99b0d..fed9a33db7 100644
--- a/lib/wx/src/gen/wxMouseEvent.erl
+++ b/lib/wx/src/gen/wxMouseEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>left_down</em>, <em>left_up</em>, <em>middle_down</em>, <em>middle_up</em>, <em>right_down</em>, <em>right_up</em>, <em>motion</em>, <em>enter_window</em>, <em>leave_window</em>, <em>left_dclick</em>, <em>middle_dclick</em>, <em>right_dclick</em>, <em>mousewheel</em>, <em>nc_left_down</em>, <em>nc_left_up</em>, <em>nc_middle_down</em>, <em>nc_middle_up</em>, <em>nc_right_down</em>, <em>nc_right_up</em>, <em>nc_motion</em>, <em>nc_enter_window</em>, <em>nc_leave_window</em>, <em>nc_left_dclick</em>, <em>nc_middle_dclick</em>, <em>nc_right_dclick</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxMouse(). #wxMouse{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxMouseEvent(). An object reference, The representation is internal
@@ -327,7 +327,7 @@ shiftDown(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxMouseEvent_ShiftDown,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxMoveEvent.erl b/lib/wx/src/gen/wxMoveEvent.erl
index 17a33ff3ed..80bf59074a 100644
--- a/lib/wx/src/gen/wxMoveEvent.erl
+++ b/lib/wx/src/gen/wxMoveEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>move</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxMove(). #wxMove{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxMoveEvent(). An object reference, The representation is internal
@@ -48,7 +48,7 @@ getPosition(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxMoveEvent_GetPosition,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxMultiChoiceDialog.erl b/lib/wx/src/gen/wxMultiChoiceDialog.erl
index 98690654e6..e69889a1e0 100644
--- a/lib/wx/src/gen/wxMultiChoiceDialog.erl
+++ b/lib/wx/src/gen/wxMultiChoiceDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxmultichoicedialog.html">wxMultiChoiceDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -131,11 +131,11 @@ setSelections(#wx_ref{type=ThisT,ref=ThisRef},Selections)
%% @spec (This::wxMultiChoiceDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxMultiChoiceDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -158,7 +158,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -205,7 +205,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -552,7 +552,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxNavigationKeyEvent.erl b/lib/wx/src/gen/wxNavigationKeyEvent.erl
index 9a74a75c51..7cf7dff9aa 100644
--- a/lib/wx/src/gen/wxNavigationKeyEvent.erl
+++ b/lib/wx/src/gen/wxNavigationKeyEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>navigation_key</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxNavigationKey(). #wxNavigationKey{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxNavigationKeyEvent(). An object reference, The representation is internal
@@ -102,7 +102,7 @@ setCurrentFocus(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=WinT,ref=WinRef}) -
wxe_util:cast(?wxNavigationKeyEvent_SetCurrentFocus,
<<ThisRef:32/?UI,WinRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxNcPaintEvent.erl b/lib/wx/src/gen/wxNcPaintEvent.erl
index 22e00d337d..b45420a2fc 100644
--- a/lib/wx/src/gen/wxNcPaintEvent.erl
+++ b/lib/wx/src/gen/wxNcPaintEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>nc_paint</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxNcPaint(). #wxNcPaint{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxNcPaintEvent(). An object reference, The representation is internal
@@ -41,7 +41,7 @@
parent_class(wxEvent) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxNotebook.erl b/lib/wx/src/gen/wxNotebook.erl
index 93cc741036..da543d7ac6 100644
--- a/lib/wx/src/gen/wxNotebook.erl
+++ b/lib/wx/src/gen/wxNotebook.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxnotebook.html">wxNotebook</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -351,16 +351,16 @@ changeSelection(#wx_ref{type=ThisT,ref=ThisRef},NPage)
%% @spec (This::wxNotebook()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxNotebook),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -707,7 +707,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxNotebookEvent.erl b/lib/wx/src/gen/wxNotebookEvent.erl
index 4664f85527..6be826bdd2 100644
--- a/lib/wx/src/gen/wxNotebookEvent.erl
+++ b/lib/wx/src/gen/wxNotebookEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_notebook_page_changed</em>, <em>command_notebook_page_changing</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxNotebook(). #wxNotebook{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxNotifyEvent}
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
@@ -77,14 +77,14 @@ setSelection(#wx_ref{type=ThisT,ref=ThisRef},NSel)
wxe_util:cast(?wxNotebookEvent_SetSelection,
<<ThisRef:32/?UI,NSel:32/?UI>>).
- %% From wxNotifyEvent
+ %% From wxNotifyEvent
%% @hidden
veto(This) -> wxNotifyEvent:veto(This).
%% @hidden
isAllowed(This) -> wxNotifyEvent:isAllowed(This).
%% @hidden
allow(This) -> wxNotifyEvent:allow(This).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -101,7 +101,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxNotifyEvent.erl b/lib/wx/src/gen/wxNotifyEvent.erl
index 4e463aa7e0..b2a6da16f0 100644
--- a/lib/wx/src/gen/wxNotifyEvent.erl
+++ b/lib/wx/src/gen/wxNotifyEvent.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxnotifyevent.html">wxNotifyEvent</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -62,7 +62,7 @@ veto(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:cast(?wxNotifyEvent_Veto,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -81,7 +81,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxPageSetupDialog.erl b/lib/wx/src/gen/wxPageSetupDialog.erl
index 73eac44ab5..2c11863a21 100644
--- a/lib/wx/src/gen/wxPageSetupDialog.erl
+++ b/lib/wx/src/gen/wxPageSetupDialog.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -66,7 +66,7 @@ showModal(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxPageSetupDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPageSetupDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxPageSetupDialogData.erl b/lib/wx/src/gen/wxPageSetupDialogData.erl
index 576be819a2..672ec7c083 100644
--- a/lib/wx/src/gen/wxPageSetupDialogData.erl
+++ b/lib/wx/src/gen/wxPageSetupDialogData.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -260,7 +260,7 @@ setPaperId(#wx_ref{type=ThisT,ref=ThisRef},Id)
%% @spec (This::wxPageSetupDialogData(),X::integer()|term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxpagesetupdialogdata.html#wxpagesetupdialogdatasetpapersize">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setPaperSize(This::wxPageSetupDialogData(), Id::integer()) -> ok </c>
%% </p>
@@ -288,7 +288,7 @@ setPrintData(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=PrintDataT,ref=PrintDa
%% @spec (This::wxPageSetupDialogData()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPageSetupDialogData),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxPaintDC.erl b/lib/wx/src/gen/wxPaintDC.erl
index ea4e847f69..47d5947097 100644
--- a/lib/wx/src/gen/wxPaintDC.erl
+++ b/lib/wx/src/gen/wxPaintDC.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxpaintdc.html">wxPaintDC</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindowDC}
%% <br />{@link wxDC}
%% </p>
@@ -73,12 +73,12 @@ new(#wx_ref{type=WinT,ref=WinRef}) ->
%% @spec (This::wxPaintDC()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPaintDC),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxWindowDC
- %% From wxDC
+ %% From wxWindowDC
+ %% From wxDC
%% @hidden
startPage(This) -> wxDC:startPage(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxPaintEvent.erl b/lib/wx/src/gen/wxPaintEvent.erl
index 9f6b84890b..2603e61623 100644
--- a/lib/wx/src/gen/wxPaintEvent.erl
+++ b/lib/wx/src/gen/wxPaintEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>paint</em>, <em>paint_icon</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxPaint(). #wxPaint{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxPaintEvent(). An object reference, The representation is internal
@@ -41,7 +41,7 @@
parent_class(wxEvent) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxPalette.erl b/lib/wx/src/gen/wxPalette.erl
index 499e6f47ce..ee1fd0016d 100644
--- a/lib/wx/src/gen/wxPalette.erl
+++ b/lib/wx/src/gen/wxPalette.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -92,7 +92,7 @@ isOk(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxPalette()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPalette),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxPaletteChangedEvent.erl b/lib/wx/src/gen/wxPaletteChangedEvent.erl
index 147389709c..1831bf1375 100644
--- a/lib/wx/src/gen/wxPaletteChangedEvent.erl
+++ b/lib/wx/src/gen/wxPaletteChangedEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>palette_changed</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxPaletteChanged(). #wxPaletteChanged{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxPaletteChangedEvent(). An object reference, The representation is internal
@@ -56,7 +56,7 @@ getChangedWindow(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxPaletteChangedEvent_GetChangedWindow,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxPanel.erl b/lib/wx/src/gen/wxPanel.erl
index ca18caf4da..55eaa9f404 100644
--- a/lib/wx/src/gen/wxPanel.erl
+++ b/lib/wx/src/gen/wxPanel.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxpanel.html">wxPanel</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
%% </p>
@@ -127,11 +127,11 @@ initDialog(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxPanel()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPanel),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -480,7 +480,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxPasswordEntryDialog.erl b/lib/wx/src/gen/wxPasswordEntryDialog.erl
index 70728355e9..f79734ab46 100644
--- a/lib/wx/src/gen/wxPasswordEntryDialog.erl
+++ b/lib/wx/src/gen/wxPasswordEntryDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxpasswordentrydialog.html">wxPasswordEntryDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxTextEntryDialog}
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
@@ -111,16 +111,16 @@ new(#wx_ref{type=ParentT,ref=ParentRef},Message, Options)
%% @spec (This::wxPasswordEntryDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPasswordEntryDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxTextEntryDialog
+ %% From wxTextEntryDialog
%% @hidden
setValue(This,Val) -> wxTextEntryDialog:setValue(This,Val).
%% @hidden
getValue(This) -> wxTextEntryDialog:getValue(This).
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -143,7 +143,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -190,7 +190,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -537,7 +537,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxPen.erl b/lib/wx/src/gen/wxPen.erl
index cf159f559e..ada95b0ee3 100644
--- a/lib/wx/src/gen/wxPen.erl
+++ b/lib/wx/src/gen/wxPen.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -150,7 +150,7 @@ setWidth(#wx_ref{type=ThisT,ref=ThisRef},Width)
%% @spec (This::wxPen()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPen),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxPickerBase.erl b/lib/wx/src/gen/wxPickerBase.erl
index 173f31faf0..e60ab4f9d8 100644
--- a/lib/wx/src/gen/wxPickerBase.erl
+++ b/lib/wx/src/gen/wxPickerBase.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxpickerbase.html">wxPickerBase</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -187,12 +187,12 @@ isPickerCtrlGrowable(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxPickerBase_IsPickerCtrlGrowable,
<<ThisRef:32/?UI>>).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -539,7 +539,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxPostScriptDC.erl b/lib/wx/src/gen/wxPostScriptDC.erl
index 6e67abdd08..df3edfade9 100644
--- a/lib/wx/src/gen/wxPostScriptDC.erl
+++ b/lib/wx/src/gen/wxPostScriptDC.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxpostscriptdc.html">wxPostScriptDC</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDC}
%% </p>
%% @type wxPostScriptDC(). An object reference, The representation is internal
@@ -84,11 +84,11 @@ getResolution() ->
%% @spec (This::wxPostScriptDC()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPostScriptDC),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDC
+ %% From wxDC
%% @hidden
startPage(This) -> wxDC:startPage(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxPreviewCanvas.erl b/lib/wx/src/gen/wxPreviewCanvas.erl
index 4f52e2015f..d33aeedb70 100644
--- a/lib/wx/src/gen/wxPreviewCanvas.erl
+++ b/lib/wx/src/gen/wxPreviewCanvas.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxpreviewcanvas.html">wxPreviewCanvas</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxScrolledWindow}
%% <br />{@link wxPanel}
%% <br />{@link wxWindow}
@@ -81,7 +81,7 @@ parent_class(wxWindow) -> true;
parent_class(wxEvtHandler) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxScrolledWindow
+ %% From wxScrolledWindow
%% @hidden
setTargetWindow(This,Target) -> wxScrolledWindow:setTargetWindow(This,Target).
%% @hidden
@@ -110,10 +110,10 @@ calcUnscrolledPosition(This,Pt) -> wxScrolledWindow:calcUnscrolledPosition(This,
calcScrolledPosition(This,X,Y) -> wxScrolledWindow:calcScrolledPosition(This,X,Y).
%% @hidden
calcScrolledPosition(This,Pt) -> wxScrolledWindow:calcScrolledPosition(This,Pt).
- %% From wxPanel
+ %% From wxPanel
%% @hidden
initDialog(This) -> wxPanel:initDialog(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -462,7 +462,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxPreviewControlBar.erl b/lib/wx/src/gen/wxPreviewControlBar.erl
index 0118977e9a..78d46d1b95 100644
--- a/lib/wx/src/gen/wxPreviewControlBar.erl
+++ b/lib/wx/src/gen/wxPreviewControlBar.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxpreviewcontrolbar.html">wxPreviewControlBar</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxPanel}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -128,14 +128,14 @@ setZoomControl(#wx_ref{type=ThisT,ref=ThisRef},Zoom)
%% @spec (This::wxPreviewControlBar()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPreviewControlBar),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxPanel
+ %% From wxPanel
%% @hidden
initDialog(This) -> wxPanel:initDialog(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -484,7 +484,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxPreviewFrame.erl b/lib/wx/src/gen/wxPreviewFrame.erl
index 93dac8dbd9..91a32e9889 100644
--- a/lib/wx/src/gen/wxPreviewFrame.erl
+++ b/lib/wx/src/gen/wxPreviewFrame.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxpreviewframe.html">wxPreviewFrame</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxFrame}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -141,11 +141,11 @@ onCloseWindow(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=EventT,ref=EventRef})
%% @spec (This::wxPreviewFrame()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPreviewFrame),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxFrame
+ %% From wxFrame
%% @hidden
setToolBar(This,Toolbar) -> wxFrame:setToolBar(This,Toolbar).
%% @hidden
@@ -182,7 +182,7 @@ createToolBar(This) -> wxFrame:createToolBar(This).
createStatusBar(This, Options) -> wxFrame:createStatusBar(This, Options).
%% @hidden
createStatusBar(This) -> wxFrame:createStatusBar(This).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -229,7 +229,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -580,7 +580,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxPrintData.erl b/lib/wx/src/gen/wxPrintData.erl
index 49fad6b093..f3e8ad3612 100644
--- a/lib/wx/src/gen/wxPrintData.erl
+++ b/lib/wx/src/gen/wxPrintData.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -201,7 +201,7 @@ setQuality(#wx_ref{type=ThisT,ref=ThisRef},Quality)
%% @spec (This::wxPrintData()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPrintData),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxPrintDialog.erl b/lib/wx/src/gen/wxPrintDialog.erl
index 5100e7dcd4..a2f4bfa4eb 100644
--- a/lib/wx/src/gen/wxPrintDialog.erl
+++ b/lib/wx/src/gen/wxPrintDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxprintdialog.html">wxPrintDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -92,7 +92,7 @@ new(Parent)
%% @spec (Parent::wxWindow:wxWindow(),X::term()) -> wxPrintDialog()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxprintdialog.html#wxprintdialogwxprintdialog">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Parent::wxWindow:wxWindow(), [Option]) -> wxPrintDialog() </c>
%%<br /> Option = {data, wxPrintDialogData:wxPrintDialogData()}
@@ -130,11 +130,11 @@ getPrintDC(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxPrintDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPrintDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -157,7 +157,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -204,7 +204,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -551,7 +551,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxPrintDialogData.erl b/lib/wx/src/gen/wxPrintDialogData.erl
index b4ad5a4a82..a7e8d41f2e 100644
--- a/lib/wx/src/gen/wxPrintDialogData.erl
+++ b/lib/wx/src/gen/wxPrintDialogData.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -237,7 +237,7 @@ setToPage(#wx_ref{type=ThisT,ref=ThisRef},V)
%% @spec (This::wxPrintDialogData()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPrintDialogData),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxPrintPreview.erl b/lib/wx/src/gen/wxPrintPreview.erl
index 8a616c64fb..6f9a0f653f 100644
--- a/lib/wx/src/gen/wxPrintPreview.erl
+++ b/lib/wx/src/gen/wxPrintPreview.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -186,7 +186,7 @@ setZoom(#wx_ref{type=ThisT,ref=ThisRef},Percent)
%% @spec (This::wxPrintPreview()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPrintPreview),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxPrinter.erl b/lib/wx/src/gen/wxPrinter.erl
index d12a1f5909..af9afe18af 100644
--- a/lib/wx/src/gen/wxPrinter.erl
+++ b/lib/wx/src/gen/wxPrinter.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -129,7 +129,7 @@ setup(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ParentT,ref=ParentRef}) ->
%% @spec (This::wxPrinter()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPrinter),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxPrintout.erl b/lib/wx/src/gen/wxPrintout.erl
index 30811d32a0..b5b93921e6 100644
--- a/lib/wx/src/gen/wxPrintout.erl
+++ b/lib/wx/src/gen/wxPrintout.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -268,7 +268,7 @@ offsetLogicalOrigin(#wx_ref{type=ThisT,ref=ThisRef},Xoff,Yoff)
%% @spec (This::wxPrintout()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxPrintout),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxProgressDialog.erl b/lib/wx/src/gen/wxProgressDialog.erl
index 6d7d2d9743..69e73454b5 100644
--- a/lib/wx/src/gen/wxProgressDialog.erl
+++ b/lib/wx/src/gen/wxProgressDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxprogressdialog.html">wxProgressDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -139,11 +139,11 @@ update(#wx_ref{type=ThisT,ref=ThisRef},Value, Options)
%% @spec (This::wxProgressDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxProgressDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -166,7 +166,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -213,7 +213,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -558,7 +558,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxQueryNewPaletteEvent.erl b/lib/wx/src/gen/wxQueryNewPaletteEvent.erl
index 140d58c42c..96c493e4a6 100644
--- a/lib/wx/src/gen/wxQueryNewPaletteEvent.erl
+++ b/lib/wx/src/gen/wxQueryNewPaletteEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>query_new_palette</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxQueryNewPalette(). #wxQueryNewPalette{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxQueryNewPaletteEvent(). An object reference, The representation is internal
@@ -56,7 +56,7 @@ getPaletteRealized(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxQueryNewPaletteEvent_GetPaletteRealized,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxRadioBox.erl b/lib/wx/src/gen/wxRadioBox.erl
index ab76354da2..06e8833972 100644
--- a/lib/wx/src/gen/wxRadioBox.erl
+++ b/lib/wx/src/gen/wxRadioBox.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxradiobox.html">wxRadioBox</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -133,7 +133,7 @@ enable(This)
%% @spec (This::wxRadioBox(),X::integer()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxradiobox.html#wxradioboxenable">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% enable(This::wxRadioBox(), N::integer()) -> enable(This,N, []) </c></p>
%% <p><c>
@@ -196,7 +196,7 @@ show(This)
%% @spec (This::wxRadioBox(),X::integer()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxradiobox.html#wxradioboxshow">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% show(This::wxRadioBox(), N::integer()) -> show(This,N, []) </c></p>
%% <p><c>
@@ -302,16 +302,16 @@ setItemToolTip(#wx_ref{type=ThisT,ref=ThisRef},Item,Text)
%% @spec (This::wxRadioBox()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxRadioBox),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -650,7 +650,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxRadioButton.erl b/lib/wx/src/gen/wxRadioButton.erl
index 066023d121..c2c5a00be6 100644
--- a/lib/wx/src/gen/wxRadioButton.erl
+++ b/lib/wx/src/gen/wxRadioButton.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxradiobutton.html">wxRadioButton</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -143,16 +143,16 @@ setValue(#wx_ref{type=ThisT,ref=ThisRef},Val)
%% @spec (This::wxRadioButton()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxRadioButton),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -499,7 +499,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxRegion.erl b/lib/wx/src/gen/wxRegion.erl
index a2d2c7d830..0ceba1d203 100644
--- a/lib/wx/src/gen/wxRegion.erl
+++ b/lib/wx/src/gen/wxRegion.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -43,7 +43,7 @@ new() ->
%% @spec (X::term()) -> wxRegion()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxregion.html#wxregionwxregion">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Bmp::wxBitmap:wxBitmap()) -> wxRegion() </c>
%% </p>
@@ -82,7 +82,7 @@ clear(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxRegion(),X::term()) -> WxRegionContain
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxregion.html#wxregioncontains">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% contains(This::wxRegion(), Pt::{X::integer(),Y::integer()}) -> WxRegionContain </c>
%%<br /> WxRegionContain = integer()
@@ -140,7 +140,7 @@ getBox(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxRegion(),X::wxRegion()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxregion.html#wxregionintersect">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% intersect(This::wxRegion(), Region::wxRegion()) -> bool() </c>
%% </p>
@@ -175,7 +175,7 @@ isEmpty(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxRegion(),X::wxRegion()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxregion.html#wxregionsubtract">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% subtract(This::wxRegion(), Region::wxRegion()) -> bool() </c>
%% </p>
@@ -219,7 +219,7 @@ offset(#wx_ref{type=ThisT,ref=ThisRef},X,Y)
%% @spec (This::wxRegion(),X::term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxregion.html#wxregionunion">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% union(This::wxRegion(), Region::wxRegion() | wxBitmap:wxBitmap()) -> bool() </c>
%% </p>
@@ -271,7 +271,7 @@ union(#wx_ref{type=ThisT,ref=ThisRef},X,Y,W,H)
%% @spec (This::wxRegion(),X::wxRegion()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxregion.html#wxregionxor">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% 'Xor'(This::wxRegion(), Region::wxRegion()) -> bool() </c>
%% </p>
@@ -299,7 +299,7 @@ union(#wx_ref{type=ThisT,ref=ThisRef},X,Y,W,H)
%% @spec (This::wxRegion()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxRegion),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxSashEvent.erl b/lib/wx/src/gen/wxSashEvent.erl
index 56453fbe2f..480e241807 100644
--- a/lib/wx/src/gen/wxSashEvent.erl
+++ b/lib/wx/src/gen/wxSashEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>sash_dragged</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxSash(). #wxSash{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -70,7 +70,7 @@ getDragStatus(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxSashEvent_GetDragStatus,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -89,7 +89,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxSashLayoutWindow.erl b/lib/wx/src/gen/wxSashLayoutWindow.erl
index 9b3c372369..9bc5a185ba 100644
--- a/lib/wx/src/gen/wxSashLayoutWindow.erl
+++ b/lib/wx/src/gen/wxSashLayoutWindow.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsashlayoutwindow.html">wxSashLayoutWindow</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxSashWindow}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -177,11 +177,11 @@ setOrientation(#wx_ref{type=ThisT,ref=ThisRef},Orient)
%% @spec (This::wxSashLayoutWindow()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSashLayoutWindow),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxSashWindow
+ %% From wxSashWindow
%% @hidden
setSashVisible(This,Edge,Sash) -> wxSashWindow:setSashVisible(This,Edge,Sash).
%% @hidden
@@ -202,7 +202,7 @@ getMaximumSizeY(This) -> wxSashWindow:getMaximumSizeY(This).
getMaximumSizeX(This) -> wxSashWindow:getMaximumSizeX(This).
%% @hidden
getSashVisible(This,Edge) -> wxSashWindow:getSashVisible(This,Edge).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -553,7 +553,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxSashWindow.erl b/lib/wx/src/gen/wxSashWindow.erl
index d836d84ed3..49fb82f828 100644
--- a/lib/wx/src/gen/wxSashWindow.erl
+++ b/lib/wx/src/gen/wxSashWindow.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsashwindow.html">wxSashWindow</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
%% </p>
@@ -184,11 +184,11 @@ setSashVisible(#wx_ref{type=ThisT,ref=ThisRef},Edge,Sash)
%% @spec (This::wxSashWindow()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSashWindow),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -539,7 +539,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxScreenDC.erl b/lib/wx/src/gen/wxScreenDC.erl
index 35dcb23179..4d7466f4f1 100644
--- a/lib/wx/src/gen/wxScreenDC.erl
+++ b/lib/wx/src/gen/wxScreenDC.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxscreendc.html">wxScreenDC</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDC}
%% </p>
%% @type wxScreenDC(). An object reference, The representation is internal
@@ -64,11 +64,11 @@ new() ->
%% @spec (This::wxScreenDC()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxScreenDC),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDC
+ %% From wxDC
%% @hidden
startPage(This) -> wxDC:startPage(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxScrollBar.erl b/lib/wx/src/gen/wxScrollBar.erl
index f77b4dde21..41ca8d867f 100644
--- a/lib/wx/src/gen/wxScrollBar.erl
+++ b/lib/wx/src/gen/wxScrollBar.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxscrollbar.html">wxScrollBar</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -181,16 +181,16 @@ setScrollbar(#wx_ref{type=ThisT,ref=ThisRef},Position,ThumbSize,Range,PageSize,
%% @spec (This::wxScrollBar()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxScrollBar),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -533,7 +533,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxScrollEvent.erl b/lib/wx/src/gen/wxScrollEvent.erl
index 52bb5b8347..61b99fa360 100644
--- a/lib/wx/src/gen/wxScrollEvent.erl
+++ b/lib/wx/src/gen/wxScrollEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>scroll_top</em>, <em>scroll_bottom</em>, <em>scroll_lineup</em>, <em>scroll_linedown</em>, <em>scroll_pageup</em>, <em>scroll_pagedown</em>, <em>scroll_thumbtrack</em>, <em>scroll_thumbrelease</em>, <em>scroll_changed</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxScroll(). #wxScroll{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -59,7 +59,7 @@ getPosition(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxScrollEvent_GetPosition,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -78,7 +78,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxScrollWinEvent.erl b/lib/wx/src/gen/wxScrollWinEvent.erl
index d87be2c792..6b33b6b564 100644
--- a/lib/wx/src/gen/wxScrollWinEvent.erl
+++ b/lib/wx/src/gen/wxScrollWinEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>scrollwin_top</em>, <em>scrollwin_bottom</em>, <em>scrollwin_lineup</em>, <em>scrollwin_linedown</em>, <em>scrollwin_pageup</em>, <em>scrollwin_pagedown</em>, <em>scrollwin_thumbtrack</em>, <em>scrollwin_thumbrelease</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxScrollWin(). #wxScrollWin{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxScrollWinEvent(). An object reference, The representation is internal
@@ -55,7 +55,7 @@ getPosition(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxScrollWinEvent_GetPosition,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxScrolledWindow.erl b/lib/wx/src/gen/wxScrolledWindow.erl
index d3e250fbe1..a6f813d1a2 100644
--- a/lib/wx/src/gen/wxScrolledWindow.erl
+++ b/lib/wx/src/gen/wxScrolledWindow.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxscrolledwindow.html">wxScrolledWindow</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxPanel}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -221,14 +221,14 @@ setTargetWindow(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=TargetT,ref=TargetR
%% @spec (This::wxScrolledWindow()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxScrolledWindow),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxPanel
+ %% From wxPanel
%% @hidden
initDialog(This) -> wxPanel:initDialog(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -577,7 +577,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxSetCursorEvent.erl b/lib/wx/src/gen/wxSetCursorEvent.erl
index 74cc1c1a5a..75a41eb6ad 100644
--- a/lib/wx/src/gen/wxSetCursorEvent.erl
+++ b/lib/wx/src/gen/wxSetCursorEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>set_cursor</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxSetCursor(). #wxSetCursor{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxSetCursorEvent(). An object reference, The representation is internal
@@ -77,7 +77,7 @@ setCursor(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=CursorT,ref=CursorRef}) -
wxe_util:cast(?wxSetCursorEvent_SetCursor,
<<ThisRef:32/?UI,CursorRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxShowEvent.erl b/lib/wx/src/gen/wxShowEvent.erl
index 173cd4269a..7d5c8300d3 100644
--- a/lib/wx/src/gen/wxShowEvent.erl
+++ b/lib/wx/src/gen/wxShowEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>show</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxShow(). #wxShow{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxShowEvent(). An object reference, The representation is internal
@@ -56,7 +56,7 @@ getShow(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxShowEvent_GetShow,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxSingleChoiceDialog.erl b/lib/wx/src/gen/wxSingleChoiceDialog.erl
index 485e7f8be9..16e0c3d8ce 100644
--- a/lib/wx/src/gen/wxSingleChoiceDialog.erl
+++ b/lib/wx/src/gen/wxSingleChoiceDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsinglechoicedialog.html">wxSingleChoiceDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -137,11 +137,11 @@ setSelection(#wx_ref{type=ThisT,ref=ThisRef},Sel)
%% @spec (This::wxSingleChoiceDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSingleChoiceDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -164,7 +164,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -211,7 +211,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -558,7 +558,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxSizeEvent.erl b/lib/wx/src/gen/wxSizeEvent.erl
index e9e337df33..9e7619ebbd 100644
--- a/lib/wx/src/gen/wxSizeEvent.erl
+++ b/lib/wx/src/gen/wxSizeEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>size</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxSize(). #wxSize{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxSizeEvent(). An object reference, The representation is internal
@@ -48,7 +48,7 @@ getSize(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxSizeEvent_GetSize,
<<ThisRef:32/?UI>>).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxSizer.erl b/lib/wx/src/gen/wxSizer.erl
index 4086d34b19..716b2224b5 100644
--- a/lib/wx/src/gen/wxSizer.erl
+++ b/lib/wx/src/gen/wxSizer.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -47,7 +47,7 @@ add(This,Window)
%% @spec (This::wxSizer(),X::integer()|term(),X::integer()|term()) -> wxSizerItem:wxSizerItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizeradd">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% add(This::wxSizer(), Width::integer(), Height::integer()) -> add(This,Width,Height, []) </c></p>
%% <p><c>
@@ -159,7 +159,7 @@ clear(#wx_ref{type=ThisT,ref=ThisRef}, Options)
%% @spec (This::wxSizer(),X::integer()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizerdetach">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% detach(This::wxSizer(), Index::integer()) -> bool() </c>
%% </p>
@@ -207,7 +207,7 @@ getChildren(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxSizer(),X::term()|integer()) -> wxSizerItem:wxSizerItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizergetitem">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% getItem(This::wxSizer(), Window::wxWindow:wxWindow() | wxSizer()) -> getItem(This,Window, []) </c></p>
%% <p><c>
@@ -264,7 +264,7 @@ getMinSize(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxSizer(),X::term()|integer()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizerhide">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% hide(This::wxSizer(), Window::wxWindow:wxWindow() | wxSizer()) -> hide(This,Window, []) </c></p>
%% <p><c>
@@ -300,7 +300,7 @@ hide(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=WindowT,ref=WindowRef}, Option
%% @spec (This::wxSizer(),Index::integer(),X::term()) -> wxSizerItem:wxSizerItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizerinsert">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% insert(This::wxSizer(), Index::integer(), Window::wxWindow:wxWindow() | wxSizer()) -> insert(This,Index,Window, []) </c></p>
%% <p><c>
@@ -319,7 +319,7 @@ insert(#wx_ref{type=ThisT,ref=ThisRef},Index,#wx_ref{type=ItemT,ref=ItemRef})
%% @spec (This::wxSizer(),Index::integer(),X::integer()|term(),X::integer()|term()) -> wxSizerItem:wxSizerItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizerinsert">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% insert(This::wxSizer(), Index::integer(), Width::integer(), Height::integer()) -> insert(This,Index,Width,Height, []) </c></p>
%% <p><c>
@@ -407,7 +407,7 @@ insertStretchSpacer(#wx_ref{type=ThisT,ref=ThisRef},Index, Options)
%% @spec (This::wxSizer(),X::integer()|term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizerisshown">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% isShown(This::wxSizer(), Index::integer()) -> bool() </c>
%% </p>
@@ -439,7 +439,7 @@ layout(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxSizer(),X::term()) -> wxSizerItem:wxSizerItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizerprepend">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% prepend(This::wxSizer(), Window::wxWindow:wxWindow() | wxSizer()) -> prepend(This,Window, []) </c></p>
%% <p><c>
@@ -457,7 +457,7 @@ prepend(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ItemT,ref=ItemRef}) ->
%% @spec (This::wxSizer(),X::integer()|term(),X::integer()|term()) -> wxSizerItem:wxSizerItem()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizerprepend">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% prepend(This::wxSizer(), Width::integer(), Height::integer()) -> prepend(This,Width,Height, []) </c></p>
%% <p><c>
@@ -551,7 +551,7 @@ recalcSizes(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxSizer(),X::integer()|wxSizer()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizerremove">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% remove(This::wxSizer(), Index::integer()) -> bool() </c>
%% </p>
@@ -571,7 +571,7 @@ remove(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=SizerT,ref=SizerRef}) ->
%% @spec (This::wxSizer(),X::term()|integer(),X::term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizerreplace">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% replace(This::wxSizer(), Oldwin::wxWindow:wxWindow() | wxSizer(), Newwin::wxWindow:wxWindow() | wxSizer()) -> replace(This,Oldwin,Newwin, []) </c></p>
%% <p><c>
@@ -634,7 +634,7 @@ setMinSize(#wx_ref{type=ThisT,ref=ThisRef},Width,Height)
%% @spec (This::wxSizer(),X::integer()|term(),Size::{W::integer(),H::integer()}) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizersetitemminsize">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setItemMinSize(This::wxSizer(), Index::integer(), Size::{W::integer(),H::integer()}) -> bool() </c>
%% </p>
@@ -660,7 +660,7 @@ setItemMinSize(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=WindowT,ref=WindowRe
%% @spec (This::wxSizer(),X::integer()|term(),Width::integer(),Height::integer()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizersetitemminsize">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setItemMinSize(This::wxSizer(), Index::integer(), Width::integer(), Height::integer()) -> bool() </c>
%% </p>
@@ -702,7 +702,7 @@ setVirtualSizeHints(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=WindowT,ref=Win
%% @spec (This::wxSizer(),X::integer()|term()|bool()) -> bool()|bool()|ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizershow">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% show(This::wxSizer(), Index::integer()) -> show(This,Index, []) </c></p>
%% <p><c>
@@ -726,7 +726,7 @@ show(#wx_ref{type=ThisT,ref=ThisRef},Show)
%% @spec (This::wxSizer(),X::integer()|term(),[Option]) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizer.html#wxsizershow">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% show(This::wxSizer(), Index::integer(), [Option]) -> bool() </c>
%%<br /> Option = {show, bool()}
diff --git a/lib/wx/src/gen/wxSizerFlags.erl b/lib/wx/src/gen/wxSizerFlags.erl
index 898b2d42ed..2a25fd2c1a 100644
--- a/lib/wx/src/gen/wxSizerFlags.erl
+++ b/lib/wx/src/gen/wxSizerFlags.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -128,7 +128,7 @@ right(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxSizerFlags()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSizerFlags),
wxe_util:destroy(?wxSizerFlags_destroy,Obj),
ok.
diff --git a/lib/wx/src/gen/wxSizerItem.erl b/lib/wx/src/gen/wxSizerItem.erl
index e8391d859a..1e9f05d53c 100644
--- a/lib/wx/src/gen/wxSizerItem.erl
+++ b/lib/wx/src/gen/wxSizerItem.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -280,7 +280,7 @@ setProportion(#wx_ref{type=ThisT,ref=ThisRef},Proportion)
%% @spec (This::wxSizerItem(),X::float()|term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsizeritem.html#wxsizeritemsetratio">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setRatio(This::wxSizerItem(), Ratio::float()) -> ok </c>
%% </p>
@@ -348,7 +348,7 @@ show(#wx_ref{type=ThisT,ref=ThisRef},Show)
%% @spec (This::wxSizerItem()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSizerItem),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxSlider.erl b/lib/wx/src/gen/wxSlider.erl
index 694630859b..c70f127a5b 100644
--- a/lib/wx/src/gen/wxSlider.erl
+++ b/lib/wx/src/gen/wxSlider.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxslider.html">wxSlider</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -210,16 +210,16 @@ setValue(#wx_ref{type=ThisT,ref=ThisRef},Value)
%% @spec (This::wxSlider()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSlider),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -566,7 +566,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxSpinButton.erl b/lib/wx/src/gen/wxSpinButton.erl
index 1cc59ec6aa..027699e295 100644
--- a/lib/wx/src/gen/wxSpinButton.erl
+++ b/lib/wx/src/gen/wxSpinButton.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxspinbutton.html">wxSpinButton</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -164,16 +164,16 @@ setValue(#wx_ref{type=ThisT,ref=ThisRef},Value)
%% @spec (This::wxSpinButton()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSpinButton),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -520,7 +520,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxSpinCtrl.erl b/lib/wx/src/gen/wxSpinCtrl.erl
index bed2d733a3..6b77376b40 100644
--- a/lib/wx/src/gen/wxSpinCtrl.erl
+++ b/lib/wx/src/gen/wxSpinCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxspinctrl.html">wxSpinCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -135,7 +135,7 @@ create(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ParentT,ref=ParentRef}, Opti
%% @spec (This::wxSpinCtrl(),X::integer()|string()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxspinctrl.html#wxspinctrlsetvalue">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setValue(This::wxSpinCtrl(), Value::integer()) -> ok </c>
%% </p>
@@ -193,16 +193,16 @@ getMax(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxSpinCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSpinCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -549,7 +549,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxSpinEvent.erl b/lib/wx/src/gen/wxSpinEvent.erl
index 2c44b3c2a3..82edc70983 100644
--- a/lib/wx/src/gen/wxSpinEvent.erl
+++ b/lib/wx/src/gen/wxSpinEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_spinctrl_updated</em>, <em>spin_up</em>, <em>spin_down</em>, <em>spin</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxSpin(). #wxSpin{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxNotifyEvent}
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
@@ -62,14 +62,14 @@ setPosition(#wx_ref{type=ThisT,ref=ThisRef},Pos)
wxe_util:cast(?wxSpinEvent_SetPosition,
<<ThisRef:32/?UI,Pos:32/?UI>>).
- %% From wxNotifyEvent
+ %% From wxNotifyEvent
%% @hidden
veto(This) -> wxNotifyEvent:veto(This).
%% @hidden
isAllowed(This) -> wxNotifyEvent:isAllowed(This).
%% @hidden
allow(This) -> wxNotifyEvent:allow(This).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -88,7 +88,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxSplashScreen.erl b/lib/wx/src/gen/wxSplashScreen.erl
index 8fe543c4e8..8806d07018 100644
--- a/lib/wx/src/gen/wxSplashScreen.erl
+++ b/lib/wx/src/gen/wxSplashScreen.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsplashscreen.html">wxSplashScreen</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxFrame}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -130,11 +130,11 @@ getTimeout(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxSplashScreen()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSplashScreen),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxFrame
+ %% From wxFrame
%% @hidden
setToolBar(This,Toolbar) -> wxFrame:setToolBar(This,Toolbar).
%% @hidden
@@ -171,7 +171,7 @@ createToolBar(This) -> wxFrame:createToolBar(This).
createStatusBar(This, Options) -> wxFrame:createStatusBar(This, Options).
%% @hidden
createStatusBar(This) -> wxFrame:createStatusBar(This).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -218,7 +218,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -569,7 +569,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxSplitterEvent.erl b/lib/wx/src/gen/wxSplitterEvent.erl
index a3a8171742..512f858284 100644
--- a/lib/wx/src/gen/wxSplitterEvent.erl
+++ b/lib/wx/src/gen/wxSplitterEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>command_splitter_sash_pos_changed</em>, <em>command_splitter_sash_pos_changing</em>, <em>command_splitter_doubleclicked</em>, <em>command_splitter_unsplit</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxSplitter(). #wxSplitter{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxNotifyEvent}
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
@@ -83,14 +83,14 @@ setSashPosition(#wx_ref{type=ThisT,ref=ThisRef},Pos)
wxe_util:cast(?wxSplitterEvent_SetSashPosition,
<<ThisRef:32/?UI,Pos:32/?UI>>).
- %% From wxNotifyEvent
+ %% From wxNotifyEvent
%% @hidden
veto(This) -> wxNotifyEvent:veto(This).
%% @hidden
isAllowed(This) -> wxNotifyEvent:isAllowed(This).
%% @hidden
allow(This) -> wxNotifyEvent:allow(This).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -109,7 +109,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxSplitterWindow.erl b/lib/wx/src/gen/wxSplitterWindow.erl
index 6522858266..9e27be7475 100644
--- a/lib/wx/src/gen/wxSplitterWindow.erl
+++ b/lib/wx/src/gen/wxSplitterWindow.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxsplitterwindow.html">wxSplitterWindow</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
%% </p>
@@ -312,11 +312,11 @@ updateSize(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxSplitterWindow()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxSplitterWindow),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -667,7 +667,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxStaticBitmap.erl b/lib/wx/src/gen/wxStaticBitmap.erl
index 5f22b5780e..6fbc59236d 100644
--- a/lib/wx/src/gen/wxStaticBitmap.erl
+++ b/lib/wx/src/gen/wxStaticBitmap.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxstaticbitmap.html">wxStaticBitmap</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -141,16 +141,16 @@ setBitmap(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=BitmapT,ref=BitmapRef}) -
%% @spec (This::wxStaticBitmap()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxStaticBitmap),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -497,7 +497,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxStaticBox.erl b/lib/wx/src/gen/wxStaticBox.erl
index 08e8fd8c0c..ad54184867 100644
--- a/lib/wx/src/gen/wxStaticBox.erl
+++ b/lib/wx/src/gen/wxStaticBox.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxstaticbox.html">wxStaticBox</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -126,16 +126,16 @@ create(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ParentT,ref=ParentRef},Id,La
%% @spec (This::wxStaticBox()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxStaticBox),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -482,7 +482,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxStaticBoxSizer.erl b/lib/wx/src/gen/wxStaticBoxSizer.erl
index d097bc95e3..5f346b7a1e 100644
--- a/lib/wx/src/gen/wxStaticBoxSizer.erl
+++ b/lib/wx/src/gen/wxStaticBoxSizer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxstaticboxsizer.html">wxStaticBoxSizer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxBoxSizer}
%% <br />{@link wxSizer}
%% </p>
@@ -48,7 +48,7 @@ parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
%% @spec (X::integer()|term(),X::term()|integer()) -> wxStaticBoxSizer()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxstaticboxsizer.html#wxstaticboxsizerwxstaticboxsizer">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% new(Orient::integer(), Win::wxWindow:wxWindow()) -> new(Orient,Win, []) </c></p>
%% <p><c>
@@ -85,14 +85,14 @@ getStaticBox(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxStaticBoxSizer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxStaticBoxSizer),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxBoxSizer
+ %% From wxBoxSizer
%% @hidden
getOrientation(This) -> wxBoxSizer:getOrientation(This).
- %% From wxSizer
+ %% From wxSizer
%% @hidden
show(This,Index, Options) -> wxSizer:show(This,Index, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxStaticLine.erl b/lib/wx/src/gen/wxStaticLine.erl
index c4b660b317..e3a1bedbdc 100644
--- a/lib/wx/src/gen/wxStaticLine.erl
+++ b/lib/wx/src/gen/wxStaticLine.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxstaticline.html">wxStaticLine</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -140,16 +140,16 @@ getDefaultSize() ->
%% @spec (This::wxStaticLine()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxStaticLine),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -496,7 +496,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxStaticText.erl b/lib/wx/src/gen/wxStaticText.erl
index 0e4aec3365..46c73a5998 100644
--- a/lib/wx/src/gen/wxStaticText.erl
+++ b/lib/wx/src/gen/wxStaticText.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxstatictext.html">wxStaticText</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -150,12 +150,12 @@ wrap(#wx_ref{type=ThisT,ref=ThisRef},Width)
%% @spec (This::wxStaticText()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxStaticText),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
- %% From wxWindow
+ %% From wxControl
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -502,7 +502,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxStatusBar.erl b/lib/wx/src/gen/wxStatusBar.erl
index c77c3c447d..52467117d7 100644
--- a/lib/wx/src/gen/wxStatusBar.erl
+++ b/lib/wx/src/gen/wxStatusBar.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxstatusbar.html">wxStatusBar</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
%% </p>
@@ -257,11 +257,11 @@ setStatusStyles(#wx_ref{type=ThisT,ref=ThisRef},Styles)
%% @spec (This::wxStatusBar()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxStatusBar),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -612,7 +612,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxStdDialogButtonSizer.erl b/lib/wx/src/gen/wxStdDialogButtonSizer.erl
index 3ee3ef4a36..b0052ca2e1 100644
--- a/lib/wx/src/gen/wxStdDialogButtonSizer.erl
+++ b/lib/wx/src/gen/wxStdDialogButtonSizer.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxstddialogbuttonsizer.html">wxStdDialogButtonSizer</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxBoxSizer}
%% <br />{@link wxSizer}
%% </p>
@@ -94,14 +94,14 @@ setNegativeButton(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ButtonT,ref=Butto
%% @spec (This::wxStdDialogButtonSizer()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxStdDialogButtonSizer),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxBoxSizer
+ %% From wxBoxSizer
%% @hidden
getOrientation(This) -> wxBoxSizer:getOrientation(This).
- %% From wxSizer
+ %% From wxSizer
%% @hidden
show(This,Index, Options) -> wxSizer:show(This,Index, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxStyledTextCtrl.erl b/lib/wx/src/gen/wxStyledTextCtrl.erl
index 21964403f9..71d1bd0d53 100644
--- a/lib/wx/src/gen/wxStyledTextCtrl.erl
+++ b/lib/wx/src/gen/wxStyledTextCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxstyledtextctrl.html">wxStyledTextCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -3619,16 +3619,16 @@ appendTextRaw(#wx_ref{type=ThisT,ref=ThisRef},Text)
%% @spec (This::wxStyledTextCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxStyledTextCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -3967,7 +3967,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxStyledTextEvent.erl b/lib/wx/src/gen/wxStyledTextEvent.erl
index ed5788b6fd..5d98ae585d 100644
--- a/lib/wx/src/gen/wxStyledTextEvent.erl
+++ b/lib/wx/src/gen/wxStyledTextEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>stc_change</em>, <em>stc_styleneeded</em>, <em>stc_charadded</em>, <em>stc_savepointreached</em>, <em>stc_savepointleft</em>, <em>stc_romodifyattempt</em>, <em>stc_key</em>, <em>stc_doubleclick</em>, <em>stc_updateui</em>, <em>stc_modified</em>, <em>stc_macrorecord</em>, <em>stc_marginclick</em>, <em>stc_needshown</em>, <em>stc_painted</em>, <em>stc_userlistselection</em>, <em>stc_uridropped</em>, <em>stc_dwellstart</em>, <em>stc_dwellend</em>, <em>stc_start_drag</em>, <em>stc_drag_over</em>, <em>stc_do_drop</em>, <em>stc_zoom</em>, <em>stc_hotspot_click</em>, <em>stc_hotspot_dclick</em>, <em>stc_calltip_click</em>, <em>stc_autocomp_selection</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxStyledText(). #wxStyledText{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -212,7 +212,7 @@ getAlt(#wx_ref{type=ThisT,ref=ThisRef}) ->
wxe_util:call(?wxStyledTextEvent_GetAlt,
<<ThisRef:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -231,7 +231,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxSysColourChangedEvent.erl b/lib/wx/src/gen/wxSysColourChangedEvent.erl
index a90c7320d9..0d86edcf5b 100644
--- a/lib/wx/src/gen/wxSysColourChangedEvent.erl
+++ b/lib/wx/src/gen/wxSysColourChangedEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>sys_colour_changed</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxSysColourChanged(). #wxSysColourChanged{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvent}
%% </p>
%% @type wxSysColourChangedEvent(). An object reference, The representation is internal
@@ -41,7 +41,7 @@
parent_class(wxEvent) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxTextAttr.erl b/lib/wx/src/gen/wxTextAttr.erl
index dea39c19d0..056dc59161 100644
--- a/lib/wx/src/gen/wxTextAttr.erl
+++ b/lib/wx/src/gen/wxTextAttr.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -247,7 +247,7 @@ setTextColour(#wx_ref{type=ThisT,ref=ThisRef},ColText)
%% @spec (This::wxTextAttr()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxTextAttr),
wxe_util:destroy(?wxTextAttr_destroy,Obj),
ok.
diff --git a/lib/wx/src/gen/wxTextCtrl.erl b/lib/wx/src/gen/wxTextCtrl.erl
index 1df8accdaa..b4af23bdd9 100644
--- a/lib/wx/src/gen/wxTextCtrl.erl
+++ b/lib/wx/src/gen/wxTextCtrl.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtextctrl.html">wxTextCtrl</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -507,16 +507,16 @@ xYToPosition(#wx_ref{type=ThisT,ref=ThisRef},X,Y)
%% @spec (This::wxTextCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxTextCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -863,7 +863,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxTextDataObject.erl b/lib/wx/src/gen/wxTextDataObject.erl
index 1e4cee70aa..f4fe3b5e0c 100644
--- a/lib/wx/src/gen/wxTextDataObject.erl
+++ b/lib/wx/src/gen/wxTextDataObject.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtextdataobject.html">wxTextDataObject</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDataObject}
%% </p>
%% @type wxTextDataObject(). An object reference, The representation is internal
@@ -77,8 +77,8 @@ setText(#wx_ref{type=ThisT,ref=ThisRef},Text)
%% @spec (This::wxTextDataObject()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxTextDataObject),
wxe_util:destroy(?wxTextDataObject_destroy,Obj),
ok.
- %% From wxDataObject
+ %% From wxDataObject
diff --git a/lib/wx/src/gen/wxTextEntryDialog.erl b/lib/wx/src/gen/wxTextEntryDialog.erl
index 42e7f41513..a30c32dd53 100644
--- a/lib/wx/src/gen/wxTextEntryDialog.erl
+++ b/lib/wx/src/gen/wxTextEntryDialog.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtextentrydialog.html">wxTextEntryDialog</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDialog}
%% <br />{@link wxTopLevelWindow}
%% <br />{@link wxWindow}
@@ -124,11 +124,11 @@ setValue(#wx_ref{type=ThisT,ref=ThisRef},Val)
%% @spec (This::wxTextEntryDialog()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxTextEntryDialog),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDialog
+ %% From wxDialog
%% @hidden
showModal(This) -> wxDialog:showModal(This).
%% @hidden
@@ -151,7 +151,7 @@ endModal(This,RetCode) -> wxDialog:endModal(This,RetCode).
createStdDialogButtonSizer(This,Flags) -> wxDialog:createStdDialogButtonSizer(This,Flags).
%% @hidden
createButtonSizer(This,Flags) -> wxDialog:createButtonSizer(This,Flags).
- %% From wxTopLevelWindow
+ %% From wxTopLevelWindow
%% @hidden
showFullScreen(This,Show, Options) -> wxTopLevelWindow:showFullScreen(This,Show, Options).
%% @hidden
@@ -198,7 +198,7 @@ getTitle(This) -> wxTopLevelWindow:getTitle(This).
getIcons(This) -> wxTopLevelWindow:getIcons(This).
%% @hidden
getIcon(This) -> wxTopLevelWindow:getIcon(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -545,7 +545,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxToggleButton.erl b/lib/wx/src/gen/wxToggleButton.erl
index 0a8f4f1127..ab595c1906 100644
--- a/lib/wx/src/gen/wxToggleButton.erl
+++ b/lib/wx/src/gen/wxToggleButton.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtogglebutton.html">wxToggleButton</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -143,16 +143,16 @@ setValue(#wx_ref{type=ThisT,ref=ThisRef},State)
%% @spec (This::wxToggleButton()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxToggleButton),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -499,7 +499,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxToolBar.erl b/lib/wx/src/gen/wxToolBar.erl
index c8392a10ca..c68936d493 100644
--- a/lib/wx/src/gen/wxToolBar.erl
+++ b/lib/wx/src/gen/wxToolBar.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtoolbar.html">wxToolBar</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -114,7 +114,7 @@ addTool(This,Toolid,Bitmap)
%% @spec (This::wxToolBar(),Toolid::integer(),X::string()|term(),X::term()) -> wx:wx()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtoolbar.html#wxtoolbaraddtool">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% addTool(This::wxToolBar(), Toolid::integer(), Label::string(), Bitmap::wxBitmap:wxBitmap()) -> addTool(This,Toolid,Label,Bitmap, []) </c></p>
%% <p><c>
@@ -144,7 +144,7 @@ addTool(#wx_ref{type=ThisT,ref=ThisRef},Toolid,#wx_ref{type=BitmapT,ref=BitmapRe
%% @spec (This::wxToolBar(),Toolid::integer(),X::string()|term(),X::term(),X::term()) -> wx:wx()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtoolbar.html#wxtoolbaraddtool">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% addTool(This::wxToolBar(), Toolid::integer(), Label::string(), Bitmap::wxBitmap:wxBitmap(), BmpDisabled::wxBitmap:wxBitmap()) -> addTool(This,Toolid,Label,Bitmap,BmpDisabled, []) </c></p>
%% <p><c>
@@ -188,7 +188,7 @@ addTool(#wx_ref{type=ThisT,ref=ThisRef},Toolid,#wx_ref{type=BitmapT,ref=BitmapRe
%% @spec (This::wxToolBar(),Toolid::integer(),X::term()|string(),X::term(),X::bool()|term(),X::integer()|term()) -> wx:wx()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtoolbar.html#wxtoolbaraddtool">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% addTool(This::wxToolBar(), Toolid::integer(), Bitmap::wxBitmap:wxBitmap(), BmpDisabled::wxBitmap:wxBitmap(), Toggle::bool(), XPos::integer()) -> addTool(This,Toolid,Bitmap,BmpDisabled,Toggle,XPos, []) </c></p>
%% <p><c>
@@ -436,7 +436,7 @@ insertTool(This,Pos,Toolid,Bitmap)
%% @spec (This::wxToolBar(),Pos::integer(),Toolid::integer(),X::string()|term(),X::term()) -> wx:wx()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtoolbar.html#wxtoolbarinserttool">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% insertTool(This::wxToolBar(), Pos::integer(), Toolid::integer(), Label::string(), Bitmap::wxBitmap:wxBitmap()) -> insertTool(This,Pos,Toolid,Label,Bitmap, []) </c></p>
%% <p><c>
@@ -554,12 +554,12 @@ toggleTool(#wx_ref{type=ThisT,ref=ThisRef},Toolid,Toggle)
wxe_util:cast(?wxToolBar_ToggleTool,
<<ThisRef:32/?UI,Toolid:32/?UI,(wxe_util:from_bool(Toggle)):32/?UI>>).
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -906,7 +906,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxToolTip.erl b/lib/wx/src/gen/wxToolTip.erl
index 3a57ece765..b0749c851a 100644
--- a/lib/wx/src/gen/wxToolTip.erl
+++ b/lib/wx/src/gen/wxToolTip.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -79,7 +79,7 @@ getWindow(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxToolTip()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxToolTip),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wxToolbook.erl b/lib/wx/src/gen/wxToolbook.erl
index 44d3ea945d..4d188e979d 100644
--- a/lib/wx/src/gen/wxToolbook.erl
+++ b/lib/wx/src/gen/wxToolbook.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtoolbook.html">wxToolbook</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -329,16 +329,16 @@ changeSelection(#wx_ref{type=ThisT,ref=ThisRef},N)
%% @spec (This::wxToolbook()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxToolbook),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -685,7 +685,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxTopLevelWindow.erl b/lib/wx/src/gen/wxTopLevelWindow.erl
index 3bb63886d9..e0551b480f 100644
--- a/lib/wx/src/gen/wxTopLevelWindow.erl
+++ b/lib/wx/src/gen/wxTopLevelWindow.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtoplevelwindow.html">wxTopLevelWindow</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
%% </p>
@@ -267,7 +267,7 @@ showFullScreen(#wx_ref{type=ThisT,ref=ThisRef},Show, Options)
wxe_util:call(?wxTopLevelWindow_ShowFullScreen,
<<ThisRef:32/?UI,(wxe_util:from_bool(Show)):32/?UI, BinOpt/binary>>).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -618,7 +618,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxTreeCtrl.erl b/lib/wx/src/gen/wxTreeCtrl.erl
index a5f0bdc750..4fcbb9366e 100644
--- a/lib/wx/src/gen/wxTreeCtrl.erl
+++ b/lib/wx/src/gen/wxTreeCtrl.erl
@@ -22,7 +22,7 @@
%% Note: The representation of treeItemId() have changed from the original class implementation to be an semi-opaque type,Equality between TreeItemId's can be tested and zero means that the TreeItem is invalid.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -801,16 +801,16 @@ unselectItem(#wx_ref{type=ThisT,ref=ThisRef},Item)
%% @spec (This::wxTreeCtrl()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxTreeCtrl),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -1155,7 +1155,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxTreeEvent.erl b/lib/wx/src/gen/wxTreeEvent.erl
index 11e442b0f3..d5379b7abe 100644
--- a/lib/wx/src/gen/wxTreeEvent.erl
+++ b/lib/wx/src/gen/wxTreeEvent.erl
@@ -22,7 +22,7 @@
%% <dd><em>command_tree_begin_drag</em>, <em>command_tree_begin_rdrag</em>, <em>command_tree_begin_label_edit</em>, <em>command_tree_end_label_edit</em>, <em>command_tree_delete_item</em>, <em>command_tree_get_info</em>, <em>command_tree_set_info</em>, <em>command_tree_item_expanded</em>, <em>command_tree_item_expanding</em>, <em>command_tree_item_collapsed</em>, <em>command_tree_item_collapsing</em>, <em>command_tree_sel_changed</em>, <em>command_tree_sel_changing</em>, <em>command_tree_key_down</em>, <em>command_tree_item_activated</em>, <em>command_tree_item_right_click</em>, <em>command_tree_item_middle_click</em>, <em>command_tree_end_drag</em>, <em>command_tree_state_image_click</em>, <em>command_tree_item_gettooltip</em>, <em>command_tree_item_menu</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxTree(). #wxTree{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxNotifyEvent}
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
@@ -106,14 +106,14 @@ setToolTip(#wx_ref{type=ThisT,ref=ThisRef},ToolTip)
wxe_util:cast(?wxTreeEvent_SetToolTip,
<<ThisRef:32/?UI,(byte_size(ToolTip_UC)):32/?UI,(ToolTip_UC)/binary, 0:(((8- ((0+byte_size(ToolTip_UC)) band 16#7)) band 16#7))/unit:8>>).
- %% From wxNotifyEvent
+ %% From wxNotifyEvent
%% @hidden
veto(This) -> wxNotifyEvent:veto(This).
%% @hidden
isAllowed(This) -> wxNotifyEvent:isAllowed(This).
%% @hidden
allow(This) -> wxNotifyEvent:allow(This).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -132,7 +132,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxTreebook.erl b/lib/wx/src/gen/wxTreebook.erl
index 34b16a1cc6..a515ec9639 100644
--- a/lib/wx/src/gen/wxTreebook.erl
+++ b/lib/wx/src/gen/wxTreebook.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2009-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxtreebook.html">wxTreebook</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxControl}
%% <br />{@link wxWindow}
%% <br />{@link wxEvtHandler}
@@ -377,16 +377,16 @@ changeSelection(#wx_ref{type=ThisT,ref=ThisRef},N)
%% @spec (This::wxTreebook()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxTreebook),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxControl
+ %% From wxControl
%% @hidden
setLabel(This,Label) -> wxControl:setLabel(This,Label).
%% @hidden
getLabel(This) -> wxControl:getLabel(This).
- %% From wxWindow
+ %% From wxWindow
%% @hidden
warpPointer(This,X,Y) -> wxWindow:warpPointer(This,X,Y).
%% @hidden
@@ -733,7 +733,7 @@ center(This) -> wxWindow:center(This).
captureMouse(This) -> wxWindow:captureMouse(This).
%% @hidden
cacheBestSize(This,Size) -> wxWindow:cacheBestSize(This,Size).
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxUpdateUIEvent.erl b/lib/wx/src/gen/wxUpdateUIEvent.erl
index eddccd3575..baf9fc8b52 100644
--- a/lib/wx/src/gen/wxUpdateUIEvent.erl
+++ b/lib/wx/src/gen/wxUpdateUIEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>update_ui</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxUpdateUI(). #wxUpdateUI{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -179,7 +179,7 @@ setUpdateInterval(UpdateInterval)
wxe_util:cast(?wxUpdateUIEvent_SetUpdateInterval,
<<UpdateInterval:32/?UI>>).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -198,7 +198,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxWindow.erl b/lib/wx/src/gen/wxWindow.erl
index d431696660..33665a0ad6 100644
--- a/lib/wx/src/gen/wxWindow.erl
+++ b/lib/wx/src/gen/wxWindow.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html">wxWindow</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxEvtHandler}
%% </p>
%% @type wxWindow(). An object reference, The representation is internal
@@ -290,7 +290,7 @@ findFocus() ->
%% @spec (This::wxWindow(),X::integer()|string()) -> wxWindow()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html#wxwindowfindwindow">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% findWindow(This::wxWindow(), Winid::integer()) -> wxWindow() </c>
%% </p>
@@ -747,7 +747,7 @@ isEnabled(#wx_ref{type=ThisT,ref=ThisRef}) ->
%% @spec (This::wxWindow(),X::term()) -> bool()
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html#wxwindowisexposed">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% isExposed(This::wxWindow(), Pt::{X::integer(),Y::integer()}) -> bool() </c>
%% </p>
@@ -856,7 +856,7 @@ move(This,Pt={PtX,PtY})
%% @spec (This::wxWindow(),X::integer()|term(),X::integer()|term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html#wxwindowmove">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% move(This::wxWindow(), X::integer(), Y::integer()) -> move(This,X,Y, []) </c></p>
%% <p><c>
@@ -1142,7 +1142,7 @@ setCaret(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=CaretT,ref=CaretRef}) ->
%% @spec (This::wxWindow(),X::term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html#wxwindowsetclientsize">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setClientSize(This::wxWindow(), Size::{W::integer(),H::integer()}) -> ok </c>
%% </p>
@@ -1351,7 +1351,7 @@ setScrollPos(#wx_ref{type=ThisT,ref=ThisRef},Orient,Pos, Options)
%% @spec (This::wxWindow(),X::term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html#wxwindowsetsize">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setSize(This::wxWindow(), Rect::{X::integer(),Y::integer(),W::integer(),H::integer()}) -> setSize(This,Rect, []) </c></p>
%% <p><c>
@@ -1369,7 +1369,7 @@ setSize(#wx_ref{type=ThisT,ref=ThisRef},{SizeW,SizeH})
%% @spec (This::wxWindow(),X::integer()|term(),X::integer()|term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html#wxwindowsetsize">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setSize(This::wxWindow(), Width::integer(), Height::integer()) -> ok </c>
%% </p>
@@ -1417,7 +1417,7 @@ setSizeHints(This,MinSize={MinSizeW,MinSizeH})
%% @spec (This::wxWindow(),X::integer()|term(),X::integer()|term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html#wxwindowsetsizehints">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setSizeHints(This::wxWindow(), MinW::integer(), MinH::integer()) -> setSizeHints(This,MinW,MinH, []) </c></p>
%% <p><c>
@@ -1501,7 +1501,7 @@ setThemeEnabled(#wx_ref{type=ThisT,ref=ThisRef},EnableTheme)
%% @spec (This::wxWindow(),X::string()|term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html#wxwindowsettooltip">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setToolTip(This::wxWindow(), Tip::string()) -> ok </c>
%% </p>
@@ -1544,7 +1544,7 @@ setVirtualSizeHints(This,MinSize={MinSizeW,MinSizeH})
%% @spec (This::wxWindow(),X::integer()|term(),X::integer()|term()) -> ok
%% @doc See <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindow.html#wxwindowsetvirtualsizehints">external documentation</a>.
-%% <br /> Alternatives:
+%% <br /> Alternatives:
%% <p><c>
%% setVirtualSizeHints(This::wxWindow(), MinW::integer(), MinH::integer()) -> setVirtualSizeHints(This,MinW,MinH, []) </c></p>
%% <p><c>
@@ -1691,11 +1691,11 @@ warpPointer(#wx_ref{type=ThisT,ref=ThisRef},X,Y)
%% @spec (This::wxWindow()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxWindow),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxEvtHandler
+ %% From wxEvtHandler
%% @hidden
disconnect(This,EventType, Options) -> wxEvtHandler:disconnect(This,EventType, Options).
%% @hidden
diff --git a/lib/wx/src/gen/wxWindowCreateEvent.erl b/lib/wx/src/gen/wxWindowCreateEvent.erl
index 0503bdfef4..c8b3c74f81 100644
--- a/lib/wx/src/gen/wxWindowCreateEvent.erl
+++ b/lib/wx/src/gen/wxWindowCreateEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>create</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxWindowCreate(). #wxWindowCreate{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -45,7 +45,7 @@ parent_class(wxCommandEvent) -> true;
parent_class(wxEvent) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -64,7 +64,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxWindowDC.erl b/lib/wx/src/gen/wxWindowDC.erl
index 63b2249844..17cbd3d378 100644
--- a/lib/wx/src/gen/wxWindowDC.erl
+++ b/lib/wx/src/gen/wxWindowDC.erl
@@ -1,24 +1,24 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/stable/wx_wxwindowdc.html">wxWindowDC</a>.
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxDC}
%% </p>
%% @type wxWindowDC(). An object reference, The representation is internal
@@ -71,11 +71,11 @@ new(#wx_ref{type=WinT,ref=WinRef}) ->
%% @spec (This::wxWindowDC()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxWindowDC),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
- %% From wxDC
+ %% From wxDC
%% @hidden
startPage(This) -> wxDC:startPage(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxWindowDestroyEvent.erl b/lib/wx/src/gen/wxWindowDestroyEvent.erl
index 8d98b36f68..e62700da4a 100644
--- a/lib/wx/src/gen/wxWindowDestroyEvent.erl
+++ b/lib/wx/src/gen/wxWindowDestroyEvent.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -22,7 +22,7 @@
%% <dd><em>destroy</em></dd></dl>
%% See also the message variant {@link wxEvtHandler:wxWindowDestroy(). #wxWindowDestroy{}} event record type.
%%
-%% <p>This class is derived (and can use functions) from:
+%% <p>This class is derived (and can use functions) from:
%% <br />{@link wxCommandEvent}
%% <br />{@link wxEvent}
%% </p>
@@ -45,7 +45,7 @@ parent_class(wxCommandEvent) -> true;
parent_class(wxEvent) -> true;
parent_class(_Class) -> erlang:error({badtype, ?MODULE}).
- %% From wxCommandEvent
+ %% From wxCommandEvent
%% @hidden
setString(This,S) -> wxCommandEvent:setString(This,S).
%% @hidden
@@ -64,7 +64,7 @@ getInt(This) -> wxCommandEvent:getInt(This).
getExtraLong(This) -> wxCommandEvent:getExtraLong(This).
%% @hidden
getClientData(This) -> wxCommandEvent:getClientData(This).
- %% From wxEvent
+ %% From wxEvent
%% @hidden
stopPropagation(This) -> wxEvent:stopPropagation(This).
%% @hidden
diff --git a/lib/wx/src/gen/wxXmlResource.erl b/lib/wx/src/gen/wxXmlResource.erl
index c9f396e608..2b69a49bd7 100644
--- a/lib/wx/src/gen/wxXmlResource.erl
+++ b/lib/wx/src/gen/wxXmlResource.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
@@ -320,7 +320,7 @@ xrcctrl(Window = #wx_ref{}, Name, Type) when is_list(Name), is_atom(Type) ->
%% @spec (This::wxXmlResource()) -> ok
%% @doc Destroys this object, do not use object again
-destroy(Obj=#wx_ref{type=Type}) ->
+destroy(Obj=#wx_ref{type=Type}) ->
?CLASS(Type,wxXmlResource),
wxe_util:destroy(?DESTROY_OBJECT,Obj),
ok.
diff --git a/lib/wx/src/gen/wx_misc.erl b/lib/wx/src/gen/wx_misc.erl
index ef50e22e99..cf23d4cf8b 100644
--- a/lib/wx/src/gen/wx_misc.erl
+++ b/lib/wx/src/gen/wx_misc.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
diff --git a/lib/wx/src/gen/wxe_debug.hrl b/lib/wx/src/gen/wxe_debug.hrl
index c325170dbb..68a3b4ccd8 100644
--- a/lib/wx/src/gen/wxe_debug.hrl
+++ b/lib/wx/src/gen/wxe_debug.hrl
@@ -17,7 +17,7 @@
%% %CopyrightEnd%
%% This file is generated DO NOT EDIT
-wxdebug_table() ->
+wxdebug_table() ->
[
{0, {wx, internal_batch_start, 0}},
{1, {wx, internal_batch_end, 0}},
@@ -1519,1762 +1519,1763 @@ wxdebug_table() ->
{1672, {wxListCtrl, getColumnCount, 0}},
{1673, {wxListCtrl, getColumnWidth, 1}},
{1674, {wxListCtrl, getCountPerPage, 0}},
- {1675, {wxListCtrl, getImageList, 1}},
- {1676, {wxListCtrl, getItem, 1}},
- {1677, {wxListCtrl, getItemBackgroundColour, 1}},
- {1678, {wxListCtrl, getItemCount, 0}},
- {1679, {wxListCtrl, getItemData, 1}},
- {1680, {wxListCtrl, getItemFont, 1}},
- {1681, {wxListCtrl, getItemPosition, 2}},
- {1682, {wxListCtrl, getItemRect, 3}},
- {1683, {wxListCtrl, getItemSpacing, 0}},
- {1684, {wxListCtrl, getItemState, 2}},
- {1685, {wxListCtrl, getItemText, 1}},
- {1686, {wxListCtrl, getItemTextColour, 1}},
- {1687, {wxListCtrl, getNextItem, 2}},
- {1688, {wxListCtrl, getSelectedItemCount, 0}},
- {1689, {wxListCtrl, getTextColour, 0}},
- {1690, {wxListCtrl, getTopItem, 0}},
- {1691, {wxListCtrl, getViewRect, 0}},
- {1692, {wxListCtrl, hitTest, 2}},
- {1693, {wxListCtrl, insertColumn_2, 2}},
- {1694, {wxListCtrl, insertColumn_3, 3}},
- {1695, {wxListCtrl, insertItem_1, 1}},
- {1696, {wxListCtrl, insertItem_2_1, 2}},
- {1697, {wxListCtrl, insertItem_2_0, 2}},
- {1698, {wxListCtrl, insertItem_3, 3}},
- {1699, {wxListCtrl, refreshItem, 1}},
- {1700, {wxListCtrl, refreshItems, 2}},
- {1701, {wxListCtrl, scrollList, 2}},
- {1702, {wxListCtrl, setBackgroundColour, 1}},
- {1703, {wxListCtrl, setColumn, 2}},
- {1704, {wxListCtrl, setColumnWidth, 2}},
- {1705, {wxListCtrl, setImageList, 2}},
- {1706, {wxListCtrl, setItem_1, 1}},
- {1707, {wxListCtrl, setItem_4, 4}},
- {1708, {wxListCtrl, setItemBackgroundColour, 2}},
- {1709, {wxListCtrl, setItemCount, 1}},
- {1710, {wxListCtrl, setItemData, 2}},
- {1711, {wxListCtrl, setItemFont, 2}},
- {1712, {wxListCtrl, setItemImage, 3}},
- {1713, {wxListCtrl, setItemColumnImage, 3}},
- {1714, {wxListCtrl, setItemPosition, 2}},
- {1715, {wxListCtrl, setItemState, 3}},
- {1716, {wxListCtrl, setItemText, 2}},
- {1717, {wxListCtrl, setItemTextColour, 2}},
- {1718, {wxListCtrl, setSingleStyle, 2}},
- {1719, {wxListCtrl, setTextColour, 1}},
- {1720, {wxListCtrl, setWindowStyleFlag, 1}},
- {1721, {wxListCtrl, sortItems, 2}},
- {1722, {wxListCtrl, 'Destroy', undefined}},
- {1723, {wxListView, clearColumnImage, 1}},
- {1724, {wxListView, focus, 1}},
- {1725, {wxListView, getFirstSelected, 0}},
- {1726, {wxListView, getFocusedItem, 0}},
- {1727, {wxListView, getNextSelected, 1}},
- {1728, {wxListView, isSelected, 1}},
- {1729, {wxListView, select, 2}},
- {1730, {wxListView, setColumnImage, 2}},
- {1731, {wxListItem, new_0, 0}},
- {1732, {wxListItem, new_1, 1}},
- {1733, {wxListItem, destruct, 0}},
- {1734, {wxListItem, clear, 0}},
- {1735, {wxListItem, getAlign, 0}},
- {1736, {wxListItem, getBackgroundColour, 0}},
- {1737, {wxListItem, getColumn, 0}},
- {1738, {wxListItem, getFont, 0}},
- {1739, {wxListItem, getId, 0}},
- {1740, {wxListItem, getImage, 0}},
- {1741, {wxListItem, getMask, 0}},
- {1742, {wxListItem, getState, 0}},
- {1743, {wxListItem, getText, 0}},
- {1744, {wxListItem, getTextColour, 0}},
- {1745, {wxListItem, getWidth, 0}},
- {1746, {wxListItem, setAlign, 1}},
- {1747, {wxListItem, setBackgroundColour, 1}},
- {1748, {wxListItem, setColumn, 1}},
- {1749, {wxListItem, setFont, 1}},
- {1750, {wxListItem, setId, 1}},
- {1751, {wxListItem, setImage, 1}},
- {1752, {wxListItem, setMask, 1}},
- {1753, {wxListItem, setState, 1}},
- {1754, {wxListItem, setStateMask, 1}},
- {1755, {wxListItem, setText, 1}},
- {1756, {wxListItem, setTextColour, 1}},
- {1757, {wxListItem, setWidth, 1}},
- {1758, {wxImageList, new_0, 0}},
- {1759, {wxImageList, new_3, 3}},
- {1760, {wxImageList, add_1, 1}},
- {1761, {wxImageList, add_2_0, 2}},
- {1762, {wxImageList, add_2_1, 2}},
- {1763, {wxImageList, create, 3}},
- {1765, {wxImageList, draw, 5}},
- {1766, {wxImageList, getBitmap, 1}},
- {1767, {wxImageList, getIcon, 1}},
- {1768, {wxImageList, getImageCount, 0}},
- {1769, {wxImageList, getSize, 3}},
- {1770, {wxImageList, remove, 1}},
- {1771, {wxImageList, removeAll, 0}},
- {1772, {wxImageList, replace_2, 2}},
- {1773, {wxImageList, replace_3, 3}},
- {1774, {wxImageList, 'Destroy', undefined}},
- {1775, {wxTextAttr, new_0, 0}},
- {1776, {wxTextAttr, new_2, 2}},
- {1777, {wxTextAttr, getAlignment, 0}},
- {1778, {wxTextAttr, getBackgroundColour, 0}},
- {1779, {wxTextAttr, getFont, 0}},
- {1780, {wxTextAttr, getLeftIndent, 0}},
- {1781, {wxTextAttr, getLeftSubIndent, 0}},
- {1782, {wxTextAttr, getRightIndent, 0}},
- {1783, {wxTextAttr, getTabs, 0}},
- {1784, {wxTextAttr, getTextColour, 0}},
- {1785, {wxTextAttr, hasBackgroundColour, 0}},
- {1786, {wxTextAttr, hasFont, 0}},
- {1787, {wxTextAttr, hasTextColour, 0}},
- {1788, {wxTextAttr, getFlags, 0}},
- {1789, {wxTextAttr, isDefault, 0}},
- {1790, {wxTextAttr, setAlignment, 1}},
- {1791, {wxTextAttr, setBackgroundColour, 1}},
- {1792, {wxTextAttr, setFlags, 1}},
- {1793, {wxTextAttr, setFont, 2}},
- {1794, {wxTextAttr, setLeftIndent, 2}},
- {1795, {wxTextAttr, setRightIndent, 1}},
- {1796, {wxTextAttr, setTabs, 1}},
- {1797, {wxTextAttr, setTextColour, 1}},
- {1798, {wxTextAttr, 'Destroy', undefined}},
- {1800, {wxTextCtrl, new_3, 3}},
- {1801, {wxTextCtrl, new_0, 0}},
- {1803, {wxTextCtrl, destruct, 0}},
- {1804, {wxTextCtrl, appendText, 1}},
- {1805, {wxTextCtrl, canCopy, 0}},
- {1806, {wxTextCtrl, canCut, 0}},
- {1807, {wxTextCtrl, canPaste, 0}},
- {1808, {wxTextCtrl, canRedo, 0}},
- {1809, {wxTextCtrl, canUndo, 0}},
- {1810, {wxTextCtrl, clear, 0}},
- {1811, {wxTextCtrl, copy, 0}},
- {1812, {wxTextCtrl, create, 3}},
- {1813, {wxTextCtrl, cut, 0}},
- {1814, {wxTextCtrl, discardEdits, 0}},
- {1815, {wxTextCtrl, emulateKeyPress, 1}},
- {1816, {wxTextCtrl, getDefaultStyle, 0}},
- {1817, {wxTextCtrl, getInsertionPoint, 0}},
- {1818, {wxTextCtrl, getLastPosition, 0}},
- {1819, {wxTextCtrl, getLineLength, 1}},
- {1820, {wxTextCtrl, getLineText, 1}},
- {1821, {wxTextCtrl, getNumberOfLines, 0}},
- {1822, {wxTextCtrl, getRange, 2}},
- {1823, {wxTextCtrl, getSelection, 2}},
- {1824, {wxTextCtrl, getStringSelection, 0}},
- {1825, {wxTextCtrl, getStyle, 2}},
- {1826, {wxTextCtrl, getValue, 0}},
- {1827, {wxTextCtrl, isEditable, 0}},
- {1828, {wxTextCtrl, isModified, 0}},
- {1829, {wxTextCtrl, isMultiLine, 0}},
- {1830, {wxTextCtrl, isSingleLine, 0}},
- {1831, {wxTextCtrl, loadFile, 2}},
- {1832, {wxTextCtrl, markDirty, 0}},
- {1833, {wxTextCtrl, paste, 0}},
- {1834, {wxTextCtrl, positionToXY, 3}},
- {1835, {wxTextCtrl, redo, 0}},
- {1836, {wxTextCtrl, remove, 2}},
- {1837, {wxTextCtrl, replace, 3}},
- {1838, {wxTextCtrl, saveFile, 1}},
- {1839, {wxTextCtrl, setDefaultStyle, 1}},
- {1840, {wxTextCtrl, setEditable, 1}},
- {1841, {wxTextCtrl, setInsertionPoint, 1}},
- {1842, {wxTextCtrl, setInsertionPointEnd, 0}},
- {1844, {wxTextCtrl, setMaxLength, 1}},
- {1845, {wxTextCtrl, setSelection, 2}},
- {1846, {wxTextCtrl, setStyle, 3}},
- {1847, {wxTextCtrl, setValue, 1}},
- {1848, {wxTextCtrl, showPosition, 1}},
- {1849, {wxTextCtrl, undo, 0}},
- {1850, {wxTextCtrl, writeText, 1}},
- {1851, {wxTextCtrl, xYToPosition, 2}},
- {1854, {wxNotebook, new_0, 0}},
- {1855, {wxNotebook, new_3, 3}},
- {1856, {wxNotebook, destruct, 0}},
- {1857, {wxNotebook, addPage, 3}},
- {1858, {wxNotebook, advanceSelection, 1}},
- {1859, {wxNotebook, assignImageList, 1}},
- {1860, {wxNotebook, create, 3}},
- {1861, {wxNotebook, deleteAllPages, 0}},
- {1862, {wxNotebook, deletePage, 1}},
- {1863, {wxNotebook, removePage, 1}},
- {1864, {wxNotebook, getCurrentPage, 0}},
- {1865, {wxNotebook, getImageList, 0}},
- {1867, {wxNotebook, getPage, 1}},
- {1868, {wxNotebook, getPageCount, 0}},
- {1869, {wxNotebook, getPageImage, 1}},
- {1870, {wxNotebook, getPageText, 1}},
- {1871, {wxNotebook, getRowCount, 0}},
- {1872, {wxNotebook, getSelection, 0}},
- {1873, {wxNotebook, getThemeBackgroundColour, 0}},
- {1875, {wxNotebook, hitTest, 2}},
- {1877, {wxNotebook, insertPage, 4}},
- {1878, {wxNotebook, setImageList, 1}},
- {1879, {wxNotebook, setPadding, 1}},
- {1880, {wxNotebook, setPageSize, 1}},
- {1881, {wxNotebook, setPageImage, 2}},
- {1882, {wxNotebook, setPageText, 2}},
- {1883, {wxNotebook, setSelection, 1}},
- {1884, {wxNotebook, changeSelection, 1}},
- {1885, {wxChoicebook, new_0, 0}},
- {1886, {wxChoicebook, new_3, 3}},
- {1887, {wxChoicebook, addPage, 3}},
- {1888, {wxChoicebook, advanceSelection, 1}},
- {1889, {wxChoicebook, assignImageList, 1}},
- {1890, {wxChoicebook, create, 3}},
- {1891, {wxChoicebook, deleteAllPages, 0}},
- {1892, {wxChoicebook, deletePage, 1}},
- {1893, {wxChoicebook, removePage, 1}},
- {1894, {wxChoicebook, getCurrentPage, 0}},
- {1895, {wxChoicebook, getImageList, 0}},
- {1897, {wxChoicebook, getPage, 1}},
- {1898, {wxChoicebook, getPageCount, 0}},
- {1899, {wxChoicebook, getPageImage, 1}},
- {1900, {wxChoicebook, getPageText, 1}},
- {1901, {wxChoicebook, getSelection, 0}},
- {1902, {wxChoicebook, hitTest, 2}},
- {1903, {wxChoicebook, insertPage, 4}},
- {1904, {wxChoicebook, setImageList, 1}},
- {1905, {wxChoicebook, setPageSize, 1}},
- {1906, {wxChoicebook, setPageImage, 2}},
- {1907, {wxChoicebook, setPageText, 2}},
- {1908, {wxChoicebook, setSelection, 1}},
- {1909, {wxChoicebook, changeSelection, 1}},
- {1910, {wxChoicebook, 'Destroy', undefined}},
- {1911, {wxToolbook, new_0, 0}},
- {1912, {wxToolbook, new_3, 3}},
- {1913, {wxToolbook, addPage, 3}},
- {1914, {wxToolbook, advanceSelection, 1}},
- {1915, {wxToolbook, assignImageList, 1}},
- {1916, {wxToolbook, create, 3}},
- {1917, {wxToolbook, deleteAllPages, 0}},
- {1918, {wxToolbook, deletePage, 1}},
- {1919, {wxToolbook, removePage, 1}},
- {1920, {wxToolbook, getCurrentPage, 0}},
- {1921, {wxToolbook, getImageList, 0}},
- {1923, {wxToolbook, getPage, 1}},
- {1924, {wxToolbook, getPageCount, 0}},
- {1925, {wxToolbook, getPageImage, 1}},
- {1926, {wxToolbook, getPageText, 1}},
- {1927, {wxToolbook, getSelection, 0}},
- {1929, {wxToolbook, hitTest, 2}},
- {1930, {wxToolbook, insertPage, 4}},
- {1931, {wxToolbook, setImageList, 1}},
- {1932, {wxToolbook, setPageSize, 1}},
- {1933, {wxToolbook, setPageImage, 2}},
- {1934, {wxToolbook, setPageText, 2}},
- {1935, {wxToolbook, setSelection, 1}},
- {1936, {wxToolbook, changeSelection, 1}},
- {1937, {wxToolbook, 'Destroy', undefined}},
- {1938, {wxListbook, new_0, 0}},
- {1939, {wxListbook, new_3, 3}},
- {1940, {wxListbook, addPage, 3}},
- {1941, {wxListbook, advanceSelection, 1}},
- {1942, {wxListbook, assignImageList, 1}},
- {1943, {wxListbook, create, 3}},
- {1944, {wxListbook, deleteAllPages, 0}},
- {1945, {wxListbook, deletePage, 1}},
- {1946, {wxListbook, removePage, 1}},
- {1947, {wxListbook, getCurrentPage, 0}},
- {1948, {wxListbook, getImageList, 0}},
- {1950, {wxListbook, getPage, 1}},
- {1951, {wxListbook, getPageCount, 0}},
- {1952, {wxListbook, getPageImage, 1}},
- {1953, {wxListbook, getPageText, 1}},
- {1954, {wxListbook, getSelection, 0}},
- {1956, {wxListbook, hitTest, 2}},
- {1957, {wxListbook, insertPage, 4}},
- {1958, {wxListbook, setImageList, 1}},
- {1959, {wxListbook, setPageSize, 1}},
- {1960, {wxListbook, setPageImage, 2}},
- {1961, {wxListbook, setPageText, 2}},
- {1962, {wxListbook, setSelection, 1}},
- {1963, {wxListbook, changeSelection, 1}},
- {1964, {wxListbook, 'Destroy', undefined}},
- {1965, {wxTreebook, new_0, 0}},
- {1966, {wxTreebook, new_3, 3}},
- {1967, {wxTreebook, addPage, 3}},
- {1968, {wxTreebook, advanceSelection, 1}},
- {1969, {wxTreebook, assignImageList, 1}},
- {1970, {wxTreebook, create, 3}},
- {1971, {wxTreebook, deleteAllPages, 0}},
- {1972, {wxTreebook, deletePage, 1}},
- {1973, {wxTreebook, removePage, 1}},
- {1974, {wxTreebook, getCurrentPage, 0}},
- {1975, {wxTreebook, getImageList, 0}},
- {1977, {wxTreebook, getPage, 1}},
- {1978, {wxTreebook, getPageCount, 0}},
- {1979, {wxTreebook, getPageImage, 1}},
- {1980, {wxTreebook, getPageText, 1}},
- {1981, {wxTreebook, getSelection, 0}},
- {1982, {wxTreebook, expandNode, 2}},
- {1983, {wxTreebook, isNodeExpanded, 1}},
- {1985, {wxTreebook, hitTest, 2}},
- {1986, {wxTreebook, insertPage, 4}},
- {1987, {wxTreebook, insertSubPage, 4}},
- {1988, {wxTreebook, setImageList, 1}},
- {1989, {wxTreebook, setPageSize, 1}},
- {1990, {wxTreebook, setPageImage, 2}},
- {1991, {wxTreebook, setPageText, 2}},
- {1992, {wxTreebook, setSelection, 1}},
- {1993, {wxTreebook, changeSelection, 1}},
- {1994, {wxTreebook, 'Destroy', undefined}},
- {1997, {wxTreeCtrl, new_2, 2}},
- {1998, {wxTreeCtrl, new_0, 0}},
- {2000, {wxTreeCtrl, destruct, 0}},
- {2001, {wxTreeCtrl, addRoot, 2}},
- {2002, {wxTreeCtrl, appendItem, 3}},
- {2003, {wxTreeCtrl, assignImageList, 1}},
- {2004, {wxTreeCtrl, assignStateImageList, 1}},
- {2005, {wxTreeCtrl, collapse, 1}},
- {2006, {wxTreeCtrl, collapseAndReset, 1}},
- {2007, {wxTreeCtrl, create, 2}},
- {2008, {wxTreeCtrl, delete, 1}},
- {2009, {wxTreeCtrl, deleteAllItems, 0}},
- {2010, {wxTreeCtrl, deleteChildren, 1}},
- {2011, {wxTreeCtrl, ensureVisible, 1}},
- {2012, {wxTreeCtrl, expand, 1}},
- {2013, {wxTreeCtrl, getBoundingRect, 3}},
- {2015, {wxTreeCtrl, getChildrenCount, 2}},
- {2016, {wxTreeCtrl, getCount, 0}},
- {2017, {wxTreeCtrl, getEditControl, 0}},
- {2018, {wxTreeCtrl, getFirstChild, 2}},
- {2019, {wxTreeCtrl, getNextChild, 2}},
- {2020, {wxTreeCtrl, getFirstVisibleItem, 0}},
- {2021, {wxTreeCtrl, getImageList, 0}},
- {2022, {wxTreeCtrl, getIndent, 0}},
- {2023, {wxTreeCtrl, getItemBackgroundColour, 1}},
- {2024, {wxTreeCtrl, getItemData, 1}},
- {2025, {wxTreeCtrl, getItemFont, 1}},
- {2026, {wxTreeCtrl, getItemImage_1, 1}},
- {2027, {wxTreeCtrl, getItemImage_2, 2}},
- {2028, {wxTreeCtrl, getItemText, 1}},
- {2029, {wxTreeCtrl, getItemTextColour, 1}},
- {2030, {wxTreeCtrl, getLastChild, 1}},
- {2031, {wxTreeCtrl, getNextSibling, 1}},
- {2032, {wxTreeCtrl, getNextVisible, 1}},
- {2033, {wxTreeCtrl, getItemParent, 1}},
- {2034, {wxTreeCtrl, getPrevSibling, 1}},
- {2035, {wxTreeCtrl, getPrevVisible, 1}},
- {2036, {wxTreeCtrl, getRootItem, 0}},
- {2037, {wxTreeCtrl, getSelection, 0}},
- {2038, {wxTreeCtrl, getSelections, 1}},
- {2039, {wxTreeCtrl, getStateImageList, 0}},
- {2040, {wxTreeCtrl, hitTest, 1}},
- {2042, {wxTreeCtrl, insertItem, 4}},
- {2043, {wxTreeCtrl, isBold, 1}},
- {2044, {wxTreeCtrl, isExpanded, 1}},
- {2045, {wxTreeCtrl, isSelected, 1}},
- {2046, {wxTreeCtrl, isVisible, 1}},
- {2047, {wxTreeCtrl, itemHasChildren, 1}},
- {2048, {wxTreeCtrl, prependItem, 3}},
- {2049, {wxTreeCtrl, scrollTo, 1}},
- {2050, {wxTreeCtrl, selectItem_1, 1}},
- {2051, {wxTreeCtrl, selectItem_2, 2}},
- {2052, {wxTreeCtrl, setIndent, 1}},
- {2053, {wxTreeCtrl, setImageList, 1}},
- {2054, {wxTreeCtrl, setItemBackgroundColour, 2}},
- {2055, {wxTreeCtrl, setItemBold, 2}},
- {2056, {wxTreeCtrl, setItemData, 2}},
- {2057, {wxTreeCtrl, setItemDropHighlight, 2}},
- {2058, {wxTreeCtrl, setItemFont, 2}},
- {2059, {wxTreeCtrl, setItemHasChildren, 2}},
- {2060, {wxTreeCtrl, setItemImage_2, 2}},
- {2061, {wxTreeCtrl, setItemImage_3, 3}},
- {2062, {wxTreeCtrl, setItemText, 2}},
- {2063, {wxTreeCtrl, setItemTextColour, 2}},
- {2064, {wxTreeCtrl, setStateImageList, 1}},
- {2065, {wxTreeCtrl, setWindowStyle, 1}},
- {2066, {wxTreeCtrl, sortChildren, 1}},
- {2067, {wxTreeCtrl, toggle, 1}},
- {2068, {wxTreeCtrl, toggleItemSelection, 1}},
- {2069, {wxTreeCtrl, unselect, 0}},
- {2070, {wxTreeCtrl, unselectAll, 0}},
- {2071, {wxTreeCtrl, unselectItem, 1}},
- {2072, {wxScrollBar, new_0, 0}},
- {2073, {wxScrollBar, new_3, 3}},
- {2074, {wxScrollBar, destruct, 0}},
- {2075, {wxScrollBar, create, 3}},
- {2076, {wxScrollBar, getRange, 0}},
- {2077, {wxScrollBar, getPageSize, 0}},
- {2078, {wxScrollBar, getThumbPosition, 0}},
- {2079, {wxScrollBar, getThumbSize, 0}},
- {2080, {wxScrollBar, setThumbPosition, 1}},
- {2081, {wxScrollBar, setScrollbar, 5}},
- {2083, {wxSpinButton, new_2, 2}},
- {2084, {wxSpinButton, new_0, 0}},
- {2085, {wxSpinButton, create, 2}},
- {2086, {wxSpinButton, getMax, 0}},
- {2087, {wxSpinButton, getMin, 0}},
- {2088, {wxSpinButton, getValue, 0}},
- {2089, {wxSpinButton, setRange, 2}},
- {2090, {wxSpinButton, setValue, 1}},
- {2091, {wxSpinButton, 'Destroy', undefined}},
- {2092, {wxSpinCtrl, new_0, 0}},
- {2093, {wxSpinCtrl, new_2, 2}},
- {2095, {wxSpinCtrl, create, 2}},
- {2098, {wxSpinCtrl, setValue_1_1, 1}},
- {2099, {wxSpinCtrl, setValue_1_0, 1}},
- {2101, {wxSpinCtrl, getValue, 0}},
- {2103, {wxSpinCtrl, setRange, 2}},
- {2104, {wxSpinCtrl, setSelection, 2}},
- {2106, {wxSpinCtrl, getMin, 0}},
- {2108, {wxSpinCtrl, getMax, 0}},
- {2109, {wxSpinCtrl, 'Destroy', undefined}},
- {2110, {wxStaticText, new_0, 0}},
- {2111, {wxStaticText, new_4, 4}},
- {2112, {wxStaticText, create, 4}},
- {2113, {wxStaticText, getLabel, 0}},
- {2114, {wxStaticText, setLabel, 1}},
- {2115, {wxStaticText, wrap, 1}},
- {2116, {wxStaticText, 'Destroy', undefined}},
- {2117, {wxStaticBitmap, new_0, 0}},
- {2118, {wxStaticBitmap, new_4, 4}},
- {2119, {wxStaticBitmap, create, 4}},
- {2120, {wxStaticBitmap, getBitmap, 0}},
- {2121, {wxStaticBitmap, setBitmap, 1}},
- {2122, {wxStaticBitmap, 'Destroy', undefined}},
- {2123, {wxRadioBox, new, 7}},
- {2125, {wxRadioBox, destruct, 0}},
- {2126, {wxRadioBox, create, 7}},
- {2127, {wxRadioBox, enable_2, 2}},
- {2128, {wxRadioBox, enable_1, 1}},
- {2129, {wxRadioBox, getSelection, 0}},
- {2130, {wxRadioBox, getString, 1}},
- {2131, {wxRadioBox, setSelection, 1}},
- {2132, {wxRadioBox, show_2, 2}},
- {2133, {wxRadioBox, show_1, 1}},
- {2134, {wxRadioBox, getColumnCount, 0}},
- {2135, {wxRadioBox, getItemHelpText, 1}},
- {2136, {wxRadioBox, getItemToolTip, 1}},
- {2138, {wxRadioBox, getItemFromPoint, 1}},
- {2139, {wxRadioBox, getRowCount, 0}},
- {2140, {wxRadioBox, isItemEnabled, 1}},
- {2141, {wxRadioBox, isItemShown, 1}},
- {2142, {wxRadioBox, setItemHelpText, 2}},
- {2143, {wxRadioBox, setItemToolTip, 2}},
- {2144, {wxRadioButton, new_0, 0}},
- {2145, {wxRadioButton, new_4, 4}},
- {2146, {wxRadioButton, create, 4}},
- {2147, {wxRadioButton, getValue, 0}},
- {2148, {wxRadioButton, setValue, 1}},
- {2149, {wxRadioButton, 'Destroy', undefined}},
- {2151, {wxSlider, new_6, 6}},
- {2152, {wxSlider, new_0, 0}},
- {2153, {wxSlider, create, 6}},
- {2154, {wxSlider, getLineSize, 0}},
- {2155, {wxSlider, getMax, 0}},
- {2156, {wxSlider, getMin, 0}},
- {2157, {wxSlider, getPageSize, 0}},
- {2158, {wxSlider, getThumbLength, 0}},
- {2159, {wxSlider, getValue, 0}},
- {2160, {wxSlider, setLineSize, 1}},
- {2161, {wxSlider, setPageSize, 1}},
- {2162, {wxSlider, setRange, 2}},
- {2163, {wxSlider, setThumbLength, 1}},
- {2164, {wxSlider, setValue, 1}},
- {2165, {wxSlider, 'Destroy', undefined}},
- {2167, {wxDialog, new_4, 4}},
- {2168, {wxDialog, new_0, 0}},
- {2170, {wxDialog, destruct, 0}},
- {2171, {wxDialog, create, 4}},
- {2172, {wxDialog, createButtonSizer, 1}},
- {2173, {wxDialog, createStdDialogButtonSizer, 1}},
- {2174, {wxDialog, endModal, 1}},
- {2175, {wxDialog, getAffirmativeId, 0}},
- {2176, {wxDialog, getReturnCode, 0}},
- {2177, {wxDialog, isModal, 0}},
- {2178, {wxDialog, setAffirmativeId, 1}},
- {2179, {wxDialog, setReturnCode, 1}},
- {2180, {wxDialog, show, 1}},
- {2181, {wxDialog, showModal, 0}},
- {2182, {wxColourDialog, new_0, 0}},
- {2183, {wxColourDialog, new_2, 2}},
- {2184, {wxColourDialog, destruct, 0}},
- {2185, {wxColourDialog, create, 2}},
- {2186, {wxColourDialog, getColourData, 0}},
- {2187, {wxColourData, new_0, 0}},
- {2188, {wxColourData, new_1, 1}},
- {2189, {wxColourData, destruct, 0}},
- {2190, {wxColourData, getChooseFull, 0}},
- {2191, {wxColourData, getColour, 0}},
- {2193, {wxColourData, getCustomColour, 1}},
- {2194, {wxColourData, setChooseFull, 1}},
- {2195, {wxColourData, setColour, 1}},
- {2196, {wxColourData, setCustomColour, 2}},
- {2197, {wxPalette, new_0, 0}},
- {2198, {wxPalette, new_4, 4}},
- {2200, {wxPalette, destruct, 0}},
- {2201, {wxPalette, create, 4}},
- {2202, {wxPalette, getColoursCount, 0}},
- {2203, {wxPalette, getPixel, 3}},
- {2204, {wxPalette, getRGB, 4}},
- {2205, {wxPalette, isOk, 0}},
- {2209, {wxDirDialog, new, 2}},
- {2210, {wxDirDialog, destruct, 0}},
- {2211, {wxDirDialog, getPath, 0}},
- {2212, {wxDirDialog, getMessage, 0}},
- {2213, {wxDirDialog, setMessage, 1}},
- {2214, {wxDirDialog, setPath, 1}},
- {2218, {wxFileDialog, new, 2}},
- {2219, {wxFileDialog, destruct, 0}},
- {2220, {wxFileDialog, getDirectory, 0}},
- {2221, {wxFileDialog, getFilename, 0}},
- {2222, {wxFileDialog, getFilenames, 1}},
- {2223, {wxFileDialog, getFilterIndex, 0}},
- {2224, {wxFileDialog, getMessage, 0}},
- {2225, {wxFileDialog, getPath, 0}},
- {2226, {wxFileDialog, getPaths, 1}},
- {2227, {wxFileDialog, getWildcard, 0}},
- {2228, {wxFileDialog, setDirectory, 1}},
- {2229, {wxFileDialog, setFilename, 1}},
- {2230, {wxFileDialog, setFilterIndex, 1}},
- {2231, {wxFileDialog, setMessage, 1}},
- {2232, {wxFileDialog, setPath, 1}},
- {2233, {wxFileDialog, setWildcard, 1}},
- {2234, {wxPickerBase, setInternalMargin, 1}},
- {2235, {wxPickerBase, getInternalMargin, 0}},
- {2236, {wxPickerBase, setTextCtrlProportion, 1}},
- {2237, {wxPickerBase, setPickerCtrlProportion, 1}},
- {2238, {wxPickerBase, getTextCtrlProportion, 0}},
- {2239, {wxPickerBase, getPickerCtrlProportion, 0}},
- {2240, {wxPickerBase, hasTextCtrl, 0}},
- {2241, {wxPickerBase, getTextCtrl, 0}},
- {2242, {wxPickerBase, isTextCtrlGrowable, 0}},
- {2243, {wxPickerBase, setPickerCtrlGrowable, 1}},
- {2244, {wxPickerBase, setTextCtrlGrowable, 1}},
- {2245, {wxPickerBase, isPickerCtrlGrowable, 0}},
- {2246, {wxFilePickerCtrl, new_0, 0}},
- {2247, {wxFilePickerCtrl, new_3, 3}},
- {2248, {wxFilePickerCtrl, create, 3}},
- {2249, {wxFilePickerCtrl, getPath, 0}},
- {2250, {wxFilePickerCtrl, setPath, 1}},
- {2251, {wxFilePickerCtrl, 'Destroy', undefined}},
- {2252, {wxDirPickerCtrl, new_0, 0}},
- {2253, {wxDirPickerCtrl, new_3, 3}},
- {2254, {wxDirPickerCtrl, create, 3}},
- {2255, {wxDirPickerCtrl, getPath, 0}},
- {2256, {wxDirPickerCtrl, setPath, 1}},
- {2257, {wxDirPickerCtrl, 'Destroy', undefined}},
- {2258, {wxColourPickerCtrl, new_0, 0}},
- {2259, {wxColourPickerCtrl, new_3, 3}},
- {2260, {wxColourPickerCtrl, create, 3}},
- {2261, {wxColourPickerCtrl, getColour, 0}},
- {2262, {wxColourPickerCtrl, setColour_1_1, 1}},
- {2263, {wxColourPickerCtrl, setColour_1_0, 1}},
- {2264, {wxColourPickerCtrl, 'Destroy', undefined}},
- {2265, {wxDatePickerCtrl, new_0, 0}},
- {2266, {wxDatePickerCtrl, new_3, 3}},
- {2267, {wxDatePickerCtrl, getRange, 2}},
- {2268, {wxDatePickerCtrl, getValue, 0}},
- {2269, {wxDatePickerCtrl, setRange, 2}},
- {2270, {wxDatePickerCtrl, setValue, 1}},
- {2271, {wxDatePickerCtrl, 'Destroy', undefined}},
- {2272, {wxFontPickerCtrl, new_0, 0}},
- {2273, {wxFontPickerCtrl, new_3, 3}},
- {2274, {wxFontPickerCtrl, create, 3}},
- {2275, {wxFontPickerCtrl, getSelectedFont, 0}},
- {2276, {wxFontPickerCtrl, setSelectedFont, 1}},
- {2277, {wxFontPickerCtrl, getMaxPointSize, 0}},
- {2278, {wxFontPickerCtrl, setMaxPointSize, 1}},
- {2279, {wxFontPickerCtrl, 'Destroy', undefined}},
- {2282, {wxFindReplaceDialog, new_0, 0}},
- {2283, {wxFindReplaceDialog, new_4, 4}},
- {2284, {wxFindReplaceDialog, destruct, 0}},
- {2285, {wxFindReplaceDialog, create, 4}},
- {2286, {wxFindReplaceDialog, getData, 0}},
- {2287, {wxFindReplaceData, new_0, 0}},
- {2288, {wxFindReplaceData, new_1, 1}},
- {2289, {wxFindReplaceData, getFindString, 0}},
- {2290, {wxFindReplaceData, getReplaceString, 0}},
- {2291, {wxFindReplaceData, getFlags, 0}},
- {2292, {wxFindReplaceData, setFlags, 1}},
- {2293, {wxFindReplaceData, setFindString, 1}},
- {2294, {wxFindReplaceData, setReplaceString, 1}},
- {2295, {wxFindReplaceData, 'Destroy', undefined}},
- {2296, {wxMultiChoiceDialog, new_0, 0}},
- {2298, {wxMultiChoiceDialog, new_5, 5}},
- {2299, {wxMultiChoiceDialog, getSelections, 0}},
- {2300, {wxMultiChoiceDialog, setSelections, 1}},
- {2301, {wxMultiChoiceDialog, 'Destroy', undefined}},
- {2302, {wxSingleChoiceDialog, new_0, 0}},
- {2304, {wxSingleChoiceDialog, new_5, 5}},
- {2305, {wxSingleChoiceDialog, getSelection, 0}},
- {2306, {wxSingleChoiceDialog, getStringSelection, 0}},
- {2307, {wxSingleChoiceDialog, setSelection, 1}},
- {2308, {wxSingleChoiceDialog, 'Destroy', undefined}},
- {2309, {wxTextEntryDialog, new, 3}},
- {2310, {wxTextEntryDialog, getValue, 0}},
- {2311, {wxTextEntryDialog, setValue, 1}},
- {2312, {wxTextEntryDialog, 'Destroy', undefined}},
- {2313, {wxPasswordEntryDialog, new, 3}},
- {2314, {wxPasswordEntryDialog, 'Destroy', undefined}},
- {2315, {wxFontData, new_0, 0}},
- {2316, {wxFontData, new_1, 1}},
- {2317, {wxFontData, destruct, 0}},
- {2318, {wxFontData, enableEffects, 1}},
- {2319, {wxFontData, getAllowSymbols, 0}},
- {2320, {wxFontData, getColour, 0}},
- {2321, {wxFontData, getChosenFont, 0}},
- {2322, {wxFontData, getEnableEffects, 0}},
- {2323, {wxFontData, getInitialFont, 0}},
- {2324, {wxFontData, getShowHelp, 0}},
- {2325, {wxFontData, setAllowSymbols, 1}},
- {2326, {wxFontData, setChosenFont, 1}},
- {2327, {wxFontData, setColour, 1}},
- {2328, {wxFontData, setInitialFont, 1}},
- {2329, {wxFontData, setRange, 2}},
- {2330, {wxFontData, setShowHelp, 1}},
- {2334, {wxFontDialog, new_0, 0}},
- {2336, {wxFontDialog, new_2, 2}},
- {2338, {wxFontDialog, create, 2}},
- {2339, {wxFontDialog, getFontData, 0}},
- {2341, {wxFontDialog, 'Destroy', undefined}},
- {2342, {wxProgressDialog, new, 3}},
- {2343, {wxProgressDialog, destruct, 0}},
- {2344, {wxProgressDialog, resume, 0}},
- {2345, {wxProgressDialog, update_2, 2}},
- {2346, {wxProgressDialog, update_0, 0}},
- {2347, {wxMessageDialog, new, 3}},
- {2348, {wxMessageDialog, destruct, 0}},
- {2349, {wxPageSetupDialog, new, 2}},
- {2350, {wxPageSetupDialog, destruct, 0}},
- {2351, {wxPageSetupDialog, getPageSetupData, 0}},
- {2352, {wxPageSetupDialog, showModal, 0}},
- {2353, {wxPageSetupDialogData, new_0, 0}},
- {2354, {wxPageSetupDialogData, new_1_0, 1}},
- {2355, {wxPageSetupDialogData, new_1_1, 1}},
- {2356, {wxPageSetupDialogData, destruct, 0}},
- {2357, {wxPageSetupDialogData, enableHelp, 1}},
- {2358, {wxPageSetupDialogData, enableMargins, 1}},
- {2359, {wxPageSetupDialogData, enableOrientation, 1}},
- {2360, {wxPageSetupDialogData, enablePaper, 1}},
- {2361, {wxPageSetupDialogData, enablePrinter, 1}},
- {2362, {wxPageSetupDialogData, getDefaultMinMargins, 0}},
- {2363, {wxPageSetupDialogData, getEnableMargins, 0}},
- {2364, {wxPageSetupDialogData, getEnableOrientation, 0}},
- {2365, {wxPageSetupDialogData, getEnablePaper, 0}},
- {2366, {wxPageSetupDialogData, getEnablePrinter, 0}},
- {2367, {wxPageSetupDialogData, getEnableHelp, 0}},
- {2368, {wxPageSetupDialogData, getDefaultInfo, 0}},
- {2369, {wxPageSetupDialogData, getMarginTopLeft, 0}},
- {2370, {wxPageSetupDialogData, getMarginBottomRight, 0}},
- {2371, {wxPageSetupDialogData, getMinMarginTopLeft, 0}},
- {2372, {wxPageSetupDialogData, getMinMarginBottomRight, 0}},
- {2373, {wxPageSetupDialogData, getPaperId, 0}},
- {2374, {wxPageSetupDialogData, getPaperSize, 0}},
- {2376, {wxPageSetupDialogData, getPrintData, 0}},
- {2377, {wxPageSetupDialogData, isOk, 0}},
- {2378, {wxPageSetupDialogData, setDefaultInfo, 1}},
- {2379, {wxPageSetupDialogData, setDefaultMinMargins, 1}},
- {2380, {wxPageSetupDialogData, setMarginTopLeft, 1}},
- {2381, {wxPageSetupDialogData, setMarginBottomRight, 1}},
- {2382, {wxPageSetupDialogData, setMinMarginTopLeft, 1}},
- {2383, {wxPageSetupDialogData, setMinMarginBottomRight, 1}},
- {2384, {wxPageSetupDialogData, setPaperId, 1}},
- {2385, {wxPageSetupDialogData, setPaperSize_1_1, 1}},
- {2386, {wxPageSetupDialogData, setPaperSize_1_0, 1}},
- {2387, {wxPageSetupDialogData, setPrintData, 1}},
- {2388, {wxPrintDialog, new_2_0, 2}},
- {2389, {wxPrintDialog, new_2_1, 2}},
- {2390, {wxPrintDialog, destruct, 0}},
- {2391, {wxPrintDialog, getPrintDialogData, 0}},
- {2392, {wxPrintDialog, getPrintDC, 0}},
- {2393, {wxPrintDialogData, new_0, 0}},
- {2394, {wxPrintDialogData, new_1_1, 1}},
- {2395, {wxPrintDialogData, new_1_0, 1}},
- {2396, {wxPrintDialogData, destruct, 0}},
- {2397, {wxPrintDialogData, enableHelp, 1}},
- {2398, {wxPrintDialogData, enablePageNumbers, 1}},
- {2399, {wxPrintDialogData, enablePrintToFile, 1}},
- {2400, {wxPrintDialogData, enableSelection, 1}},
- {2401, {wxPrintDialogData, getAllPages, 0}},
- {2402, {wxPrintDialogData, getCollate, 0}},
- {2403, {wxPrintDialogData, getFromPage, 0}},
- {2404, {wxPrintDialogData, getMaxPage, 0}},
- {2405, {wxPrintDialogData, getMinPage, 0}},
- {2406, {wxPrintDialogData, getNoCopies, 0}},
- {2407, {wxPrintDialogData, getPrintData, 0}},
- {2408, {wxPrintDialogData, getPrintToFile, 0}},
- {2409, {wxPrintDialogData, getSelection, 0}},
- {2410, {wxPrintDialogData, getToPage, 0}},
- {2411, {wxPrintDialogData, isOk, 0}},
- {2412, {wxPrintDialogData, setCollate, 1}},
- {2413, {wxPrintDialogData, setFromPage, 1}},
- {2414, {wxPrintDialogData, setMaxPage, 1}},
- {2415, {wxPrintDialogData, setMinPage, 1}},
- {2416, {wxPrintDialogData, setNoCopies, 1}},
- {2417, {wxPrintDialogData, setPrintData, 1}},
- {2418, {wxPrintDialogData, setPrintToFile, 1}},
- {2419, {wxPrintDialogData, setSelection, 1}},
- {2420, {wxPrintDialogData, setToPage, 1}},
- {2421, {wxPrintData, new_0, 0}},
- {2422, {wxPrintData, new_1, 1}},
- {2423, {wxPrintData, destruct, 0}},
- {2424, {wxPrintData, getCollate, 0}},
- {2425, {wxPrintData, getBin, 0}},
- {2426, {wxPrintData, getColour, 0}},
- {2427, {wxPrintData, getDuplex, 0}},
- {2428, {wxPrintData, getNoCopies, 0}},
- {2429, {wxPrintData, getOrientation, 0}},
- {2430, {wxPrintData, getPaperId, 0}},
- {2431, {wxPrintData, getPrinterName, 0}},
- {2432, {wxPrintData, getQuality, 0}},
- {2433, {wxPrintData, isOk, 0}},
- {2434, {wxPrintData, setBin, 1}},
- {2435, {wxPrintData, setCollate, 1}},
- {2436, {wxPrintData, setColour, 1}},
- {2437, {wxPrintData, setDuplex, 1}},
- {2438, {wxPrintData, setNoCopies, 1}},
- {2439, {wxPrintData, setOrientation, 1}},
- {2440, {wxPrintData, setPaperId, 1}},
- {2441, {wxPrintData, setPrinterName, 1}},
- {2442, {wxPrintData, setQuality, 1}},
- {2445, {wxPrintPreview, new_2, 2}},
- {2446, {wxPrintPreview, new_3, 3}},
- {2448, {wxPrintPreview, destruct, 0}},
- {2449, {wxPrintPreview, getCanvas, 0}},
- {2450, {wxPrintPreview, getCurrentPage, 0}},
- {2451, {wxPrintPreview, getFrame, 0}},
- {2452, {wxPrintPreview, getMaxPage, 0}},
- {2453, {wxPrintPreview, getMinPage, 0}},
- {2454, {wxPrintPreview, getPrintout, 0}},
- {2455, {wxPrintPreview, getPrintoutForPrinting, 0}},
- {2456, {wxPrintPreview, isOk, 0}},
- {2457, {wxPrintPreview, paintPage, 2}},
- {2458, {wxPrintPreview, print, 1}},
- {2459, {wxPrintPreview, renderPage, 1}},
- {2460, {wxPrintPreview, setCanvas, 1}},
- {2461, {wxPrintPreview, setCurrentPage, 1}},
- {2462, {wxPrintPreview, setFrame, 1}},
- {2463, {wxPrintPreview, setPrintout, 1}},
- {2464, {wxPrintPreview, setZoom, 1}},
- {2465, {wxPreviewFrame, new, 3}},
- {2466, {wxPreviewFrame, destruct, 0}},
- {2467, {wxPreviewFrame, createControlBar, 0}},
- {2468, {wxPreviewFrame, createCanvas, 0}},
- {2469, {wxPreviewFrame, initialize, 0}},
- {2470, {wxPreviewFrame, onCloseWindow, 1}},
- {2471, {wxPreviewControlBar, new, 4}},
- {2472, {wxPreviewControlBar, destruct, 0}},
- {2473, {wxPreviewControlBar, createButtons, 0}},
- {2474, {wxPreviewControlBar, getPrintPreview, 0}},
- {2475, {wxPreviewControlBar, getZoomControl, 0}},
- {2476, {wxPreviewControlBar, setZoomControl, 1}},
- {2478, {wxPrinter, new, 1}},
- {2479, {wxPrinter, createAbortWindow, 2}},
- {2480, {wxPrinter, getAbort, 0}},
- {2481, {wxPrinter, getLastError, 0}},
- {2482, {wxPrinter, getPrintDialogData, 0}},
- {2483, {wxPrinter, print, 3}},
- {2484, {wxPrinter, printDialog, 1}},
- {2485, {wxPrinter, reportError, 3}},
- {2486, {wxPrinter, setup, 1}},
- {2487, {wxPrinter, 'Destroy', undefined}},
- {2488, {wxXmlResource, new_1, 1}},
- {2489, {wxXmlResource, new_2, 2}},
- {2490, {wxXmlResource, destruct, 0}},
- {2491, {wxXmlResource, attachUnknownControl, 3}},
- {2492, {wxXmlResource, clearHandlers, 0}},
- {2493, {wxXmlResource, compareVersion, 4}},
- {2494, {wxXmlResource, get, 0}},
- {2495, {wxXmlResource, getFlags, 0}},
- {2496, {wxXmlResource, getVersion, 0}},
- {2497, {wxXmlResource, getXRCID, 2}},
- {2498, {wxXmlResource, initAllHandlers, 0}},
- {2499, {wxXmlResource, load, 1}},
- {2500, {wxXmlResource, loadBitmap, 1}},
- {2501, {wxXmlResource, loadDialog_2, 2}},
- {2502, {wxXmlResource, loadDialog_3, 3}},
- {2503, {wxXmlResource, loadFrame_2, 2}},
- {2504, {wxXmlResource, loadFrame_3, 3}},
- {2505, {wxXmlResource, loadIcon, 1}},
- {2506, {wxXmlResource, loadMenu, 1}},
- {2507, {wxXmlResource, loadMenuBar_2, 2}},
- {2508, {wxXmlResource, loadMenuBar_1, 1}},
- {2509, {wxXmlResource, loadPanel_2, 2}},
- {2510, {wxXmlResource, loadPanel_3, 3}},
- {2511, {wxXmlResource, loadToolBar, 2}},
- {2512, {wxXmlResource, set, 1}},
- {2513, {wxXmlResource, setFlags, 1}},
- {2514, {wxXmlResource, unload, 1}},
- {2515, {wxXmlResource, xrcctrl, 3}},
- {2516, {wxHtmlEasyPrinting, new, 1}},
- {2517, {wxHtmlEasyPrinting, destruct, 0}},
- {2518, {wxHtmlEasyPrinting, getPrintData, 0}},
- {2519, {wxHtmlEasyPrinting, getPageSetupData, 0}},
- {2520, {wxHtmlEasyPrinting, previewFile, 1}},
- {2521, {wxHtmlEasyPrinting, previewText, 2}},
- {2522, {wxHtmlEasyPrinting, printFile, 1}},
- {2523, {wxHtmlEasyPrinting, printText, 2}},
- {2524, {wxHtmlEasyPrinting, pageSetup, 0}},
- {2525, {wxHtmlEasyPrinting, setFonts, 3}},
- {2526, {wxHtmlEasyPrinting, setHeader, 2}},
- {2527, {wxHtmlEasyPrinting, setFooter, 2}},
- {2529, {wxGLCanvas, new_2, 2}},
- {2530, {wxGLCanvas, new_3_1, 3}},
- {2531, {wxGLCanvas, new_3_0, 3}},
- {2532, {wxGLCanvas, getContext, 0}},
- {2534, {wxGLCanvas, setCurrent, 0}},
- {2535, {wxGLCanvas, swapBuffers, 0}},
- {2536, {wxGLCanvas, 'Destroy', undefined}},
- {2537, {wxAuiManager, new, 1}},
- {2538, {wxAuiManager, destruct, 0}},
- {2539, {wxAuiManager, addPane_2_1, 2}},
- {2540, {wxAuiManager, addPane_3, 3}},
- {2541, {wxAuiManager, addPane_2_0, 2}},
- {2542, {wxAuiManager, detachPane, 1}},
- {2543, {wxAuiManager, getAllPanes, 0}},
- {2544, {wxAuiManager, getArtProvider, 0}},
- {2545, {wxAuiManager, getDockSizeConstraint, 2}},
- {2546, {wxAuiManager, getFlags, 0}},
- {2547, {wxAuiManager, getManagedWindow, 0}},
- {2548, {wxAuiManager, getManager, 1}},
- {2549, {wxAuiManager, getPane_1_1, 1}},
- {2550, {wxAuiManager, getPane_1_0, 1}},
- {2551, {wxAuiManager, hideHint, 0}},
- {2552, {wxAuiManager, insertPane, 3}},
- {2553, {wxAuiManager, loadPaneInfo, 2}},
- {2554, {wxAuiManager, loadPerspective, 2}},
- {2555, {wxAuiManager, savePaneInfo, 1}},
- {2556, {wxAuiManager, savePerspective, 0}},
- {2557, {wxAuiManager, setArtProvider, 1}},
- {2558, {wxAuiManager, setDockSizeConstraint, 2}},
- {2559, {wxAuiManager, setFlags, 1}},
- {2560, {wxAuiManager, setManagedWindow, 1}},
- {2561, {wxAuiManager, showHint, 1}},
- {2562, {wxAuiManager, unInit, 0}},
- {2563, {wxAuiManager, update, 0}},
- {2564, {wxAuiPaneInfo, new_0, 0}},
- {2565, {wxAuiPaneInfo, new_1, 1}},
- {2566, {wxAuiPaneInfo, destruct, 0}},
- {2567, {wxAuiPaneInfo, bestSize_1, 1}},
- {2568, {wxAuiPaneInfo, bestSize_2, 2}},
- {2569, {wxAuiPaneInfo, bottom, 0}},
- {2570, {wxAuiPaneInfo, bottomDockable, 1}},
- {2571, {wxAuiPaneInfo, caption, 1}},
- {2572, {wxAuiPaneInfo, captionVisible, 1}},
- {2573, {wxAuiPaneInfo, centre, 0}},
- {2574, {wxAuiPaneInfo, centrePane, 0}},
- {2575, {wxAuiPaneInfo, closeButton, 1}},
- {2576, {wxAuiPaneInfo, defaultPane, 0}},
- {2577, {wxAuiPaneInfo, destroyOnClose, 1}},
- {2578, {wxAuiPaneInfo, direction, 1}},
- {2579, {wxAuiPaneInfo, dock, 0}},
- {2580, {wxAuiPaneInfo, dockable, 1}},
- {2581, {wxAuiPaneInfo, fixed, 0}},
- {2582, {wxAuiPaneInfo, float, 0}},
- {2583, {wxAuiPaneInfo, floatable, 1}},
- {2584, {wxAuiPaneInfo, floatingPosition_1, 1}},
- {2585, {wxAuiPaneInfo, floatingPosition_2, 2}},
- {2586, {wxAuiPaneInfo, floatingSize_1, 1}},
- {2587, {wxAuiPaneInfo, floatingSize_2, 2}},
- {2588, {wxAuiPaneInfo, gripper, 1}},
- {2589, {wxAuiPaneInfo, gripperTop, 1}},
- {2590, {wxAuiPaneInfo, hasBorder, 0}},
- {2591, {wxAuiPaneInfo, hasCaption, 0}},
- {2592, {wxAuiPaneInfo, hasCloseButton, 0}},
- {2593, {wxAuiPaneInfo, hasFlag, 1}},
- {2594, {wxAuiPaneInfo, hasGripper, 0}},
- {2595, {wxAuiPaneInfo, hasGripperTop, 0}},
- {2596, {wxAuiPaneInfo, hasMaximizeButton, 0}},
- {2597, {wxAuiPaneInfo, hasMinimizeButton, 0}},
- {2598, {wxAuiPaneInfo, hasPinButton, 0}},
- {2599, {wxAuiPaneInfo, hide, 0}},
- {2600, {wxAuiPaneInfo, isBottomDockable, 0}},
- {2601, {wxAuiPaneInfo, isDocked, 0}},
- {2602, {wxAuiPaneInfo, isFixed, 0}},
- {2603, {wxAuiPaneInfo, isFloatable, 0}},
- {2604, {wxAuiPaneInfo, isFloating, 0}},
- {2605, {wxAuiPaneInfo, isLeftDockable, 0}},
- {2606, {wxAuiPaneInfo, isMovable, 0}},
- {2607, {wxAuiPaneInfo, isOk, 0}},
- {2608, {wxAuiPaneInfo, isResizable, 0}},
- {2609, {wxAuiPaneInfo, isRightDockable, 0}},
- {2610, {wxAuiPaneInfo, isShown, 0}},
- {2611, {wxAuiPaneInfo, isToolbar, 0}},
- {2612, {wxAuiPaneInfo, isTopDockable, 0}},
- {2613, {wxAuiPaneInfo, layer, 1}},
- {2614, {wxAuiPaneInfo, left, 0}},
- {2615, {wxAuiPaneInfo, leftDockable, 1}},
- {2616, {wxAuiPaneInfo, maxSize_1, 1}},
- {2617, {wxAuiPaneInfo, maxSize_2, 2}},
- {2618, {wxAuiPaneInfo, maximizeButton, 1}},
- {2619, {wxAuiPaneInfo, minSize_1, 1}},
- {2620, {wxAuiPaneInfo, minSize_2, 2}},
- {2621, {wxAuiPaneInfo, minimizeButton, 1}},
- {2622, {wxAuiPaneInfo, movable, 1}},
- {2623, {wxAuiPaneInfo, name, 1}},
- {2624, {wxAuiPaneInfo, paneBorder, 1}},
- {2625, {wxAuiPaneInfo, pinButton, 1}},
- {2626, {wxAuiPaneInfo, position, 1}},
- {2627, {wxAuiPaneInfo, resizable, 1}},
- {2628, {wxAuiPaneInfo, right, 0}},
- {2629, {wxAuiPaneInfo, rightDockable, 1}},
- {2630, {wxAuiPaneInfo, row, 1}},
- {2631, {wxAuiPaneInfo, safeSet, 1}},
- {2632, {wxAuiPaneInfo, setFlag, 2}},
- {2633, {wxAuiPaneInfo, show, 1}},
- {2634, {wxAuiPaneInfo, toolbarPane, 0}},
- {2635, {wxAuiPaneInfo, top, 0}},
- {2636, {wxAuiPaneInfo, topDockable, 1}},
- {2637, {wxAuiPaneInfo, window, 1}},
- {2638, {wxAuiNotebook, new_0, 0}},
- {2639, {wxAuiNotebook, new_2, 2}},
- {2640, {wxAuiNotebook, addPage, 3}},
- {2641, {wxAuiNotebook, create, 2}},
- {2642, {wxAuiNotebook, deletePage, 1}},
- {2643, {wxAuiNotebook, getArtProvider, 0}},
- {2644, {wxAuiNotebook, getPage, 1}},
- {2645, {wxAuiNotebook, getPageBitmap, 1}},
- {2646, {wxAuiNotebook, getPageCount, 0}},
- {2647, {wxAuiNotebook, getPageIndex, 1}},
- {2648, {wxAuiNotebook, getPageText, 1}},
- {2649, {wxAuiNotebook, getSelection, 0}},
- {2650, {wxAuiNotebook, insertPage, 4}},
- {2651, {wxAuiNotebook, removePage, 1}},
- {2652, {wxAuiNotebook, setArtProvider, 1}},
- {2653, {wxAuiNotebook, setFont, 1}},
- {2654, {wxAuiNotebook, setPageBitmap, 2}},
- {2655, {wxAuiNotebook, setPageText, 2}},
- {2656, {wxAuiNotebook, setSelection, 1}},
- {2657, {wxAuiNotebook, setTabCtrlHeight, 1}},
- {2658, {wxAuiNotebook, setUniformBitmapSize, 1}},
- {2659, {wxAuiNotebook, 'Destroy', undefined}},
- {2660, {wxMDIParentFrame, new_0, 0}},
- {2661, {wxMDIParentFrame, new_4, 4}},
- {2662, {wxMDIParentFrame, destruct, 0}},
- {2663, {wxMDIParentFrame, activateNext, 0}},
- {2664, {wxMDIParentFrame, activatePrevious, 0}},
- {2665, {wxMDIParentFrame, arrangeIcons, 0}},
- {2666, {wxMDIParentFrame, cascade, 0}},
- {2667, {wxMDIParentFrame, create, 4}},
- {2668, {wxMDIParentFrame, getActiveChild, 0}},
- {2669, {wxMDIParentFrame, getClientWindow, 0}},
- {2670, {wxMDIParentFrame, tile, 1}},
- {2671, {wxMDIChildFrame, new_0, 0}},
- {2672, {wxMDIChildFrame, new_4, 4}},
- {2673, {wxMDIChildFrame, destruct, 0}},
- {2674, {wxMDIChildFrame, activate, 0}},
- {2675, {wxMDIChildFrame, create, 4}},
- {2676, {wxMDIChildFrame, maximize, 1}},
- {2677, {wxMDIChildFrame, restore, 0}},
- {2678, {wxMDIClientWindow, new_0, 0}},
- {2679, {wxMDIClientWindow, new_2, 2}},
- {2680, {wxMDIClientWindow, destruct, 0}},
- {2681, {wxMDIClientWindow, createClient, 2}},
- {2682, {wxLayoutAlgorithm, new, 0}},
- {2683, {wxLayoutAlgorithm, layoutFrame, 2}},
- {2684, {wxLayoutAlgorithm, layoutMDIFrame, 2}},
- {2685, {wxLayoutAlgorithm, layoutWindow, 2}},
- {2686, {wxLayoutAlgorithm, 'Destroy', undefined}},
- {2687, {wxEvent, getId, 0}},
- {2688, {wxEvent, getSkipped, 0}},
- {2689, {wxEvent, getTimestamp, 0}},
- {2690, {wxEvent, isCommandEvent, 0}},
- {2691, {wxEvent, resumePropagation, 1}},
- {2692, {wxEvent, shouldPropagate, 0}},
- {2693, {wxEvent, skip, 1}},
- {2694, {wxEvent, stopPropagation, 0}},
- {2695, {wxCommandEvent, getClientData, 0}},
- {2696, {wxCommandEvent, getExtraLong, 0}},
- {2697, {wxCommandEvent, getInt, 0}},
- {2698, {wxCommandEvent, getSelection, 0}},
- {2699, {wxCommandEvent, getString, 0}},
- {2700, {wxCommandEvent, isChecked, 0}},
- {2701, {wxCommandEvent, isSelection, 0}},
- {2702, {wxCommandEvent, setInt, 1}},
- {2703, {wxCommandEvent, setString, 1}},
- {2704, {wxScrollEvent, getOrientation, 0}},
- {2705, {wxScrollEvent, getPosition, 0}},
- {2706, {wxScrollWinEvent, getOrientation, 0}},
- {2707, {wxScrollWinEvent, getPosition, 0}},
- {2708, {wxMouseEvent, altDown, 0}},
- {2709, {wxMouseEvent, button, 1}},
- {2710, {wxMouseEvent, buttonDClick, 1}},
- {2711, {wxMouseEvent, buttonDown, 1}},
- {2712, {wxMouseEvent, buttonUp, 1}},
- {2713, {wxMouseEvent, cmdDown, 0}},
- {2714, {wxMouseEvent, controlDown, 0}},
- {2715, {wxMouseEvent, dragging, 0}},
- {2716, {wxMouseEvent, entering, 0}},
- {2717, {wxMouseEvent, getButton, 0}},
- {2720, {wxMouseEvent, getPosition, 0}},
- {2721, {wxMouseEvent, getLogicalPosition, 1}},
- {2722, {wxMouseEvent, getLinesPerAction, 0}},
- {2723, {wxMouseEvent, getWheelRotation, 0}},
- {2724, {wxMouseEvent, getWheelDelta, 0}},
- {2725, {wxMouseEvent, getX, 0}},
- {2726, {wxMouseEvent, getY, 0}},
- {2727, {wxMouseEvent, isButton, 0}},
- {2728, {wxMouseEvent, isPageScroll, 0}},
- {2729, {wxMouseEvent, leaving, 0}},
- {2730, {wxMouseEvent, leftDClick, 0}},
- {2731, {wxMouseEvent, leftDown, 0}},
- {2732, {wxMouseEvent, leftIsDown, 0}},
- {2733, {wxMouseEvent, leftUp, 0}},
- {2734, {wxMouseEvent, metaDown, 0}},
- {2735, {wxMouseEvent, middleDClick, 0}},
- {2736, {wxMouseEvent, middleDown, 0}},
- {2737, {wxMouseEvent, middleIsDown, 0}},
- {2738, {wxMouseEvent, middleUp, 0}},
- {2739, {wxMouseEvent, moving, 0}},
- {2740, {wxMouseEvent, rightDClick, 0}},
- {2741, {wxMouseEvent, rightDown, 0}},
- {2742, {wxMouseEvent, rightIsDown, 0}},
- {2743, {wxMouseEvent, rightUp, 0}},
- {2744, {wxMouseEvent, shiftDown, 0}},
- {2745, {wxSetCursorEvent, getCursor, 0}},
- {2746, {wxSetCursorEvent, getX, 0}},
- {2747, {wxSetCursorEvent, getY, 0}},
- {2748, {wxSetCursorEvent, hasCursor, 0}},
- {2749, {wxSetCursorEvent, setCursor, 1}},
- {2750, {wxKeyEvent, altDown, 0}},
- {2751, {wxKeyEvent, cmdDown, 0}},
- {2752, {wxKeyEvent, controlDown, 0}},
- {2753, {wxKeyEvent, getKeyCode, 0}},
- {2754, {wxKeyEvent, getModifiers, 0}},
- {2757, {wxKeyEvent, getPosition, 0}},
- {2758, {wxKeyEvent, getRawKeyCode, 0}},
- {2759, {wxKeyEvent, getRawKeyFlags, 0}},
- {2760, {wxKeyEvent, getUnicodeKey, 0}},
- {2761, {wxKeyEvent, getX, 0}},
- {2762, {wxKeyEvent, getY, 0}},
- {2763, {wxKeyEvent, hasModifiers, 0}},
- {2764, {wxKeyEvent, metaDown, 0}},
- {2765, {wxKeyEvent, shiftDown, 0}},
- {2766, {wxSizeEvent, getSize, 0}},
- {2767, {wxMoveEvent, getPosition, 0}},
- {2768, {wxEraseEvent, getDC, 0}},
- {2769, {wxFocusEvent, getWindow, 0}},
- {2770, {wxChildFocusEvent, getWindow, 0}},
- {2771, {wxMenuEvent, getMenu, 0}},
- {2772, {wxMenuEvent, getMenuId, 0}},
- {2773, {wxMenuEvent, isPopup, 0}},
- {2774, {wxCloseEvent, canVeto, 0}},
- {2775, {wxCloseEvent, getLoggingOff, 0}},
- {2776, {wxCloseEvent, setCanVeto, 1}},
- {2777, {wxCloseEvent, setLoggingOff, 1}},
- {2778, {wxCloseEvent, veto, 1}},
- {2779, {wxShowEvent, setShow, 1}},
- {2780, {wxShowEvent, getShow, 0}},
- {2781, {wxIconizeEvent, iconized, 0}},
- {2782, {wxJoystickEvent, buttonDown, 1}},
- {2783, {wxJoystickEvent, buttonIsDown, 1}},
- {2784, {wxJoystickEvent, buttonUp, 1}},
- {2785, {wxJoystickEvent, getButtonChange, 0}},
- {2786, {wxJoystickEvent, getButtonState, 0}},
- {2787, {wxJoystickEvent, getJoystick, 0}},
- {2788, {wxJoystickEvent, getPosition, 0}},
- {2789, {wxJoystickEvent, getZPosition, 0}},
- {2790, {wxJoystickEvent, isButton, 0}},
- {2791, {wxJoystickEvent, isMove, 0}},
- {2792, {wxJoystickEvent, isZMove, 0}},
- {2793, {wxUpdateUIEvent, canUpdate, 1}},
- {2794, {wxUpdateUIEvent, check, 1}},
- {2795, {wxUpdateUIEvent, enable, 1}},
- {2796, {wxUpdateUIEvent, show, 1}},
- {2797, {wxUpdateUIEvent, getChecked, 0}},
- {2798, {wxUpdateUIEvent, getEnabled, 0}},
- {2799, {wxUpdateUIEvent, getShown, 0}},
- {2800, {wxUpdateUIEvent, getSetChecked, 0}},
- {2801, {wxUpdateUIEvent, getSetEnabled, 0}},
- {2802, {wxUpdateUIEvent, getSetShown, 0}},
- {2803, {wxUpdateUIEvent, getSetText, 0}},
- {2804, {wxUpdateUIEvent, getText, 0}},
- {2805, {wxUpdateUIEvent, getMode, 0}},
- {2806, {wxUpdateUIEvent, getUpdateInterval, 0}},
- {2807, {wxUpdateUIEvent, resetUpdateTime, 0}},
- {2808, {wxUpdateUIEvent, setMode, 1}},
- {2809, {wxUpdateUIEvent, setText, 1}},
- {2810, {wxUpdateUIEvent, setUpdateInterval, 1}},
- {2811, {wxMouseCaptureChangedEvent, getCapturedWindow, 0}},
- {2812, {wxPaletteChangedEvent, setChangedWindow, 1}},
- {2813, {wxPaletteChangedEvent, getChangedWindow, 0}},
- {2814, {wxQueryNewPaletteEvent, setPaletteRealized, 1}},
- {2815, {wxQueryNewPaletteEvent, getPaletteRealized, 0}},
- {2816, {wxNavigationKeyEvent, getDirection, 0}},
- {2817, {wxNavigationKeyEvent, setDirection, 1}},
- {2818, {wxNavigationKeyEvent, isWindowChange, 0}},
- {2819, {wxNavigationKeyEvent, setWindowChange, 1}},
- {2820, {wxNavigationKeyEvent, isFromTab, 0}},
- {2821, {wxNavigationKeyEvent, setFromTab, 1}},
- {2822, {wxNavigationKeyEvent, getCurrentFocus, 0}},
- {2823, {wxNavigationKeyEvent, setCurrentFocus, 1}},
- {2824, {wxHelpEvent, getOrigin, 0}},
- {2825, {wxHelpEvent, getPosition, 0}},
- {2826, {wxHelpEvent, setOrigin, 1}},
- {2827, {wxHelpEvent, setPosition, 1}},
- {2828, {wxContextMenuEvent, getPosition, 0}},
- {2829, {wxContextMenuEvent, setPosition, 1}},
- {2830, {wxIdleEvent, canSend, 1}},
- {2831, {wxIdleEvent, getMode, 0}},
- {2832, {wxIdleEvent, requestMore, 1}},
- {2833, {wxIdleEvent, moreRequested, 0}},
- {2834, {wxIdleEvent, setMode, 1}},
- {2835, {wxGridEvent, altDown, 0}},
- {2836, {wxGridEvent, controlDown, 0}},
- {2837, {wxGridEvent, getCol, 0}},
- {2838, {wxGridEvent, getPosition, 0}},
- {2839, {wxGridEvent, getRow, 0}},
- {2840, {wxGridEvent, metaDown, 0}},
- {2841, {wxGridEvent, selecting, 0}},
- {2842, {wxGridEvent, shiftDown, 0}},
- {2843, {wxNotifyEvent, allow, 0}},
- {2844, {wxNotifyEvent, isAllowed, 0}},
- {2845, {wxNotifyEvent, veto, 0}},
- {2846, {wxSashEvent, getEdge, 0}},
- {2847, {wxSashEvent, getDragRect, 0}},
- {2848, {wxSashEvent, getDragStatus, 0}},
- {2849, {wxListEvent, getCacheFrom, 0}},
- {2850, {wxListEvent, getCacheTo, 0}},
- {2851, {wxListEvent, getKeyCode, 0}},
- {2852, {wxListEvent, getIndex, 0}},
- {2853, {wxListEvent, getColumn, 0}},
- {2854, {wxListEvent, getPoint, 0}},
- {2855, {wxListEvent, getLabel, 0}},
- {2856, {wxListEvent, getText, 0}},
- {2857, {wxListEvent, getImage, 0}},
- {2858, {wxListEvent, getData, 0}},
- {2859, {wxListEvent, getMask, 0}},
- {2860, {wxListEvent, getItem, 0}},
- {2861, {wxListEvent, isEditCancelled, 0}},
- {2862, {wxDateEvent, getDate, 0}},
- {2863, {wxCalendarEvent, getWeekDay, 0}},
- {2864, {wxFileDirPickerEvent, getPath, 0}},
- {2865, {wxColourPickerEvent, getColour, 0}},
- {2866, {wxFontPickerEvent, getFont, 0}},
- {2867, {wxStyledTextEvent, getPosition, 0}},
- {2868, {wxStyledTextEvent, getKey, 0}},
- {2869, {wxStyledTextEvent, getModifiers, 0}},
- {2870, {wxStyledTextEvent, getModificationType, 0}},
- {2871, {wxStyledTextEvent, getText, 0}},
- {2872, {wxStyledTextEvent, getLength, 0}},
- {2873, {wxStyledTextEvent, getLinesAdded, 0}},
- {2874, {wxStyledTextEvent, getLine, 0}},
- {2875, {wxStyledTextEvent, getFoldLevelNow, 0}},
- {2876, {wxStyledTextEvent, getFoldLevelPrev, 0}},
- {2877, {wxStyledTextEvent, getMargin, 0}},
- {2878, {wxStyledTextEvent, getMessage, 0}},
- {2879, {wxStyledTextEvent, getWParam, 0}},
- {2880, {wxStyledTextEvent, getLParam, 0}},
- {2881, {wxStyledTextEvent, getListType, 0}},
- {2882, {wxStyledTextEvent, getX, 0}},
- {2883, {wxStyledTextEvent, getY, 0}},
- {2884, {wxStyledTextEvent, getDragText, 0}},
- {2885, {wxStyledTextEvent, getDragAllowMove, 0}},
- {2886, {wxStyledTextEvent, getDragResult, 0}},
- {2887, {wxStyledTextEvent, getShift, 0}},
- {2888, {wxStyledTextEvent, getControl, 0}},
- {2889, {wxStyledTextEvent, getAlt, 0}},
- {2890, {utils, getKeyState, 1}},
- {2891, {utils, getMousePosition, 2}},
- {2892, {utils, getMouseState, 0}},
- {2893, {utils, setDetectableAutoRepeat, 1}},
- {2894, {utils, bell, 0}},
- {2895, {utils, findMenuItemId, 3}},
- {2896, {utils, genericFindWindowAtPoint, 1}},
- {2897, {utils, findWindowAtPoint, 1}},
- {2898, {utils, beginBusyCursor, 1}},
- {2899, {utils, endBusyCursor, 0}},
- {2900, {utils, isBusy, 0}},
- {2901, {utils, shutdown, 1}},
- {2902, {utils, shell, 1}},
- {2903, {utils, launchDefaultBrowser, 2}},
- {2904, {utils, getEmailAddress, 0}},
- {2905, {utils, getUserId, 0}},
- {2906, {utils, getHomeDir, 0}},
- {2907, {utils, newId, 0}},
- {2908, {utils, registerId, 1}},
- {2909, {utils, getCurrentId, 0}},
- {2910, {utils, getOsDescription, 0}},
- {2911, {utils, isPlatformLittleEndian, 0}},
- {2912, {utils, isPlatform64Bit, 0}},
- {2913, {wxPrintout, new, 1}},
- {2914, {wxPrintout, destruct, 0}},
- {2915, {wxPrintout, getDC, 0}},
- {2916, {wxPrintout, getPageSizeMM, 2}},
- {2917, {wxPrintout, getPageSizePixels, 2}},
- {2918, {wxPrintout, getPaperRectPixels, 0}},
- {2919, {wxPrintout, getPPIPrinter, 2}},
- {2920, {wxPrintout, getPPIScreen, 2}},
- {2921, {wxPrintout, getTitle, 0}},
- {2922, {wxPrintout, isPreview, 0}},
- {2923, {wxPrintout, fitThisSizeToPaper, 1}},
- {2924, {wxPrintout, fitThisSizeToPage, 1}},
- {2925, {wxPrintout, fitThisSizeToPageMargins, 2}},
- {2926, {wxPrintout, mapScreenSizeToPaper, 0}},
- {2927, {wxPrintout, mapScreenSizeToPage, 0}},
- {2928, {wxPrintout, mapScreenSizeToPageMargins, 1}},
- {2929, {wxPrintout, mapScreenSizeToDevice, 0}},
- {2930, {wxPrintout, getLogicalPaperRect, 0}},
- {2931, {wxPrintout, getLogicalPageRect, 0}},
- {2932, {wxPrintout, getLogicalPageMarginsRect, 1}},
- {2933, {wxPrintout, setLogicalOrigin, 2}},
- {2934, {wxPrintout, offsetLogicalOrigin, 2}},
- {2935, {wxStyledTextCtrl, new_2, 2}},
- {2936, {wxStyledTextCtrl, new_0, 0}},
- {2937, {wxStyledTextCtrl, destruct, 0}},
- {2938, {wxStyledTextCtrl, create, 2}},
- {2939, {wxStyledTextCtrl, addText, 1}},
- {2940, {wxStyledTextCtrl, addStyledText, 1}},
- {2941, {wxStyledTextCtrl, insertText, 2}},
- {2942, {wxStyledTextCtrl, clearAll, 0}},
- {2943, {wxStyledTextCtrl, clearDocumentStyle, 0}},
- {2944, {wxStyledTextCtrl, getLength, 0}},
- {2945, {wxStyledTextCtrl, getCharAt, 1}},
- {2946, {wxStyledTextCtrl, getCurrentPos, 0}},
- {2947, {wxStyledTextCtrl, getAnchor, 0}},
- {2948, {wxStyledTextCtrl, getStyleAt, 1}},
- {2949, {wxStyledTextCtrl, redo, 0}},
- {2950, {wxStyledTextCtrl, setUndoCollection, 1}},
- {2951, {wxStyledTextCtrl, selectAll, 0}},
- {2952, {wxStyledTextCtrl, setSavePoint, 0}},
- {2953, {wxStyledTextCtrl, getStyledText, 2}},
- {2954, {wxStyledTextCtrl, canRedo, 0}},
- {2955, {wxStyledTextCtrl, markerLineFromHandle, 1}},
- {2956, {wxStyledTextCtrl, markerDeleteHandle, 1}},
- {2957, {wxStyledTextCtrl, getUndoCollection, 0}},
- {2958, {wxStyledTextCtrl, getViewWhiteSpace, 0}},
- {2959, {wxStyledTextCtrl, setViewWhiteSpace, 1}},
- {2960, {wxStyledTextCtrl, positionFromPoint, 1}},
- {2961, {wxStyledTextCtrl, positionFromPointClose, 2}},
- {2962, {wxStyledTextCtrl, gotoLine, 1}},
- {2963, {wxStyledTextCtrl, gotoPos, 1}},
- {2964, {wxStyledTextCtrl, setAnchor, 1}},
- {2965, {wxStyledTextCtrl, getCurLine, 1}},
- {2966, {wxStyledTextCtrl, getEndStyled, 0}},
- {2967, {wxStyledTextCtrl, convertEOLs, 1}},
- {2968, {wxStyledTextCtrl, getEOLMode, 0}},
- {2969, {wxStyledTextCtrl, setEOLMode, 1}},
- {2970, {wxStyledTextCtrl, startStyling, 2}},
- {2971, {wxStyledTextCtrl, setStyling, 2}},
- {2972, {wxStyledTextCtrl, getBufferedDraw, 0}},
- {2973, {wxStyledTextCtrl, setBufferedDraw, 1}},
- {2974, {wxStyledTextCtrl, setTabWidth, 1}},
- {2975, {wxStyledTextCtrl, getTabWidth, 0}},
- {2976, {wxStyledTextCtrl, setCodePage, 1}},
- {2977, {wxStyledTextCtrl, markerDefine, 3}},
- {2978, {wxStyledTextCtrl, markerSetForeground, 2}},
- {2979, {wxStyledTextCtrl, markerSetBackground, 2}},
- {2980, {wxStyledTextCtrl, markerAdd, 2}},
- {2981, {wxStyledTextCtrl, markerDelete, 2}},
- {2982, {wxStyledTextCtrl, markerDeleteAll, 1}},
- {2983, {wxStyledTextCtrl, markerGet, 1}},
- {2984, {wxStyledTextCtrl, markerNext, 2}},
- {2985, {wxStyledTextCtrl, markerPrevious, 2}},
- {2986, {wxStyledTextCtrl, markerDefineBitmap, 2}},
- {2987, {wxStyledTextCtrl, markerAddSet, 2}},
- {2988, {wxStyledTextCtrl, markerSetAlpha, 2}},
- {2989, {wxStyledTextCtrl, setMarginType, 2}},
- {2990, {wxStyledTextCtrl, getMarginType, 1}},
- {2991, {wxStyledTextCtrl, setMarginWidth, 2}},
- {2992, {wxStyledTextCtrl, getMarginWidth, 1}},
- {2993, {wxStyledTextCtrl, setMarginMask, 2}},
- {2994, {wxStyledTextCtrl, getMarginMask, 1}},
- {2995, {wxStyledTextCtrl, setMarginSensitive, 2}},
- {2996, {wxStyledTextCtrl, getMarginSensitive, 1}},
- {2997, {wxStyledTextCtrl, styleClearAll, 0}},
- {2998, {wxStyledTextCtrl, styleSetForeground, 2}},
- {2999, {wxStyledTextCtrl, styleSetBackground, 2}},
- {3000, {wxStyledTextCtrl, styleSetBold, 2}},
- {3001, {wxStyledTextCtrl, styleSetItalic, 2}},
- {3002, {wxStyledTextCtrl, styleSetSize, 2}},
- {3003, {wxStyledTextCtrl, styleSetFaceName, 2}},
- {3004, {wxStyledTextCtrl, styleSetEOLFilled, 2}},
- {3005, {wxStyledTextCtrl, styleResetDefault, 0}},
- {3006, {wxStyledTextCtrl, styleSetUnderline, 2}},
- {3007, {wxStyledTextCtrl, styleSetCase, 2}},
- {3008, {wxStyledTextCtrl, styleSetHotSpot, 2}},
- {3009, {wxStyledTextCtrl, setSelForeground, 2}},
- {3010, {wxStyledTextCtrl, setSelBackground, 2}},
- {3011, {wxStyledTextCtrl, getSelAlpha, 0}},
- {3012, {wxStyledTextCtrl, setSelAlpha, 1}},
- {3013, {wxStyledTextCtrl, setCaretForeground, 1}},
- {3014, {wxStyledTextCtrl, cmdKeyAssign, 3}},
- {3015, {wxStyledTextCtrl, cmdKeyClear, 2}},
- {3016, {wxStyledTextCtrl, cmdKeyClearAll, 0}},
- {3017, {wxStyledTextCtrl, setStyleBytes, 2}},
- {3018, {wxStyledTextCtrl, styleSetVisible, 2}},
- {3019, {wxStyledTextCtrl, getCaretPeriod, 0}},
- {3020, {wxStyledTextCtrl, setCaretPeriod, 1}},
- {3021, {wxStyledTextCtrl, setWordChars, 1}},
- {3022, {wxStyledTextCtrl, beginUndoAction, 0}},
- {3023, {wxStyledTextCtrl, endUndoAction, 0}},
- {3024, {wxStyledTextCtrl, indicatorSetStyle, 2}},
- {3025, {wxStyledTextCtrl, indicatorGetStyle, 1}},
- {3026, {wxStyledTextCtrl, indicatorSetForeground, 2}},
- {3027, {wxStyledTextCtrl, indicatorGetForeground, 1}},
- {3028, {wxStyledTextCtrl, setWhitespaceForeground, 2}},
- {3029, {wxStyledTextCtrl, setWhitespaceBackground, 2}},
- {3030, {wxStyledTextCtrl, getStyleBits, 0}},
- {3031, {wxStyledTextCtrl, setLineState, 2}},
- {3032, {wxStyledTextCtrl, getLineState, 1}},
- {3033, {wxStyledTextCtrl, getMaxLineState, 0}},
- {3034, {wxStyledTextCtrl, getCaretLineVisible, 0}},
- {3035, {wxStyledTextCtrl, setCaretLineVisible, 1}},
- {3036, {wxStyledTextCtrl, getCaretLineBackground, 0}},
- {3037, {wxStyledTextCtrl, setCaretLineBackground, 1}},
- {3038, {wxStyledTextCtrl, autoCompShow, 2}},
- {3039, {wxStyledTextCtrl, autoCompCancel, 0}},
- {3040, {wxStyledTextCtrl, autoCompActive, 0}},
- {3041, {wxStyledTextCtrl, autoCompPosStart, 0}},
- {3042, {wxStyledTextCtrl, autoCompComplete, 0}},
- {3043, {wxStyledTextCtrl, autoCompStops, 1}},
- {3044, {wxStyledTextCtrl, autoCompSetSeparator, 1}},
- {3045, {wxStyledTextCtrl, autoCompGetSeparator, 0}},
- {3046, {wxStyledTextCtrl, autoCompSelect, 1}},
- {3047, {wxStyledTextCtrl, autoCompSetCancelAtStart, 1}},
- {3048, {wxStyledTextCtrl, autoCompGetCancelAtStart, 0}},
- {3049, {wxStyledTextCtrl, autoCompSetFillUps, 1}},
- {3050, {wxStyledTextCtrl, autoCompSetChooseSingle, 1}},
- {3051, {wxStyledTextCtrl, autoCompGetChooseSingle, 0}},
- {3052, {wxStyledTextCtrl, autoCompSetIgnoreCase, 1}},
- {3053, {wxStyledTextCtrl, autoCompGetIgnoreCase, 0}},
- {3054, {wxStyledTextCtrl, userListShow, 2}},
- {3055, {wxStyledTextCtrl, autoCompSetAutoHide, 1}},
- {3056, {wxStyledTextCtrl, autoCompGetAutoHide, 0}},
- {3057, {wxStyledTextCtrl, autoCompSetDropRestOfWord, 1}},
- {3058, {wxStyledTextCtrl, autoCompGetDropRestOfWord, 0}},
- {3059, {wxStyledTextCtrl, registerImage, 2}},
- {3060, {wxStyledTextCtrl, clearRegisteredImages, 0}},
- {3061, {wxStyledTextCtrl, autoCompGetTypeSeparator, 0}},
- {3062, {wxStyledTextCtrl, autoCompSetTypeSeparator, 1}},
- {3063, {wxStyledTextCtrl, autoCompSetMaxWidth, 1}},
- {3064, {wxStyledTextCtrl, autoCompGetMaxWidth, 0}},
- {3065, {wxStyledTextCtrl, autoCompSetMaxHeight, 1}},
- {3066, {wxStyledTextCtrl, autoCompGetMaxHeight, 0}},
- {3067, {wxStyledTextCtrl, setIndent, 1}},
- {3068, {wxStyledTextCtrl, getIndent, 0}},
- {3069, {wxStyledTextCtrl, setUseTabs, 1}},
- {3070, {wxStyledTextCtrl, getUseTabs, 0}},
- {3071, {wxStyledTextCtrl, setLineIndentation, 2}},
- {3072, {wxStyledTextCtrl, getLineIndentation, 1}},
- {3073, {wxStyledTextCtrl, getLineIndentPosition, 1}},
- {3074, {wxStyledTextCtrl, getColumn, 1}},
- {3075, {wxStyledTextCtrl, setUseHorizontalScrollBar, 1}},
- {3076, {wxStyledTextCtrl, getUseHorizontalScrollBar, 0}},
- {3077, {wxStyledTextCtrl, setIndentationGuides, 1}},
- {3078, {wxStyledTextCtrl, getIndentationGuides, 0}},
- {3079, {wxStyledTextCtrl, setHighlightGuide, 1}},
- {3080, {wxStyledTextCtrl, getHighlightGuide, 0}},
- {3081, {wxStyledTextCtrl, getLineEndPosition, 1}},
- {3082, {wxStyledTextCtrl, getCodePage, 0}},
- {3083, {wxStyledTextCtrl, getCaretForeground, 0}},
- {3084, {wxStyledTextCtrl, getReadOnly, 0}},
- {3085, {wxStyledTextCtrl, setCurrentPos, 1}},
- {3086, {wxStyledTextCtrl, setSelectionStart, 1}},
- {3087, {wxStyledTextCtrl, getSelectionStart, 0}},
- {3088, {wxStyledTextCtrl, setSelectionEnd, 1}},
- {3089, {wxStyledTextCtrl, getSelectionEnd, 0}},
- {3090, {wxStyledTextCtrl, setPrintMagnification, 1}},
- {3091, {wxStyledTextCtrl, getPrintMagnification, 0}},
- {3092, {wxStyledTextCtrl, setPrintColourMode, 1}},
- {3093, {wxStyledTextCtrl, getPrintColourMode, 0}},
- {3094, {wxStyledTextCtrl, findText, 4}},
- {3095, {wxStyledTextCtrl, formatRange, 7}},
- {3096, {wxStyledTextCtrl, getFirstVisibleLine, 0}},
- {3097, {wxStyledTextCtrl, getLine, 1}},
- {3098, {wxStyledTextCtrl, getLineCount, 0}},
- {3099, {wxStyledTextCtrl, setMarginLeft, 1}},
- {3100, {wxStyledTextCtrl, getMarginLeft, 0}},
- {3101, {wxStyledTextCtrl, setMarginRight, 1}},
- {3102, {wxStyledTextCtrl, getMarginRight, 0}},
- {3103, {wxStyledTextCtrl, getModify, 0}},
- {3104, {wxStyledTextCtrl, setSelection, 2}},
- {3105, {wxStyledTextCtrl, getSelectedText, 0}},
- {3106, {wxStyledTextCtrl, getTextRange, 2}},
- {3107, {wxStyledTextCtrl, hideSelection, 1}},
- {3108, {wxStyledTextCtrl, lineFromPosition, 1}},
- {3109, {wxStyledTextCtrl, positionFromLine, 1}},
- {3110, {wxStyledTextCtrl, lineScroll, 2}},
- {3111, {wxStyledTextCtrl, ensureCaretVisible, 0}},
- {3112, {wxStyledTextCtrl, replaceSelection, 1}},
- {3113, {wxStyledTextCtrl, setReadOnly, 1}},
- {3114, {wxStyledTextCtrl, canPaste, 0}},
- {3115, {wxStyledTextCtrl, canUndo, 0}},
- {3116, {wxStyledTextCtrl, emptyUndoBuffer, 0}},
- {3117, {wxStyledTextCtrl, undo, 0}},
- {3118, {wxStyledTextCtrl, cut, 0}},
- {3119, {wxStyledTextCtrl, copy, 0}},
- {3120, {wxStyledTextCtrl, paste, 0}},
- {3121, {wxStyledTextCtrl, clear, 0}},
- {3122, {wxStyledTextCtrl, setText, 1}},
- {3123, {wxStyledTextCtrl, getText, 0}},
- {3124, {wxStyledTextCtrl, getTextLength, 0}},
- {3125, {wxStyledTextCtrl, getOvertype, 0}},
- {3126, {wxStyledTextCtrl, setCaretWidth, 1}},
- {3127, {wxStyledTextCtrl, getCaretWidth, 0}},
- {3128, {wxStyledTextCtrl, setTargetStart, 1}},
- {3129, {wxStyledTextCtrl, getTargetStart, 0}},
- {3130, {wxStyledTextCtrl, setTargetEnd, 1}},
- {3131, {wxStyledTextCtrl, getTargetEnd, 0}},
- {3132, {wxStyledTextCtrl, replaceTarget, 1}},
- {3133, {wxStyledTextCtrl, searchInTarget, 1}},
- {3134, {wxStyledTextCtrl, setSearchFlags, 1}},
- {3135, {wxStyledTextCtrl, getSearchFlags, 0}},
- {3136, {wxStyledTextCtrl, callTipShow, 2}},
- {3137, {wxStyledTextCtrl, callTipCancel, 0}},
- {3138, {wxStyledTextCtrl, callTipActive, 0}},
- {3139, {wxStyledTextCtrl, callTipPosAtStart, 0}},
- {3140, {wxStyledTextCtrl, callTipSetHighlight, 2}},
- {3141, {wxStyledTextCtrl, callTipSetBackground, 1}},
- {3142, {wxStyledTextCtrl, callTipSetForeground, 1}},
- {3143, {wxStyledTextCtrl, callTipSetForegroundHighlight, 1}},
- {3144, {wxStyledTextCtrl, callTipUseStyle, 1}},
- {3145, {wxStyledTextCtrl, visibleFromDocLine, 1}},
- {3146, {wxStyledTextCtrl, docLineFromVisible, 1}},
- {3147, {wxStyledTextCtrl, wrapCount, 1}},
- {3148, {wxStyledTextCtrl, setFoldLevel, 2}},
- {3149, {wxStyledTextCtrl, getFoldLevel, 1}},
- {3150, {wxStyledTextCtrl, getLastChild, 2}},
- {3151, {wxStyledTextCtrl, getFoldParent, 1}},
- {3152, {wxStyledTextCtrl, showLines, 2}},
- {3153, {wxStyledTextCtrl, hideLines, 2}},
- {3154, {wxStyledTextCtrl, getLineVisible, 1}},
- {3155, {wxStyledTextCtrl, setFoldExpanded, 2}},
- {3156, {wxStyledTextCtrl, getFoldExpanded, 1}},
- {3157, {wxStyledTextCtrl, toggleFold, 1}},
- {3158, {wxStyledTextCtrl, ensureVisible, 1}},
- {3159, {wxStyledTextCtrl, setFoldFlags, 1}},
- {3160, {wxStyledTextCtrl, ensureVisibleEnforcePolicy, 1}},
- {3161, {wxStyledTextCtrl, setTabIndents, 1}},
- {3162, {wxStyledTextCtrl, getTabIndents, 0}},
- {3163, {wxStyledTextCtrl, setBackSpaceUnIndents, 1}},
- {3164, {wxStyledTextCtrl, getBackSpaceUnIndents, 0}},
- {3165, {wxStyledTextCtrl, setMouseDwellTime, 1}},
- {3166, {wxStyledTextCtrl, getMouseDwellTime, 0}},
- {3167, {wxStyledTextCtrl, wordStartPosition, 2}},
- {3168, {wxStyledTextCtrl, wordEndPosition, 2}},
- {3169, {wxStyledTextCtrl, setWrapMode, 1}},
- {3170, {wxStyledTextCtrl, getWrapMode, 0}},
- {3171, {wxStyledTextCtrl, setWrapVisualFlags, 1}},
- {3172, {wxStyledTextCtrl, getWrapVisualFlags, 0}},
- {3173, {wxStyledTextCtrl, setWrapVisualFlagsLocation, 1}},
- {3174, {wxStyledTextCtrl, getWrapVisualFlagsLocation, 0}},
- {3175, {wxStyledTextCtrl, setWrapStartIndent, 1}},
- {3176, {wxStyledTextCtrl, getWrapStartIndent, 0}},
- {3177, {wxStyledTextCtrl, setLayoutCache, 1}},
- {3178, {wxStyledTextCtrl, getLayoutCache, 0}},
- {3179, {wxStyledTextCtrl, setScrollWidth, 1}},
- {3180, {wxStyledTextCtrl, getScrollWidth, 0}},
- {3181, {wxStyledTextCtrl, textWidth, 2}},
- {3182, {wxStyledTextCtrl, getEndAtLastLine, 0}},
- {3183, {wxStyledTextCtrl, textHeight, 1}},
- {3184, {wxStyledTextCtrl, setUseVerticalScrollBar, 1}},
- {3185, {wxStyledTextCtrl, getUseVerticalScrollBar, 0}},
- {3186, {wxStyledTextCtrl, appendText, 1}},
- {3187, {wxStyledTextCtrl, getTwoPhaseDraw, 0}},
- {3188, {wxStyledTextCtrl, setTwoPhaseDraw, 1}},
- {3189, {wxStyledTextCtrl, targetFromSelection, 0}},
- {3190, {wxStyledTextCtrl, linesJoin, 0}},
- {3191, {wxStyledTextCtrl, linesSplit, 1}},
- {3192, {wxStyledTextCtrl, setFoldMarginColour, 2}},
- {3193, {wxStyledTextCtrl, setFoldMarginHiColour, 2}},
- {3194, {wxStyledTextCtrl, lineDown, 0}},
- {3195, {wxStyledTextCtrl, lineDownExtend, 0}},
- {3196, {wxStyledTextCtrl, lineUp, 0}},
- {3197, {wxStyledTextCtrl, lineUpExtend, 0}},
- {3198, {wxStyledTextCtrl, charLeft, 0}},
- {3199, {wxStyledTextCtrl, charLeftExtend, 0}},
- {3200, {wxStyledTextCtrl, charRight, 0}},
- {3201, {wxStyledTextCtrl, charRightExtend, 0}},
- {3202, {wxStyledTextCtrl, wordLeft, 0}},
- {3203, {wxStyledTextCtrl, wordLeftExtend, 0}},
- {3204, {wxStyledTextCtrl, wordRight, 0}},
- {3205, {wxStyledTextCtrl, wordRightExtend, 0}},
- {3206, {wxStyledTextCtrl, home, 0}},
- {3207, {wxStyledTextCtrl, homeExtend, 0}},
- {3208, {wxStyledTextCtrl, lineEnd, 0}},
- {3209, {wxStyledTextCtrl, lineEndExtend, 0}},
- {3210, {wxStyledTextCtrl, documentStart, 0}},
- {3211, {wxStyledTextCtrl, documentStartExtend, 0}},
- {3212, {wxStyledTextCtrl, documentEnd, 0}},
- {3213, {wxStyledTextCtrl, documentEndExtend, 0}},
- {3214, {wxStyledTextCtrl, pageUp, 0}},
- {3215, {wxStyledTextCtrl, pageUpExtend, 0}},
- {3216, {wxStyledTextCtrl, pageDown, 0}},
- {3217, {wxStyledTextCtrl, pageDownExtend, 0}},
- {3218, {wxStyledTextCtrl, editToggleOvertype, 0}},
- {3219, {wxStyledTextCtrl, cancel, 0}},
- {3220, {wxStyledTextCtrl, deleteBack, 0}},
- {3221, {wxStyledTextCtrl, tab, 0}},
- {3222, {wxStyledTextCtrl, backTab, 0}},
- {3223, {wxStyledTextCtrl, newLine, 0}},
- {3224, {wxStyledTextCtrl, formFeed, 0}},
- {3225, {wxStyledTextCtrl, vCHome, 0}},
- {3226, {wxStyledTextCtrl, vCHomeExtend, 0}},
- {3227, {wxStyledTextCtrl, zoomIn, 0}},
- {3228, {wxStyledTextCtrl, zoomOut, 0}},
- {3229, {wxStyledTextCtrl, delWordLeft, 0}},
- {3230, {wxStyledTextCtrl, delWordRight, 0}},
- {3231, {wxStyledTextCtrl, lineCut, 0}},
- {3232, {wxStyledTextCtrl, lineDelete, 0}},
- {3233, {wxStyledTextCtrl, lineTranspose, 0}},
- {3234, {wxStyledTextCtrl, lineDuplicate, 0}},
- {3235, {wxStyledTextCtrl, lowerCase, 0}},
- {3236, {wxStyledTextCtrl, upperCase, 0}},
- {3237, {wxStyledTextCtrl, lineScrollDown, 0}},
- {3238, {wxStyledTextCtrl, lineScrollUp, 0}},
- {3239, {wxStyledTextCtrl, deleteBackNotLine, 0}},
- {3240, {wxStyledTextCtrl, homeDisplay, 0}},
- {3241, {wxStyledTextCtrl, homeDisplayExtend, 0}},
- {3242, {wxStyledTextCtrl, lineEndDisplay, 0}},
- {3243, {wxStyledTextCtrl, lineEndDisplayExtend, 0}},
- {3244, {wxStyledTextCtrl, homeWrapExtend, 0}},
- {3245, {wxStyledTextCtrl, lineEndWrap, 0}},
- {3246, {wxStyledTextCtrl, lineEndWrapExtend, 0}},
- {3247, {wxStyledTextCtrl, vCHomeWrap, 0}},
- {3248, {wxStyledTextCtrl, vCHomeWrapExtend, 0}},
- {3249, {wxStyledTextCtrl, lineCopy, 0}},
- {3250, {wxStyledTextCtrl, moveCaretInsideView, 0}},
- {3251, {wxStyledTextCtrl, lineLength, 1}},
- {3252, {wxStyledTextCtrl, braceHighlight, 2}},
- {3253, {wxStyledTextCtrl, braceBadLight, 1}},
- {3254, {wxStyledTextCtrl, braceMatch, 1}},
- {3255, {wxStyledTextCtrl, getViewEOL, 0}},
- {3256, {wxStyledTextCtrl, setViewEOL, 1}},
- {3257, {wxStyledTextCtrl, setModEventMask, 1}},
- {3258, {wxStyledTextCtrl, getEdgeColumn, 0}},
- {3259, {wxStyledTextCtrl, setEdgeColumn, 1}},
- {3260, {wxStyledTextCtrl, getEdgeMode, 0}},
- {3261, {wxStyledTextCtrl, getEdgeColour, 0}},
- {3262, {wxStyledTextCtrl, setEdgeColour, 1}},
- {3263, {wxStyledTextCtrl, searchAnchor, 0}},
- {3264, {wxStyledTextCtrl, searchNext, 2}},
- {3265, {wxStyledTextCtrl, searchPrev, 2}},
- {3266, {wxStyledTextCtrl, linesOnScreen, 0}},
- {3267, {wxStyledTextCtrl, usePopUp, 1}},
- {3268, {wxStyledTextCtrl, selectionIsRectangle, 0}},
- {3269, {wxStyledTextCtrl, setZoom, 1}},
- {3270, {wxStyledTextCtrl, getZoom, 0}},
- {3271, {wxStyledTextCtrl, getModEventMask, 0}},
- {3272, {wxStyledTextCtrl, setSTCFocus, 1}},
- {3273, {wxStyledTextCtrl, getSTCFocus, 0}},
- {3274, {wxStyledTextCtrl, setStatus, 1}},
- {3275, {wxStyledTextCtrl, getStatus, 0}},
- {3276, {wxStyledTextCtrl, setMouseDownCaptures, 1}},
- {3277, {wxStyledTextCtrl, getMouseDownCaptures, 0}},
- {3278, {wxStyledTextCtrl, setSTCCursor, 1}},
- {3279, {wxStyledTextCtrl, getSTCCursor, 0}},
- {3280, {wxStyledTextCtrl, setControlCharSymbol, 1}},
- {3281, {wxStyledTextCtrl, getControlCharSymbol, 0}},
- {3282, {wxStyledTextCtrl, wordPartLeft, 0}},
- {3283, {wxStyledTextCtrl, wordPartLeftExtend, 0}},
- {3284, {wxStyledTextCtrl, wordPartRight, 0}},
- {3285, {wxStyledTextCtrl, wordPartRightExtend, 0}},
- {3286, {wxStyledTextCtrl, setVisiblePolicy, 2}},
- {3287, {wxStyledTextCtrl, delLineLeft, 0}},
- {3288, {wxStyledTextCtrl, delLineRight, 0}},
- {3289, {wxStyledTextCtrl, getXOffset, 0}},
- {3290, {wxStyledTextCtrl, chooseCaretX, 0}},
- {3291, {wxStyledTextCtrl, setXCaretPolicy, 2}},
- {3292, {wxStyledTextCtrl, setYCaretPolicy, 2}},
- {3293, {wxStyledTextCtrl, getPrintWrapMode, 0}},
- {3294, {wxStyledTextCtrl, setHotspotActiveForeground, 2}},
- {3295, {wxStyledTextCtrl, setHotspotActiveBackground, 2}},
- {3296, {wxStyledTextCtrl, setHotspotActiveUnderline, 1}},
- {3297, {wxStyledTextCtrl, setHotspotSingleLine, 1}},
- {3298, {wxStyledTextCtrl, paraDownExtend, 0}},
- {3299, {wxStyledTextCtrl, paraUp, 0}},
- {3300, {wxStyledTextCtrl, paraUpExtend, 0}},
- {3301, {wxStyledTextCtrl, positionBefore, 1}},
- {3302, {wxStyledTextCtrl, positionAfter, 1}},
- {3303, {wxStyledTextCtrl, copyRange, 2}},
- {3304, {wxStyledTextCtrl, copyText, 2}},
- {3305, {wxStyledTextCtrl, setSelectionMode, 1}},
- {3306, {wxStyledTextCtrl, getSelectionMode, 0}},
- {3307, {wxStyledTextCtrl, lineDownRectExtend, 0}},
- {3308, {wxStyledTextCtrl, lineUpRectExtend, 0}},
- {3309, {wxStyledTextCtrl, charLeftRectExtend, 0}},
- {3310, {wxStyledTextCtrl, charRightRectExtend, 0}},
- {3311, {wxStyledTextCtrl, homeRectExtend, 0}},
- {3312, {wxStyledTextCtrl, vCHomeRectExtend, 0}},
- {3313, {wxStyledTextCtrl, lineEndRectExtend, 0}},
- {3314, {wxStyledTextCtrl, pageUpRectExtend, 0}},
- {3315, {wxStyledTextCtrl, pageDownRectExtend, 0}},
- {3316, {wxStyledTextCtrl, stutteredPageUp, 0}},
- {3317, {wxStyledTextCtrl, stutteredPageUpExtend, 0}},
- {3318, {wxStyledTextCtrl, stutteredPageDown, 0}},
- {3319, {wxStyledTextCtrl, stutteredPageDownExtend, 0}},
- {3320, {wxStyledTextCtrl, wordLeftEnd, 0}},
- {3321, {wxStyledTextCtrl, wordLeftEndExtend, 0}},
- {3322, {wxStyledTextCtrl, wordRightEnd, 0}},
- {3323, {wxStyledTextCtrl, wordRightEndExtend, 0}},
- {3324, {wxStyledTextCtrl, setWhitespaceChars, 1}},
- {3325, {wxStyledTextCtrl, setCharsDefault, 0}},
- {3326, {wxStyledTextCtrl, autoCompGetCurrent, 0}},
- {3327, {wxStyledTextCtrl, allocate, 1}},
- {3328, {wxStyledTextCtrl, findColumn, 2}},
- {3329, {wxStyledTextCtrl, getCaretSticky, 0}},
- {3330, {wxStyledTextCtrl, setCaretSticky, 1}},
- {3331, {wxStyledTextCtrl, toggleCaretSticky, 0}},
- {3332, {wxStyledTextCtrl, setPasteConvertEndings, 1}},
- {3333, {wxStyledTextCtrl, getPasteConvertEndings, 0}},
- {3334, {wxStyledTextCtrl, selectionDuplicate, 0}},
- {3335, {wxStyledTextCtrl, setCaretLineBackAlpha, 1}},
- {3336, {wxStyledTextCtrl, getCaretLineBackAlpha, 0}},
- {3337, {wxStyledTextCtrl, startRecord, 0}},
- {3338, {wxStyledTextCtrl, stopRecord, 0}},
- {3339, {wxStyledTextCtrl, setLexer, 1}},
- {3340, {wxStyledTextCtrl, getLexer, 0}},
- {3341, {wxStyledTextCtrl, colourise, 2}},
- {3342, {wxStyledTextCtrl, setProperty, 2}},
- {3343, {wxStyledTextCtrl, setKeyWords, 2}},
- {3344, {wxStyledTextCtrl, setLexerLanguage, 1}},
- {3345, {wxStyledTextCtrl, getProperty, 1}},
- {3346, {wxStyledTextCtrl, getStyleBitsNeeded, 0}},
- {3347, {wxStyledTextCtrl, getCurrentLine, 0}},
- {3348, {wxStyledTextCtrl, styleSetSpec, 2}},
- {3349, {wxStyledTextCtrl, styleSetFont, 2}},
- {3350, {wxStyledTextCtrl, styleSetFontAttr, 7}},
- {3351, {wxStyledTextCtrl, styleSetCharacterSet, 2}},
- {3352, {wxStyledTextCtrl, styleSetFontEncoding, 2}},
- {3353, {wxStyledTextCtrl, cmdKeyExecute, 1}},
- {3354, {wxStyledTextCtrl, setMargins, 2}},
- {3355, {wxStyledTextCtrl, getSelection, 2}},
- {3356, {wxStyledTextCtrl, pointFromPosition, 1}},
- {3357, {wxStyledTextCtrl, scrollToLine, 1}},
- {3358, {wxStyledTextCtrl, scrollToColumn, 1}},
- {3359, {wxStyledTextCtrl, sendMsg, 2}},
- {3360, {wxStyledTextCtrl, setVScrollBar, 1}},
- {3361, {wxStyledTextCtrl, setHScrollBar, 1}},
- {3362, {wxStyledTextCtrl, getLastKeydownProcessed, 0}},
- {3363, {wxStyledTextCtrl, setLastKeydownProcessed, 1}},
- {3364, {wxStyledTextCtrl, saveFile, 1}},
- {3365, {wxStyledTextCtrl, loadFile, 1}},
- {3366, {wxStyledTextCtrl, doDragOver, 3}},
- {3367, {wxStyledTextCtrl, doDropText, 3}},
- {3368, {wxStyledTextCtrl, getUseAntiAliasing, 0}},
- {3369, {wxStyledTextCtrl, addTextRaw, 1}},
- {3370, {wxStyledTextCtrl, insertTextRaw, 2}},
- {3371, {wxStyledTextCtrl, getCurLineRaw, 1}},
- {3372, {wxStyledTextCtrl, getLineRaw, 1}},
- {3373, {wxStyledTextCtrl, getSelectedTextRaw, 0}},
- {3374, {wxStyledTextCtrl, getTextRangeRaw, 2}},
- {3375, {wxStyledTextCtrl, setTextRaw, 1}},
- {3376, {wxStyledTextCtrl, getTextRaw, 0}},
- {3377, {wxStyledTextCtrl, appendTextRaw, 1}},
- {3378, {wxArtProvider, getBitmap, 2}},
- {3379, {wxArtProvider, getIcon, 2}},
- {3380, {wxTreeEvent, getKeyCode, 0}},
- {3381, {wxTreeEvent, getItem, 0}},
- {3382, {wxTreeEvent, getKeyEvent, 0}},
- {3383, {wxTreeEvent, getLabel, 0}},
- {3384, {wxTreeEvent, getOldItem, 0}},
- {3385, {wxTreeEvent, getPoint, 0}},
- {3386, {wxTreeEvent, isEditCancelled, 0}},
- {3387, {wxTreeEvent, setToolTip, 1}},
- {3388, {wxNotebookEvent, getOldSelection, 0}},
- {3389, {wxNotebookEvent, getSelection, 0}},
- {3390, {wxNotebookEvent, setOldSelection, 1}},
- {3391, {wxNotebookEvent, setSelection, 1}},
- {3392, {wxFileDataObject, new, 0}},
- {3393, {wxFileDataObject, addFile, 1}},
- {3394, {wxFileDataObject, getFilenames, 0}},
- {3395, {wxFileDataObject, 'Destroy', undefined}},
- {3396, {wxTextDataObject, new, 1}},
- {3397, {wxTextDataObject, getTextLength, 0}},
- {3398, {wxTextDataObject, getText, 0}},
- {3399, {wxTextDataObject, setText, 1}},
- {3400, {wxTextDataObject, 'Destroy', undefined}},
- {3401, {wxBitmapDataObject, new_1_1, 1}},
- {3402, {wxBitmapDataObject, new_1_0, 1}},
- {3403, {wxBitmapDataObject, getBitmap, 0}},
- {3404, {wxBitmapDataObject, setBitmap, 1}},
- {3405, {wxBitmapDataObject, 'Destroy', undefined}},
- {3407, {wxClipboard, new, 0}},
- {3408, {wxClipboard, destruct, 0}},
- {3409, {wxClipboard, addData, 1}},
- {3410, {wxClipboard, clear, 0}},
- {3411, {wxClipboard, close, 0}},
- {3412, {wxClipboard, flush, 0}},
- {3413, {wxClipboard, getData, 1}},
- {3414, {wxClipboard, isOpened, 0}},
- {3415, {wxClipboard, open, 0}},
- {3416, {wxClipboard, setData, 1}},
- {3418, {wxClipboard, usePrimarySelection, 1}},
- {3419, {wxClipboard, isSupported, 1}},
- {3420, {wxClipboard, get, 0}},
- {3421, {wxSpinEvent, getPosition, 0}},
- {3422, {wxSpinEvent, setPosition, 1}},
- {3423, {wxSplitterWindow, new_0, 0}},
- {3424, {wxSplitterWindow, new_2, 2}},
- {3425, {wxSplitterWindow, destruct, 0}},
- {3426, {wxSplitterWindow, create, 2}},
- {3427, {wxSplitterWindow, getMinimumPaneSize, 0}},
- {3428, {wxSplitterWindow, getSashGravity, 0}},
- {3429, {wxSplitterWindow, getSashPosition, 0}},
- {3430, {wxSplitterWindow, getSplitMode, 0}},
- {3431, {wxSplitterWindow, getWindow1, 0}},
- {3432, {wxSplitterWindow, getWindow2, 0}},
- {3433, {wxSplitterWindow, initialize, 1}},
- {3434, {wxSplitterWindow, isSplit, 0}},
- {3435, {wxSplitterWindow, replaceWindow, 2}},
- {3436, {wxSplitterWindow, setSashGravity, 1}},
- {3437, {wxSplitterWindow, setSashPosition, 2}},
- {3438, {wxSplitterWindow, setSashSize, 1}},
- {3439, {wxSplitterWindow, setMinimumPaneSize, 1}},
- {3440, {wxSplitterWindow, setSplitMode, 1}},
- {3441, {wxSplitterWindow, splitHorizontally, 3}},
- {3442, {wxSplitterWindow, splitVertically, 3}},
- {3443, {wxSplitterWindow, unsplit, 1}},
- {3444, {wxSplitterWindow, updateSize, 0}},
- {3445, {wxSplitterEvent, getSashPosition, 0}},
- {3446, {wxSplitterEvent, getX, 0}},
- {3447, {wxSplitterEvent, getY, 0}},
- {3448, {wxSplitterEvent, getWindowBeingRemoved, 0}},
- {3449, {wxSplitterEvent, setSashPosition, 1}},
- {3450, {wxHtmlWindow, new_0, 0}},
- {3451, {wxHtmlWindow, new_2, 2}},
- {3452, {wxHtmlWindow, appendToPage, 1}},
- {3453, {wxHtmlWindow, getOpenedAnchor, 0}},
- {3454, {wxHtmlWindow, getOpenedPage, 0}},
- {3455, {wxHtmlWindow, getOpenedPageTitle, 0}},
- {3456, {wxHtmlWindow, getRelatedFrame, 0}},
- {3457, {wxHtmlWindow, historyBack, 0}},
- {3458, {wxHtmlWindow, historyCanBack, 0}},
- {3459, {wxHtmlWindow, historyCanForward, 0}},
- {3460, {wxHtmlWindow, historyClear, 0}},
- {3461, {wxHtmlWindow, historyForward, 0}},
- {3462, {wxHtmlWindow, loadFile, 1}},
- {3463, {wxHtmlWindow, loadPage, 1}},
- {3464, {wxHtmlWindow, selectAll, 0}},
- {3465, {wxHtmlWindow, selectionToText, 0}},
- {3466, {wxHtmlWindow, selectLine, 1}},
- {3467, {wxHtmlWindow, selectWord, 1}},
- {3468, {wxHtmlWindow, setBorders, 1}},
- {3469, {wxHtmlWindow, setFonts, 3}},
- {3470, {wxHtmlWindow, setPage, 1}},
- {3471, {wxHtmlWindow, setRelatedFrame, 2}},
- {3472, {wxHtmlWindow, setRelatedStatusBar, 1}},
- {3473, {wxHtmlWindow, toText, 0}},
- {3474, {wxHtmlWindow, 'Destroy', undefined}},
- {3475, {wxHtmlLinkEvent, getLinkInfo, 0}},
- {3476, {wxAuiNotebookEvent, setSelection, 1}},
- {3477, {wxAuiNotebookEvent, getSelection, 0}},
- {3478, {wxAuiNotebookEvent, setOldSelection, 1}},
- {3479, {wxAuiNotebookEvent, getOldSelection, 0}},
- {3480, {wxAuiNotebookEvent, setDragSource, 1}},
- {3481, {wxAuiNotebookEvent, getDragSource, 0}},
- {3482, {wxAuiManagerEvent, setManager, 1}},
- {3483, {wxAuiManagerEvent, getManager, 0}},
- {3484, {wxAuiManagerEvent, setPane, 1}},
- {3485, {wxAuiManagerEvent, getPane, 0}},
- {3486, {wxAuiManagerEvent, setButton, 1}},
- {3487, {wxAuiManagerEvent, getButton, 0}},
- {3488, {wxAuiManagerEvent, setDC, 1}},
- {3489, {wxAuiManagerEvent, getDC, 0}},
- {3490, {wxAuiManagerEvent, veto, 1}},
- {3491, {wxAuiManagerEvent, getVeto, 0}},
- {3492, {wxAuiManagerEvent, setCanVeto, 1}},
- {3493, {wxAuiManagerEvent, canVeto, 0}},
- {3494, {wxLogNull, new, 0}},
- {3495, {wxLogNull, 'Destroy', undefined}},
+ {1675, {wxListCtrl, getEditControl, 0}},
+ {1676, {wxListCtrl, getImageList, 1}},
+ {1677, {wxListCtrl, getItem, 1}},
+ {1678, {wxListCtrl, getItemBackgroundColour, 1}},
+ {1679, {wxListCtrl, getItemCount, 0}},
+ {1680, {wxListCtrl, getItemData, 1}},
+ {1681, {wxListCtrl, getItemFont, 1}},
+ {1682, {wxListCtrl, getItemPosition, 2}},
+ {1683, {wxListCtrl, getItemRect, 3}},
+ {1684, {wxListCtrl, getItemSpacing, 0}},
+ {1685, {wxListCtrl, getItemState, 2}},
+ {1686, {wxListCtrl, getItemText, 1}},
+ {1687, {wxListCtrl, getItemTextColour, 1}},
+ {1688, {wxListCtrl, getNextItem, 2}},
+ {1689, {wxListCtrl, getSelectedItemCount, 0}},
+ {1690, {wxListCtrl, getTextColour, 0}},
+ {1691, {wxListCtrl, getTopItem, 0}},
+ {1692, {wxListCtrl, getViewRect, 0}},
+ {1693, {wxListCtrl, hitTest, 2}},
+ {1694, {wxListCtrl, insertColumn_2, 2}},
+ {1695, {wxListCtrl, insertColumn_3, 3}},
+ {1696, {wxListCtrl, insertItem_1, 1}},
+ {1697, {wxListCtrl, insertItem_2_1, 2}},
+ {1698, {wxListCtrl, insertItem_2_0, 2}},
+ {1699, {wxListCtrl, insertItem_3, 3}},
+ {1700, {wxListCtrl, refreshItem, 1}},
+ {1701, {wxListCtrl, refreshItems, 2}},
+ {1702, {wxListCtrl, scrollList, 2}},
+ {1703, {wxListCtrl, setBackgroundColour, 1}},
+ {1704, {wxListCtrl, setColumn, 2}},
+ {1705, {wxListCtrl, setColumnWidth, 2}},
+ {1706, {wxListCtrl, setImageList, 2}},
+ {1707, {wxListCtrl, setItem_1, 1}},
+ {1708, {wxListCtrl, setItem_4, 4}},
+ {1709, {wxListCtrl, setItemBackgroundColour, 2}},
+ {1710, {wxListCtrl, setItemCount, 1}},
+ {1711, {wxListCtrl, setItemData, 2}},
+ {1712, {wxListCtrl, setItemFont, 2}},
+ {1713, {wxListCtrl, setItemImage, 3}},
+ {1714, {wxListCtrl, setItemColumnImage, 3}},
+ {1715, {wxListCtrl, setItemPosition, 2}},
+ {1716, {wxListCtrl, setItemState, 3}},
+ {1717, {wxListCtrl, setItemText, 2}},
+ {1718, {wxListCtrl, setItemTextColour, 2}},
+ {1719, {wxListCtrl, setSingleStyle, 2}},
+ {1720, {wxListCtrl, setTextColour, 1}},
+ {1721, {wxListCtrl, setWindowStyleFlag, 1}},
+ {1722, {wxListCtrl, sortItems, 2}},
+ {1723, {wxListCtrl, 'Destroy', undefined}},
+ {1724, {wxListView, clearColumnImage, 1}},
+ {1725, {wxListView, focus, 1}},
+ {1726, {wxListView, getFirstSelected, 0}},
+ {1727, {wxListView, getFocusedItem, 0}},
+ {1728, {wxListView, getNextSelected, 1}},
+ {1729, {wxListView, isSelected, 1}},
+ {1730, {wxListView, select, 2}},
+ {1731, {wxListView, setColumnImage, 2}},
+ {1732, {wxListItem, new_0, 0}},
+ {1733, {wxListItem, new_1, 1}},
+ {1734, {wxListItem, destruct, 0}},
+ {1735, {wxListItem, clear, 0}},
+ {1736, {wxListItem, getAlign, 0}},
+ {1737, {wxListItem, getBackgroundColour, 0}},
+ {1738, {wxListItem, getColumn, 0}},
+ {1739, {wxListItem, getFont, 0}},
+ {1740, {wxListItem, getId, 0}},
+ {1741, {wxListItem, getImage, 0}},
+ {1742, {wxListItem, getMask, 0}},
+ {1743, {wxListItem, getState, 0}},
+ {1744, {wxListItem, getText, 0}},
+ {1745, {wxListItem, getTextColour, 0}},
+ {1746, {wxListItem, getWidth, 0}},
+ {1747, {wxListItem, setAlign, 1}},
+ {1748, {wxListItem, setBackgroundColour, 1}},
+ {1749, {wxListItem, setColumn, 1}},
+ {1750, {wxListItem, setFont, 1}},
+ {1751, {wxListItem, setId, 1}},
+ {1752, {wxListItem, setImage, 1}},
+ {1753, {wxListItem, setMask, 1}},
+ {1754, {wxListItem, setState, 1}},
+ {1755, {wxListItem, setStateMask, 1}},
+ {1756, {wxListItem, setText, 1}},
+ {1757, {wxListItem, setTextColour, 1}},
+ {1758, {wxListItem, setWidth, 1}},
+ {1759, {wxImageList, new_0, 0}},
+ {1760, {wxImageList, new_3, 3}},
+ {1761, {wxImageList, add_1, 1}},
+ {1762, {wxImageList, add_2_0, 2}},
+ {1763, {wxImageList, add_2_1, 2}},
+ {1764, {wxImageList, create, 3}},
+ {1766, {wxImageList, draw, 5}},
+ {1767, {wxImageList, getBitmap, 1}},
+ {1768, {wxImageList, getIcon, 1}},
+ {1769, {wxImageList, getImageCount, 0}},
+ {1770, {wxImageList, getSize, 3}},
+ {1771, {wxImageList, remove, 1}},
+ {1772, {wxImageList, removeAll, 0}},
+ {1773, {wxImageList, replace_2, 2}},
+ {1774, {wxImageList, replace_3, 3}},
+ {1775, {wxImageList, 'Destroy', undefined}},
+ {1776, {wxTextAttr, new_0, 0}},
+ {1777, {wxTextAttr, new_2, 2}},
+ {1778, {wxTextAttr, getAlignment, 0}},
+ {1779, {wxTextAttr, getBackgroundColour, 0}},
+ {1780, {wxTextAttr, getFont, 0}},
+ {1781, {wxTextAttr, getLeftIndent, 0}},
+ {1782, {wxTextAttr, getLeftSubIndent, 0}},
+ {1783, {wxTextAttr, getRightIndent, 0}},
+ {1784, {wxTextAttr, getTabs, 0}},
+ {1785, {wxTextAttr, getTextColour, 0}},
+ {1786, {wxTextAttr, hasBackgroundColour, 0}},
+ {1787, {wxTextAttr, hasFont, 0}},
+ {1788, {wxTextAttr, hasTextColour, 0}},
+ {1789, {wxTextAttr, getFlags, 0}},
+ {1790, {wxTextAttr, isDefault, 0}},
+ {1791, {wxTextAttr, setAlignment, 1}},
+ {1792, {wxTextAttr, setBackgroundColour, 1}},
+ {1793, {wxTextAttr, setFlags, 1}},
+ {1794, {wxTextAttr, setFont, 2}},
+ {1795, {wxTextAttr, setLeftIndent, 2}},
+ {1796, {wxTextAttr, setRightIndent, 1}},
+ {1797, {wxTextAttr, setTabs, 1}},
+ {1798, {wxTextAttr, setTextColour, 1}},
+ {1799, {wxTextAttr, 'Destroy', undefined}},
+ {1801, {wxTextCtrl, new_3, 3}},
+ {1802, {wxTextCtrl, new_0, 0}},
+ {1804, {wxTextCtrl, destruct, 0}},
+ {1805, {wxTextCtrl, appendText, 1}},
+ {1806, {wxTextCtrl, canCopy, 0}},
+ {1807, {wxTextCtrl, canCut, 0}},
+ {1808, {wxTextCtrl, canPaste, 0}},
+ {1809, {wxTextCtrl, canRedo, 0}},
+ {1810, {wxTextCtrl, canUndo, 0}},
+ {1811, {wxTextCtrl, clear, 0}},
+ {1812, {wxTextCtrl, copy, 0}},
+ {1813, {wxTextCtrl, create, 3}},
+ {1814, {wxTextCtrl, cut, 0}},
+ {1815, {wxTextCtrl, discardEdits, 0}},
+ {1816, {wxTextCtrl, emulateKeyPress, 1}},
+ {1817, {wxTextCtrl, getDefaultStyle, 0}},
+ {1818, {wxTextCtrl, getInsertionPoint, 0}},
+ {1819, {wxTextCtrl, getLastPosition, 0}},
+ {1820, {wxTextCtrl, getLineLength, 1}},
+ {1821, {wxTextCtrl, getLineText, 1}},
+ {1822, {wxTextCtrl, getNumberOfLines, 0}},
+ {1823, {wxTextCtrl, getRange, 2}},
+ {1824, {wxTextCtrl, getSelection, 2}},
+ {1825, {wxTextCtrl, getStringSelection, 0}},
+ {1826, {wxTextCtrl, getStyle, 2}},
+ {1827, {wxTextCtrl, getValue, 0}},
+ {1828, {wxTextCtrl, isEditable, 0}},
+ {1829, {wxTextCtrl, isModified, 0}},
+ {1830, {wxTextCtrl, isMultiLine, 0}},
+ {1831, {wxTextCtrl, isSingleLine, 0}},
+ {1832, {wxTextCtrl, loadFile, 2}},
+ {1833, {wxTextCtrl, markDirty, 0}},
+ {1834, {wxTextCtrl, paste, 0}},
+ {1835, {wxTextCtrl, positionToXY, 3}},
+ {1836, {wxTextCtrl, redo, 0}},
+ {1837, {wxTextCtrl, remove, 2}},
+ {1838, {wxTextCtrl, replace, 3}},
+ {1839, {wxTextCtrl, saveFile, 1}},
+ {1840, {wxTextCtrl, setDefaultStyle, 1}},
+ {1841, {wxTextCtrl, setEditable, 1}},
+ {1842, {wxTextCtrl, setInsertionPoint, 1}},
+ {1843, {wxTextCtrl, setInsertionPointEnd, 0}},
+ {1845, {wxTextCtrl, setMaxLength, 1}},
+ {1846, {wxTextCtrl, setSelection, 2}},
+ {1847, {wxTextCtrl, setStyle, 3}},
+ {1848, {wxTextCtrl, setValue, 1}},
+ {1849, {wxTextCtrl, showPosition, 1}},
+ {1850, {wxTextCtrl, undo, 0}},
+ {1851, {wxTextCtrl, writeText, 1}},
+ {1852, {wxTextCtrl, xYToPosition, 2}},
+ {1855, {wxNotebook, new_0, 0}},
+ {1856, {wxNotebook, new_3, 3}},
+ {1857, {wxNotebook, destruct, 0}},
+ {1858, {wxNotebook, addPage, 3}},
+ {1859, {wxNotebook, advanceSelection, 1}},
+ {1860, {wxNotebook, assignImageList, 1}},
+ {1861, {wxNotebook, create, 3}},
+ {1862, {wxNotebook, deleteAllPages, 0}},
+ {1863, {wxNotebook, deletePage, 1}},
+ {1864, {wxNotebook, removePage, 1}},
+ {1865, {wxNotebook, getCurrentPage, 0}},
+ {1866, {wxNotebook, getImageList, 0}},
+ {1868, {wxNotebook, getPage, 1}},
+ {1869, {wxNotebook, getPageCount, 0}},
+ {1870, {wxNotebook, getPageImage, 1}},
+ {1871, {wxNotebook, getPageText, 1}},
+ {1872, {wxNotebook, getRowCount, 0}},
+ {1873, {wxNotebook, getSelection, 0}},
+ {1874, {wxNotebook, getThemeBackgroundColour, 0}},
+ {1876, {wxNotebook, hitTest, 2}},
+ {1878, {wxNotebook, insertPage, 4}},
+ {1879, {wxNotebook, setImageList, 1}},
+ {1880, {wxNotebook, setPadding, 1}},
+ {1881, {wxNotebook, setPageSize, 1}},
+ {1882, {wxNotebook, setPageImage, 2}},
+ {1883, {wxNotebook, setPageText, 2}},
+ {1884, {wxNotebook, setSelection, 1}},
+ {1885, {wxNotebook, changeSelection, 1}},
+ {1886, {wxChoicebook, new_0, 0}},
+ {1887, {wxChoicebook, new_3, 3}},
+ {1888, {wxChoicebook, addPage, 3}},
+ {1889, {wxChoicebook, advanceSelection, 1}},
+ {1890, {wxChoicebook, assignImageList, 1}},
+ {1891, {wxChoicebook, create, 3}},
+ {1892, {wxChoicebook, deleteAllPages, 0}},
+ {1893, {wxChoicebook, deletePage, 1}},
+ {1894, {wxChoicebook, removePage, 1}},
+ {1895, {wxChoicebook, getCurrentPage, 0}},
+ {1896, {wxChoicebook, getImageList, 0}},
+ {1898, {wxChoicebook, getPage, 1}},
+ {1899, {wxChoicebook, getPageCount, 0}},
+ {1900, {wxChoicebook, getPageImage, 1}},
+ {1901, {wxChoicebook, getPageText, 1}},
+ {1902, {wxChoicebook, getSelection, 0}},
+ {1903, {wxChoicebook, hitTest, 2}},
+ {1904, {wxChoicebook, insertPage, 4}},
+ {1905, {wxChoicebook, setImageList, 1}},
+ {1906, {wxChoicebook, setPageSize, 1}},
+ {1907, {wxChoicebook, setPageImage, 2}},
+ {1908, {wxChoicebook, setPageText, 2}},
+ {1909, {wxChoicebook, setSelection, 1}},
+ {1910, {wxChoicebook, changeSelection, 1}},
+ {1911, {wxChoicebook, 'Destroy', undefined}},
+ {1912, {wxToolbook, new_0, 0}},
+ {1913, {wxToolbook, new_3, 3}},
+ {1914, {wxToolbook, addPage, 3}},
+ {1915, {wxToolbook, advanceSelection, 1}},
+ {1916, {wxToolbook, assignImageList, 1}},
+ {1917, {wxToolbook, create, 3}},
+ {1918, {wxToolbook, deleteAllPages, 0}},
+ {1919, {wxToolbook, deletePage, 1}},
+ {1920, {wxToolbook, removePage, 1}},
+ {1921, {wxToolbook, getCurrentPage, 0}},
+ {1922, {wxToolbook, getImageList, 0}},
+ {1924, {wxToolbook, getPage, 1}},
+ {1925, {wxToolbook, getPageCount, 0}},
+ {1926, {wxToolbook, getPageImage, 1}},
+ {1927, {wxToolbook, getPageText, 1}},
+ {1928, {wxToolbook, getSelection, 0}},
+ {1930, {wxToolbook, hitTest, 2}},
+ {1931, {wxToolbook, insertPage, 4}},
+ {1932, {wxToolbook, setImageList, 1}},
+ {1933, {wxToolbook, setPageSize, 1}},
+ {1934, {wxToolbook, setPageImage, 2}},
+ {1935, {wxToolbook, setPageText, 2}},
+ {1936, {wxToolbook, setSelection, 1}},
+ {1937, {wxToolbook, changeSelection, 1}},
+ {1938, {wxToolbook, 'Destroy', undefined}},
+ {1939, {wxListbook, new_0, 0}},
+ {1940, {wxListbook, new_3, 3}},
+ {1941, {wxListbook, addPage, 3}},
+ {1942, {wxListbook, advanceSelection, 1}},
+ {1943, {wxListbook, assignImageList, 1}},
+ {1944, {wxListbook, create, 3}},
+ {1945, {wxListbook, deleteAllPages, 0}},
+ {1946, {wxListbook, deletePage, 1}},
+ {1947, {wxListbook, removePage, 1}},
+ {1948, {wxListbook, getCurrentPage, 0}},
+ {1949, {wxListbook, getImageList, 0}},
+ {1951, {wxListbook, getPage, 1}},
+ {1952, {wxListbook, getPageCount, 0}},
+ {1953, {wxListbook, getPageImage, 1}},
+ {1954, {wxListbook, getPageText, 1}},
+ {1955, {wxListbook, getSelection, 0}},
+ {1957, {wxListbook, hitTest, 2}},
+ {1958, {wxListbook, insertPage, 4}},
+ {1959, {wxListbook, setImageList, 1}},
+ {1960, {wxListbook, setPageSize, 1}},
+ {1961, {wxListbook, setPageImage, 2}},
+ {1962, {wxListbook, setPageText, 2}},
+ {1963, {wxListbook, setSelection, 1}},
+ {1964, {wxListbook, changeSelection, 1}},
+ {1965, {wxListbook, 'Destroy', undefined}},
+ {1966, {wxTreebook, new_0, 0}},
+ {1967, {wxTreebook, new_3, 3}},
+ {1968, {wxTreebook, addPage, 3}},
+ {1969, {wxTreebook, advanceSelection, 1}},
+ {1970, {wxTreebook, assignImageList, 1}},
+ {1971, {wxTreebook, create, 3}},
+ {1972, {wxTreebook, deleteAllPages, 0}},
+ {1973, {wxTreebook, deletePage, 1}},
+ {1974, {wxTreebook, removePage, 1}},
+ {1975, {wxTreebook, getCurrentPage, 0}},
+ {1976, {wxTreebook, getImageList, 0}},
+ {1978, {wxTreebook, getPage, 1}},
+ {1979, {wxTreebook, getPageCount, 0}},
+ {1980, {wxTreebook, getPageImage, 1}},
+ {1981, {wxTreebook, getPageText, 1}},
+ {1982, {wxTreebook, getSelection, 0}},
+ {1983, {wxTreebook, expandNode, 2}},
+ {1984, {wxTreebook, isNodeExpanded, 1}},
+ {1986, {wxTreebook, hitTest, 2}},
+ {1987, {wxTreebook, insertPage, 4}},
+ {1988, {wxTreebook, insertSubPage, 4}},
+ {1989, {wxTreebook, setImageList, 1}},
+ {1990, {wxTreebook, setPageSize, 1}},
+ {1991, {wxTreebook, setPageImage, 2}},
+ {1992, {wxTreebook, setPageText, 2}},
+ {1993, {wxTreebook, setSelection, 1}},
+ {1994, {wxTreebook, changeSelection, 1}},
+ {1995, {wxTreebook, 'Destroy', undefined}},
+ {1998, {wxTreeCtrl, new_2, 2}},
+ {1999, {wxTreeCtrl, new_0, 0}},
+ {2001, {wxTreeCtrl, destruct, 0}},
+ {2002, {wxTreeCtrl, addRoot, 2}},
+ {2003, {wxTreeCtrl, appendItem, 3}},
+ {2004, {wxTreeCtrl, assignImageList, 1}},
+ {2005, {wxTreeCtrl, assignStateImageList, 1}},
+ {2006, {wxTreeCtrl, collapse, 1}},
+ {2007, {wxTreeCtrl, collapseAndReset, 1}},
+ {2008, {wxTreeCtrl, create, 2}},
+ {2009, {wxTreeCtrl, delete, 1}},
+ {2010, {wxTreeCtrl, deleteAllItems, 0}},
+ {2011, {wxTreeCtrl, deleteChildren, 1}},
+ {2012, {wxTreeCtrl, ensureVisible, 1}},
+ {2013, {wxTreeCtrl, expand, 1}},
+ {2014, {wxTreeCtrl, getBoundingRect, 3}},
+ {2016, {wxTreeCtrl, getChildrenCount, 2}},
+ {2017, {wxTreeCtrl, getCount, 0}},
+ {2018, {wxTreeCtrl, getEditControl, 0}},
+ {2019, {wxTreeCtrl, getFirstChild, 2}},
+ {2020, {wxTreeCtrl, getNextChild, 2}},
+ {2021, {wxTreeCtrl, getFirstVisibleItem, 0}},
+ {2022, {wxTreeCtrl, getImageList, 0}},
+ {2023, {wxTreeCtrl, getIndent, 0}},
+ {2024, {wxTreeCtrl, getItemBackgroundColour, 1}},
+ {2025, {wxTreeCtrl, getItemData, 1}},
+ {2026, {wxTreeCtrl, getItemFont, 1}},
+ {2027, {wxTreeCtrl, getItemImage_1, 1}},
+ {2028, {wxTreeCtrl, getItemImage_2, 2}},
+ {2029, {wxTreeCtrl, getItemText, 1}},
+ {2030, {wxTreeCtrl, getItemTextColour, 1}},
+ {2031, {wxTreeCtrl, getLastChild, 1}},
+ {2032, {wxTreeCtrl, getNextSibling, 1}},
+ {2033, {wxTreeCtrl, getNextVisible, 1}},
+ {2034, {wxTreeCtrl, getItemParent, 1}},
+ {2035, {wxTreeCtrl, getPrevSibling, 1}},
+ {2036, {wxTreeCtrl, getPrevVisible, 1}},
+ {2037, {wxTreeCtrl, getRootItem, 0}},
+ {2038, {wxTreeCtrl, getSelection, 0}},
+ {2039, {wxTreeCtrl, getSelections, 1}},
+ {2040, {wxTreeCtrl, getStateImageList, 0}},
+ {2041, {wxTreeCtrl, hitTest, 1}},
+ {2043, {wxTreeCtrl, insertItem, 4}},
+ {2044, {wxTreeCtrl, isBold, 1}},
+ {2045, {wxTreeCtrl, isExpanded, 1}},
+ {2046, {wxTreeCtrl, isSelected, 1}},
+ {2047, {wxTreeCtrl, isVisible, 1}},
+ {2048, {wxTreeCtrl, itemHasChildren, 1}},
+ {2049, {wxTreeCtrl, prependItem, 3}},
+ {2050, {wxTreeCtrl, scrollTo, 1}},
+ {2051, {wxTreeCtrl, selectItem_1, 1}},
+ {2052, {wxTreeCtrl, selectItem_2, 2}},
+ {2053, {wxTreeCtrl, setIndent, 1}},
+ {2054, {wxTreeCtrl, setImageList, 1}},
+ {2055, {wxTreeCtrl, setItemBackgroundColour, 2}},
+ {2056, {wxTreeCtrl, setItemBold, 2}},
+ {2057, {wxTreeCtrl, setItemData, 2}},
+ {2058, {wxTreeCtrl, setItemDropHighlight, 2}},
+ {2059, {wxTreeCtrl, setItemFont, 2}},
+ {2060, {wxTreeCtrl, setItemHasChildren, 2}},
+ {2061, {wxTreeCtrl, setItemImage_2, 2}},
+ {2062, {wxTreeCtrl, setItemImage_3, 3}},
+ {2063, {wxTreeCtrl, setItemText, 2}},
+ {2064, {wxTreeCtrl, setItemTextColour, 2}},
+ {2065, {wxTreeCtrl, setStateImageList, 1}},
+ {2066, {wxTreeCtrl, setWindowStyle, 1}},
+ {2067, {wxTreeCtrl, sortChildren, 1}},
+ {2068, {wxTreeCtrl, toggle, 1}},
+ {2069, {wxTreeCtrl, toggleItemSelection, 1}},
+ {2070, {wxTreeCtrl, unselect, 0}},
+ {2071, {wxTreeCtrl, unselectAll, 0}},
+ {2072, {wxTreeCtrl, unselectItem, 1}},
+ {2073, {wxScrollBar, new_0, 0}},
+ {2074, {wxScrollBar, new_3, 3}},
+ {2075, {wxScrollBar, destruct, 0}},
+ {2076, {wxScrollBar, create, 3}},
+ {2077, {wxScrollBar, getRange, 0}},
+ {2078, {wxScrollBar, getPageSize, 0}},
+ {2079, {wxScrollBar, getThumbPosition, 0}},
+ {2080, {wxScrollBar, getThumbSize, 0}},
+ {2081, {wxScrollBar, setThumbPosition, 1}},
+ {2082, {wxScrollBar, setScrollbar, 5}},
+ {2084, {wxSpinButton, new_2, 2}},
+ {2085, {wxSpinButton, new_0, 0}},
+ {2086, {wxSpinButton, create, 2}},
+ {2087, {wxSpinButton, getMax, 0}},
+ {2088, {wxSpinButton, getMin, 0}},
+ {2089, {wxSpinButton, getValue, 0}},
+ {2090, {wxSpinButton, setRange, 2}},
+ {2091, {wxSpinButton, setValue, 1}},
+ {2092, {wxSpinButton, 'Destroy', undefined}},
+ {2093, {wxSpinCtrl, new_0, 0}},
+ {2094, {wxSpinCtrl, new_2, 2}},
+ {2096, {wxSpinCtrl, create, 2}},
+ {2099, {wxSpinCtrl, setValue_1_1, 1}},
+ {2100, {wxSpinCtrl, setValue_1_0, 1}},
+ {2102, {wxSpinCtrl, getValue, 0}},
+ {2104, {wxSpinCtrl, setRange, 2}},
+ {2105, {wxSpinCtrl, setSelection, 2}},
+ {2107, {wxSpinCtrl, getMin, 0}},
+ {2109, {wxSpinCtrl, getMax, 0}},
+ {2110, {wxSpinCtrl, 'Destroy', undefined}},
+ {2111, {wxStaticText, new_0, 0}},
+ {2112, {wxStaticText, new_4, 4}},
+ {2113, {wxStaticText, create, 4}},
+ {2114, {wxStaticText, getLabel, 0}},
+ {2115, {wxStaticText, setLabel, 1}},
+ {2116, {wxStaticText, wrap, 1}},
+ {2117, {wxStaticText, 'Destroy', undefined}},
+ {2118, {wxStaticBitmap, new_0, 0}},
+ {2119, {wxStaticBitmap, new_4, 4}},
+ {2120, {wxStaticBitmap, create, 4}},
+ {2121, {wxStaticBitmap, getBitmap, 0}},
+ {2122, {wxStaticBitmap, setBitmap, 1}},
+ {2123, {wxStaticBitmap, 'Destroy', undefined}},
+ {2124, {wxRadioBox, new, 7}},
+ {2126, {wxRadioBox, destruct, 0}},
+ {2127, {wxRadioBox, create, 7}},
+ {2128, {wxRadioBox, enable_2, 2}},
+ {2129, {wxRadioBox, enable_1, 1}},
+ {2130, {wxRadioBox, getSelection, 0}},
+ {2131, {wxRadioBox, getString, 1}},
+ {2132, {wxRadioBox, setSelection, 1}},
+ {2133, {wxRadioBox, show_2, 2}},
+ {2134, {wxRadioBox, show_1, 1}},
+ {2135, {wxRadioBox, getColumnCount, 0}},
+ {2136, {wxRadioBox, getItemHelpText, 1}},
+ {2137, {wxRadioBox, getItemToolTip, 1}},
+ {2139, {wxRadioBox, getItemFromPoint, 1}},
+ {2140, {wxRadioBox, getRowCount, 0}},
+ {2141, {wxRadioBox, isItemEnabled, 1}},
+ {2142, {wxRadioBox, isItemShown, 1}},
+ {2143, {wxRadioBox, setItemHelpText, 2}},
+ {2144, {wxRadioBox, setItemToolTip, 2}},
+ {2145, {wxRadioButton, new_0, 0}},
+ {2146, {wxRadioButton, new_4, 4}},
+ {2147, {wxRadioButton, create, 4}},
+ {2148, {wxRadioButton, getValue, 0}},
+ {2149, {wxRadioButton, setValue, 1}},
+ {2150, {wxRadioButton, 'Destroy', undefined}},
+ {2152, {wxSlider, new_6, 6}},
+ {2153, {wxSlider, new_0, 0}},
+ {2154, {wxSlider, create, 6}},
+ {2155, {wxSlider, getLineSize, 0}},
+ {2156, {wxSlider, getMax, 0}},
+ {2157, {wxSlider, getMin, 0}},
+ {2158, {wxSlider, getPageSize, 0}},
+ {2159, {wxSlider, getThumbLength, 0}},
+ {2160, {wxSlider, getValue, 0}},
+ {2161, {wxSlider, setLineSize, 1}},
+ {2162, {wxSlider, setPageSize, 1}},
+ {2163, {wxSlider, setRange, 2}},
+ {2164, {wxSlider, setThumbLength, 1}},
+ {2165, {wxSlider, setValue, 1}},
+ {2166, {wxSlider, 'Destroy', undefined}},
+ {2168, {wxDialog, new_4, 4}},
+ {2169, {wxDialog, new_0, 0}},
+ {2171, {wxDialog, destruct, 0}},
+ {2172, {wxDialog, create, 4}},
+ {2173, {wxDialog, createButtonSizer, 1}},
+ {2174, {wxDialog, createStdDialogButtonSizer, 1}},
+ {2175, {wxDialog, endModal, 1}},
+ {2176, {wxDialog, getAffirmativeId, 0}},
+ {2177, {wxDialog, getReturnCode, 0}},
+ {2178, {wxDialog, isModal, 0}},
+ {2179, {wxDialog, setAffirmativeId, 1}},
+ {2180, {wxDialog, setReturnCode, 1}},
+ {2181, {wxDialog, show, 1}},
+ {2182, {wxDialog, showModal, 0}},
+ {2183, {wxColourDialog, new_0, 0}},
+ {2184, {wxColourDialog, new_2, 2}},
+ {2185, {wxColourDialog, destruct, 0}},
+ {2186, {wxColourDialog, create, 2}},
+ {2187, {wxColourDialog, getColourData, 0}},
+ {2188, {wxColourData, new_0, 0}},
+ {2189, {wxColourData, new_1, 1}},
+ {2190, {wxColourData, destruct, 0}},
+ {2191, {wxColourData, getChooseFull, 0}},
+ {2192, {wxColourData, getColour, 0}},
+ {2194, {wxColourData, getCustomColour, 1}},
+ {2195, {wxColourData, setChooseFull, 1}},
+ {2196, {wxColourData, setColour, 1}},
+ {2197, {wxColourData, setCustomColour, 2}},
+ {2198, {wxPalette, new_0, 0}},
+ {2199, {wxPalette, new_4, 4}},
+ {2201, {wxPalette, destruct, 0}},
+ {2202, {wxPalette, create, 4}},
+ {2203, {wxPalette, getColoursCount, 0}},
+ {2204, {wxPalette, getPixel, 3}},
+ {2205, {wxPalette, getRGB, 4}},
+ {2206, {wxPalette, isOk, 0}},
+ {2210, {wxDirDialog, new, 2}},
+ {2211, {wxDirDialog, destruct, 0}},
+ {2212, {wxDirDialog, getPath, 0}},
+ {2213, {wxDirDialog, getMessage, 0}},
+ {2214, {wxDirDialog, setMessage, 1}},
+ {2215, {wxDirDialog, setPath, 1}},
+ {2219, {wxFileDialog, new, 2}},
+ {2220, {wxFileDialog, destruct, 0}},
+ {2221, {wxFileDialog, getDirectory, 0}},
+ {2222, {wxFileDialog, getFilename, 0}},
+ {2223, {wxFileDialog, getFilenames, 1}},
+ {2224, {wxFileDialog, getFilterIndex, 0}},
+ {2225, {wxFileDialog, getMessage, 0}},
+ {2226, {wxFileDialog, getPath, 0}},
+ {2227, {wxFileDialog, getPaths, 1}},
+ {2228, {wxFileDialog, getWildcard, 0}},
+ {2229, {wxFileDialog, setDirectory, 1}},
+ {2230, {wxFileDialog, setFilename, 1}},
+ {2231, {wxFileDialog, setFilterIndex, 1}},
+ {2232, {wxFileDialog, setMessage, 1}},
+ {2233, {wxFileDialog, setPath, 1}},
+ {2234, {wxFileDialog, setWildcard, 1}},
+ {2235, {wxPickerBase, setInternalMargin, 1}},
+ {2236, {wxPickerBase, getInternalMargin, 0}},
+ {2237, {wxPickerBase, setTextCtrlProportion, 1}},
+ {2238, {wxPickerBase, setPickerCtrlProportion, 1}},
+ {2239, {wxPickerBase, getTextCtrlProportion, 0}},
+ {2240, {wxPickerBase, getPickerCtrlProportion, 0}},
+ {2241, {wxPickerBase, hasTextCtrl, 0}},
+ {2242, {wxPickerBase, getTextCtrl, 0}},
+ {2243, {wxPickerBase, isTextCtrlGrowable, 0}},
+ {2244, {wxPickerBase, setPickerCtrlGrowable, 1}},
+ {2245, {wxPickerBase, setTextCtrlGrowable, 1}},
+ {2246, {wxPickerBase, isPickerCtrlGrowable, 0}},
+ {2247, {wxFilePickerCtrl, new_0, 0}},
+ {2248, {wxFilePickerCtrl, new_3, 3}},
+ {2249, {wxFilePickerCtrl, create, 3}},
+ {2250, {wxFilePickerCtrl, getPath, 0}},
+ {2251, {wxFilePickerCtrl, setPath, 1}},
+ {2252, {wxFilePickerCtrl, 'Destroy', undefined}},
+ {2253, {wxDirPickerCtrl, new_0, 0}},
+ {2254, {wxDirPickerCtrl, new_3, 3}},
+ {2255, {wxDirPickerCtrl, create, 3}},
+ {2256, {wxDirPickerCtrl, getPath, 0}},
+ {2257, {wxDirPickerCtrl, setPath, 1}},
+ {2258, {wxDirPickerCtrl, 'Destroy', undefined}},
+ {2259, {wxColourPickerCtrl, new_0, 0}},
+ {2260, {wxColourPickerCtrl, new_3, 3}},
+ {2261, {wxColourPickerCtrl, create, 3}},
+ {2262, {wxColourPickerCtrl, getColour, 0}},
+ {2263, {wxColourPickerCtrl, setColour_1_1, 1}},
+ {2264, {wxColourPickerCtrl, setColour_1_0, 1}},
+ {2265, {wxColourPickerCtrl, 'Destroy', undefined}},
+ {2266, {wxDatePickerCtrl, new_0, 0}},
+ {2267, {wxDatePickerCtrl, new_3, 3}},
+ {2268, {wxDatePickerCtrl, getRange, 2}},
+ {2269, {wxDatePickerCtrl, getValue, 0}},
+ {2270, {wxDatePickerCtrl, setRange, 2}},
+ {2271, {wxDatePickerCtrl, setValue, 1}},
+ {2272, {wxDatePickerCtrl, 'Destroy', undefined}},
+ {2273, {wxFontPickerCtrl, new_0, 0}},
+ {2274, {wxFontPickerCtrl, new_3, 3}},
+ {2275, {wxFontPickerCtrl, create, 3}},
+ {2276, {wxFontPickerCtrl, getSelectedFont, 0}},
+ {2277, {wxFontPickerCtrl, setSelectedFont, 1}},
+ {2278, {wxFontPickerCtrl, getMaxPointSize, 0}},
+ {2279, {wxFontPickerCtrl, setMaxPointSize, 1}},
+ {2280, {wxFontPickerCtrl, 'Destroy', undefined}},
+ {2283, {wxFindReplaceDialog, new_0, 0}},
+ {2284, {wxFindReplaceDialog, new_4, 4}},
+ {2285, {wxFindReplaceDialog, destruct, 0}},
+ {2286, {wxFindReplaceDialog, create, 4}},
+ {2287, {wxFindReplaceDialog, getData, 0}},
+ {2288, {wxFindReplaceData, new_0, 0}},
+ {2289, {wxFindReplaceData, new_1, 1}},
+ {2290, {wxFindReplaceData, getFindString, 0}},
+ {2291, {wxFindReplaceData, getReplaceString, 0}},
+ {2292, {wxFindReplaceData, getFlags, 0}},
+ {2293, {wxFindReplaceData, setFlags, 1}},
+ {2294, {wxFindReplaceData, setFindString, 1}},
+ {2295, {wxFindReplaceData, setReplaceString, 1}},
+ {2296, {wxFindReplaceData, 'Destroy', undefined}},
+ {2297, {wxMultiChoiceDialog, new_0, 0}},
+ {2299, {wxMultiChoiceDialog, new_5, 5}},
+ {2300, {wxMultiChoiceDialog, getSelections, 0}},
+ {2301, {wxMultiChoiceDialog, setSelections, 1}},
+ {2302, {wxMultiChoiceDialog, 'Destroy', undefined}},
+ {2303, {wxSingleChoiceDialog, new_0, 0}},
+ {2305, {wxSingleChoiceDialog, new_5, 5}},
+ {2306, {wxSingleChoiceDialog, getSelection, 0}},
+ {2307, {wxSingleChoiceDialog, getStringSelection, 0}},
+ {2308, {wxSingleChoiceDialog, setSelection, 1}},
+ {2309, {wxSingleChoiceDialog, 'Destroy', undefined}},
+ {2310, {wxTextEntryDialog, new, 3}},
+ {2311, {wxTextEntryDialog, getValue, 0}},
+ {2312, {wxTextEntryDialog, setValue, 1}},
+ {2313, {wxTextEntryDialog, 'Destroy', undefined}},
+ {2314, {wxPasswordEntryDialog, new, 3}},
+ {2315, {wxPasswordEntryDialog, 'Destroy', undefined}},
+ {2316, {wxFontData, new_0, 0}},
+ {2317, {wxFontData, new_1, 1}},
+ {2318, {wxFontData, destruct, 0}},
+ {2319, {wxFontData, enableEffects, 1}},
+ {2320, {wxFontData, getAllowSymbols, 0}},
+ {2321, {wxFontData, getColour, 0}},
+ {2322, {wxFontData, getChosenFont, 0}},
+ {2323, {wxFontData, getEnableEffects, 0}},
+ {2324, {wxFontData, getInitialFont, 0}},
+ {2325, {wxFontData, getShowHelp, 0}},
+ {2326, {wxFontData, setAllowSymbols, 1}},
+ {2327, {wxFontData, setChosenFont, 1}},
+ {2328, {wxFontData, setColour, 1}},
+ {2329, {wxFontData, setInitialFont, 1}},
+ {2330, {wxFontData, setRange, 2}},
+ {2331, {wxFontData, setShowHelp, 1}},
+ {2335, {wxFontDialog, new_0, 0}},
+ {2337, {wxFontDialog, new_2, 2}},
+ {2339, {wxFontDialog, create, 2}},
+ {2340, {wxFontDialog, getFontData, 0}},
+ {2342, {wxFontDialog, 'Destroy', undefined}},
+ {2343, {wxProgressDialog, new, 3}},
+ {2344, {wxProgressDialog, destruct, 0}},
+ {2345, {wxProgressDialog, resume, 0}},
+ {2346, {wxProgressDialog, update_2, 2}},
+ {2347, {wxProgressDialog, update_0, 0}},
+ {2348, {wxMessageDialog, new, 3}},
+ {2349, {wxMessageDialog, destruct, 0}},
+ {2350, {wxPageSetupDialog, new, 2}},
+ {2351, {wxPageSetupDialog, destruct, 0}},
+ {2352, {wxPageSetupDialog, getPageSetupData, 0}},
+ {2353, {wxPageSetupDialog, showModal, 0}},
+ {2354, {wxPageSetupDialogData, new_0, 0}},
+ {2355, {wxPageSetupDialogData, new_1_0, 1}},
+ {2356, {wxPageSetupDialogData, new_1_1, 1}},
+ {2357, {wxPageSetupDialogData, destruct, 0}},
+ {2358, {wxPageSetupDialogData, enableHelp, 1}},
+ {2359, {wxPageSetupDialogData, enableMargins, 1}},
+ {2360, {wxPageSetupDialogData, enableOrientation, 1}},
+ {2361, {wxPageSetupDialogData, enablePaper, 1}},
+ {2362, {wxPageSetupDialogData, enablePrinter, 1}},
+ {2363, {wxPageSetupDialogData, getDefaultMinMargins, 0}},
+ {2364, {wxPageSetupDialogData, getEnableMargins, 0}},
+ {2365, {wxPageSetupDialogData, getEnableOrientation, 0}},
+ {2366, {wxPageSetupDialogData, getEnablePaper, 0}},
+ {2367, {wxPageSetupDialogData, getEnablePrinter, 0}},
+ {2368, {wxPageSetupDialogData, getEnableHelp, 0}},
+ {2369, {wxPageSetupDialogData, getDefaultInfo, 0}},
+ {2370, {wxPageSetupDialogData, getMarginTopLeft, 0}},
+ {2371, {wxPageSetupDialogData, getMarginBottomRight, 0}},
+ {2372, {wxPageSetupDialogData, getMinMarginTopLeft, 0}},
+ {2373, {wxPageSetupDialogData, getMinMarginBottomRight, 0}},
+ {2374, {wxPageSetupDialogData, getPaperId, 0}},
+ {2375, {wxPageSetupDialogData, getPaperSize, 0}},
+ {2377, {wxPageSetupDialogData, getPrintData, 0}},
+ {2378, {wxPageSetupDialogData, isOk, 0}},
+ {2379, {wxPageSetupDialogData, setDefaultInfo, 1}},
+ {2380, {wxPageSetupDialogData, setDefaultMinMargins, 1}},
+ {2381, {wxPageSetupDialogData, setMarginTopLeft, 1}},
+ {2382, {wxPageSetupDialogData, setMarginBottomRight, 1}},
+ {2383, {wxPageSetupDialogData, setMinMarginTopLeft, 1}},
+ {2384, {wxPageSetupDialogData, setMinMarginBottomRight, 1}},
+ {2385, {wxPageSetupDialogData, setPaperId, 1}},
+ {2386, {wxPageSetupDialogData, setPaperSize_1_1, 1}},
+ {2387, {wxPageSetupDialogData, setPaperSize_1_0, 1}},
+ {2388, {wxPageSetupDialogData, setPrintData, 1}},
+ {2389, {wxPrintDialog, new_2_0, 2}},
+ {2390, {wxPrintDialog, new_2_1, 2}},
+ {2391, {wxPrintDialog, destruct, 0}},
+ {2392, {wxPrintDialog, getPrintDialogData, 0}},
+ {2393, {wxPrintDialog, getPrintDC, 0}},
+ {2394, {wxPrintDialogData, new_0, 0}},
+ {2395, {wxPrintDialogData, new_1_1, 1}},
+ {2396, {wxPrintDialogData, new_1_0, 1}},
+ {2397, {wxPrintDialogData, destruct, 0}},
+ {2398, {wxPrintDialogData, enableHelp, 1}},
+ {2399, {wxPrintDialogData, enablePageNumbers, 1}},
+ {2400, {wxPrintDialogData, enablePrintToFile, 1}},
+ {2401, {wxPrintDialogData, enableSelection, 1}},
+ {2402, {wxPrintDialogData, getAllPages, 0}},
+ {2403, {wxPrintDialogData, getCollate, 0}},
+ {2404, {wxPrintDialogData, getFromPage, 0}},
+ {2405, {wxPrintDialogData, getMaxPage, 0}},
+ {2406, {wxPrintDialogData, getMinPage, 0}},
+ {2407, {wxPrintDialogData, getNoCopies, 0}},
+ {2408, {wxPrintDialogData, getPrintData, 0}},
+ {2409, {wxPrintDialogData, getPrintToFile, 0}},
+ {2410, {wxPrintDialogData, getSelection, 0}},
+ {2411, {wxPrintDialogData, getToPage, 0}},
+ {2412, {wxPrintDialogData, isOk, 0}},
+ {2413, {wxPrintDialogData, setCollate, 1}},
+ {2414, {wxPrintDialogData, setFromPage, 1}},
+ {2415, {wxPrintDialogData, setMaxPage, 1}},
+ {2416, {wxPrintDialogData, setMinPage, 1}},
+ {2417, {wxPrintDialogData, setNoCopies, 1}},
+ {2418, {wxPrintDialogData, setPrintData, 1}},
+ {2419, {wxPrintDialogData, setPrintToFile, 1}},
+ {2420, {wxPrintDialogData, setSelection, 1}},
+ {2421, {wxPrintDialogData, setToPage, 1}},
+ {2422, {wxPrintData, new_0, 0}},
+ {2423, {wxPrintData, new_1, 1}},
+ {2424, {wxPrintData, destruct, 0}},
+ {2425, {wxPrintData, getCollate, 0}},
+ {2426, {wxPrintData, getBin, 0}},
+ {2427, {wxPrintData, getColour, 0}},
+ {2428, {wxPrintData, getDuplex, 0}},
+ {2429, {wxPrintData, getNoCopies, 0}},
+ {2430, {wxPrintData, getOrientation, 0}},
+ {2431, {wxPrintData, getPaperId, 0}},
+ {2432, {wxPrintData, getPrinterName, 0}},
+ {2433, {wxPrintData, getQuality, 0}},
+ {2434, {wxPrintData, isOk, 0}},
+ {2435, {wxPrintData, setBin, 1}},
+ {2436, {wxPrintData, setCollate, 1}},
+ {2437, {wxPrintData, setColour, 1}},
+ {2438, {wxPrintData, setDuplex, 1}},
+ {2439, {wxPrintData, setNoCopies, 1}},
+ {2440, {wxPrintData, setOrientation, 1}},
+ {2441, {wxPrintData, setPaperId, 1}},
+ {2442, {wxPrintData, setPrinterName, 1}},
+ {2443, {wxPrintData, setQuality, 1}},
+ {2446, {wxPrintPreview, new_2, 2}},
+ {2447, {wxPrintPreview, new_3, 3}},
+ {2449, {wxPrintPreview, destruct, 0}},
+ {2450, {wxPrintPreview, getCanvas, 0}},
+ {2451, {wxPrintPreview, getCurrentPage, 0}},
+ {2452, {wxPrintPreview, getFrame, 0}},
+ {2453, {wxPrintPreview, getMaxPage, 0}},
+ {2454, {wxPrintPreview, getMinPage, 0}},
+ {2455, {wxPrintPreview, getPrintout, 0}},
+ {2456, {wxPrintPreview, getPrintoutForPrinting, 0}},
+ {2457, {wxPrintPreview, isOk, 0}},
+ {2458, {wxPrintPreview, paintPage, 2}},
+ {2459, {wxPrintPreview, print, 1}},
+ {2460, {wxPrintPreview, renderPage, 1}},
+ {2461, {wxPrintPreview, setCanvas, 1}},
+ {2462, {wxPrintPreview, setCurrentPage, 1}},
+ {2463, {wxPrintPreview, setFrame, 1}},
+ {2464, {wxPrintPreview, setPrintout, 1}},
+ {2465, {wxPrintPreview, setZoom, 1}},
+ {2466, {wxPreviewFrame, new, 3}},
+ {2467, {wxPreviewFrame, destruct, 0}},
+ {2468, {wxPreviewFrame, createControlBar, 0}},
+ {2469, {wxPreviewFrame, createCanvas, 0}},
+ {2470, {wxPreviewFrame, initialize, 0}},
+ {2471, {wxPreviewFrame, onCloseWindow, 1}},
+ {2472, {wxPreviewControlBar, new, 4}},
+ {2473, {wxPreviewControlBar, destruct, 0}},
+ {2474, {wxPreviewControlBar, createButtons, 0}},
+ {2475, {wxPreviewControlBar, getPrintPreview, 0}},
+ {2476, {wxPreviewControlBar, getZoomControl, 0}},
+ {2477, {wxPreviewControlBar, setZoomControl, 1}},
+ {2479, {wxPrinter, new, 1}},
+ {2480, {wxPrinter, createAbortWindow, 2}},
+ {2481, {wxPrinter, getAbort, 0}},
+ {2482, {wxPrinter, getLastError, 0}},
+ {2483, {wxPrinter, getPrintDialogData, 0}},
+ {2484, {wxPrinter, print, 3}},
+ {2485, {wxPrinter, printDialog, 1}},
+ {2486, {wxPrinter, reportError, 3}},
+ {2487, {wxPrinter, setup, 1}},
+ {2488, {wxPrinter, 'Destroy', undefined}},
+ {2489, {wxXmlResource, new_1, 1}},
+ {2490, {wxXmlResource, new_2, 2}},
+ {2491, {wxXmlResource, destruct, 0}},
+ {2492, {wxXmlResource, attachUnknownControl, 3}},
+ {2493, {wxXmlResource, clearHandlers, 0}},
+ {2494, {wxXmlResource, compareVersion, 4}},
+ {2495, {wxXmlResource, get, 0}},
+ {2496, {wxXmlResource, getFlags, 0}},
+ {2497, {wxXmlResource, getVersion, 0}},
+ {2498, {wxXmlResource, getXRCID, 2}},
+ {2499, {wxXmlResource, initAllHandlers, 0}},
+ {2500, {wxXmlResource, load, 1}},
+ {2501, {wxXmlResource, loadBitmap, 1}},
+ {2502, {wxXmlResource, loadDialog_2, 2}},
+ {2503, {wxXmlResource, loadDialog_3, 3}},
+ {2504, {wxXmlResource, loadFrame_2, 2}},
+ {2505, {wxXmlResource, loadFrame_3, 3}},
+ {2506, {wxXmlResource, loadIcon, 1}},
+ {2507, {wxXmlResource, loadMenu, 1}},
+ {2508, {wxXmlResource, loadMenuBar_2, 2}},
+ {2509, {wxXmlResource, loadMenuBar_1, 1}},
+ {2510, {wxXmlResource, loadPanel_2, 2}},
+ {2511, {wxXmlResource, loadPanel_3, 3}},
+ {2512, {wxXmlResource, loadToolBar, 2}},
+ {2513, {wxXmlResource, set, 1}},
+ {2514, {wxXmlResource, setFlags, 1}},
+ {2515, {wxXmlResource, unload, 1}},
+ {2516, {wxXmlResource, xrcctrl, 3}},
+ {2517, {wxHtmlEasyPrinting, new, 1}},
+ {2518, {wxHtmlEasyPrinting, destruct, 0}},
+ {2519, {wxHtmlEasyPrinting, getPrintData, 0}},
+ {2520, {wxHtmlEasyPrinting, getPageSetupData, 0}},
+ {2521, {wxHtmlEasyPrinting, previewFile, 1}},
+ {2522, {wxHtmlEasyPrinting, previewText, 2}},
+ {2523, {wxHtmlEasyPrinting, printFile, 1}},
+ {2524, {wxHtmlEasyPrinting, printText, 2}},
+ {2525, {wxHtmlEasyPrinting, pageSetup, 0}},
+ {2526, {wxHtmlEasyPrinting, setFonts, 3}},
+ {2527, {wxHtmlEasyPrinting, setHeader, 2}},
+ {2528, {wxHtmlEasyPrinting, setFooter, 2}},
+ {2530, {wxGLCanvas, new_2, 2}},
+ {2531, {wxGLCanvas, new_3_1, 3}},
+ {2532, {wxGLCanvas, new_3_0, 3}},
+ {2533, {wxGLCanvas, getContext, 0}},
+ {2535, {wxGLCanvas, setCurrent, 0}},
+ {2536, {wxGLCanvas, swapBuffers, 0}},
+ {2537, {wxGLCanvas, 'Destroy', undefined}},
+ {2538, {wxAuiManager, new, 1}},
+ {2539, {wxAuiManager, destruct, 0}},
+ {2540, {wxAuiManager, addPane_2_1, 2}},
+ {2541, {wxAuiManager, addPane_3, 3}},
+ {2542, {wxAuiManager, addPane_2_0, 2}},
+ {2543, {wxAuiManager, detachPane, 1}},
+ {2544, {wxAuiManager, getAllPanes, 0}},
+ {2545, {wxAuiManager, getArtProvider, 0}},
+ {2546, {wxAuiManager, getDockSizeConstraint, 2}},
+ {2547, {wxAuiManager, getFlags, 0}},
+ {2548, {wxAuiManager, getManagedWindow, 0}},
+ {2549, {wxAuiManager, getManager, 1}},
+ {2550, {wxAuiManager, getPane_1_1, 1}},
+ {2551, {wxAuiManager, getPane_1_0, 1}},
+ {2552, {wxAuiManager, hideHint, 0}},
+ {2553, {wxAuiManager, insertPane, 3}},
+ {2554, {wxAuiManager, loadPaneInfo, 2}},
+ {2555, {wxAuiManager, loadPerspective, 2}},
+ {2556, {wxAuiManager, savePaneInfo, 1}},
+ {2557, {wxAuiManager, savePerspective, 0}},
+ {2558, {wxAuiManager, setArtProvider, 1}},
+ {2559, {wxAuiManager, setDockSizeConstraint, 2}},
+ {2560, {wxAuiManager, setFlags, 1}},
+ {2561, {wxAuiManager, setManagedWindow, 1}},
+ {2562, {wxAuiManager, showHint, 1}},
+ {2563, {wxAuiManager, unInit, 0}},
+ {2564, {wxAuiManager, update, 0}},
+ {2565, {wxAuiPaneInfo, new_0, 0}},
+ {2566, {wxAuiPaneInfo, new_1, 1}},
+ {2567, {wxAuiPaneInfo, destruct, 0}},
+ {2568, {wxAuiPaneInfo, bestSize_1, 1}},
+ {2569, {wxAuiPaneInfo, bestSize_2, 2}},
+ {2570, {wxAuiPaneInfo, bottom, 0}},
+ {2571, {wxAuiPaneInfo, bottomDockable, 1}},
+ {2572, {wxAuiPaneInfo, caption, 1}},
+ {2573, {wxAuiPaneInfo, captionVisible, 1}},
+ {2574, {wxAuiPaneInfo, centre, 0}},
+ {2575, {wxAuiPaneInfo, centrePane, 0}},
+ {2576, {wxAuiPaneInfo, closeButton, 1}},
+ {2577, {wxAuiPaneInfo, defaultPane, 0}},
+ {2578, {wxAuiPaneInfo, destroyOnClose, 1}},
+ {2579, {wxAuiPaneInfo, direction, 1}},
+ {2580, {wxAuiPaneInfo, dock, 0}},
+ {2581, {wxAuiPaneInfo, dockable, 1}},
+ {2582, {wxAuiPaneInfo, fixed, 0}},
+ {2583, {wxAuiPaneInfo, float, 0}},
+ {2584, {wxAuiPaneInfo, floatable, 1}},
+ {2585, {wxAuiPaneInfo, floatingPosition_1, 1}},
+ {2586, {wxAuiPaneInfo, floatingPosition_2, 2}},
+ {2587, {wxAuiPaneInfo, floatingSize_1, 1}},
+ {2588, {wxAuiPaneInfo, floatingSize_2, 2}},
+ {2589, {wxAuiPaneInfo, gripper, 1}},
+ {2590, {wxAuiPaneInfo, gripperTop, 1}},
+ {2591, {wxAuiPaneInfo, hasBorder, 0}},
+ {2592, {wxAuiPaneInfo, hasCaption, 0}},
+ {2593, {wxAuiPaneInfo, hasCloseButton, 0}},
+ {2594, {wxAuiPaneInfo, hasFlag, 1}},
+ {2595, {wxAuiPaneInfo, hasGripper, 0}},
+ {2596, {wxAuiPaneInfo, hasGripperTop, 0}},
+ {2597, {wxAuiPaneInfo, hasMaximizeButton, 0}},
+ {2598, {wxAuiPaneInfo, hasMinimizeButton, 0}},
+ {2599, {wxAuiPaneInfo, hasPinButton, 0}},
+ {2600, {wxAuiPaneInfo, hide, 0}},
+ {2601, {wxAuiPaneInfo, isBottomDockable, 0}},
+ {2602, {wxAuiPaneInfo, isDocked, 0}},
+ {2603, {wxAuiPaneInfo, isFixed, 0}},
+ {2604, {wxAuiPaneInfo, isFloatable, 0}},
+ {2605, {wxAuiPaneInfo, isFloating, 0}},
+ {2606, {wxAuiPaneInfo, isLeftDockable, 0}},
+ {2607, {wxAuiPaneInfo, isMovable, 0}},
+ {2608, {wxAuiPaneInfo, isOk, 0}},
+ {2609, {wxAuiPaneInfo, isResizable, 0}},
+ {2610, {wxAuiPaneInfo, isRightDockable, 0}},
+ {2611, {wxAuiPaneInfo, isShown, 0}},
+ {2612, {wxAuiPaneInfo, isToolbar, 0}},
+ {2613, {wxAuiPaneInfo, isTopDockable, 0}},
+ {2614, {wxAuiPaneInfo, layer, 1}},
+ {2615, {wxAuiPaneInfo, left, 0}},
+ {2616, {wxAuiPaneInfo, leftDockable, 1}},
+ {2617, {wxAuiPaneInfo, maxSize_1, 1}},
+ {2618, {wxAuiPaneInfo, maxSize_2, 2}},
+ {2619, {wxAuiPaneInfo, maximizeButton, 1}},
+ {2620, {wxAuiPaneInfo, minSize_1, 1}},
+ {2621, {wxAuiPaneInfo, minSize_2, 2}},
+ {2622, {wxAuiPaneInfo, minimizeButton, 1}},
+ {2623, {wxAuiPaneInfo, movable, 1}},
+ {2624, {wxAuiPaneInfo, name, 1}},
+ {2625, {wxAuiPaneInfo, paneBorder, 1}},
+ {2626, {wxAuiPaneInfo, pinButton, 1}},
+ {2627, {wxAuiPaneInfo, position, 1}},
+ {2628, {wxAuiPaneInfo, resizable, 1}},
+ {2629, {wxAuiPaneInfo, right, 0}},
+ {2630, {wxAuiPaneInfo, rightDockable, 1}},
+ {2631, {wxAuiPaneInfo, row, 1}},
+ {2632, {wxAuiPaneInfo, safeSet, 1}},
+ {2633, {wxAuiPaneInfo, setFlag, 2}},
+ {2634, {wxAuiPaneInfo, show, 1}},
+ {2635, {wxAuiPaneInfo, toolbarPane, 0}},
+ {2636, {wxAuiPaneInfo, top, 0}},
+ {2637, {wxAuiPaneInfo, topDockable, 1}},
+ {2638, {wxAuiPaneInfo, window, 1}},
+ {2639, {wxAuiNotebook, new_0, 0}},
+ {2640, {wxAuiNotebook, new_2, 2}},
+ {2641, {wxAuiNotebook, addPage, 3}},
+ {2642, {wxAuiNotebook, create, 2}},
+ {2643, {wxAuiNotebook, deletePage, 1}},
+ {2644, {wxAuiNotebook, getArtProvider, 0}},
+ {2645, {wxAuiNotebook, getPage, 1}},
+ {2646, {wxAuiNotebook, getPageBitmap, 1}},
+ {2647, {wxAuiNotebook, getPageCount, 0}},
+ {2648, {wxAuiNotebook, getPageIndex, 1}},
+ {2649, {wxAuiNotebook, getPageText, 1}},
+ {2650, {wxAuiNotebook, getSelection, 0}},
+ {2651, {wxAuiNotebook, insertPage, 4}},
+ {2652, {wxAuiNotebook, removePage, 1}},
+ {2653, {wxAuiNotebook, setArtProvider, 1}},
+ {2654, {wxAuiNotebook, setFont, 1}},
+ {2655, {wxAuiNotebook, setPageBitmap, 2}},
+ {2656, {wxAuiNotebook, setPageText, 2}},
+ {2657, {wxAuiNotebook, setSelection, 1}},
+ {2658, {wxAuiNotebook, setTabCtrlHeight, 1}},
+ {2659, {wxAuiNotebook, setUniformBitmapSize, 1}},
+ {2660, {wxAuiNotebook, 'Destroy', undefined}},
+ {2661, {wxMDIParentFrame, new_0, 0}},
+ {2662, {wxMDIParentFrame, new_4, 4}},
+ {2663, {wxMDIParentFrame, destruct, 0}},
+ {2664, {wxMDIParentFrame, activateNext, 0}},
+ {2665, {wxMDIParentFrame, activatePrevious, 0}},
+ {2666, {wxMDIParentFrame, arrangeIcons, 0}},
+ {2667, {wxMDIParentFrame, cascade, 0}},
+ {2668, {wxMDIParentFrame, create, 4}},
+ {2669, {wxMDIParentFrame, getActiveChild, 0}},
+ {2670, {wxMDIParentFrame, getClientWindow, 0}},
+ {2671, {wxMDIParentFrame, tile, 1}},
+ {2672, {wxMDIChildFrame, new_0, 0}},
+ {2673, {wxMDIChildFrame, new_4, 4}},
+ {2674, {wxMDIChildFrame, destruct, 0}},
+ {2675, {wxMDIChildFrame, activate, 0}},
+ {2676, {wxMDIChildFrame, create, 4}},
+ {2677, {wxMDIChildFrame, maximize, 1}},
+ {2678, {wxMDIChildFrame, restore, 0}},
+ {2679, {wxMDIClientWindow, new_0, 0}},
+ {2680, {wxMDIClientWindow, new_2, 2}},
+ {2681, {wxMDIClientWindow, destruct, 0}},
+ {2682, {wxMDIClientWindow, createClient, 2}},
+ {2683, {wxLayoutAlgorithm, new, 0}},
+ {2684, {wxLayoutAlgorithm, layoutFrame, 2}},
+ {2685, {wxLayoutAlgorithm, layoutMDIFrame, 2}},
+ {2686, {wxLayoutAlgorithm, layoutWindow, 2}},
+ {2687, {wxLayoutAlgorithm, 'Destroy', undefined}},
+ {2688, {wxEvent, getId, 0}},
+ {2689, {wxEvent, getSkipped, 0}},
+ {2690, {wxEvent, getTimestamp, 0}},
+ {2691, {wxEvent, isCommandEvent, 0}},
+ {2692, {wxEvent, resumePropagation, 1}},
+ {2693, {wxEvent, shouldPropagate, 0}},
+ {2694, {wxEvent, skip, 1}},
+ {2695, {wxEvent, stopPropagation, 0}},
+ {2696, {wxCommandEvent, getClientData, 0}},
+ {2697, {wxCommandEvent, getExtraLong, 0}},
+ {2698, {wxCommandEvent, getInt, 0}},
+ {2699, {wxCommandEvent, getSelection, 0}},
+ {2700, {wxCommandEvent, getString, 0}},
+ {2701, {wxCommandEvent, isChecked, 0}},
+ {2702, {wxCommandEvent, isSelection, 0}},
+ {2703, {wxCommandEvent, setInt, 1}},
+ {2704, {wxCommandEvent, setString, 1}},
+ {2705, {wxScrollEvent, getOrientation, 0}},
+ {2706, {wxScrollEvent, getPosition, 0}},
+ {2707, {wxScrollWinEvent, getOrientation, 0}},
+ {2708, {wxScrollWinEvent, getPosition, 0}},
+ {2709, {wxMouseEvent, altDown, 0}},
+ {2710, {wxMouseEvent, button, 1}},
+ {2711, {wxMouseEvent, buttonDClick, 1}},
+ {2712, {wxMouseEvent, buttonDown, 1}},
+ {2713, {wxMouseEvent, buttonUp, 1}},
+ {2714, {wxMouseEvent, cmdDown, 0}},
+ {2715, {wxMouseEvent, controlDown, 0}},
+ {2716, {wxMouseEvent, dragging, 0}},
+ {2717, {wxMouseEvent, entering, 0}},
+ {2718, {wxMouseEvent, getButton, 0}},
+ {2721, {wxMouseEvent, getPosition, 0}},
+ {2722, {wxMouseEvent, getLogicalPosition, 1}},
+ {2723, {wxMouseEvent, getLinesPerAction, 0}},
+ {2724, {wxMouseEvent, getWheelRotation, 0}},
+ {2725, {wxMouseEvent, getWheelDelta, 0}},
+ {2726, {wxMouseEvent, getX, 0}},
+ {2727, {wxMouseEvent, getY, 0}},
+ {2728, {wxMouseEvent, isButton, 0}},
+ {2729, {wxMouseEvent, isPageScroll, 0}},
+ {2730, {wxMouseEvent, leaving, 0}},
+ {2731, {wxMouseEvent, leftDClick, 0}},
+ {2732, {wxMouseEvent, leftDown, 0}},
+ {2733, {wxMouseEvent, leftIsDown, 0}},
+ {2734, {wxMouseEvent, leftUp, 0}},
+ {2735, {wxMouseEvent, metaDown, 0}},
+ {2736, {wxMouseEvent, middleDClick, 0}},
+ {2737, {wxMouseEvent, middleDown, 0}},
+ {2738, {wxMouseEvent, middleIsDown, 0}},
+ {2739, {wxMouseEvent, middleUp, 0}},
+ {2740, {wxMouseEvent, moving, 0}},
+ {2741, {wxMouseEvent, rightDClick, 0}},
+ {2742, {wxMouseEvent, rightDown, 0}},
+ {2743, {wxMouseEvent, rightIsDown, 0}},
+ {2744, {wxMouseEvent, rightUp, 0}},
+ {2745, {wxMouseEvent, shiftDown, 0}},
+ {2746, {wxSetCursorEvent, getCursor, 0}},
+ {2747, {wxSetCursorEvent, getX, 0}},
+ {2748, {wxSetCursorEvent, getY, 0}},
+ {2749, {wxSetCursorEvent, hasCursor, 0}},
+ {2750, {wxSetCursorEvent, setCursor, 1}},
+ {2751, {wxKeyEvent, altDown, 0}},
+ {2752, {wxKeyEvent, cmdDown, 0}},
+ {2753, {wxKeyEvent, controlDown, 0}},
+ {2754, {wxKeyEvent, getKeyCode, 0}},
+ {2755, {wxKeyEvent, getModifiers, 0}},
+ {2758, {wxKeyEvent, getPosition, 0}},
+ {2759, {wxKeyEvent, getRawKeyCode, 0}},
+ {2760, {wxKeyEvent, getRawKeyFlags, 0}},
+ {2761, {wxKeyEvent, getUnicodeKey, 0}},
+ {2762, {wxKeyEvent, getX, 0}},
+ {2763, {wxKeyEvent, getY, 0}},
+ {2764, {wxKeyEvent, hasModifiers, 0}},
+ {2765, {wxKeyEvent, metaDown, 0}},
+ {2766, {wxKeyEvent, shiftDown, 0}},
+ {2767, {wxSizeEvent, getSize, 0}},
+ {2768, {wxMoveEvent, getPosition, 0}},
+ {2769, {wxEraseEvent, getDC, 0}},
+ {2770, {wxFocusEvent, getWindow, 0}},
+ {2771, {wxChildFocusEvent, getWindow, 0}},
+ {2772, {wxMenuEvent, getMenu, 0}},
+ {2773, {wxMenuEvent, getMenuId, 0}},
+ {2774, {wxMenuEvent, isPopup, 0}},
+ {2775, {wxCloseEvent, canVeto, 0}},
+ {2776, {wxCloseEvent, getLoggingOff, 0}},
+ {2777, {wxCloseEvent, setCanVeto, 1}},
+ {2778, {wxCloseEvent, setLoggingOff, 1}},
+ {2779, {wxCloseEvent, veto, 1}},
+ {2780, {wxShowEvent, setShow, 1}},
+ {2781, {wxShowEvent, getShow, 0}},
+ {2782, {wxIconizeEvent, iconized, 0}},
+ {2783, {wxJoystickEvent, buttonDown, 1}},
+ {2784, {wxJoystickEvent, buttonIsDown, 1}},
+ {2785, {wxJoystickEvent, buttonUp, 1}},
+ {2786, {wxJoystickEvent, getButtonChange, 0}},
+ {2787, {wxJoystickEvent, getButtonState, 0}},
+ {2788, {wxJoystickEvent, getJoystick, 0}},
+ {2789, {wxJoystickEvent, getPosition, 0}},
+ {2790, {wxJoystickEvent, getZPosition, 0}},
+ {2791, {wxJoystickEvent, isButton, 0}},
+ {2792, {wxJoystickEvent, isMove, 0}},
+ {2793, {wxJoystickEvent, isZMove, 0}},
+ {2794, {wxUpdateUIEvent, canUpdate, 1}},
+ {2795, {wxUpdateUIEvent, check, 1}},
+ {2796, {wxUpdateUIEvent, enable, 1}},
+ {2797, {wxUpdateUIEvent, show, 1}},
+ {2798, {wxUpdateUIEvent, getChecked, 0}},
+ {2799, {wxUpdateUIEvent, getEnabled, 0}},
+ {2800, {wxUpdateUIEvent, getShown, 0}},
+ {2801, {wxUpdateUIEvent, getSetChecked, 0}},
+ {2802, {wxUpdateUIEvent, getSetEnabled, 0}},
+ {2803, {wxUpdateUIEvent, getSetShown, 0}},
+ {2804, {wxUpdateUIEvent, getSetText, 0}},
+ {2805, {wxUpdateUIEvent, getText, 0}},
+ {2806, {wxUpdateUIEvent, getMode, 0}},
+ {2807, {wxUpdateUIEvent, getUpdateInterval, 0}},
+ {2808, {wxUpdateUIEvent, resetUpdateTime, 0}},
+ {2809, {wxUpdateUIEvent, setMode, 1}},
+ {2810, {wxUpdateUIEvent, setText, 1}},
+ {2811, {wxUpdateUIEvent, setUpdateInterval, 1}},
+ {2812, {wxMouseCaptureChangedEvent, getCapturedWindow, 0}},
+ {2813, {wxPaletteChangedEvent, setChangedWindow, 1}},
+ {2814, {wxPaletteChangedEvent, getChangedWindow, 0}},
+ {2815, {wxQueryNewPaletteEvent, setPaletteRealized, 1}},
+ {2816, {wxQueryNewPaletteEvent, getPaletteRealized, 0}},
+ {2817, {wxNavigationKeyEvent, getDirection, 0}},
+ {2818, {wxNavigationKeyEvent, setDirection, 1}},
+ {2819, {wxNavigationKeyEvent, isWindowChange, 0}},
+ {2820, {wxNavigationKeyEvent, setWindowChange, 1}},
+ {2821, {wxNavigationKeyEvent, isFromTab, 0}},
+ {2822, {wxNavigationKeyEvent, setFromTab, 1}},
+ {2823, {wxNavigationKeyEvent, getCurrentFocus, 0}},
+ {2824, {wxNavigationKeyEvent, setCurrentFocus, 1}},
+ {2825, {wxHelpEvent, getOrigin, 0}},
+ {2826, {wxHelpEvent, getPosition, 0}},
+ {2827, {wxHelpEvent, setOrigin, 1}},
+ {2828, {wxHelpEvent, setPosition, 1}},
+ {2829, {wxContextMenuEvent, getPosition, 0}},
+ {2830, {wxContextMenuEvent, setPosition, 1}},
+ {2831, {wxIdleEvent, canSend, 1}},
+ {2832, {wxIdleEvent, getMode, 0}},
+ {2833, {wxIdleEvent, requestMore, 1}},
+ {2834, {wxIdleEvent, moreRequested, 0}},
+ {2835, {wxIdleEvent, setMode, 1}},
+ {2836, {wxGridEvent, altDown, 0}},
+ {2837, {wxGridEvent, controlDown, 0}},
+ {2838, {wxGridEvent, getCol, 0}},
+ {2839, {wxGridEvent, getPosition, 0}},
+ {2840, {wxGridEvent, getRow, 0}},
+ {2841, {wxGridEvent, metaDown, 0}},
+ {2842, {wxGridEvent, selecting, 0}},
+ {2843, {wxGridEvent, shiftDown, 0}},
+ {2844, {wxNotifyEvent, allow, 0}},
+ {2845, {wxNotifyEvent, isAllowed, 0}},
+ {2846, {wxNotifyEvent, veto, 0}},
+ {2847, {wxSashEvent, getEdge, 0}},
+ {2848, {wxSashEvent, getDragRect, 0}},
+ {2849, {wxSashEvent, getDragStatus, 0}},
+ {2850, {wxListEvent, getCacheFrom, 0}},
+ {2851, {wxListEvent, getCacheTo, 0}},
+ {2852, {wxListEvent, getKeyCode, 0}},
+ {2853, {wxListEvent, getIndex, 0}},
+ {2854, {wxListEvent, getColumn, 0}},
+ {2855, {wxListEvent, getPoint, 0}},
+ {2856, {wxListEvent, getLabel, 0}},
+ {2857, {wxListEvent, getText, 0}},
+ {2858, {wxListEvent, getImage, 0}},
+ {2859, {wxListEvent, getData, 0}},
+ {2860, {wxListEvent, getMask, 0}},
+ {2861, {wxListEvent, getItem, 0}},
+ {2862, {wxListEvent, isEditCancelled, 0}},
+ {2863, {wxDateEvent, getDate, 0}},
+ {2864, {wxCalendarEvent, getWeekDay, 0}},
+ {2865, {wxFileDirPickerEvent, getPath, 0}},
+ {2866, {wxColourPickerEvent, getColour, 0}},
+ {2867, {wxFontPickerEvent, getFont, 0}},
+ {2868, {wxStyledTextEvent, getPosition, 0}},
+ {2869, {wxStyledTextEvent, getKey, 0}},
+ {2870, {wxStyledTextEvent, getModifiers, 0}},
+ {2871, {wxStyledTextEvent, getModificationType, 0}},
+ {2872, {wxStyledTextEvent, getText, 0}},
+ {2873, {wxStyledTextEvent, getLength, 0}},
+ {2874, {wxStyledTextEvent, getLinesAdded, 0}},
+ {2875, {wxStyledTextEvent, getLine, 0}},
+ {2876, {wxStyledTextEvent, getFoldLevelNow, 0}},
+ {2877, {wxStyledTextEvent, getFoldLevelPrev, 0}},
+ {2878, {wxStyledTextEvent, getMargin, 0}},
+ {2879, {wxStyledTextEvent, getMessage, 0}},
+ {2880, {wxStyledTextEvent, getWParam, 0}},
+ {2881, {wxStyledTextEvent, getLParam, 0}},
+ {2882, {wxStyledTextEvent, getListType, 0}},
+ {2883, {wxStyledTextEvent, getX, 0}},
+ {2884, {wxStyledTextEvent, getY, 0}},
+ {2885, {wxStyledTextEvent, getDragText, 0}},
+ {2886, {wxStyledTextEvent, getDragAllowMove, 0}},
+ {2887, {wxStyledTextEvent, getDragResult, 0}},
+ {2888, {wxStyledTextEvent, getShift, 0}},
+ {2889, {wxStyledTextEvent, getControl, 0}},
+ {2890, {wxStyledTextEvent, getAlt, 0}},
+ {2891, {utils, getKeyState, 1}},
+ {2892, {utils, getMousePosition, 2}},
+ {2893, {utils, getMouseState, 0}},
+ {2894, {utils, setDetectableAutoRepeat, 1}},
+ {2895, {utils, bell, 0}},
+ {2896, {utils, findMenuItemId, 3}},
+ {2897, {utils, genericFindWindowAtPoint, 1}},
+ {2898, {utils, findWindowAtPoint, 1}},
+ {2899, {utils, beginBusyCursor, 1}},
+ {2900, {utils, endBusyCursor, 0}},
+ {2901, {utils, isBusy, 0}},
+ {2902, {utils, shutdown, 1}},
+ {2903, {utils, shell, 1}},
+ {2904, {utils, launchDefaultBrowser, 2}},
+ {2905, {utils, getEmailAddress, 0}},
+ {2906, {utils, getUserId, 0}},
+ {2907, {utils, getHomeDir, 0}},
+ {2908, {utils, newId, 0}},
+ {2909, {utils, registerId, 1}},
+ {2910, {utils, getCurrentId, 0}},
+ {2911, {utils, getOsDescription, 0}},
+ {2912, {utils, isPlatformLittleEndian, 0}},
+ {2913, {utils, isPlatform64Bit, 0}},
+ {2914, {wxPrintout, new, 1}},
+ {2915, {wxPrintout, destruct, 0}},
+ {2916, {wxPrintout, getDC, 0}},
+ {2917, {wxPrintout, getPageSizeMM, 2}},
+ {2918, {wxPrintout, getPageSizePixels, 2}},
+ {2919, {wxPrintout, getPaperRectPixels, 0}},
+ {2920, {wxPrintout, getPPIPrinter, 2}},
+ {2921, {wxPrintout, getPPIScreen, 2}},
+ {2922, {wxPrintout, getTitle, 0}},
+ {2923, {wxPrintout, isPreview, 0}},
+ {2924, {wxPrintout, fitThisSizeToPaper, 1}},
+ {2925, {wxPrintout, fitThisSizeToPage, 1}},
+ {2926, {wxPrintout, fitThisSizeToPageMargins, 2}},
+ {2927, {wxPrintout, mapScreenSizeToPaper, 0}},
+ {2928, {wxPrintout, mapScreenSizeToPage, 0}},
+ {2929, {wxPrintout, mapScreenSizeToPageMargins, 1}},
+ {2930, {wxPrintout, mapScreenSizeToDevice, 0}},
+ {2931, {wxPrintout, getLogicalPaperRect, 0}},
+ {2932, {wxPrintout, getLogicalPageRect, 0}},
+ {2933, {wxPrintout, getLogicalPageMarginsRect, 1}},
+ {2934, {wxPrintout, setLogicalOrigin, 2}},
+ {2935, {wxPrintout, offsetLogicalOrigin, 2}},
+ {2936, {wxStyledTextCtrl, new_2, 2}},
+ {2937, {wxStyledTextCtrl, new_0, 0}},
+ {2938, {wxStyledTextCtrl, destruct, 0}},
+ {2939, {wxStyledTextCtrl, create, 2}},
+ {2940, {wxStyledTextCtrl, addText, 1}},
+ {2941, {wxStyledTextCtrl, addStyledText, 1}},
+ {2942, {wxStyledTextCtrl, insertText, 2}},
+ {2943, {wxStyledTextCtrl, clearAll, 0}},
+ {2944, {wxStyledTextCtrl, clearDocumentStyle, 0}},
+ {2945, {wxStyledTextCtrl, getLength, 0}},
+ {2946, {wxStyledTextCtrl, getCharAt, 1}},
+ {2947, {wxStyledTextCtrl, getCurrentPos, 0}},
+ {2948, {wxStyledTextCtrl, getAnchor, 0}},
+ {2949, {wxStyledTextCtrl, getStyleAt, 1}},
+ {2950, {wxStyledTextCtrl, redo, 0}},
+ {2951, {wxStyledTextCtrl, setUndoCollection, 1}},
+ {2952, {wxStyledTextCtrl, selectAll, 0}},
+ {2953, {wxStyledTextCtrl, setSavePoint, 0}},
+ {2954, {wxStyledTextCtrl, getStyledText, 2}},
+ {2955, {wxStyledTextCtrl, canRedo, 0}},
+ {2956, {wxStyledTextCtrl, markerLineFromHandle, 1}},
+ {2957, {wxStyledTextCtrl, markerDeleteHandle, 1}},
+ {2958, {wxStyledTextCtrl, getUndoCollection, 0}},
+ {2959, {wxStyledTextCtrl, getViewWhiteSpace, 0}},
+ {2960, {wxStyledTextCtrl, setViewWhiteSpace, 1}},
+ {2961, {wxStyledTextCtrl, positionFromPoint, 1}},
+ {2962, {wxStyledTextCtrl, positionFromPointClose, 2}},
+ {2963, {wxStyledTextCtrl, gotoLine, 1}},
+ {2964, {wxStyledTextCtrl, gotoPos, 1}},
+ {2965, {wxStyledTextCtrl, setAnchor, 1}},
+ {2966, {wxStyledTextCtrl, getCurLine, 1}},
+ {2967, {wxStyledTextCtrl, getEndStyled, 0}},
+ {2968, {wxStyledTextCtrl, convertEOLs, 1}},
+ {2969, {wxStyledTextCtrl, getEOLMode, 0}},
+ {2970, {wxStyledTextCtrl, setEOLMode, 1}},
+ {2971, {wxStyledTextCtrl, startStyling, 2}},
+ {2972, {wxStyledTextCtrl, setStyling, 2}},
+ {2973, {wxStyledTextCtrl, getBufferedDraw, 0}},
+ {2974, {wxStyledTextCtrl, setBufferedDraw, 1}},
+ {2975, {wxStyledTextCtrl, setTabWidth, 1}},
+ {2976, {wxStyledTextCtrl, getTabWidth, 0}},
+ {2977, {wxStyledTextCtrl, setCodePage, 1}},
+ {2978, {wxStyledTextCtrl, markerDefine, 3}},
+ {2979, {wxStyledTextCtrl, markerSetForeground, 2}},
+ {2980, {wxStyledTextCtrl, markerSetBackground, 2}},
+ {2981, {wxStyledTextCtrl, markerAdd, 2}},
+ {2982, {wxStyledTextCtrl, markerDelete, 2}},
+ {2983, {wxStyledTextCtrl, markerDeleteAll, 1}},
+ {2984, {wxStyledTextCtrl, markerGet, 1}},
+ {2985, {wxStyledTextCtrl, markerNext, 2}},
+ {2986, {wxStyledTextCtrl, markerPrevious, 2}},
+ {2987, {wxStyledTextCtrl, markerDefineBitmap, 2}},
+ {2988, {wxStyledTextCtrl, markerAddSet, 2}},
+ {2989, {wxStyledTextCtrl, markerSetAlpha, 2}},
+ {2990, {wxStyledTextCtrl, setMarginType, 2}},
+ {2991, {wxStyledTextCtrl, getMarginType, 1}},
+ {2992, {wxStyledTextCtrl, setMarginWidth, 2}},
+ {2993, {wxStyledTextCtrl, getMarginWidth, 1}},
+ {2994, {wxStyledTextCtrl, setMarginMask, 2}},
+ {2995, {wxStyledTextCtrl, getMarginMask, 1}},
+ {2996, {wxStyledTextCtrl, setMarginSensitive, 2}},
+ {2997, {wxStyledTextCtrl, getMarginSensitive, 1}},
+ {2998, {wxStyledTextCtrl, styleClearAll, 0}},
+ {2999, {wxStyledTextCtrl, styleSetForeground, 2}},
+ {3000, {wxStyledTextCtrl, styleSetBackground, 2}},
+ {3001, {wxStyledTextCtrl, styleSetBold, 2}},
+ {3002, {wxStyledTextCtrl, styleSetItalic, 2}},
+ {3003, {wxStyledTextCtrl, styleSetSize, 2}},
+ {3004, {wxStyledTextCtrl, styleSetFaceName, 2}},
+ {3005, {wxStyledTextCtrl, styleSetEOLFilled, 2}},
+ {3006, {wxStyledTextCtrl, styleResetDefault, 0}},
+ {3007, {wxStyledTextCtrl, styleSetUnderline, 2}},
+ {3008, {wxStyledTextCtrl, styleSetCase, 2}},
+ {3009, {wxStyledTextCtrl, styleSetHotSpot, 2}},
+ {3010, {wxStyledTextCtrl, setSelForeground, 2}},
+ {3011, {wxStyledTextCtrl, setSelBackground, 2}},
+ {3012, {wxStyledTextCtrl, getSelAlpha, 0}},
+ {3013, {wxStyledTextCtrl, setSelAlpha, 1}},
+ {3014, {wxStyledTextCtrl, setCaretForeground, 1}},
+ {3015, {wxStyledTextCtrl, cmdKeyAssign, 3}},
+ {3016, {wxStyledTextCtrl, cmdKeyClear, 2}},
+ {3017, {wxStyledTextCtrl, cmdKeyClearAll, 0}},
+ {3018, {wxStyledTextCtrl, setStyleBytes, 2}},
+ {3019, {wxStyledTextCtrl, styleSetVisible, 2}},
+ {3020, {wxStyledTextCtrl, getCaretPeriod, 0}},
+ {3021, {wxStyledTextCtrl, setCaretPeriod, 1}},
+ {3022, {wxStyledTextCtrl, setWordChars, 1}},
+ {3023, {wxStyledTextCtrl, beginUndoAction, 0}},
+ {3024, {wxStyledTextCtrl, endUndoAction, 0}},
+ {3025, {wxStyledTextCtrl, indicatorSetStyle, 2}},
+ {3026, {wxStyledTextCtrl, indicatorGetStyle, 1}},
+ {3027, {wxStyledTextCtrl, indicatorSetForeground, 2}},
+ {3028, {wxStyledTextCtrl, indicatorGetForeground, 1}},
+ {3029, {wxStyledTextCtrl, setWhitespaceForeground, 2}},
+ {3030, {wxStyledTextCtrl, setWhitespaceBackground, 2}},
+ {3031, {wxStyledTextCtrl, getStyleBits, 0}},
+ {3032, {wxStyledTextCtrl, setLineState, 2}},
+ {3033, {wxStyledTextCtrl, getLineState, 1}},
+ {3034, {wxStyledTextCtrl, getMaxLineState, 0}},
+ {3035, {wxStyledTextCtrl, getCaretLineVisible, 0}},
+ {3036, {wxStyledTextCtrl, setCaretLineVisible, 1}},
+ {3037, {wxStyledTextCtrl, getCaretLineBackground, 0}},
+ {3038, {wxStyledTextCtrl, setCaretLineBackground, 1}},
+ {3039, {wxStyledTextCtrl, autoCompShow, 2}},
+ {3040, {wxStyledTextCtrl, autoCompCancel, 0}},
+ {3041, {wxStyledTextCtrl, autoCompActive, 0}},
+ {3042, {wxStyledTextCtrl, autoCompPosStart, 0}},
+ {3043, {wxStyledTextCtrl, autoCompComplete, 0}},
+ {3044, {wxStyledTextCtrl, autoCompStops, 1}},
+ {3045, {wxStyledTextCtrl, autoCompSetSeparator, 1}},
+ {3046, {wxStyledTextCtrl, autoCompGetSeparator, 0}},
+ {3047, {wxStyledTextCtrl, autoCompSelect, 1}},
+ {3048, {wxStyledTextCtrl, autoCompSetCancelAtStart, 1}},
+ {3049, {wxStyledTextCtrl, autoCompGetCancelAtStart, 0}},
+ {3050, {wxStyledTextCtrl, autoCompSetFillUps, 1}},
+ {3051, {wxStyledTextCtrl, autoCompSetChooseSingle, 1}},
+ {3052, {wxStyledTextCtrl, autoCompGetChooseSingle, 0}},
+ {3053, {wxStyledTextCtrl, autoCompSetIgnoreCase, 1}},
+ {3054, {wxStyledTextCtrl, autoCompGetIgnoreCase, 0}},
+ {3055, {wxStyledTextCtrl, userListShow, 2}},
+ {3056, {wxStyledTextCtrl, autoCompSetAutoHide, 1}},
+ {3057, {wxStyledTextCtrl, autoCompGetAutoHide, 0}},
+ {3058, {wxStyledTextCtrl, autoCompSetDropRestOfWord, 1}},
+ {3059, {wxStyledTextCtrl, autoCompGetDropRestOfWord, 0}},
+ {3060, {wxStyledTextCtrl, registerImage, 2}},
+ {3061, {wxStyledTextCtrl, clearRegisteredImages, 0}},
+ {3062, {wxStyledTextCtrl, autoCompGetTypeSeparator, 0}},
+ {3063, {wxStyledTextCtrl, autoCompSetTypeSeparator, 1}},
+ {3064, {wxStyledTextCtrl, autoCompSetMaxWidth, 1}},
+ {3065, {wxStyledTextCtrl, autoCompGetMaxWidth, 0}},
+ {3066, {wxStyledTextCtrl, autoCompSetMaxHeight, 1}},
+ {3067, {wxStyledTextCtrl, autoCompGetMaxHeight, 0}},
+ {3068, {wxStyledTextCtrl, setIndent, 1}},
+ {3069, {wxStyledTextCtrl, getIndent, 0}},
+ {3070, {wxStyledTextCtrl, setUseTabs, 1}},
+ {3071, {wxStyledTextCtrl, getUseTabs, 0}},
+ {3072, {wxStyledTextCtrl, setLineIndentation, 2}},
+ {3073, {wxStyledTextCtrl, getLineIndentation, 1}},
+ {3074, {wxStyledTextCtrl, getLineIndentPosition, 1}},
+ {3075, {wxStyledTextCtrl, getColumn, 1}},
+ {3076, {wxStyledTextCtrl, setUseHorizontalScrollBar, 1}},
+ {3077, {wxStyledTextCtrl, getUseHorizontalScrollBar, 0}},
+ {3078, {wxStyledTextCtrl, setIndentationGuides, 1}},
+ {3079, {wxStyledTextCtrl, getIndentationGuides, 0}},
+ {3080, {wxStyledTextCtrl, setHighlightGuide, 1}},
+ {3081, {wxStyledTextCtrl, getHighlightGuide, 0}},
+ {3082, {wxStyledTextCtrl, getLineEndPosition, 1}},
+ {3083, {wxStyledTextCtrl, getCodePage, 0}},
+ {3084, {wxStyledTextCtrl, getCaretForeground, 0}},
+ {3085, {wxStyledTextCtrl, getReadOnly, 0}},
+ {3086, {wxStyledTextCtrl, setCurrentPos, 1}},
+ {3087, {wxStyledTextCtrl, setSelectionStart, 1}},
+ {3088, {wxStyledTextCtrl, getSelectionStart, 0}},
+ {3089, {wxStyledTextCtrl, setSelectionEnd, 1}},
+ {3090, {wxStyledTextCtrl, getSelectionEnd, 0}},
+ {3091, {wxStyledTextCtrl, setPrintMagnification, 1}},
+ {3092, {wxStyledTextCtrl, getPrintMagnification, 0}},
+ {3093, {wxStyledTextCtrl, setPrintColourMode, 1}},
+ {3094, {wxStyledTextCtrl, getPrintColourMode, 0}},
+ {3095, {wxStyledTextCtrl, findText, 4}},
+ {3096, {wxStyledTextCtrl, formatRange, 7}},
+ {3097, {wxStyledTextCtrl, getFirstVisibleLine, 0}},
+ {3098, {wxStyledTextCtrl, getLine, 1}},
+ {3099, {wxStyledTextCtrl, getLineCount, 0}},
+ {3100, {wxStyledTextCtrl, setMarginLeft, 1}},
+ {3101, {wxStyledTextCtrl, getMarginLeft, 0}},
+ {3102, {wxStyledTextCtrl, setMarginRight, 1}},
+ {3103, {wxStyledTextCtrl, getMarginRight, 0}},
+ {3104, {wxStyledTextCtrl, getModify, 0}},
+ {3105, {wxStyledTextCtrl, setSelection, 2}},
+ {3106, {wxStyledTextCtrl, getSelectedText, 0}},
+ {3107, {wxStyledTextCtrl, getTextRange, 2}},
+ {3108, {wxStyledTextCtrl, hideSelection, 1}},
+ {3109, {wxStyledTextCtrl, lineFromPosition, 1}},
+ {3110, {wxStyledTextCtrl, positionFromLine, 1}},
+ {3111, {wxStyledTextCtrl, lineScroll, 2}},
+ {3112, {wxStyledTextCtrl, ensureCaretVisible, 0}},
+ {3113, {wxStyledTextCtrl, replaceSelection, 1}},
+ {3114, {wxStyledTextCtrl, setReadOnly, 1}},
+ {3115, {wxStyledTextCtrl, canPaste, 0}},
+ {3116, {wxStyledTextCtrl, canUndo, 0}},
+ {3117, {wxStyledTextCtrl, emptyUndoBuffer, 0}},
+ {3118, {wxStyledTextCtrl, undo, 0}},
+ {3119, {wxStyledTextCtrl, cut, 0}},
+ {3120, {wxStyledTextCtrl, copy, 0}},
+ {3121, {wxStyledTextCtrl, paste, 0}},
+ {3122, {wxStyledTextCtrl, clear, 0}},
+ {3123, {wxStyledTextCtrl, setText, 1}},
+ {3124, {wxStyledTextCtrl, getText, 0}},
+ {3125, {wxStyledTextCtrl, getTextLength, 0}},
+ {3126, {wxStyledTextCtrl, getOvertype, 0}},
+ {3127, {wxStyledTextCtrl, setCaretWidth, 1}},
+ {3128, {wxStyledTextCtrl, getCaretWidth, 0}},
+ {3129, {wxStyledTextCtrl, setTargetStart, 1}},
+ {3130, {wxStyledTextCtrl, getTargetStart, 0}},
+ {3131, {wxStyledTextCtrl, setTargetEnd, 1}},
+ {3132, {wxStyledTextCtrl, getTargetEnd, 0}},
+ {3133, {wxStyledTextCtrl, replaceTarget, 1}},
+ {3134, {wxStyledTextCtrl, searchInTarget, 1}},
+ {3135, {wxStyledTextCtrl, setSearchFlags, 1}},
+ {3136, {wxStyledTextCtrl, getSearchFlags, 0}},
+ {3137, {wxStyledTextCtrl, callTipShow, 2}},
+ {3138, {wxStyledTextCtrl, callTipCancel, 0}},
+ {3139, {wxStyledTextCtrl, callTipActive, 0}},
+ {3140, {wxStyledTextCtrl, callTipPosAtStart, 0}},
+ {3141, {wxStyledTextCtrl, callTipSetHighlight, 2}},
+ {3142, {wxStyledTextCtrl, callTipSetBackground, 1}},
+ {3143, {wxStyledTextCtrl, callTipSetForeground, 1}},
+ {3144, {wxStyledTextCtrl, callTipSetForegroundHighlight, 1}},
+ {3145, {wxStyledTextCtrl, callTipUseStyle, 1}},
+ {3146, {wxStyledTextCtrl, visibleFromDocLine, 1}},
+ {3147, {wxStyledTextCtrl, docLineFromVisible, 1}},
+ {3148, {wxStyledTextCtrl, wrapCount, 1}},
+ {3149, {wxStyledTextCtrl, setFoldLevel, 2}},
+ {3150, {wxStyledTextCtrl, getFoldLevel, 1}},
+ {3151, {wxStyledTextCtrl, getLastChild, 2}},
+ {3152, {wxStyledTextCtrl, getFoldParent, 1}},
+ {3153, {wxStyledTextCtrl, showLines, 2}},
+ {3154, {wxStyledTextCtrl, hideLines, 2}},
+ {3155, {wxStyledTextCtrl, getLineVisible, 1}},
+ {3156, {wxStyledTextCtrl, setFoldExpanded, 2}},
+ {3157, {wxStyledTextCtrl, getFoldExpanded, 1}},
+ {3158, {wxStyledTextCtrl, toggleFold, 1}},
+ {3159, {wxStyledTextCtrl, ensureVisible, 1}},
+ {3160, {wxStyledTextCtrl, setFoldFlags, 1}},
+ {3161, {wxStyledTextCtrl, ensureVisibleEnforcePolicy, 1}},
+ {3162, {wxStyledTextCtrl, setTabIndents, 1}},
+ {3163, {wxStyledTextCtrl, getTabIndents, 0}},
+ {3164, {wxStyledTextCtrl, setBackSpaceUnIndents, 1}},
+ {3165, {wxStyledTextCtrl, getBackSpaceUnIndents, 0}},
+ {3166, {wxStyledTextCtrl, setMouseDwellTime, 1}},
+ {3167, {wxStyledTextCtrl, getMouseDwellTime, 0}},
+ {3168, {wxStyledTextCtrl, wordStartPosition, 2}},
+ {3169, {wxStyledTextCtrl, wordEndPosition, 2}},
+ {3170, {wxStyledTextCtrl, setWrapMode, 1}},
+ {3171, {wxStyledTextCtrl, getWrapMode, 0}},
+ {3172, {wxStyledTextCtrl, setWrapVisualFlags, 1}},
+ {3173, {wxStyledTextCtrl, getWrapVisualFlags, 0}},
+ {3174, {wxStyledTextCtrl, setWrapVisualFlagsLocation, 1}},
+ {3175, {wxStyledTextCtrl, getWrapVisualFlagsLocation, 0}},
+ {3176, {wxStyledTextCtrl, setWrapStartIndent, 1}},
+ {3177, {wxStyledTextCtrl, getWrapStartIndent, 0}},
+ {3178, {wxStyledTextCtrl, setLayoutCache, 1}},
+ {3179, {wxStyledTextCtrl, getLayoutCache, 0}},
+ {3180, {wxStyledTextCtrl, setScrollWidth, 1}},
+ {3181, {wxStyledTextCtrl, getScrollWidth, 0}},
+ {3182, {wxStyledTextCtrl, textWidth, 2}},
+ {3183, {wxStyledTextCtrl, getEndAtLastLine, 0}},
+ {3184, {wxStyledTextCtrl, textHeight, 1}},
+ {3185, {wxStyledTextCtrl, setUseVerticalScrollBar, 1}},
+ {3186, {wxStyledTextCtrl, getUseVerticalScrollBar, 0}},
+ {3187, {wxStyledTextCtrl, appendText, 1}},
+ {3188, {wxStyledTextCtrl, getTwoPhaseDraw, 0}},
+ {3189, {wxStyledTextCtrl, setTwoPhaseDraw, 1}},
+ {3190, {wxStyledTextCtrl, targetFromSelection, 0}},
+ {3191, {wxStyledTextCtrl, linesJoin, 0}},
+ {3192, {wxStyledTextCtrl, linesSplit, 1}},
+ {3193, {wxStyledTextCtrl, setFoldMarginColour, 2}},
+ {3194, {wxStyledTextCtrl, setFoldMarginHiColour, 2}},
+ {3195, {wxStyledTextCtrl, lineDown, 0}},
+ {3196, {wxStyledTextCtrl, lineDownExtend, 0}},
+ {3197, {wxStyledTextCtrl, lineUp, 0}},
+ {3198, {wxStyledTextCtrl, lineUpExtend, 0}},
+ {3199, {wxStyledTextCtrl, charLeft, 0}},
+ {3200, {wxStyledTextCtrl, charLeftExtend, 0}},
+ {3201, {wxStyledTextCtrl, charRight, 0}},
+ {3202, {wxStyledTextCtrl, charRightExtend, 0}},
+ {3203, {wxStyledTextCtrl, wordLeft, 0}},
+ {3204, {wxStyledTextCtrl, wordLeftExtend, 0}},
+ {3205, {wxStyledTextCtrl, wordRight, 0}},
+ {3206, {wxStyledTextCtrl, wordRightExtend, 0}},
+ {3207, {wxStyledTextCtrl, home, 0}},
+ {3208, {wxStyledTextCtrl, homeExtend, 0}},
+ {3209, {wxStyledTextCtrl, lineEnd, 0}},
+ {3210, {wxStyledTextCtrl, lineEndExtend, 0}},
+ {3211, {wxStyledTextCtrl, documentStart, 0}},
+ {3212, {wxStyledTextCtrl, documentStartExtend, 0}},
+ {3213, {wxStyledTextCtrl, documentEnd, 0}},
+ {3214, {wxStyledTextCtrl, documentEndExtend, 0}},
+ {3215, {wxStyledTextCtrl, pageUp, 0}},
+ {3216, {wxStyledTextCtrl, pageUpExtend, 0}},
+ {3217, {wxStyledTextCtrl, pageDown, 0}},
+ {3218, {wxStyledTextCtrl, pageDownExtend, 0}},
+ {3219, {wxStyledTextCtrl, editToggleOvertype, 0}},
+ {3220, {wxStyledTextCtrl, cancel, 0}},
+ {3221, {wxStyledTextCtrl, deleteBack, 0}},
+ {3222, {wxStyledTextCtrl, tab, 0}},
+ {3223, {wxStyledTextCtrl, backTab, 0}},
+ {3224, {wxStyledTextCtrl, newLine, 0}},
+ {3225, {wxStyledTextCtrl, formFeed, 0}},
+ {3226, {wxStyledTextCtrl, vCHome, 0}},
+ {3227, {wxStyledTextCtrl, vCHomeExtend, 0}},
+ {3228, {wxStyledTextCtrl, zoomIn, 0}},
+ {3229, {wxStyledTextCtrl, zoomOut, 0}},
+ {3230, {wxStyledTextCtrl, delWordLeft, 0}},
+ {3231, {wxStyledTextCtrl, delWordRight, 0}},
+ {3232, {wxStyledTextCtrl, lineCut, 0}},
+ {3233, {wxStyledTextCtrl, lineDelete, 0}},
+ {3234, {wxStyledTextCtrl, lineTranspose, 0}},
+ {3235, {wxStyledTextCtrl, lineDuplicate, 0}},
+ {3236, {wxStyledTextCtrl, lowerCase, 0}},
+ {3237, {wxStyledTextCtrl, upperCase, 0}},
+ {3238, {wxStyledTextCtrl, lineScrollDown, 0}},
+ {3239, {wxStyledTextCtrl, lineScrollUp, 0}},
+ {3240, {wxStyledTextCtrl, deleteBackNotLine, 0}},
+ {3241, {wxStyledTextCtrl, homeDisplay, 0}},
+ {3242, {wxStyledTextCtrl, homeDisplayExtend, 0}},
+ {3243, {wxStyledTextCtrl, lineEndDisplay, 0}},
+ {3244, {wxStyledTextCtrl, lineEndDisplayExtend, 0}},
+ {3245, {wxStyledTextCtrl, homeWrapExtend, 0}},
+ {3246, {wxStyledTextCtrl, lineEndWrap, 0}},
+ {3247, {wxStyledTextCtrl, lineEndWrapExtend, 0}},
+ {3248, {wxStyledTextCtrl, vCHomeWrap, 0}},
+ {3249, {wxStyledTextCtrl, vCHomeWrapExtend, 0}},
+ {3250, {wxStyledTextCtrl, lineCopy, 0}},
+ {3251, {wxStyledTextCtrl, moveCaretInsideView, 0}},
+ {3252, {wxStyledTextCtrl, lineLength, 1}},
+ {3253, {wxStyledTextCtrl, braceHighlight, 2}},
+ {3254, {wxStyledTextCtrl, braceBadLight, 1}},
+ {3255, {wxStyledTextCtrl, braceMatch, 1}},
+ {3256, {wxStyledTextCtrl, getViewEOL, 0}},
+ {3257, {wxStyledTextCtrl, setViewEOL, 1}},
+ {3258, {wxStyledTextCtrl, setModEventMask, 1}},
+ {3259, {wxStyledTextCtrl, getEdgeColumn, 0}},
+ {3260, {wxStyledTextCtrl, setEdgeColumn, 1}},
+ {3261, {wxStyledTextCtrl, getEdgeMode, 0}},
+ {3262, {wxStyledTextCtrl, getEdgeColour, 0}},
+ {3263, {wxStyledTextCtrl, setEdgeColour, 1}},
+ {3264, {wxStyledTextCtrl, searchAnchor, 0}},
+ {3265, {wxStyledTextCtrl, searchNext, 2}},
+ {3266, {wxStyledTextCtrl, searchPrev, 2}},
+ {3267, {wxStyledTextCtrl, linesOnScreen, 0}},
+ {3268, {wxStyledTextCtrl, usePopUp, 1}},
+ {3269, {wxStyledTextCtrl, selectionIsRectangle, 0}},
+ {3270, {wxStyledTextCtrl, setZoom, 1}},
+ {3271, {wxStyledTextCtrl, getZoom, 0}},
+ {3272, {wxStyledTextCtrl, getModEventMask, 0}},
+ {3273, {wxStyledTextCtrl, setSTCFocus, 1}},
+ {3274, {wxStyledTextCtrl, getSTCFocus, 0}},
+ {3275, {wxStyledTextCtrl, setStatus, 1}},
+ {3276, {wxStyledTextCtrl, getStatus, 0}},
+ {3277, {wxStyledTextCtrl, setMouseDownCaptures, 1}},
+ {3278, {wxStyledTextCtrl, getMouseDownCaptures, 0}},
+ {3279, {wxStyledTextCtrl, setSTCCursor, 1}},
+ {3280, {wxStyledTextCtrl, getSTCCursor, 0}},
+ {3281, {wxStyledTextCtrl, setControlCharSymbol, 1}},
+ {3282, {wxStyledTextCtrl, getControlCharSymbol, 0}},
+ {3283, {wxStyledTextCtrl, wordPartLeft, 0}},
+ {3284, {wxStyledTextCtrl, wordPartLeftExtend, 0}},
+ {3285, {wxStyledTextCtrl, wordPartRight, 0}},
+ {3286, {wxStyledTextCtrl, wordPartRightExtend, 0}},
+ {3287, {wxStyledTextCtrl, setVisiblePolicy, 2}},
+ {3288, {wxStyledTextCtrl, delLineLeft, 0}},
+ {3289, {wxStyledTextCtrl, delLineRight, 0}},
+ {3290, {wxStyledTextCtrl, getXOffset, 0}},
+ {3291, {wxStyledTextCtrl, chooseCaretX, 0}},
+ {3292, {wxStyledTextCtrl, setXCaretPolicy, 2}},
+ {3293, {wxStyledTextCtrl, setYCaretPolicy, 2}},
+ {3294, {wxStyledTextCtrl, getPrintWrapMode, 0}},
+ {3295, {wxStyledTextCtrl, setHotspotActiveForeground, 2}},
+ {3296, {wxStyledTextCtrl, setHotspotActiveBackground, 2}},
+ {3297, {wxStyledTextCtrl, setHotspotActiveUnderline, 1}},
+ {3298, {wxStyledTextCtrl, setHotspotSingleLine, 1}},
+ {3299, {wxStyledTextCtrl, paraDownExtend, 0}},
+ {3300, {wxStyledTextCtrl, paraUp, 0}},
+ {3301, {wxStyledTextCtrl, paraUpExtend, 0}},
+ {3302, {wxStyledTextCtrl, positionBefore, 1}},
+ {3303, {wxStyledTextCtrl, positionAfter, 1}},
+ {3304, {wxStyledTextCtrl, copyRange, 2}},
+ {3305, {wxStyledTextCtrl, copyText, 2}},
+ {3306, {wxStyledTextCtrl, setSelectionMode, 1}},
+ {3307, {wxStyledTextCtrl, getSelectionMode, 0}},
+ {3308, {wxStyledTextCtrl, lineDownRectExtend, 0}},
+ {3309, {wxStyledTextCtrl, lineUpRectExtend, 0}},
+ {3310, {wxStyledTextCtrl, charLeftRectExtend, 0}},
+ {3311, {wxStyledTextCtrl, charRightRectExtend, 0}},
+ {3312, {wxStyledTextCtrl, homeRectExtend, 0}},
+ {3313, {wxStyledTextCtrl, vCHomeRectExtend, 0}},
+ {3314, {wxStyledTextCtrl, lineEndRectExtend, 0}},
+ {3315, {wxStyledTextCtrl, pageUpRectExtend, 0}},
+ {3316, {wxStyledTextCtrl, pageDownRectExtend, 0}},
+ {3317, {wxStyledTextCtrl, stutteredPageUp, 0}},
+ {3318, {wxStyledTextCtrl, stutteredPageUpExtend, 0}},
+ {3319, {wxStyledTextCtrl, stutteredPageDown, 0}},
+ {3320, {wxStyledTextCtrl, stutteredPageDownExtend, 0}},
+ {3321, {wxStyledTextCtrl, wordLeftEnd, 0}},
+ {3322, {wxStyledTextCtrl, wordLeftEndExtend, 0}},
+ {3323, {wxStyledTextCtrl, wordRightEnd, 0}},
+ {3324, {wxStyledTextCtrl, wordRightEndExtend, 0}},
+ {3325, {wxStyledTextCtrl, setWhitespaceChars, 1}},
+ {3326, {wxStyledTextCtrl, setCharsDefault, 0}},
+ {3327, {wxStyledTextCtrl, autoCompGetCurrent, 0}},
+ {3328, {wxStyledTextCtrl, allocate, 1}},
+ {3329, {wxStyledTextCtrl, findColumn, 2}},
+ {3330, {wxStyledTextCtrl, getCaretSticky, 0}},
+ {3331, {wxStyledTextCtrl, setCaretSticky, 1}},
+ {3332, {wxStyledTextCtrl, toggleCaretSticky, 0}},
+ {3333, {wxStyledTextCtrl, setPasteConvertEndings, 1}},
+ {3334, {wxStyledTextCtrl, getPasteConvertEndings, 0}},
+ {3335, {wxStyledTextCtrl, selectionDuplicate, 0}},
+ {3336, {wxStyledTextCtrl, setCaretLineBackAlpha, 1}},
+ {3337, {wxStyledTextCtrl, getCaretLineBackAlpha, 0}},
+ {3338, {wxStyledTextCtrl, startRecord, 0}},
+ {3339, {wxStyledTextCtrl, stopRecord, 0}},
+ {3340, {wxStyledTextCtrl, setLexer, 1}},
+ {3341, {wxStyledTextCtrl, getLexer, 0}},
+ {3342, {wxStyledTextCtrl, colourise, 2}},
+ {3343, {wxStyledTextCtrl, setProperty, 2}},
+ {3344, {wxStyledTextCtrl, setKeyWords, 2}},
+ {3345, {wxStyledTextCtrl, setLexerLanguage, 1}},
+ {3346, {wxStyledTextCtrl, getProperty, 1}},
+ {3347, {wxStyledTextCtrl, getStyleBitsNeeded, 0}},
+ {3348, {wxStyledTextCtrl, getCurrentLine, 0}},
+ {3349, {wxStyledTextCtrl, styleSetSpec, 2}},
+ {3350, {wxStyledTextCtrl, styleSetFont, 2}},
+ {3351, {wxStyledTextCtrl, styleSetFontAttr, 7}},
+ {3352, {wxStyledTextCtrl, styleSetCharacterSet, 2}},
+ {3353, {wxStyledTextCtrl, styleSetFontEncoding, 2}},
+ {3354, {wxStyledTextCtrl, cmdKeyExecute, 1}},
+ {3355, {wxStyledTextCtrl, setMargins, 2}},
+ {3356, {wxStyledTextCtrl, getSelection, 2}},
+ {3357, {wxStyledTextCtrl, pointFromPosition, 1}},
+ {3358, {wxStyledTextCtrl, scrollToLine, 1}},
+ {3359, {wxStyledTextCtrl, scrollToColumn, 1}},
+ {3360, {wxStyledTextCtrl, sendMsg, 2}},
+ {3361, {wxStyledTextCtrl, setVScrollBar, 1}},
+ {3362, {wxStyledTextCtrl, setHScrollBar, 1}},
+ {3363, {wxStyledTextCtrl, getLastKeydownProcessed, 0}},
+ {3364, {wxStyledTextCtrl, setLastKeydownProcessed, 1}},
+ {3365, {wxStyledTextCtrl, saveFile, 1}},
+ {3366, {wxStyledTextCtrl, loadFile, 1}},
+ {3367, {wxStyledTextCtrl, doDragOver, 3}},
+ {3368, {wxStyledTextCtrl, doDropText, 3}},
+ {3369, {wxStyledTextCtrl, getUseAntiAliasing, 0}},
+ {3370, {wxStyledTextCtrl, addTextRaw, 1}},
+ {3371, {wxStyledTextCtrl, insertTextRaw, 2}},
+ {3372, {wxStyledTextCtrl, getCurLineRaw, 1}},
+ {3373, {wxStyledTextCtrl, getLineRaw, 1}},
+ {3374, {wxStyledTextCtrl, getSelectedTextRaw, 0}},
+ {3375, {wxStyledTextCtrl, getTextRangeRaw, 2}},
+ {3376, {wxStyledTextCtrl, setTextRaw, 1}},
+ {3377, {wxStyledTextCtrl, getTextRaw, 0}},
+ {3378, {wxStyledTextCtrl, appendTextRaw, 1}},
+ {3379, {wxArtProvider, getBitmap, 2}},
+ {3380, {wxArtProvider, getIcon, 2}},
+ {3381, {wxTreeEvent, getKeyCode, 0}},
+ {3382, {wxTreeEvent, getItem, 0}},
+ {3383, {wxTreeEvent, getKeyEvent, 0}},
+ {3384, {wxTreeEvent, getLabel, 0}},
+ {3385, {wxTreeEvent, getOldItem, 0}},
+ {3386, {wxTreeEvent, getPoint, 0}},
+ {3387, {wxTreeEvent, isEditCancelled, 0}},
+ {3388, {wxTreeEvent, setToolTip, 1}},
+ {3389, {wxNotebookEvent, getOldSelection, 0}},
+ {3390, {wxNotebookEvent, getSelection, 0}},
+ {3391, {wxNotebookEvent, setOldSelection, 1}},
+ {3392, {wxNotebookEvent, setSelection, 1}},
+ {3393, {wxFileDataObject, new, 0}},
+ {3394, {wxFileDataObject, addFile, 1}},
+ {3395, {wxFileDataObject, getFilenames, 0}},
+ {3396, {wxFileDataObject, 'Destroy', undefined}},
+ {3397, {wxTextDataObject, new, 1}},
+ {3398, {wxTextDataObject, getTextLength, 0}},
+ {3399, {wxTextDataObject, getText, 0}},
+ {3400, {wxTextDataObject, setText, 1}},
+ {3401, {wxTextDataObject, 'Destroy', undefined}},
+ {3402, {wxBitmapDataObject, new_1_1, 1}},
+ {3403, {wxBitmapDataObject, new_1_0, 1}},
+ {3404, {wxBitmapDataObject, getBitmap, 0}},
+ {3405, {wxBitmapDataObject, setBitmap, 1}},
+ {3406, {wxBitmapDataObject, 'Destroy', undefined}},
+ {3408, {wxClipboard, new, 0}},
+ {3409, {wxClipboard, destruct, 0}},
+ {3410, {wxClipboard, addData, 1}},
+ {3411, {wxClipboard, clear, 0}},
+ {3412, {wxClipboard, close, 0}},
+ {3413, {wxClipboard, flush, 0}},
+ {3414, {wxClipboard, getData, 1}},
+ {3415, {wxClipboard, isOpened, 0}},
+ {3416, {wxClipboard, open, 0}},
+ {3417, {wxClipboard, setData, 1}},
+ {3419, {wxClipboard, usePrimarySelection, 1}},
+ {3420, {wxClipboard, isSupported, 1}},
+ {3421, {wxClipboard, get, 0}},
+ {3422, {wxSpinEvent, getPosition, 0}},
+ {3423, {wxSpinEvent, setPosition, 1}},
+ {3424, {wxSplitterWindow, new_0, 0}},
+ {3425, {wxSplitterWindow, new_2, 2}},
+ {3426, {wxSplitterWindow, destruct, 0}},
+ {3427, {wxSplitterWindow, create, 2}},
+ {3428, {wxSplitterWindow, getMinimumPaneSize, 0}},
+ {3429, {wxSplitterWindow, getSashGravity, 0}},
+ {3430, {wxSplitterWindow, getSashPosition, 0}},
+ {3431, {wxSplitterWindow, getSplitMode, 0}},
+ {3432, {wxSplitterWindow, getWindow1, 0}},
+ {3433, {wxSplitterWindow, getWindow2, 0}},
+ {3434, {wxSplitterWindow, initialize, 1}},
+ {3435, {wxSplitterWindow, isSplit, 0}},
+ {3436, {wxSplitterWindow, replaceWindow, 2}},
+ {3437, {wxSplitterWindow, setSashGravity, 1}},
+ {3438, {wxSplitterWindow, setSashPosition, 2}},
+ {3439, {wxSplitterWindow, setSashSize, 1}},
+ {3440, {wxSplitterWindow, setMinimumPaneSize, 1}},
+ {3441, {wxSplitterWindow, setSplitMode, 1}},
+ {3442, {wxSplitterWindow, splitHorizontally, 3}},
+ {3443, {wxSplitterWindow, splitVertically, 3}},
+ {3444, {wxSplitterWindow, unsplit, 1}},
+ {3445, {wxSplitterWindow, updateSize, 0}},
+ {3446, {wxSplitterEvent, getSashPosition, 0}},
+ {3447, {wxSplitterEvent, getX, 0}},
+ {3448, {wxSplitterEvent, getY, 0}},
+ {3449, {wxSplitterEvent, getWindowBeingRemoved, 0}},
+ {3450, {wxSplitterEvent, setSashPosition, 1}},
+ {3451, {wxHtmlWindow, new_0, 0}},
+ {3452, {wxHtmlWindow, new_2, 2}},
+ {3453, {wxHtmlWindow, appendToPage, 1}},
+ {3454, {wxHtmlWindow, getOpenedAnchor, 0}},
+ {3455, {wxHtmlWindow, getOpenedPage, 0}},
+ {3456, {wxHtmlWindow, getOpenedPageTitle, 0}},
+ {3457, {wxHtmlWindow, getRelatedFrame, 0}},
+ {3458, {wxHtmlWindow, historyBack, 0}},
+ {3459, {wxHtmlWindow, historyCanBack, 0}},
+ {3460, {wxHtmlWindow, historyCanForward, 0}},
+ {3461, {wxHtmlWindow, historyClear, 0}},
+ {3462, {wxHtmlWindow, historyForward, 0}},
+ {3463, {wxHtmlWindow, loadFile, 1}},
+ {3464, {wxHtmlWindow, loadPage, 1}},
+ {3465, {wxHtmlWindow, selectAll, 0}},
+ {3466, {wxHtmlWindow, selectionToText, 0}},
+ {3467, {wxHtmlWindow, selectLine, 1}},
+ {3468, {wxHtmlWindow, selectWord, 1}},
+ {3469, {wxHtmlWindow, setBorders, 1}},
+ {3470, {wxHtmlWindow, setFonts, 3}},
+ {3471, {wxHtmlWindow, setPage, 1}},
+ {3472, {wxHtmlWindow, setRelatedFrame, 2}},
+ {3473, {wxHtmlWindow, setRelatedStatusBar, 1}},
+ {3474, {wxHtmlWindow, toText, 0}},
+ {3475, {wxHtmlWindow, 'Destroy', undefined}},
+ {3476, {wxHtmlLinkEvent, getLinkInfo, 0}},
+ {3477, {wxAuiNotebookEvent, setSelection, 1}},
+ {3478, {wxAuiNotebookEvent, getSelection, 0}},
+ {3479, {wxAuiNotebookEvent, setOldSelection, 1}},
+ {3480, {wxAuiNotebookEvent, getOldSelection, 0}},
+ {3481, {wxAuiNotebookEvent, setDragSource, 1}},
+ {3482, {wxAuiNotebookEvent, getDragSource, 0}},
+ {3483, {wxAuiManagerEvent, setManager, 1}},
+ {3484, {wxAuiManagerEvent, getManager, 0}},
+ {3485, {wxAuiManagerEvent, setPane, 1}},
+ {3486, {wxAuiManagerEvent, getPane, 0}},
+ {3487, {wxAuiManagerEvent, setButton, 1}},
+ {3488, {wxAuiManagerEvent, getButton, 0}},
+ {3489, {wxAuiManagerEvent, setDC, 1}},
+ {3490, {wxAuiManagerEvent, getDC, 0}},
+ {3491, {wxAuiManagerEvent, veto, 1}},
+ {3492, {wxAuiManagerEvent, getVeto, 0}},
+ {3493, {wxAuiManagerEvent, setCanVeto, 1}},
+ {3494, {wxAuiManagerEvent, canVeto, 0}},
+ {3495, {wxLogNull, new, 0}},
+ {3496, {wxLogNull, 'Destroy', undefined}},
{-1, {mod, func, -1}}
].
diff --git a/lib/wx/src/gen/wxe_funcs.hrl b/lib/wx/src/gen/wxe_funcs.hrl
index 98e7fbb767..b1d5e50647 100644
--- a/lib/wx/src/gen/wxe_funcs.hrl
+++ b/lib/wx/src/gen/wxe_funcs.hrl
@@ -1516,1759 +1516,1760 @@
-define(wxListCtrl_GetColumnCount, 1672).
-define(wxListCtrl_GetColumnWidth, 1673).
-define(wxListCtrl_GetCountPerPage, 1674).
--define(wxListCtrl_GetImageList, 1675).
--define(wxListCtrl_GetItem, 1676).
--define(wxListCtrl_GetItemBackgroundColour, 1677).
--define(wxListCtrl_GetItemCount, 1678).
--define(wxListCtrl_GetItemData, 1679).
--define(wxListCtrl_GetItemFont, 1680).
--define(wxListCtrl_GetItemPosition, 1681).
--define(wxListCtrl_GetItemRect, 1682).
--define(wxListCtrl_GetItemSpacing, 1683).
--define(wxListCtrl_GetItemState, 1684).
--define(wxListCtrl_GetItemText, 1685).
--define(wxListCtrl_GetItemTextColour, 1686).
--define(wxListCtrl_GetNextItem, 1687).
--define(wxListCtrl_GetSelectedItemCount, 1688).
--define(wxListCtrl_GetTextColour, 1689).
--define(wxListCtrl_GetTopItem, 1690).
--define(wxListCtrl_GetViewRect, 1691).
--define(wxListCtrl_HitTest, 1692).
--define(wxListCtrl_InsertColumn_2, 1693).
--define(wxListCtrl_InsertColumn_3, 1694).
--define(wxListCtrl_InsertItem_1, 1695).
--define(wxListCtrl_InsertItem_2_1, 1696).
--define(wxListCtrl_InsertItem_2_0, 1697).
--define(wxListCtrl_InsertItem_3, 1698).
--define(wxListCtrl_RefreshItem, 1699).
--define(wxListCtrl_RefreshItems, 1700).
--define(wxListCtrl_ScrollList, 1701).
--define(wxListCtrl_SetBackgroundColour, 1702).
--define(wxListCtrl_SetColumn, 1703).
--define(wxListCtrl_SetColumnWidth, 1704).
--define(wxListCtrl_SetImageList, 1705).
--define(wxListCtrl_SetItem_1, 1706).
--define(wxListCtrl_SetItem_4, 1707).
--define(wxListCtrl_SetItemBackgroundColour, 1708).
--define(wxListCtrl_SetItemCount, 1709).
--define(wxListCtrl_SetItemData, 1710).
--define(wxListCtrl_SetItemFont, 1711).
--define(wxListCtrl_SetItemImage, 1712).
--define(wxListCtrl_SetItemColumnImage, 1713).
--define(wxListCtrl_SetItemPosition, 1714).
--define(wxListCtrl_SetItemState, 1715).
--define(wxListCtrl_SetItemText, 1716).
--define(wxListCtrl_SetItemTextColour, 1717).
--define(wxListCtrl_SetSingleStyle, 1718).
--define(wxListCtrl_SetTextColour, 1719).
--define(wxListCtrl_SetWindowStyleFlag, 1720).
--define(wxListCtrl_SortItems, 1721).
--define(wxListCtrl_destroy, 1722).
--define(wxListView_ClearColumnImage, 1723).
--define(wxListView_Focus, 1724).
--define(wxListView_GetFirstSelected, 1725).
--define(wxListView_GetFocusedItem, 1726).
--define(wxListView_GetNextSelected, 1727).
--define(wxListView_IsSelected, 1728).
--define(wxListView_Select, 1729).
--define(wxListView_SetColumnImage, 1730).
--define(wxListItem_new_0, 1731).
--define(wxListItem_new_1, 1732).
--define(wxListItem_destruct, 1733).
--define(wxListItem_Clear, 1734).
--define(wxListItem_GetAlign, 1735).
--define(wxListItem_GetBackgroundColour, 1736).
--define(wxListItem_GetColumn, 1737).
--define(wxListItem_GetFont, 1738).
--define(wxListItem_GetId, 1739).
--define(wxListItem_GetImage, 1740).
--define(wxListItem_GetMask, 1741).
--define(wxListItem_GetState, 1742).
--define(wxListItem_GetText, 1743).
--define(wxListItem_GetTextColour, 1744).
--define(wxListItem_GetWidth, 1745).
--define(wxListItem_SetAlign, 1746).
--define(wxListItem_SetBackgroundColour, 1747).
--define(wxListItem_SetColumn, 1748).
--define(wxListItem_SetFont, 1749).
--define(wxListItem_SetId, 1750).
--define(wxListItem_SetImage, 1751).
--define(wxListItem_SetMask, 1752).
--define(wxListItem_SetState, 1753).
--define(wxListItem_SetStateMask, 1754).
--define(wxListItem_SetText, 1755).
--define(wxListItem_SetTextColour, 1756).
--define(wxListItem_SetWidth, 1757).
--define(wxImageList_new_0, 1758).
--define(wxImageList_new_3, 1759).
--define(wxImageList_Add_1, 1760).
--define(wxImageList_Add_2_0, 1761).
--define(wxImageList_Add_2_1, 1762).
--define(wxImageList_Create, 1763).
--define(wxImageList_Draw, 1765).
--define(wxImageList_GetBitmap, 1766).
--define(wxImageList_GetIcon, 1767).
--define(wxImageList_GetImageCount, 1768).
--define(wxImageList_GetSize, 1769).
--define(wxImageList_Remove, 1770).
--define(wxImageList_RemoveAll, 1771).
--define(wxImageList_Replace_2, 1772).
--define(wxImageList_Replace_3, 1773).
--define(wxImageList_destroy, 1774).
--define(wxTextAttr_new_0, 1775).
--define(wxTextAttr_new_2, 1776).
--define(wxTextAttr_GetAlignment, 1777).
--define(wxTextAttr_GetBackgroundColour, 1778).
--define(wxTextAttr_GetFont, 1779).
--define(wxTextAttr_GetLeftIndent, 1780).
--define(wxTextAttr_GetLeftSubIndent, 1781).
--define(wxTextAttr_GetRightIndent, 1782).
--define(wxTextAttr_GetTabs, 1783).
--define(wxTextAttr_GetTextColour, 1784).
--define(wxTextAttr_HasBackgroundColour, 1785).
--define(wxTextAttr_HasFont, 1786).
--define(wxTextAttr_HasTextColour, 1787).
--define(wxTextAttr_GetFlags, 1788).
--define(wxTextAttr_IsDefault, 1789).
--define(wxTextAttr_SetAlignment, 1790).
--define(wxTextAttr_SetBackgroundColour, 1791).
--define(wxTextAttr_SetFlags, 1792).
--define(wxTextAttr_SetFont, 1793).
--define(wxTextAttr_SetLeftIndent, 1794).
--define(wxTextAttr_SetRightIndent, 1795).
--define(wxTextAttr_SetTabs, 1796).
--define(wxTextAttr_SetTextColour, 1797).
--define(wxTextAttr_destroy, 1798).
--define(wxTextCtrl_new_3, 1800).
--define(wxTextCtrl_new_0, 1801).
--define(wxTextCtrl_destruct, 1803).
--define(wxTextCtrl_AppendText, 1804).
--define(wxTextCtrl_CanCopy, 1805).
--define(wxTextCtrl_CanCut, 1806).
--define(wxTextCtrl_CanPaste, 1807).
--define(wxTextCtrl_CanRedo, 1808).
--define(wxTextCtrl_CanUndo, 1809).
--define(wxTextCtrl_Clear, 1810).
--define(wxTextCtrl_Copy, 1811).
--define(wxTextCtrl_Create, 1812).
--define(wxTextCtrl_Cut, 1813).
--define(wxTextCtrl_DiscardEdits, 1814).
--define(wxTextCtrl_EmulateKeyPress, 1815).
--define(wxTextCtrl_GetDefaultStyle, 1816).
--define(wxTextCtrl_GetInsertionPoint, 1817).
--define(wxTextCtrl_GetLastPosition, 1818).
--define(wxTextCtrl_GetLineLength, 1819).
--define(wxTextCtrl_GetLineText, 1820).
--define(wxTextCtrl_GetNumberOfLines, 1821).
--define(wxTextCtrl_GetRange, 1822).
--define(wxTextCtrl_GetSelection, 1823).
--define(wxTextCtrl_GetStringSelection, 1824).
--define(wxTextCtrl_GetStyle, 1825).
--define(wxTextCtrl_GetValue, 1826).
--define(wxTextCtrl_IsEditable, 1827).
--define(wxTextCtrl_IsModified, 1828).
--define(wxTextCtrl_IsMultiLine, 1829).
--define(wxTextCtrl_IsSingleLine, 1830).
--define(wxTextCtrl_LoadFile, 1831).
--define(wxTextCtrl_MarkDirty, 1832).
--define(wxTextCtrl_Paste, 1833).
--define(wxTextCtrl_PositionToXY, 1834).
--define(wxTextCtrl_Redo, 1835).
--define(wxTextCtrl_Remove, 1836).
--define(wxTextCtrl_Replace, 1837).
--define(wxTextCtrl_SaveFile, 1838).
--define(wxTextCtrl_SetDefaultStyle, 1839).
--define(wxTextCtrl_SetEditable, 1840).
--define(wxTextCtrl_SetInsertionPoint, 1841).
--define(wxTextCtrl_SetInsertionPointEnd, 1842).
--define(wxTextCtrl_SetMaxLength, 1844).
--define(wxTextCtrl_SetSelection, 1845).
--define(wxTextCtrl_SetStyle, 1846).
--define(wxTextCtrl_SetValue, 1847).
--define(wxTextCtrl_ShowPosition, 1848).
--define(wxTextCtrl_Undo, 1849).
--define(wxTextCtrl_WriteText, 1850).
--define(wxTextCtrl_XYToPosition, 1851).
--define(wxNotebook_new_0, 1854).
--define(wxNotebook_new_3, 1855).
--define(wxNotebook_destruct, 1856).
--define(wxNotebook_AddPage, 1857).
--define(wxNotebook_AdvanceSelection, 1858).
--define(wxNotebook_AssignImageList, 1859).
--define(wxNotebook_Create, 1860).
--define(wxNotebook_DeleteAllPages, 1861).
--define(wxNotebook_DeletePage, 1862).
--define(wxNotebook_RemovePage, 1863).
--define(wxNotebook_GetCurrentPage, 1864).
--define(wxNotebook_GetImageList, 1865).
--define(wxNotebook_GetPage, 1867).
--define(wxNotebook_GetPageCount, 1868).
--define(wxNotebook_GetPageImage, 1869).
--define(wxNotebook_GetPageText, 1870).
--define(wxNotebook_GetRowCount, 1871).
--define(wxNotebook_GetSelection, 1872).
--define(wxNotebook_GetThemeBackgroundColour, 1873).
--define(wxNotebook_HitTest, 1875).
--define(wxNotebook_InsertPage, 1877).
--define(wxNotebook_SetImageList, 1878).
--define(wxNotebook_SetPadding, 1879).
--define(wxNotebook_SetPageSize, 1880).
--define(wxNotebook_SetPageImage, 1881).
--define(wxNotebook_SetPageText, 1882).
--define(wxNotebook_SetSelection, 1883).
--define(wxNotebook_ChangeSelection, 1884).
--define(wxChoicebook_new_0, 1885).
--define(wxChoicebook_new_3, 1886).
--define(wxChoicebook_AddPage, 1887).
--define(wxChoicebook_AdvanceSelection, 1888).
--define(wxChoicebook_AssignImageList, 1889).
--define(wxChoicebook_Create, 1890).
--define(wxChoicebook_DeleteAllPages, 1891).
--define(wxChoicebook_DeletePage, 1892).
--define(wxChoicebook_RemovePage, 1893).
--define(wxChoicebook_GetCurrentPage, 1894).
--define(wxChoicebook_GetImageList, 1895).
--define(wxChoicebook_GetPage, 1897).
--define(wxChoicebook_GetPageCount, 1898).
--define(wxChoicebook_GetPageImage, 1899).
--define(wxChoicebook_GetPageText, 1900).
--define(wxChoicebook_GetSelection, 1901).
--define(wxChoicebook_HitTest, 1902).
--define(wxChoicebook_InsertPage, 1903).
--define(wxChoicebook_SetImageList, 1904).
--define(wxChoicebook_SetPageSize, 1905).
--define(wxChoicebook_SetPageImage, 1906).
--define(wxChoicebook_SetPageText, 1907).
--define(wxChoicebook_SetSelection, 1908).
--define(wxChoicebook_ChangeSelection, 1909).
--define(wxChoicebook_destroy, 1910).
--define(wxToolbook_new_0, 1911).
--define(wxToolbook_new_3, 1912).
--define(wxToolbook_AddPage, 1913).
--define(wxToolbook_AdvanceSelection, 1914).
--define(wxToolbook_AssignImageList, 1915).
--define(wxToolbook_Create, 1916).
--define(wxToolbook_DeleteAllPages, 1917).
--define(wxToolbook_DeletePage, 1918).
--define(wxToolbook_RemovePage, 1919).
--define(wxToolbook_GetCurrentPage, 1920).
--define(wxToolbook_GetImageList, 1921).
--define(wxToolbook_GetPage, 1923).
--define(wxToolbook_GetPageCount, 1924).
--define(wxToolbook_GetPageImage, 1925).
--define(wxToolbook_GetPageText, 1926).
--define(wxToolbook_GetSelection, 1927).
--define(wxToolbook_HitTest, 1929).
--define(wxToolbook_InsertPage, 1930).
--define(wxToolbook_SetImageList, 1931).
--define(wxToolbook_SetPageSize, 1932).
--define(wxToolbook_SetPageImage, 1933).
--define(wxToolbook_SetPageText, 1934).
--define(wxToolbook_SetSelection, 1935).
--define(wxToolbook_ChangeSelection, 1936).
--define(wxToolbook_destroy, 1937).
--define(wxListbook_new_0, 1938).
--define(wxListbook_new_3, 1939).
--define(wxListbook_AddPage, 1940).
--define(wxListbook_AdvanceSelection, 1941).
--define(wxListbook_AssignImageList, 1942).
--define(wxListbook_Create, 1943).
--define(wxListbook_DeleteAllPages, 1944).
--define(wxListbook_DeletePage, 1945).
--define(wxListbook_RemovePage, 1946).
--define(wxListbook_GetCurrentPage, 1947).
--define(wxListbook_GetImageList, 1948).
--define(wxListbook_GetPage, 1950).
--define(wxListbook_GetPageCount, 1951).
--define(wxListbook_GetPageImage, 1952).
--define(wxListbook_GetPageText, 1953).
--define(wxListbook_GetSelection, 1954).
--define(wxListbook_HitTest, 1956).
--define(wxListbook_InsertPage, 1957).
--define(wxListbook_SetImageList, 1958).
--define(wxListbook_SetPageSize, 1959).
--define(wxListbook_SetPageImage, 1960).
--define(wxListbook_SetPageText, 1961).
--define(wxListbook_SetSelection, 1962).
--define(wxListbook_ChangeSelection, 1963).
--define(wxListbook_destroy, 1964).
--define(wxTreebook_new_0, 1965).
--define(wxTreebook_new_3, 1966).
--define(wxTreebook_AddPage, 1967).
--define(wxTreebook_AdvanceSelection, 1968).
--define(wxTreebook_AssignImageList, 1969).
--define(wxTreebook_Create, 1970).
--define(wxTreebook_DeleteAllPages, 1971).
--define(wxTreebook_DeletePage, 1972).
--define(wxTreebook_RemovePage, 1973).
--define(wxTreebook_GetCurrentPage, 1974).
--define(wxTreebook_GetImageList, 1975).
--define(wxTreebook_GetPage, 1977).
--define(wxTreebook_GetPageCount, 1978).
--define(wxTreebook_GetPageImage, 1979).
--define(wxTreebook_GetPageText, 1980).
--define(wxTreebook_GetSelection, 1981).
--define(wxTreebook_ExpandNode, 1982).
--define(wxTreebook_IsNodeExpanded, 1983).
--define(wxTreebook_HitTest, 1985).
--define(wxTreebook_InsertPage, 1986).
--define(wxTreebook_InsertSubPage, 1987).
--define(wxTreebook_SetImageList, 1988).
--define(wxTreebook_SetPageSize, 1989).
--define(wxTreebook_SetPageImage, 1990).
--define(wxTreebook_SetPageText, 1991).
--define(wxTreebook_SetSelection, 1992).
--define(wxTreebook_ChangeSelection, 1993).
--define(wxTreebook_destroy, 1994).
--define(wxTreeCtrl_new_2, 1997).
--define(wxTreeCtrl_new_0, 1998).
--define(wxTreeCtrl_destruct, 2000).
--define(wxTreeCtrl_AddRoot, 2001).
--define(wxTreeCtrl_AppendItem, 2002).
--define(wxTreeCtrl_AssignImageList, 2003).
--define(wxTreeCtrl_AssignStateImageList, 2004).
--define(wxTreeCtrl_Collapse, 2005).
--define(wxTreeCtrl_CollapseAndReset, 2006).
--define(wxTreeCtrl_Create, 2007).
--define(wxTreeCtrl_Delete, 2008).
--define(wxTreeCtrl_DeleteAllItems, 2009).
--define(wxTreeCtrl_DeleteChildren, 2010).
--define(wxTreeCtrl_EnsureVisible, 2011).
--define(wxTreeCtrl_Expand, 2012).
--define(wxTreeCtrl_GetBoundingRect, 2013).
--define(wxTreeCtrl_GetChildrenCount, 2015).
--define(wxTreeCtrl_GetCount, 2016).
--define(wxTreeCtrl_GetEditControl, 2017).
--define(wxTreeCtrl_GetFirstChild, 2018).
--define(wxTreeCtrl_GetNextChild, 2019).
--define(wxTreeCtrl_GetFirstVisibleItem, 2020).
--define(wxTreeCtrl_GetImageList, 2021).
--define(wxTreeCtrl_GetIndent, 2022).
--define(wxTreeCtrl_GetItemBackgroundColour, 2023).
--define(wxTreeCtrl_GetItemData, 2024).
--define(wxTreeCtrl_GetItemFont, 2025).
--define(wxTreeCtrl_GetItemImage_1, 2026).
--define(wxTreeCtrl_GetItemImage_2, 2027).
--define(wxTreeCtrl_GetItemText, 2028).
--define(wxTreeCtrl_GetItemTextColour, 2029).
--define(wxTreeCtrl_GetLastChild, 2030).
--define(wxTreeCtrl_GetNextSibling, 2031).
--define(wxTreeCtrl_GetNextVisible, 2032).
--define(wxTreeCtrl_GetItemParent, 2033).
--define(wxTreeCtrl_GetPrevSibling, 2034).
--define(wxTreeCtrl_GetPrevVisible, 2035).
--define(wxTreeCtrl_GetRootItem, 2036).
--define(wxTreeCtrl_GetSelection, 2037).
--define(wxTreeCtrl_GetSelections, 2038).
--define(wxTreeCtrl_GetStateImageList, 2039).
--define(wxTreeCtrl_HitTest, 2040).
--define(wxTreeCtrl_InsertItem, 2042).
--define(wxTreeCtrl_IsBold, 2043).
--define(wxTreeCtrl_IsExpanded, 2044).
--define(wxTreeCtrl_IsSelected, 2045).
--define(wxTreeCtrl_IsVisible, 2046).
--define(wxTreeCtrl_ItemHasChildren, 2047).
--define(wxTreeCtrl_PrependItem, 2048).
--define(wxTreeCtrl_ScrollTo, 2049).
--define(wxTreeCtrl_SelectItem_1, 2050).
--define(wxTreeCtrl_SelectItem_2, 2051).
--define(wxTreeCtrl_SetIndent, 2052).
--define(wxTreeCtrl_SetImageList, 2053).
--define(wxTreeCtrl_SetItemBackgroundColour, 2054).
--define(wxTreeCtrl_SetItemBold, 2055).
--define(wxTreeCtrl_SetItemData, 2056).
--define(wxTreeCtrl_SetItemDropHighlight, 2057).
--define(wxTreeCtrl_SetItemFont, 2058).
--define(wxTreeCtrl_SetItemHasChildren, 2059).
--define(wxTreeCtrl_SetItemImage_2, 2060).
--define(wxTreeCtrl_SetItemImage_3, 2061).
--define(wxTreeCtrl_SetItemText, 2062).
--define(wxTreeCtrl_SetItemTextColour, 2063).
--define(wxTreeCtrl_SetStateImageList, 2064).
--define(wxTreeCtrl_SetWindowStyle, 2065).
--define(wxTreeCtrl_SortChildren, 2066).
--define(wxTreeCtrl_Toggle, 2067).
--define(wxTreeCtrl_ToggleItemSelection, 2068).
--define(wxTreeCtrl_Unselect, 2069).
--define(wxTreeCtrl_UnselectAll, 2070).
--define(wxTreeCtrl_UnselectItem, 2071).
--define(wxScrollBar_new_0, 2072).
--define(wxScrollBar_new_3, 2073).
--define(wxScrollBar_destruct, 2074).
--define(wxScrollBar_Create, 2075).
--define(wxScrollBar_GetRange, 2076).
--define(wxScrollBar_GetPageSize, 2077).
--define(wxScrollBar_GetThumbPosition, 2078).
--define(wxScrollBar_GetThumbSize, 2079).
--define(wxScrollBar_SetThumbPosition, 2080).
--define(wxScrollBar_SetScrollbar, 2081).
--define(wxSpinButton_new_2, 2083).
--define(wxSpinButton_new_0, 2084).
--define(wxSpinButton_Create, 2085).
--define(wxSpinButton_GetMax, 2086).
--define(wxSpinButton_GetMin, 2087).
--define(wxSpinButton_GetValue, 2088).
--define(wxSpinButton_SetRange, 2089).
--define(wxSpinButton_SetValue, 2090).
--define(wxSpinButton_destroy, 2091).
--define(wxSpinCtrl_new_0, 2092).
--define(wxSpinCtrl_new_2, 2093).
--define(wxSpinCtrl_Create, 2095).
--define(wxSpinCtrl_SetValue_1_1, 2098).
--define(wxSpinCtrl_SetValue_1_0, 2099).
--define(wxSpinCtrl_GetValue, 2101).
--define(wxSpinCtrl_SetRange, 2103).
--define(wxSpinCtrl_SetSelection, 2104).
--define(wxSpinCtrl_GetMin, 2106).
--define(wxSpinCtrl_GetMax, 2108).
--define(wxSpinCtrl_destroy, 2109).
--define(wxStaticText_new_0, 2110).
--define(wxStaticText_new_4, 2111).
--define(wxStaticText_Create, 2112).
--define(wxStaticText_GetLabel, 2113).
--define(wxStaticText_SetLabel, 2114).
--define(wxStaticText_Wrap, 2115).
--define(wxStaticText_destroy, 2116).
--define(wxStaticBitmap_new_0, 2117).
--define(wxStaticBitmap_new_4, 2118).
--define(wxStaticBitmap_Create, 2119).
--define(wxStaticBitmap_GetBitmap, 2120).
--define(wxStaticBitmap_SetBitmap, 2121).
--define(wxStaticBitmap_destroy, 2122).
--define(wxRadioBox_new, 2123).
--define(wxRadioBox_destruct, 2125).
--define(wxRadioBox_Create, 2126).
--define(wxRadioBox_Enable_2, 2127).
--define(wxRadioBox_Enable_1, 2128).
--define(wxRadioBox_GetSelection, 2129).
--define(wxRadioBox_GetString, 2130).
--define(wxRadioBox_SetSelection, 2131).
--define(wxRadioBox_Show_2, 2132).
--define(wxRadioBox_Show_1, 2133).
--define(wxRadioBox_GetColumnCount, 2134).
--define(wxRadioBox_GetItemHelpText, 2135).
--define(wxRadioBox_GetItemToolTip, 2136).
--define(wxRadioBox_GetItemFromPoint, 2138).
--define(wxRadioBox_GetRowCount, 2139).
--define(wxRadioBox_IsItemEnabled, 2140).
--define(wxRadioBox_IsItemShown, 2141).
--define(wxRadioBox_SetItemHelpText, 2142).
--define(wxRadioBox_SetItemToolTip, 2143).
--define(wxRadioButton_new_0, 2144).
--define(wxRadioButton_new_4, 2145).
--define(wxRadioButton_Create, 2146).
--define(wxRadioButton_GetValue, 2147).
--define(wxRadioButton_SetValue, 2148).
--define(wxRadioButton_destroy, 2149).
--define(wxSlider_new_6, 2151).
--define(wxSlider_new_0, 2152).
--define(wxSlider_Create, 2153).
--define(wxSlider_GetLineSize, 2154).
--define(wxSlider_GetMax, 2155).
--define(wxSlider_GetMin, 2156).
--define(wxSlider_GetPageSize, 2157).
--define(wxSlider_GetThumbLength, 2158).
--define(wxSlider_GetValue, 2159).
--define(wxSlider_SetLineSize, 2160).
--define(wxSlider_SetPageSize, 2161).
--define(wxSlider_SetRange, 2162).
--define(wxSlider_SetThumbLength, 2163).
--define(wxSlider_SetValue, 2164).
--define(wxSlider_destroy, 2165).
--define(wxDialog_new_4, 2167).
--define(wxDialog_new_0, 2168).
--define(wxDialog_destruct, 2170).
--define(wxDialog_Create, 2171).
--define(wxDialog_CreateButtonSizer, 2172).
--define(wxDialog_CreateStdDialogButtonSizer, 2173).
--define(wxDialog_EndModal, 2174).
--define(wxDialog_GetAffirmativeId, 2175).
--define(wxDialog_GetReturnCode, 2176).
--define(wxDialog_IsModal, 2177).
--define(wxDialog_SetAffirmativeId, 2178).
--define(wxDialog_SetReturnCode, 2179).
--define(wxDialog_Show, 2180).
--define(wxDialog_ShowModal, 2181).
--define(wxColourDialog_new_0, 2182).
--define(wxColourDialog_new_2, 2183).
--define(wxColourDialog_destruct, 2184).
--define(wxColourDialog_Create, 2185).
--define(wxColourDialog_GetColourData, 2186).
--define(wxColourData_new_0, 2187).
--define(wxColourData_new_1, 2188).
--define(wxColourData_destruct, 2189).
--define(wxColourData_GetChooseFull, 2190).
--define(wxColourData_GetColour, 2191).
--define(wxColourData_GetCustomColour, 2193).
--define(wxColourData_SetChooseFull, 2194).
--define(wxColourData_SetColour, 2195).
--define(wxColourData_SetCustomColour, 2196).
--define(wxPalette_new_0, 2197).
--define(wxPalette_new_4, 2198).
--define(wxPalette_destruct, 2200).
--define(wxPalette_Create, 2201).
--define(wxPalette_GetColoursCount, 2202).
--define(wxPalette_GetPixel, 2203).
--define(wxPalette_GetRGB, 2204).
--define(wxPalette_IsOk, 2205).
--define(wxDirDialog_new, 2209).
--define(wxDirDialog_destruct, 2210).
--define(wxDirDialog_GetPath, 2211).
--define(wxDirDialog_GetMessage, 2212).
--define(wxDirDialog_SetMessage, 2213).
--define(wxDirDialog_SetPath, 2214).
--define(wxFileDialog_new, 2218).
--define(wxFileDialog_destruct, 2219).
--define(wxFileDialog_GetDirectory, 2220).
--define(wxFileDialog_GetFilename, 2221).
--define(wxFileDialog_GetFilenames, 2222).
--define(wxFileDialog_GetFilterIndex, 2223).
--define(wxFileDialog_GetMessage, 2224).
--define(wxFileDialog_GetPath, 2225).
--define(wxFileDialog_GetPaths, 2226).
--define(wxFileDialog_GetWildcard, 2227).
--define(wxFileDialog_SetDirectory, 2228).
--define(wxFileDialog_SetFilename, 2229).
--define(wxFileDialog_SetFilterIndex, 2230).
--define(wxFileDialog_SetMessage, 2231).
--define(wxFileDialog_SetPath, 2232).
--define(wxFileDialog_SetWildcard, 2233).
--define(wxPickerBase_SetInternalMargin, 2234).
--define(wxPickerBase_GetInternalMargin, 2235).
--define(wxPickerBase_SetTextCtrlProportion, 2236).
--define(wxPickerBase_SetPickerCtrlProportion, 2237).
--define(wxPickerBase_GetTextCtrlProportion, 2238).
--define(wxPickerBase_GetPickerCtrlProportion, 2239).
--define(wxPickerBase_HasTextCtrl, 2240).
--define(wxPickerBase_GetTextCtrl, 2241).
--define(wxPickerBase_IsTextCtrlGrowable, 2242).
--define(wxPickerBase_SetPickerCtrlGrowable, 2243).
--define(wxPickerBase_SetTextCtrlGrowable, 2244).
--define(wxPickerBase_IsPickerCtrlGrowable, 2245).
--define(wxFilePickerCtrl_new_0, 2246).
--define(wxFilePickerCtrl_new_3, 2247).
--define(wxFilePickerCtrl_Create, 2248).
--define(wxFilePickerCtrl_GetPath, 2249).
--define(wxFilePickerCtrl_SetPath, 2250).
--define(wxFilePickerCtrl_destroy, 2251).
--define(wxDirPickerCtrl_new_0, 2252).
--define(wxDirPickerCtrl_new_3, 2253).
--define(wxDirPickerCtrl_Create, 2254).
--define(wxDirPickerCtrl_GetPath, 2255).
--define(wxDirPickerCtrl_SetPath, 2256).
--define(wxDirPickerCtrl_destroy, 2257).
--define(wxColourPickerCtrl_new_0, 2258).
--define(wxColourPickerCtrl_new_3, 2259).
--define(wxColourPickerCtrl_Create, 2260).
--define(wxColourPickerCtrl_GetColour, 2261).
--define(wxColourPickerCtrl_SetColour_1_1, 2262).
--define(wxColourPickerCtrl_SetColour_1_0, 2263).
--define(wxColourPickerCtrl_destroy, 2264).
--define(wxDatePickerCtrl_new_0, 2265).
--define(wxDatePickerCtrl_new_3, 2266).
--define(wxDatePickerCtrl_GetRange, 2267).
--define(wxDatePickerCtrl_GetValue, 2268).
--define(wxDatePickerCtrl_SetRange, 2269).
--define(wxDatePickerCtrl_SetValue, 2270).
--define(wxDatePickerCtrl_destroy, 2271).
--define(wxFontPickerCtrl_new_0, 2272).
--define(wxFontPickerCtrl_new_3, 2273).
--define(wxFontPickerCtrl_Create, 2274).
--define(wxFontPickerCtrl_GetSelectedFont, 2275).
--define(wxFontPickerCtrl_SetSelectedFont, 2276).
--define(wxFontPickerCtrl_GetMaxPointSize, 2277).
--define(wxFontPickerCtrl_SetMaxPointSize, 2278).
--define(wxFontPickerCtrl_destroy, 2279).
--define(wxFindReplaceDialog_new_0, 2282).
--define(wxFindReplaceDialog_new_4, 2283).
--define(wxFindReplaceDialog_destruct, 2284).
--define(wxFindReplaceDialog_Create, 2285).
--define(wxFindReplaceDialog_GetData, 2286).
--define(wxFindReplaceData_new_0, 2287).
--define(wxFindReplaceData_new_1, 2288).
--define(wxFindReplaceData_GetFindString, 2289).
--define(wxFindReplaceData_GetReplaceString, 2290).
--define(wxFindReplaceData_GetFlags, 2291).
--define(wxFindReplaceData_SetFlags, 2292).
--define(wxFindReplaceData_SetFindString, 2293).
--define(wxFindReplaceData_SetReplaceString, 2294).
--define(wxFindReplaceData_destroy, 2295).
--define(wxMultiChoiceDialog_new_0, 2296).
--define(wxMultiChoiceDialog_new_5, 2298).
--define(wxMultiChoiceDialog_GetSelections, 2299).
--define(wxMultiChoiceDialog_SetSelections, 2300).
--define(wxMultiChoiceDialog_destroy, 2301).
--define(wxSingleChoiceDialog_new_0, 2302).
--define(wxSingleChoiceDialog_new_5, 2304).
--define(wxSingleChoiceDialog_GetSelection, 2305).
--define(wxSingleChoiceDialog_GetStringSelection, 2306).
--define(wxSingleChoiceDialog_SetSelection, 2307).
--define(wxSingleChoiceDialog_destroy, 2308).
--define(wxTextEntryDialog_new, 2309).
--define(wxTextEntryDialog_GetValue, 2310).
--define(wxTextEntryDialog_SetValue, 2311).
--define(wxTextEntryDialog_destroy, 2312).
--define(wxPasswordEntryDialog_new, 2313).
--define(wxPasswordEntryDialog_destroy, 2314).
--define(wxFontData_new_0, 2315).
--define(wxFontData_new_1, 2316).
--define(wxFontData_destruct, 2317).
--define(wxFontData_EnableEffects, 2318).
--define(wxFontData_GetAllowSymbols, 2319).
--define(wxFontData_GetColour, 2320).
--define(wxFontData_GetChosenFont, 2321).
--define(wxFontData_GetEnableEffects, 2322).
--define(wxFontData_GetInitialFont, 2323).
--define(wxFontData_GetShowHelp, 2324).
--define(wxFontData_SetAllowSymbols, 2325).
--define(wxFontData_SetChosenFont, 2326).
--define(wxFontData_SetColour, 2327).
--define(wxFontData_SetInitialFont, 2328).
--define(wxFontData_SetRange, 2329).
--define(wxFontData_SetShowHelp, 2330).
--define(wxFontDialog_new_0, 2334).
--define(wxFontDialog_new_2, 2336).
--define(wxFontDialog_Create, 2338).
--define(wxFontDialog_GetFontData, 2339).
--define(wxFontDialog_destroy, 2341).
--define(wxProgressDialog_new, 2342).
--define(wxProgressDialog_destruct, 2343).
--define(wxProgressDialog_Resume, 2344).
--define(wxProgressDialog_Update_2, 2345).
--define(wxProgressDialog_Update_0, 2346).
--define(wxMessageDialog_new, 2347).
--define(wxMessageDialog_destruct, 2348).
--define(wxPageSetupDialog_new, 2349).
--define(wxPageSetupDialog_destruct, 2350).
--define(wxPageSetupDialog_GetPageSetupData, 2351).
--define(wxPageSetupDialog_ShowModal, 2352).
--define(wxPageSetupDialogData_new_0, 2353).
--define(wxPageSetupDialogData_new_1_0, 2354).
--define(wxPageSetupDialogData_new_1_1, 2355).
--define(wxPageSetupDialogData_destruct, 2356).
--define(wxPageSetupDialogData_EnableHelp, 2357).
--define(wxPageSetupDialogData_EnableMargins, 2358).
--define(wxPageSetupDialogData_EnableOrientation, 2359).
--define(wxPageSetupDialogData_EnablePaper, 2360).
--define(wxPageSetupDialogData_EnablePrinter, 2361).
--define(wxPageSetupDialogData_GetDefaultMinMargins, 2362).
--define(wxPageSetupDialogData_GetEnableMargins, 2363).
--define(wxPageSetupDialogData_GetEnableOrientation, 2364).
--define(wxPageSetupDialogData_GetEnablePaper, 2365).
--define(wxPageSetupDialogData_GetEnablePrinter, 2366).
--define(wxPageSetupDialogData_GetEnableHelp, 2367).
--define(wxPageSetupDialogData_GetDefaultInfo, 2368).
--define(wxPageSetupDialogData_GetMarginTopLeft, 2369).
--define(wxPageSetupDialogData_GetMarginBottomRight, 2370).
--define(wxPageSetupDialogData_GetMinMarginTopLeft, 2371).
--define(wxPageSetupDialogData_GetMinMarginBottomRight, 2372).
--define(wxPageSetupDialogData_GetPaperId, 2373).
--define(wxPageSetupDialogData_GetPaperSize, 2374).
--define(wxPageSetupDialogData_GetPrintData, 2376).
--define(wxPageSetupDialogData_IsOk, 2377).
--define(wxPageSetupDialogData_SetDefaultInfo, 2378).
--define(wxPageSetupDialogData_SetDefaultMinMargins, 2379).
--define(wxPageSetupDialogData_SetMarginTopLeft, 2380).
--define(wxPageSetupDialogData_SetMarginBottomRight, 2381).
--define(wxPageSetupDialogData_SetMinMarginTopLeft, 2382).
--define(wxPageSetupDialogData_SetMinMarginBottomRight, 2383).
--define(wxPageSetupDialogData_SetPaperId, 2384).
--define(wxPageSetupDialogData_SetPaperSize_1_1, 2385).
--define(wxPageSetupDialogData_SetPaperSize_1_0, 2386).
--define(wxPageSetupDialogData_SetPrintData, 2387).
--define(wxPrintDialog_new_2_0, 2388).
--define(wxPrintDialog_new_2_1, 2389).
--define(wxPrintDialog_destruct, 2390).
--define(wxPrintDialog_GetPrintDialogData, 2391).
--define(wxPrintDialog_GetPrintDC, 2392).
--define(wxPrintDialogData_new_0, 2393).
--define(wxPrintDialogData_new_1_1, 2394).
--define(wxPrintDialogData_new_1_0, 2395).
--define(wxPrintDialogData_destruct, 2396).
--define(wxPrintDialogData_EnableHelp, 2397).
--define(wxPrintDialogData_EnablePageNumbers, 2398).
--define(wxPrintDialogData_EnablePrintToFile, 2399).
--define(wxPrintDialogData_EnableSelection, 2400).
--define(wxPrintDialogData_GetAllPages, 2401).
--define(wxPrintDialogData_GetCollate, 2402).
--define(wxPrintDialogData_GetFromPage, 2403).
--define(wxPrintDialogData_GetMaxPage, 2404).
--define(wxPrintDialogData_GetMinPage, 2405).
--define(wxPrintDialogData_GetNoCopies, 2406).
--define(wxPrintDialogData_GetPrintData, 2407).
--define(wxPrintDialogData_GetPrintToFile, 2408).
--define(wxPrintDialogData_GetSelection, 2409).
--define(wxPrintDialogData_GetToPage, 2410).
--define(wxPrintDialogData_IsOk, 2411).
--define(wxPrintDialogData_SetCollate, 2412).
--define(wxPrintDialogData_SetFromPage, 2413).
--define(wxPrintDialogData_SetMaxPage, 2414).
--define(wxPrintDialogData_SetMinPage, 2415).
--define(wxPrintDialogData_SetNoCopies, 2416).
--define(wxPrintDialogData_SetPrintData, 2417).
--define(wxPrintDialogData_SetPrintToFile, 2418).
--define(wxPrintDialogData_SetSelection, 2419).
--define(wxPrintDialogData_SetToPage, 2420).
--define(wxPrintData_new_0, 2421).
--define(wxPrintData_new_1, 2422).
--define(wxPrintData_destruct, 2423).
--define(wxPrintData_GetCollate, 2424).
--define(wxPrintData_GetBin, 2425).
--define(wxPrintData_GetColour, 2426).
--define(wxPrintData_GetDuplex, 2427).
--define(wxPrintData_GetNoCopies, 2428).
--define(wxPrintData_GetOrientation, 2429).
--define(wxPrintData_GetPaperId, 2430).
--define(wxPrintData_GetPrinterName, 2431).
--define(wxPrintData_GetQuality, 2432).
--define(wxPrintData_IsOk, 2433).
--define(wxPrintData_SetBin, 2434).
--define(wxPrintData_SetCollate, 2435).
--define(wxPrintData_SetColour, 2436).
--define(wxPrintData_SetDuplex, 2437).
--define(wxPrintData_SetNoCopies, 2438).
--define(wxPrintData_SetOrientation, 2439).
--define(wxPrintData_SetPaperId, 2440).
--define(wxPrintData_SetPrinterName, 2441).
--define(wxPrintData_SetQuality, 2442).
--define(wxPrintPreview_new_2, 2445).
--define(wxPrintPreview_new_3, 2446).
--define(wxPrintPreview_destruct, 2448).
--define(wxPrintPreview_GetCanvas, 2449).
--define(wxPrintPreview_GetCurrentPage, 2450).
--define(wxPrintPreview_GetFrame, 2451).
--define(wxPrintPreview_GetMaxPage, 2452).
--define(wxPrintPreview_GetMinPage, 2453).
--define(wxPrintPreview_GetPrintout, 2454).
--define(wxPrintPreview_GetPrintoutForPrinting, 2455).
--define(wxPrintPreview_IsOk, 2456).
--define(wxPrintPreview_PaintPage, 2457).
--define(wxPrintPreview_Print, 2458).
--define(wxPrintPreview_RenderPage, 2459).
--define(wxPrintPreview_SetCanvas, 2460).
--define(wxPrintPreview_SetCurrentPage, 2461).
--define(wxPrintPreview_SetFrame, 2462).
--define(wxPrintPreview_SetPrintout, 2463).
--define(wxPrintPreview_SetZoom, 2464).
--define(wxPreviewFrame_new, 2465).
--define(wxPreviewFrame_destruct, 2466).
--define(wxPreviewFrame_CreateControlBar, 2467).
--define(wxPreviewFrame_CreateCanvas, 2468).
--define(wxPreviewFrame_Initialize, 2469).
--define(wxPreviewFrame_OnCloseWindow, 2470).
--define(wxPreviewControlBar_new, 2471).
--define(wxPreviewControlBar_destruct, 2472).
--define(wxPreviewControlBar_CreateButtons, 2473).
--define(wxPreviewControlBar_GetPrintPreview, 2474).
--define(wxPreviewControlBar_GetZoomControl, 2475).
--define(wxPreviewControlBar_SetZoomControl, 2476).
--define(wxPrinter_new, 2478).
--define(wxPrinter_CreateAbortWindow, 2479).
--define(wxPrinter_GetAbort, 2480).
--define(wxPrinter_GetLastError, 2481).
--define(wxPrinter_GetPrintDialogData, 2482).
--define(wxPrinter_Print, 2483).
--define(wxPrinter_PrintDialog, 2484).
--define(wxPrinter_ReportError, 2485).
--define(wxPrinter_Setup, 2486).
--define(wxPrinter_destroy, 2487).
--define(wxXmlResource_new_1, 2488).
--define(wxXmlResource_new_2, 2489).
--define(wxXmlResource_destruct, 2490).
--define(wxXmlResource_AttachUnknownControl, 2491).
--define(wxXmlResource_ClearHandlers, 2492).
--define(wxXmlResource_CompareVersion, 2493).
--define(wxXmlResource_Get, 2494).
--define(wxXmlResource_GetFlags, 2495).
--define(wxXmlResource_GetVersion, 2496).
--define(wxXmlResource_GetXRCID, 2497).
--define(wxXmlResource_InitAllHandlers, 2498).
--define(wxXmlResource_Load, 2499).
--define(wxXmlResource_LoadBitmap, 2500).
--define(wxXmlResource_LoadDialog_2, 2501).
--define(wxXmlResource_LoadDialog_3, 2502).
--define(wxXmlResource_LoadFrame_2, 2503).
--define(wxXmlResource_LoadFrame_3, 2504).
--define(wxXmlResource_LoadIcon, 2505).
--define(wxXmlResource_LoadMenu, 2506).
--define(wxXmlResource_LoadMenuBar_2, 2507).
--define(wxXmlResource_LoadMenuBar_1, 2508).
--define(wxXmlResource_LoadPanel_2, 2509).
--define(wxXmlResource_LoadPanel_3, 2510).
--define(wxXmlResource_LoadToolBar, 2511).
--define(wxXmlResource_Set, 2512).
--define(wxXmlResource_SetFlags, 2513).
--define(wxXmlResource_Unload, 2514).
--define(wxXmlResource_xrcctrl, 2515).
--define(wxHtmlEasyPrinting_new, 2516).
--define(wxHtmlEasyPrinting_destruct, 2517).
--define(wxHtmlEasyPrinting_GetPrintData, 2518).
--define(wxHtmlEasyPrinting_GetPageSetupData, 2519).
--define(wxHtmlEasyPrinting_PreviewFile, 2520).
--define(wxHtmlEasyPrinting_PreviewText, 2521).
--define(wxHtmlEasyPrinting_PrintFile, 2522).
--define(wxHtmlEasyPrinting_PrintText, 2523).
--define(wxHtmlEasyPrinting_PageSetup, 2524).
--define(wxHtmlEasyPrinting_SetFonts, 2525).
--define(wxHtmlEasyPrinting_SetHeader, 2526).
--define(wxHtmlEasyPrinting_SetFooter, 2527).
--define(wxGLCanvas_new_2, 2529).
--define(wxGLCanvas_new_3_1, 2530).
--define(wxGLCanvas_new_3_0, 2531).
--define(wxGLCanvas_GetContext, 2532).
--define(wxGLCanvas_SetCurrent, 2534).
--define(wxGLCanvas_SwapBuffers, 2535).
--define(wxGLCanvas_destroy, 2536).
--define(wxAuiManager_new, 2537).
--define(wxAuiManager_destruct, 2538).
--define(wxAuiManager_AddPane_2_1, 2539).
--define(wxAuiManager_AddPane_3, 2540).
--define(wxAuiManager_AddPane_2_0, 2541).
--define(wxAuiManager_DetachPane, 2542).
--define(wxAuiManager_GetAllPanes, 2543).
--define(wxAuiManager_GetArtProvider, 2544).
--define(wxAuiManager_GetDockSizeConstraint, 2545).
--define(wxAuiManager_GetFlags, 2546).
--define(wxAuiManager_GetManagedWindow, 2547).
--define(wxAuiManager_GetManager, 2548).
--define(wxAuiManager_GetPane_1_1, 2549).
--define(wxAuiManager_GetPane_1_0, 2550).
--define(wxAuiManager_HideHint, 2551).
--define(wxAuiManager_InsertPane, 2552).
--define(wxAuiManager_LoadPaneInfo, 2553).
--define(wxAuiManager_LoadPerspective, 2554).
--define(wxAuiManager_SavePaneInfo, 2555).
--define(wxAuiManager_SavePerspective, 2556).
--define(wxAuiManager_SetArtProvider, 2557).
--define(wxAuiManager_SetDockSizeConstraint, 2558).
--define(wxAuiManager_SetFlags, 2559).
--define(wxAuiManager_SetManagedWindow, 2560).
--define(wxAuiManager_ShowHint, 2561).
--define(wxAuiManager_UnInit, 2562).
--define(wxAuiManager_Update, 2563).
--define(wxAuiPaneInfo_new_0, 2564).
--define(wxAuiPaneInfo_new_1, 2565).
--define(wxAuiPaneInfo_destruct, 2566).
--define(wxAuiPaneInfo_BestSize_1, 2567).
--define(wxAuiPaneInfo_BestSize_2, 2568).
--define(wxAuiPaneInfo_Bottom, 2569).
--define(wxAuiPaneInfo_BottomDockable, 2570).
--define(wxAuiPaneInfo_Caption, 2571).
--define(wxAuiPaneInfo_CaptionVisible, 2572).
--define(wxAuiPaneInfo_Centre, 2573).
--define(wxAuiPaneInfo_CentrePane, 2574).
--define(wxAuiPaneInfo_CloseButton, 2575).
--define(wxAuiPaneInfo_DefaultPane, 2576).
--define(wxAuiPaneInfo_DestroyOnClose, 2577).
--define(wxAuiPaneInfo_Direction, 2578).
--define(wxAuiPaneInfo_Dock, 2579).
--define(wxAuiPaneInfo_Dockable, 2580).
--define(wxAuiPaneInfo_Fixed, 2581).
--define(wxAuiPaneInfo_Float, 2582).
--define(wxAuiPaneInfo_Floatable, 2583).
--define(wxAuiPaneInfo_FloatingPosition_1, 2584).
--define(wxAuiPaneInfo_FloatingPosition_2, 2585).
--define(wxAuiPaneInfo_FloatingSize_1, 2586).
--define(wxAuiPaneInfo_FloatingSize_2, 2587).
--define(wxAuiPaneInfo_Gripper, 2588).
--define(wxAuiPaneInfo_GripperTop, 2589).
--define(wxAuiPaneInfo_HasBorder, 2590).
--define(wxAuiPaneInfo_HasCaption, 2591).
--define(wxAuiPaneInfo_HasCloseButton, 2592).
--define(wxAuiPaneInfo_HasFlag, 2593).
--define(wxAuiPaneInfo_HasGripper, 2594).
--define(wxAuiPaneInfo_HasGripperTop, 2595).
--define(wxAuiPaneInfo_HasMaximizeButton, 2596).
--define(wxAuiPaneInfo_HasMinimizeButton, 2597).
--define(wxAuiPaneInfo_HasPinButton, 2598).
--define(wxAuiPaneInfo_Hide, 2599).
--define(wxAuiPaneInfo_IsBottomDockable, 2600).
--define(wxAuiPaneInfo_IsDocked, 2601).
--define(wxAuiPaneInfo_IsFixed, 2602).
--define(wxAuiPaneInfo_IsFloatable, 2603).
--define(wxAuiPaneInfo_IsFloating, 2604).
--define(wxAuiPaneInfo_IsLeftDockable, 2605).
--define(wxAuiPaneInfo_IsMovable, 2606).
--define(wxAuiPaneInfo_IsOk, 2607).
--define(wxAuiPaneInfo_IsResizable, 2608).
--define(wxAuiPaneInfo_IsRightDockable, 2609).
--define(wxAuiPaneInfo_IsShown, 2610).
--define(wxAuiPaneInfo_IsToolbar, 2611).
--define(wxAuiPaneInfo_IsTopDockable, 2612).
--define(wxAuiPaneInfo_Layer, 2613).
--define(wxAuiPaneInfo_Left, 2614).
--define(wxAuiPaneInfo_LeftDockable, 2615).
--define(wxAuiPaneInfo_MaxSize_1, 2616).
--define(wxAuiPaneInfo_MaxSize_2, 2617).
--define(wxAuiPaneInfo_MaximizeButton, 2618).
--define(wxAuiPaneInfo_MinSize_1, 2619).
--define(wxAuiPaneInfo_MinSize_2, 2620).
--define(wxAuiPaneInfo_MinimizeButton, 2621).
--define(wxAuiPaneInfo_Movable, 2622).
--define(wxAuiPaneInfo_Name, 2623).
--define(wxAuiPaneInfo_PaneBorder, 2624).
--define(wxAuiPaneInfo_PinButton, 2625).
--define(wxAuiPaneInfo_Position, 2626).
--define(wxAuiPaneInfo_Resizable, 2627).
--define(wxAuiPaneInfo_Right, 2628).
--define(wxAuiPaneInfo_RightDockable, 2629).
--define(wxAuiPaneInfo_Row, 2630).
--define(wxAuiPaneInfo_SafeSet, 2631).
--define(wxAuiPaneInfo_SetFlag, 2632).
--define(wxAuiPaneInfo_Show, 2633).
--define(wxAuiPaneInfo_ToolbarPane, 2634).
--define(wxAuiPaneInfo_Top, 2635).
--define(wxAuiPaneInfo_TopDockable, 2636).
--define(wxAuiPaneInfo_Window, 2637).
--define(wxAuiNotebook_new_0, 2638).
--define(wxAuiNotebook_new_2, 2639).
--define(wxAuiNotebook_AddPage, 2640).
--define(wxAuiNotebook_Create, 2641).
--define(wxAuiNotebook_DeletePage, 2642).
--define(wxAuiNotebook_GetArtProvider, 2643).
--define(wxAuiNotebook_GetPage, 2644).
--define(wxAuiNotebook_GetPageBitmap, 2645).
--define(wxAuiNotebook_GetPageCount, 2646).
--define(wxAuiNotebook_GetPageIndex, 2647).
--define(wxAuiNotebook_GetPageText, 2648).
--define(wxAuiNotebook_GetSelection, 2649).
--define(wxAuiNotebook_InsertPage, 2650).
--define(wxAuiNotebook_RemovePage, 2651).
--define(wxAuiNotebook_SetArtProvider, 2652).
--define(wxAuiNotebook_SetFont, 2653).
--define(wxAuiNotebook_SetPageBitmap, 2654).
--define(wxAuiNotebook_SetPageText, 2655).
--define(wxAuiNotebook_SetSelection, 2656).
--define(wxAuiNotebook_SetTabCtrlHeight, 2657).
--define(wxAuiNotebook_SetUniformBitmapSize, 2658).
--define(wxAuiNotebook_destroy, 2659).
--define(wxMDIParentFrame_new_0, 2660).
--define(wxMDIParentFrame_new_4, 2661).
--define(wxMDIParentFrame_destruct, 2662).
--define(wxMDIParentFrame_ActivateNext, 2663).
--define(wxMDIParentFrame_ActivatePrevious, 2664).
--define(wxMDIParentFrame_ArrangeIcons, 2665).
--define(wxMDIParentFrame_Cascade, 2666).
--define(wxMDIParentFrame_Create, 2667).
--define(wxMDIParentFrame_GetActiveChild, 2668).
--define(wxMDIParentFrame_GetClientWindow, 2669).
--define(wxMDIParentFrame_Tile, 2670).
--define(wxMDIChildFrame_new_0, 2671).
--define(wxMDIChildFrame_new_4, 2672).
--define(wxMDIChildFrame_destruct, 2673).
--define(wxMDIChildFrame_Activate, 2674).
--define(wxMDIChildFrame_Create, 2675).
--define(wxMDIChildFrame_Maximize, 2676).
--define(wxMDIChildFrame_Restore, 2677).
--define(wxMDIClientWindow_new_0, 2678).
--define(wxMDIClientWindow_new_2, 2679).
--define(wxMDIClientWindow_destruct, 2680).
--define(wxMDIClientWindow_CreateClient, 2681).
--define(wxLayoutAlgorithm_new, 2682).
--define(wxLayoutAlgorithm_LayoutFrame, 2683).
--define(wxLayoutAlgorithm_LayoutMDIFrame, 2684).
--define(wxLayoutAlgorithm_LayoutWindow, 2685).
--define(wxLayoutAlgorithm_destroy, 2686).
--define(wxEvent_GetId, 2687).
--define(wxEvent_GetSkipped, 2688).
--define(wxEvent_GetTimestamp, 2689).
--define(wxEvent_IsCommandEvent, 2690).
--define(wxEvent_ResumePropagation, 2691).
--define(wxEvent_ShouldPropagate, 2692).
--define(wxEvent_Skip, 2693).
--define(wxEvent_StopPropagation, 2694).
--define(wxCommandEvent_getClientData, 2695).
--define(wxCommandEvent_GetExtraLong, 2696).
--define(wxCommandEvent_GetInt, 2697).
--define(wxCommandEvent_GetSelection, 2698).
--define(wxCommandEvent_GetString, 2699).
--define(wxCommandEvent_IsChecked, 2700).
--define(wxCommandEvent_IsSelection, 2701).
--define(wxCommandEvent_SetInt, 2702).
--define(wxCommandEvent_SetString, 2703).
--define(wxScrollEvent_GetOrientation, 2704).
--define(wxScrollEvent_GetPosition, 2705).
--define(wxScrollWinEvent_GetOrientation, 2706).
--define(wxScrollWinEvent_GetPosition, 2707).
--define(wxMouseEvent_AltDown, 2708).
--define(wxMouseEvent_Button, 2709).
--define(wxMouseEvent_ButtonDClick, 2710).
--define(wxMouseEvent_ButtonDown, 2711).
--define(wxMouseEvent_ButtonUp, 2712).
--define(wxMouseEvent_CmdDown, 2713).
--define(wxMouseEvent_ControlDown, 2714).
--define(wxMouseEvent_Dragging, 2715).
--define(wxMouseEvent_Entering, 2716).
--define(wxMouseEvent_GetButton, 2717).
--define(wxMouseEvent_GetPosition, 2720).
--define(wxMouseEvent_GetLogicalPosition, 2721).
--define(wxMouseEvent_GetLinesPerAction, 2722).
--define(wxMouseEvent_GetWheelRotation, 2723).
--define(wxMouseEvent_GetWheelDelta, 2724).
--define(wxMouseEvent_GetX, 2725).
--define(wxMouseEvent_GetY, 2726).
--define(wxMouseEvent_IsButton, 2727).
--define(wxMouseEvent_IsPageScroll, 2728).
--define(wxMouseEvent_Leaving, 2729).
--define(wxMouseEvent_LeftDClick, 2730).
--define(wxMouseEvent_LeftDown, 2731).
--define(wxMouseEvent_LeftIsDown, 2732).
--define(wxMouseEvent_LeftUp, 2733).
--define(wxMouseEvent_MetaDown, 2734).
--define(wxMouseEvent_MiddleDClick, 2735).
--define(wxMouseEvent_MiddleDown, 2736).
--define(wxMouseEvent_MiddleIsDown, 2737).
--define(wxMouseEvent_MiddleUp, 2738).
--define(wxMouseEvent_Moving, 2739).
--define(wxMouseEvent_RightDClick, 2740).
--define(wxMouseEvent_RightDown, 2741).
--define(wxMouseEvent_RightIsDown, 2742).
--define(wxMouseEvent_RightUp, 2743).
--define(wxMouseEvent_ShiftDown, 2744).
--define(wxSetCursorEvent_GetCursor, 2745).
--define(wxSetCursorEvent_GetX, 2746).
--define(wxSetCursorEvent_GetY, 2747).
--define(wxSetCursorEvent_HasCursor, 2748).
--define(wxSetCursorEvent_SetCursor, 2749).
--define(wxKeyEvent_AltDown, 2750).
--define(wxKeyEvent_CmdDown, 2751).
--define(wxKeyEvent_ControlDown, 2752).
--define(wxKeyEvent_GetKeyCode, 2753).
--define(wxKeyEvent_GetModifiers, 2754).
--define(wxKeyEvent_GetPosition, 2757).
--define(wxKeyEvent_GetRawKeyCode, 2758).
--define(wxKeyEvent_GetRawKeyFlags, 2759).
--define(wxKeyEvent_GetUnicodeKey, 2760).
--define(wxKeyEvent_GetX, 2761).
--define(wxKeyEvent_GetY, 2762).
--define(wxKeyEvent_HasModifiers, 2763).
--define(wxKeyEvent_MetaDown, 2764).
--define(wxKeyEvent_ShiftDown, 2765).
--define(wxSizeEvent_GetSize, 2766).
--define(wxMoveEvent_GetPosition, 2767).
--define(wxEraseEvent_GetDC, 2768).
--define(wxFocusEvent_GetWindow, 2769).
--define(wxChildFocusEvent_GetWindow, 2770).
--define(wxMenuEvent_GetMenu, 2771).
--define(wxMenuEvent_GetMenuId, 2772).
--define(wxMenuEvent_IsPopup, 2773).
--define(wxCloseEvent_CanVeto, 2774).
--define(wxCloseEvent_GetLoggingOff, 2775).
--define(wxCloseEvent_SetCanVeto, 2776).
--define(wxCloseEvent_SetLoggingOff, 2777).
--define(wxCloseEvent_Veto, 2778).
--define(wxShowEvent_SetShow, 2779).
--define(wxShowEvent_GetShow, 2780).
--define(wxIconizeEvent_Iconized, 2781).
--define(wxJoystickEvent_ButtonDown, 2782).
--define(wxJoystickEvent_ButtonIsDown, 2783).
--define(wxJoystickEvent_ButtonUp, 2784).
--define(wxJoystickEvent_GetButtonChange, 2785).
--define(wxJoystickEvent_GetButtonState, 2786).
--define(wxJoystickEvent_GetJoystick, 2787).
--define(wxJoystickEvent_GetPosition, 2788).
--define(wxJoystickEvent_GetZPosition, 2789).
--define(wxJoystickEvent_IsButton, 2790).
--define(wxJoystickEvent_IsMove, 2791).
--define(wxJoystickEvent_IsZMove, 2792).
--define(wxUpdateUIEvent_CanUpdate, 2793).
--define(wxUpdateUIEvent_Check, 2794).
--define(wxUpdateUIEvent_Enable, 2795).
--define(wxUpdateUIEvent_Show, 2796).
--define(wxUpdateUIEvent_GetChecked, 2797).
--define(wxUpdateUIEvent_GetEnabled, 2798).
--define(wxUpdateUIEvent_GetShown, 2799).
--define(wxUpdateUIEvent_GetSetChecked, 2800).
--define(wxUpdateUIEvent_GetSetEnabled, 2801).
--define(wxUpdateUIEvent_GetSetShown, 2802).
--define(wxUpdateUIEvent_GetSetText, 2803).
--define(wxUpdateUIEvent_GetText, 2804).
--define(wxUpdateUIEvent_GetMode, 2805).
--define(wxUpdateUIEvent_GetUpdateInterval, 2806).
--define(wxUpdateUIEvent_ResetUpdateTime, 2807).
--define(wxUpdateUIEvent_SetMode, 2808).
--define(wxUpdateUIEvent_SetText, 2809).
--define(wxUpdateUIEvent_SetUpdateInterval, 2810).
--define(wxMouseCaptureChangedEvent_GetCapturedWindow, 2811).
--define(wxPaletteChangedEvent_SetChangedWindow, 2812).
--define(wxPaletteChangedEvent_GetChangedWindow, 2813).
--define(wxQueryNewPaletteEvent_SetPaletteRealized, 2814).
--define(wxQueryNewPaletteEvent_GetPaletteRealized, 2815).
--define(wxNavigationKeyEvent_GetDirection, 2816).
--define(wxNavigationKeyEvent_SetDirection, 2817).
--define(wxNavigationKeyEvent_IsWindowChange, 2818).
--define(wxNavigationKeyEvent_SetWindowChange, 2819).
--define(wxNavigationKeyEvent_IsFromTab, 2820).
--define(wxNavigationKeyEvent_SetFromTab, 2821).
--define(wxNavigationKeyEvent_GetCurrentFocus, 2822).
--define(wxNavigationKeyEvent_SetCurrentFocus, 2823).
--define(wxHelpEvent_GetOrigin, 2824).
--define(wxHelpEvent_GetPosition, 2825).
--define(wxHelpEvent_SetOrigin, 2826).
--define(wxHelpEvent_SetPosition, 2827).
--define(wxContextMenuEvent_GetPosition, 2828).
--define(wxContextMenuEvent_SetPosition, 2829).
--define(wxIdleEvent_CanSend, 2830).
--define(wxIdleEvent_GetMode, 2831).
--define(wxIdleEvent_RequestMore, 2832).
--define(wxIdleEvent_MoreRequested, 2833).
--define(wxIdleEvent_SetMode, 2834).
--define(wxGridEvent_AltDown, 2835).
--define(wxGridEvent_ControlDown, 2836).
--define(wxGridEvent_GetCol, 2837).
--define(wxGridEvent_GetPosition, 2838).
--define(wxGridEvent_GetRow, 2839).
--define(wxGridEvent_MetaDown, 2840).
--define(wxGridEvent_Selecting, 2841).
--define(wxGridEvent_ShiftDown, 2842).
--define(wxNotifyEvent_Allow, 2843).
--define(wxNotifyEvent_IsAllowed, 2844).
--define(wxNotifyEvent_Veto, 2845).
--define(wxSashEvent_GetEdge, 2846).
--define(wxSashEvent_GetDragRect, 2847).
--define(wxSashEvent_GetDragStatus, 2848).
--define(wxListEvent_GetCacheFrom, 2849).
--define(wxListEvent_GetCacheTo, 2850).
--define(wxListEvent_GetKeyCode, 2851).
--define(wxListEvent_GetIndex, 2852).
--define(wxListEvent_GetColumn, 2853).
--define(wxListEvent_GetPoint, 2854).
--define(wxListEvent_GetLabel, 2855).
--define(wxListEvent_GetText, 2856).
--define(wxListEvent_GetImage, 2857).
--define(wxListEvent_GetData, 2858).
--define(wxListEvent_GetMask, 2859).
--define(wxListEvent_GetItem, 2860).
--define(wxListEvent_IsEditCancelled, 2861).
--define(wxDateEvent_GetDate, 2862).
--define(wxCalendarEvent_GetWeekDay, 2863).
--define(wxFileDirPickerEvent_GetPath, 2864).
--define(wxColourPickerEvent_GetColour, 2865).
--define(wxFontPickerEvent_GetFont, 2866).
--define(wxStyledTextEvent_GetPosition, 2867).
--define(wxStyledTextEvent_GetKey, 2868).
--define(wxStyledTextEvent_GetModifiers, 2869).
--define(wxStyledTextEvent_GetModificationType, 2870).
--define(wxStyledTextEvent_GetText, 2871).
--define(wxStyledTextEvent_GetLength, 2872).
--define(wxStyledTextEvent_GetLinesAdded, 2873).
--define(wxStyledTextEvent_GetLine, 2874).
--define(wxStyledTextEvent_GetFoldLevelNow, 2875).
--define(wxStyledTextEvent_GetFoldLevelPrev, 2876).
--define(wxStyledTextEvent_GetMargin, 2877).
--define(wxStyledTextEvent_GetMessage, 2878).
--define(wxStyledTextEvent_GetWParam, 2879).
--define(wxStyledTextEvent_GetLParam, 2880).
--define(wxStyledTextEvent_GetListType, 2881).
--define(wxStyledTextEvent_GetX, 2882).
--define(wxStyledTextEvent_GetY, 2883).
--define(wxStyledTextEvent_GetDragText, 2884).
--define(wxStyledTextEvent_GetDragAllowMove, 2885).
--define(wxStyledTextEvent_GetDragResult, 2886).
--define(wxStyledTextEvent_GetShift, 2887).
--define(wxStyledTextEvent_GetControl, 2888).
--define(wxStyledTextEvent_GetAlt, 2889).
--define(utils_wxGetKeyState, 2890).
--define(utils_wxGetMousePosition, 2891).
--define(utils_wxGetMouseState, 2892).
--define(utils_wxSetDetectableAutoRepeat, 2893).
--define(utils_wxBell, 2894).
--define(utils_wxFindMenuItemId, 2895).
--define(utils_wxGenericFindWindowAtPoint, 2896).
--define(utils_wxFindWindowAtPoint, 2897).
--define(utils_wxBeginBusyCursor, 2898).
--define(utils_wxEndBusyCursor, 2899).
--define(utils_wxIsBusy, 2900).
--define(utils_wxShutdown, 2901).
--define(utils_wxShell, 2902).
--define(utils_wxLaunchDefaultBrowser, 2903).
--define(utils_wxGetEmailAddress, 2904).
--define(utils_wxGetUserId, 2905).
--define(utils_wxGetHomeDir, 2906).
--define(utils_wxNewId, 2907).
--define(utils_wxRegisterId, 2908).
--define(utils_wxGetCurrentId, 2909).
--define(utils_wxGetOsDescription, 2910).
--define(utils_wxIsPlatformLittleEndian, 2911).
--define(utils_wxIsPlatform64Bit, 2912).
--define(wxPrintout_new, 2913).
--define(wxPrintout_destruct, 2914).
--define(wxPrintout_GetDC, 2915).
--define(wxPrintout_GetPageSizeMM, 2916).
--define(wxPrintout_GetPageSizePixels, 2917).
--define(wxPrintout_GetPaperRectPixels, 2918).
--define(wxPrintout_GetPPIPrinter, 2919).
--define(wxPrintout_GetPPIScreen, 2920).
--define(wxPrintout_GetTitle, 2921).
--define(wxPrintout_IsPreview, 2922).
--define(wxPrintout_FitThisSizeToPaper, 2923).
--define(wxPrintout_FitThisSizeToPage, 2924).
--define(wxPrintout_FitThisSizeToPageMargins, 2925).
--define(wxPrintout_MapScreenSizeToPaper, 2926).
--define(wxPrintout_MapScreenSizeToPage, 2927).
--define(wxPrintout_MapScreenSizeToPageMargins, 2928).
--define(wxPrintout_MapScreenSizeToDevice, 2929).
--define(wxPrintout_GetLogicalPaperRect, 2930).
--define(wxPrintout_GetLogicalPageRect, 2931).
--define(wxPrintout_GetLogicalPageMarginsRect, 2932).
--define(wxPrintout_SetLogicalOrigin, 2933).
--define(wxPrintout_OffsetLogicalOrigin, 2934).
--define(wxStyledTextCtrl_new_2, 2935).
--define(wxStyledTextCtrl_new_0, 2936).
--define(wxStyledTextCtrl_destruct, 2937).
--define(wxStyledTextCtrl_Create, 2938).
--define(wxStyledTextCtrl_AddText, 2939).
--define(wxStyledTextCtrl_AddStyledText, 2940).
--define(wxStyledTextCtrl_InsertText, 2941).
--define(wxStyledTextCtrl_ClearAll, 2942).
--define(wxStyledTextCtrl_ClearDocumentStyle, 2943).
--define(wxStyledTextCtrl_GetLength, 2944).
--define(wxStyledTextCtrl_GetCharAt, 2945).
--define(wxStyledTextCtrl_GetCurrentPos, 2946).
--define(wxStyledTextCtrl_GetAnchor, 2947).
--define(wxStyledTextCtrl_GetStyleAt, 2948).
--define(wxStyledTextCtrl_Redo, 2949).
--define(wxStyledTextCtrl_SetUndoCollection, 2950).
--define(wxStyledTextCtrl_SelectAll, 2951).
--define(wxStyledTextCtrl_SetSavePoint, 2952).
--define(wxStyledTextCtrl_GetStyledText, 2953).
--define(wxStyledTextCtrl_CanRedo, 2954).
--define(wxStyledTextCtrl_MarkerLineFromHandle, 2955).
--define(wxStyledTextCtrl_MarkerDeleteHandle, 2956).
--define(wxStyledTextCtrl_GetUndoCollection, 2957).
--define(wxStyledTextCtrl_GetViewWhiteSpace, 2958).
--define(wxStyledTextCtrl_SetViewWhiteSpace, 2959).
--define(wxStyledTextCtrl_PositionFromPoint, 2960).
--define(wxStyledTextCtrl_PositionFromPointClose, 2961).
--define(wxStyledTextCtrl_GotoLine, 2962).
--define(wxStyledTextCtrl_GotoPos, 2963).
--define(wxStyledTextCtrl_SetAnchor, 2964).
--define(wxStyledTextCtrl_GetCurLine, 2965).
--define(wxStyledTextCtrl_GetEndStyled, 2966).
--define(wxStyledTextCtrl_ConvertEOLs, 2967).
--define(wxStyledTextCtrl_GetEOLMode, 2968).
--define(wxStyledTextCtrl_SetEOLMode, 2969).
--define(wxStyledTextCtrl_StartStyling, 2970).
--define(wxStyledTextCtrl_SetStyling, 2971).
--define(wxStyledTextCtrl_GetBufferedDraw, 2972).
--define(wxStyledTextCtrl_SetBufferedDraw, 2973).
--define(wxStyledTextCtrl_SetTabWidth, 2974).
--define(wxStyledTextCtrl_GetTabWidth, 2975).
--define(wxStyledTextCtrl_SetCodePage, 2976).
--define(wxStyledTextCtrl_MarkerDefine, 2977).
--define(wxStyledTextCtrl_MarkerSetForeground, 2978).
--define(wxStyledTextCtrl_MarkerSetBackground, 2979).
--define(wxStyledTextCtrl_MarkerAdd, 2980).
--define(wxStyledTextCtrl_MarkerDelete, 2981).
--define(wxStyledTextCtrl_MarkerDeleteAll, 2982).
--define(wxStyledTextCtrl_MarkerGet, 2983).
--define(wxStyledTextCtrl_MarkerNext, 2984).
--define(wxStyledTextCtrl_MarkerPrevious, 2985).
--define(wxStyledTextCtrl_MarkerDefineBitmap, 2986).
--define(wxStyledTextCtrl_MarkerAddSet, 2987).
--define(wxStyledTextCtrl_MarkerSetAlpha, 2988).
--define(wxStyledTextCtrl_SetMarginType, 2989).
--define(wxStyledTextCtrl_GetMarginType, 2990).
--define(wxStyledTextCtrl_SetMarginWidth, 2991).
--define(wxStyledTextCtrl_GetMarginWidth, 2992).
--define(wxStyledTextCtrl_SetMarginMask, 2993).
--define(wxStyledTextCtrl_GetMarginMask, 2994).
--define(wxStyledTextCtrl_SetMarginSensitive, 2995).
--define(wxStyledTextCtrl_GetMarginSensitive, 2996).
--define(wxStyledTextCtrl_StyleClearAll, 2997).
--define(wxStyledTextCtrl_StyleSetForeground, 2998).
--define(wxStyledTextCtrl_StyleSetBackground, 2999).
--define(wxStyledTextCtrl_StyleSetBold, 3000).
--define(wxStyledTextCtrl_StyleSetItalic, 3001).
--define(wxStyledTextCtrl_StyleSetSize, 3002).
--define(wxStyledTextCtrl_StyleSetFaceName, 3003).
--define(wxStyledTextCtrl_StyleSetEOLFilled, 3004).
--define(wxStyledTextCtrl_StyleResetDefault, 3005).
--define(wxStyledTextCtrl_StyleSetUnderline, 3006).
--define(wxStyledTextCtrl_StyleSetCase, 3007).
--define(wxStyledTextCtrl_StyleSetHotSpot, 3008).
--define(wxStyledTextCtrl_SetSelForeground, 3009).
--define(wxStyledTextCtrl_SetSelBackground, 3010).
--define(wxStyledTextCtrl_GetSelAlpha, 3011).
--define(wxStyledTextCtrl_SetSelAlpha, 3012).
--define(wxStyledTextCtrl_SetCaretForeground, 3013).
--define(wxStyledTextCtrl_CmdKeyAssign, 3014).
--define(wxStyledTextCtrl_CmdKeyClear, 3015).
--define(wxStyledTextCtrl_CmdKeyClearAll, 3016).
--define(wxStyledTextCtrl_SetStyleBytes, 3017).
--define(wxStyledTextCtrl_StyleSetVisible, 3018).
--define(wxStyledTextCtrl_GetCaretPeriod, 3019).
--define(wxStyledTextCtrl_SetCaretPeriod, 3020).
--define(wxStyledTextCtrl_SetWordChars, 3021).
--define(wxStyledTextCtrl_BeginUndoAction, 3022).
--define(wxStyledTextCtrl_EndUndoAction, 3023).
--define(wxStyledTextCtrl_IndicatorSetStyle, 3024).
--define(wxStyledTextCtrl_IndicatorGetStyle, 3025).
--define(wxStyledTextCtrl_IndicatorSetForeground, 3026).
--define(wxStyledTextCtrl_IndicatorGetForeground, 3027).
--define(wxStyledTextCtrl_SetWhitespaceForeground, 3028).
--define(wxStyledTextCtrl_SetWhitespaceBackground, 3029).
--define(wxStyledTextCtrl_GetStyleBits, 3030).
--define(wxStyledTextCtrl_SetLineState, 3031).
--define(wxStyledTextCtrl_GetLineState, 3032).
--define(wxStyledTextCtrl_GetMaxLineState, 3033).
--define(wxStyledTextCtrl_GetCaretLineVisible, 3034).
--define(wxStyledTextCtrl_SetCaretLineVisible, 3035).
--define(wxStyledTextCtrl_GetCaretLineBackground, 3036).
--define(wxStyledTextCtrl_SetCaretLineBackground, 3037).
--define(wxStyledTextCtrl_AutoCompShow, 3038).
--define(wxStyledTextCtrl_AutoCompCancel, 3039).
--define(wxStyledTextCtrl_AutoCompActive, 3040).
--define(wxStyledTextCtrl_AutoCompPosStart, 3041).
--define(wxStyledTextCtrl_AutoCompComplete, 3042).
--define(wxStyledTextCtrl_AutoCompStops, 3043).
--define(wxStyledTextCtrl_AutoCompSetSeparator, 3044).
--define(wxStyledTextCtrl_AutoCompGetSeparator, 3045).
--define(wxStyledTextCtrl_AutoCompSelect, 3046).
--define(wxStyledTextCtrl_AutoCompSetCancelAtStart, 3047).
--define(wxStyledTextCtrl_AutoCompGetCancelAtStart, 3048).
--define(wxStyledTextCtrl_AutoCompSetFillUps, 3049).
--define(wxStyledTextCtrl_AutoCompSetChooseSingle, 3050).
--define(wxStyledTextCtrl_AutoCompGetChooseSingle, 3051).
--define(wxStyledTextCtrl_AutoCompSetIgnoreCase, 3052).
--define(wxStyledTextCtrl_AutoCompGetIgnoreCase, 3053).
--define(wxStyledTextCtrl_UserListShow, 3054).
--define(wxStyledTextCtrl_AutoCompSetAutoHide, 3055).
--define(wxStyledTextCtrl_AutoCompGetAutoHide, 3056).
--define(wxStyledTextCtrl_AutoCompSetDropRestOfWord, 3057).
--define(wxStyledTextCtrl_AutoCompGetDropRestOfWord, 3058).
--define(wxStyledTextCtrl_RegisterImage, 3059).
--define(wxStyledTextCtrl_ClearRegisteredImages, 3060).
--define(wxStyledTextCtrl_AutoCompGetTypeSeparator, 3061).
--define(wxStyledTextCtrl_AutoCompSetTypeSeparator, 3062).
--define(wxStyledTextCtrl_AutoCompSetMaxWidth, 3063).
--define(wxStyledTextCtrl_AutoCompGetMaxWidth, 3064).
--define(wxStyledTextCtrl_AutoCompSetMaxHeight, 3065).
--define(wxStyledTextCtrl_AutoCompGetMaxHeight, 3066).
--define(wxStyledTextCtrl_SetIndent, 3067).
--define(wxStyledTextCtrl_GetIndent, 3068).
--define(wxStyledTextCtrl_SetUseTabs, 3069).
--define(wxStyledTextCtrl_GetUseTabs, 3070).
--define(wxStyledTextCtrl_SetLineIndentation, 3071).
--define(wxStyledTextCtrl_GetLineIndentation, 3072).
--define(wxStyledTextCtrl_GetLineIndentPosition, 3073).
--define(wxStyledTextCtrl_GetColumn, 3074).
--define(wxStyledTextCtrl_SetUseHorizontalScrollBar, 3075).
--define(wxStyledTextCtrl_GetUseHorizontalScrollBar, 3076).
--define(wxStyledTextCtrl_SetIndentationGuides, 3077).
--define(wxStyledTextCtrl_GetIndentationGuides, 3078).
--define(wxStyledTextCtrl_SetHighlightGuide, 3079).
--define(wxStyledTextCtrl_GetHighlightGuide, 3080).
--define(wxStyledTextCtrl_GetLineEndPosition, 3081).
--define(wxStyledTextCtrl_GetCodePage, 3082).
--define(wxStyledTextCtrl_GetCaretForeground, 3083).
--define(wxStyledTextCtrl_GetReadOnly, 3084).
--define(wxStyledTextCtrl_SetCurrentPos, 3085).
--define(wxStyledTextCtrl_SetSelectionStart, 3086).
--define(wxStyledTextCtrl_GetSelectionStart, 3087).
--define(wxStyledTextCtrl_SetSelectionEnd, 3088).
--define(wxStyledTextCtrl_GetSelectionEnd, 3089).
--define(wxStyledTextCtrl_SetPrintMagnification, 3090).
--define(wxStyledTextCtrl_GetPrintMagnification, 3091).
--define(wxStyledTextCtrl_SetPrintColourMode, 3092).
--define(wxStyledTextCtrl_GetPrintColourMode, 3093).
--define(wxStyledTextCtrl_FindText, 3094).
--define(wxStyledTextCtrl_FormatRange, 3095).
--define(wxStyledTextCtrl_GetFirstVisibleLine, 3096).
--define(wxStyledTextCtrl_GetLine, 3097).
--define(wxStyledTextCtrl_GetLineCount, 3098).
--define(wxStyledTextCtrl_SetMarginLeft, 3099).
--define(wxStyledTextCtrl_GetMarginLeft, 3100).
--define(wxStyledTextCtrl_SetMarginRight, 3101).
--define(wxStyledTextCtrl_GetMarginRight, 3102).
--define(wxStyledTextCtrl_GetModify, 3103).
--define(wxStyledTextCtrl_SetSelection, 3104).
--define(wxStyledTextCtrl_GetSelectedText, 3105).
--define(wxStyledTextCtrl_GetTextRange, 3106).
--define(wxStyledTextCtrl_HideSelection, 3107).
--define(wxStyledTextCtrl_LineFromPosition, 3108).
--define(wxStyledTextCtrl_PositionFromLine, 3109).
--define(wxStyledTextCtrl_LineScroll, 3110).
--define(wxStyledTextCtrl_EnsureCaretVisible, 3111).
--define(wxStyledTextCtrl_ReplaceSelection, 3112).
--define(wxStyledTextCtrl_SetReadOnly, 3113).
--define(wxStyledTextCtrl_CanPaste, 3114).
--define(wxStyledTextCtrl_CanUndo, 3115).
--define(wxStyledTextCtrl_EmptyUndoBuffer, 3116).
--define(wxStyledTextCtrl_Undo, 3117).
--define(wxStyledTextCtrl_Cut, 3118).
--define(wxStyledTextCtrl_Copy, 3119).
--define(wxStyledTextCtrl_Paste, 3120).
--define(wxStyledTextCtrl_Clear, 3121).
--define(wxStyledTextCtrl_SetText, 3122).
--define(wxStyledTextCtrl_GetText, 3123).
--define(wxStyledTextCtrl_GetTextLength, 3124).
--define(wxStyledTextCtrl_GetOvertype, 3125).
--define(wxStyledTextCtrl_SetCaretWidth, 3126).
--define(wxStyledTextCtrl_GetCaretWidth, 3127).
--define(wxStyledTextCtrl_SetTargetStart, 3128).
--define(wxStyledTextCtrl_GetTargetStart, 3129).
--define(wxStyledTextCtrl_SetTargetEnd, 3130).
--define(wxStyledTextCtrl_GetTargetEnd, 3131).
--define(wxStyledTextCtrl_ReplaceTarget, 3132).
--define(wxStyledTextCtrl_SearchInTarget, 3133).
--define(wxStyledTextCtrl_SetSearchFlags, 3134).
--define(wxStyledTextCtrl_GetSearchFlags, 3135).
--define(wxStyledTextCtrl_CallTipShow, 3136).
--define(wxStyledTextCtrl_CallTipCancel, 3137).
--define(wxStyledTextCtrl_CallTipActive, 3138).
--define(wxStyledTextCtrl_CallTipPosAtStart, 3139).
--define(wxStyledTextCtrl_CallTipSetHighlight, 3140).
--define(wxStyledTextCtrl_CallTipSetBackground, 3141).
--define(wxStyledTextCtrl_CallTipSetForeground, 3142).
--define(wxStyledTextCtrl_CallTipSetForegroundHighlight, 3143).
--define(wxStyledTextCtrl_CallTipUseStyle, 3144).
--define(wxStyledTextCtrl_VisibleFromDocLine, 3145).
--define(wxStyledTextCtrl_DocLineFromVisible, 3146).
--define(wxStyledTextCtrl_WrapCount, 3147).
--define(wxStyledTextCtrl_SetFoldLevel, 3148).
--define(wxStyledTextCtrl_GetFoldLevel, 3149).
--define(wxStyledTextCtrl_GetLastChild, 3150).
--define(wxStyledTextCtrl_GetFoldParent, 3151).
--define(wxStyledTextCtrl_ShowLines, 3152).
--define(wxStyledTextCtrl_HideLines, 3153).
--define(wxStyledTextCtrl_GetLineVisible, 3154).
--define(wxStyledTextCtrl_SetFoldExpanded, 3155).
--define(wxStyledTextCtrl_GetFoldExpanded, 3156).
--define(wxStyledTextCtrl_ToggleFold, 3157).
--define(wxStyledTextCtrl_EnsureVisible, 3158).
--define(wxStyledTextCtrl_SetFoldFlags, 3159).
--define(wxStyledTextCtrl_EnsureVisibleEnforcePolicy, 3160).
--define(wxStyledTextCtrl_SetTabIndents, 3161).
--define(wxStyledTextCtrl_GetTabIndents, 3162).
--define(wxStyledTextCtrl_SetBackSpaceUnIndents, 3163).
--define(wxStyledTextCtrl_GetBackSpaceUnIndents, 3164).
--define(wxStyledTextCtrl_SetMouseDwellTime, 3165).
--define(wxStyledTextCtrl_GetMouseDwellTime, 3166).
--define(wxStyledTextCtrl_WordStartPosition, 3167).
--define(wxStyledTextCtrl_WordEndPosition, 3168).
--define(wxStyledTextCtrl_SetWrapMode, 3169).
--define(wxStyledTextCtrl_GetWrapMode, 3170).
--define(wxStyledTextCtrl_SetWrapVisualFlags, 3171).
--define(wxStyledTextCtrl_GetWrapVisualFlags, 3172).
--define(wxStyledTextCtrl_SetWrapVisualFlagsLocation, 3173).
--define(wxStyledTextCtrl_GetWrapVisualFlagsLocation, 3174).
--define(wxStyledTextCtrl_SetWrapStartIndent, 3175).
--define(wxStyledTextCtrl_GetWrapStartIndent, 3176).
--define(wxStyledTextCtrl_SetLayoutCache, 3177).
--define(wxStyledTextCtrl_GetLayoutCache, 3178).
--define(wxStyledTextCtrl_SetScrollWidth, 3179).
--define(wxStyledTextCtrl_GetScrollWidth, 3180).
--define(wxStyledTextCtrl_TextWidth, 3181).
--define(wxStyledTextCtrl_GetEndAtLastLine, 3182).
--define(wxStyledTextCtrl_TextHeight, 3183).
--define(wxStyledTextCtrl_SetUseVerticalScrollBar, 3184).
--define(wxStyledTextCtrl_GetUseVerticalScrollBar, 3185).
--define(wxStyledTextCtrl_AppendText, 3186).
--define(wxStyledTextCtrl_GetTwoPhaseDraw, 3187).
--define(wxStyledTextCtrl_SetTwoPhaseDraw, 3188).
--define(wxStyledTextCtrl_TargetFromSelection, 3189).
--define(wxStyledTextCtrl_LinesJoin, 3190).
--define(wxStyledTextCtrl_LinesSplit, 3191).
--define(wxStyledTextCtrl_SetFoldMarginColour, 3192).
--define(wxStyledTextCtrl_SetFoldMarginHiColour, 3193).
--define(wxStyledTextCtrl_LineDown, 3194).
--define(wxStyledTextCtrl_LineDownExtend, 3195).
--define(wxStyledTextCtrl_LineUp, 3196).
--define(wxStyledTextCtrl_LineUpExtend, 3197).
--define(wxStyledTextCtrl_CharLeft, 3198).
--define(wxStyledTextCtrl_CharLeftExtend, 3199).
--define(wxStyledTextCtrl_CharRight, 3200).
--define(wxStyledTextCtrl_CharRightExtend, 3201).
--define(wxStyledTextCtrl_WordLeft, 3202).
--define(wxStyledTextCtrl_WordLeftExtend, 3203).
--define(wxStyledTextCtrl_WordRight, 3204).
--define(wxStyledTextCtrl_WordRightExtend, 3205).
--define(wxStyledTextCtrl_Home, 3206).
--define(wxStyledTextCtrl_HomeExtend, 3207).
--define(wxStyledTextCtrl_LineEnd, 3208).
--define(wxStyledTextCtrl_LineEndExtend, 3209).
--define(wxStyledTextCtrl_DocumentStart, 3210).
--define(wxStyledTextCtrl_DocumentStartExtend, 3211).
--define(wxStyledTextCtrl_DocumentEnd, 3212).
--define(wxStyledTextCtrl_DocumentEndExtend, 3213).
--define(wxStyledTextCtrl_PageUp, 3214).
--define(wxStyledTextCtrl_PageUpExtend, 3215).
--define(wxStyledTextCtrl_PageDown, 3216).
--define(wxStyledTextCtrl_PageDownExtend, 3217).
--define(wxStyledTextCtrl_EditToggleOvertype, 3218).
--define(wxStyledTextCtrl_Cancel, 3219).
--define(wxStyledTextCtrl_DeleteBack, 3220).
--define(wxStyledTextCtrl_Tab, 3221).
--define(wxStyledTextCtrl_BackTab, 3222).
--define(wxStyledTextCtrl_NewLine, 3223).
--define(wxStyledTextCtrl_FormFeed, 3224).
--define(wxStyledTextCtrl_VCHome, 3225).
--define(wxStyledTextCtrl_VCHomeExtend, 3226).
--define(wxStyledTextCtrl_ZoomIn, 3227).
--define(wxStyledTextCtrl_ZoomOut, 3228).
--define(wxStyledTextCtrl_DelWordLeft, 3229).
--define(wxStyledTextCtrl_DelWordRight, 3230).
--define(wxStyledTextCtrl_LineCut, 3231).
--define(wxStyledTextCtrl_LineDelete, 3232).
--define(wxStyledTextCtrl_LineTranspose, 3233).
--define(wxStyledTextCtrl_LineDuplicate, 3234).
--define(wxStyledTextCtrl_LowerCase, 3235).
--define(wxStyledTextCtrl_UpperCase, 3236).
--define(wxStyledTextCtrl_LineScrollDown, 3237).
--define(wxStyledTextCtrl_LineScrollUp, 3238).
--define(wxStyledTextCtrl_DeleteBackNotLine, 3239).
--define(wxStyledTextCtrl_HomeDisplay, 3240).
--define(wxStyledTextCtrl_HomeDisplayExtend, 3241).
--define(wxStyledTextCtrl_LineEndDisplay, 3242).
--define(wxStyledTextCtrl_LineEndDisplayExtend, 3243).
--define(wxStyledTextCtrl_HomeWrapExtend, 3244).
--define(wxStyledTextCtrl_LineEndWrap, 3245).
--define(wxStyledTextCtrl_LineEndWrapExtend, 3246).
--define(wxStyledTextCtrl_VCHomeWrap, 3247).
--define(wxStyledTextCtrl_VCHomeWrapExtend, 3248).
--define(wxStyledTextCtrl_LineCopy, 3249).
--define(wxStyledTextCtrl_MoveCaretInsideView, 3250).
--define(wxStyledTextCtrl_LineLength, 3251).
--define(wxStyledTextCtrl_BraceHighlight, 3252).
--define(wxStyledTextCtrl_BraceBadLight, 3253).
--define(wxStyledTextCtrl_BraceMatch, 3254).
--define(wxStyledTextCtrl_GetViewEOL, 3255).
--define(wxStyledTextCtrl_SetViewEOL, 3256).
--define(wxStyledTextCtrl_SetModEventMask, 3257).
--define(wxStyledTextCtrl_GetEdgeColumn, 3258).
--define(wxStyledTextCtrl_SetEdgeColumn, 3259).
--define(wxStyledTextCtrl_GetEdgeMode, 3260).
--define(wxStyledTextCtrl_GetEdgeColour, 3261).
--define(wxStyledTextCtrl_SetEdgeColour, 3262).
--define(wxStyledTextCtrl_SearchAnchor, 3263).
--define(wxStyledTextCtrl_SearchNext, 3264).
--define(wxStyledTextCtrl_SearchPrev, 3265).
--define(wxStyledTextCtrl_LinesOnScreen, 3266).
--define(wxStyledTextCtrl_UsePopUp, 3267).
--define(wxStyledTextCtrl_SelectionIsRectangle, 3268).
--define(wxStyledTextCtrl_SetZoom, 3269).
--define(wxStyledTextCtrl_GetZoom, 3270).
--define(wxStyledTextCtrl_GetModEventMask, 3271).
--define(wxStyledTextCtrl_SetSTCFocus, 3272).
--define(wxStyledTextCtrl_GetSTCFocus, 3273).
--define(wxStyledTextCtrl_SetStatus, 3274).
--define(wxStyledTextCtrl_GetStatus, 3275).
--define(wxStyledTextCtrl_SetMouseDownCaptures, 3276).
--define(wxStyledTextCtrl_GetMouseDownCaptures, 3277).
--define(wxStyledTextCtrl_SetSTCCursor, 3278).
--define(wxStyledTextCtrl_GetSTCCursor, 3279).
--define(wxStyledTextCtrl_SetControlCharSymbol, 3280).
--define(wxStyledTextCtrl_GetControlCharSymbol, 3281).
--define(wxStyledTextCtrl_WordPartLeft, 3282).
--define(wxStyledTextCtrl_WordPartLeftExtend, 3283).
--define(wxStyledTextCtrl_WordPartRight, 3284).
--define(wxStyledTextCtrl_WordPartRightExtend, 3285).
--define(wxStyledTextCtrl_SetVisiblePolicy, 3286).
--define(wxStyledTextCtrl_DelLineLeft, 3287).
--define(wxStyledTextCtrl_DelLineRight, 3288).
--define(wxStyledTextCtrl_GetXOffset, 3289).
--define(wxStyledTextCtrl_ChooseCaretX, 3290).
--define(wxStyledTextCtrl_SetXCaretPolicy, 3291).
--define(wxStyledTextCtrl_SetYCaretPolicy, 3292).
--define(wxStyledTextCtrl_GetPrintWrapMode, 3293).
--define(wxStyledTextCtrl_SetHotspotActiveForeground, 3294).
--define(wxStyledTextCtrl_SetHotspotActiveBackground, 3295).
--define(wxStyledTextCtrl_SetHotspotActiveUnderline, 3296).
--define(wxStyledTextCtrl_SetHotspotSingleLine, 3297).
--define(wxStyledTextCtrl_ParaDownExtend, 3298).
--define(wxStyledTextCtrl_ParaUp, 3299).
--define(wxStyledTextCtrl_ParaUpExtend, 3300).
--define(wxStyledTextCtrl_PositionBefore, 3301).
--define(wxStyledTextCtrl_PositionAfter, 3302).
--define(wxStyledTextCtrl_CopyRange, 3303).
--define(wxStyledTextCtrl_CopyText, 3304).
--define(wxStyledTextCtrl_SetSelectionMode, 3305).
--define(wxStyledTextCtrl_GetSelectionMode, 3306).
--define(wxStyledTextCtrl_LineDownRectExtend, 3307).
--define(wxStyledTextCtrl_LineUpRectExtend, 3308).
--define(wxStyledTextCtrl_CharLeftRectExtend, 3309).
--define(wxStyledTextCtrl_CharRightRectExtend, 3310).
--define(wxStyledTextCtrl_HomeRectExtend, 3311).
--define(wxStyledTextCtrl_VCHomeRectExtend, 3312).
--define(wxStyledTextCtrl_LineEndRectExtend, 3313).
--define(wxStyledTextCtrl_PageUpRectExtend, 3314).
--define(wxStyledTextCtrl_PageDownRectExtend, 3315).
--define(wxStyledTextCtrl_StutteredPageUp, 3316).
--define(wxStyledTextCtrl_StutteredPageUpExtend, 3317).
--define(wxStyledTextCtrl_StutteredPageDown, 3318).
--define(wxStyledTextCtrl_StutteredPageDownExtend, 3319).
--define(wxStyledTextCtrl_WordLeftEnd, 3320).
--define(wxStyledTextCtrl_WordLeftEndExtend, 3321).
--define(wxStyledTextCtrl_WordRightEnd, 3322).
--define(wxStyledTextCtrl_WordRightEndExtend, 3323).
--define(wxStyledTextCtrl_SetWhitespaceChars, 3324).
--define(wxStyledTextCtrl_SetCharsDefault, 3325).
--define(wxStyledTextCtrl_AutoCompGetCurrent, 3326).
--define(wxStyledTextCtrl_Allocate, 3327).
--define(wxStyledTextCtrl_FindColumn, 3328).
--define(wxStyledTextCtrl_GetCaretSticky, 3329).
--define(wxStyledTextCtrl_SetCaretSticky, 3330).
--define(wxStyledTextCtrl_ToggleCaretSticky, 3331).
--define(wxStyledTextCtrl_SetPasteConvertEndings, 3332).
--define(wxStyledTextCtrl_GetPasteConvertEndings, 3333).
--define(wxStyledTextCtrl_SelectionDuplicate, 3334).
--define(wxStyledTextCtrl_SetCaretLineBackAlpha, 3335).
--define(wxStyledTextCtrl_GetCaretLineBackAlpha, 3336).
--define(wxStyledTextCtrl_StartRecord, 3337).
--define(wxStyledTextCtrl_StopRecord, 3338).
--define(wxStyledTextCtrl_SetLexer, 3339).
--define(wxStyledTextCtrl_GetLexer, 3340).
--define(wxStyledTextCtrl_Colourise, 3341).
--define(wxStyledTextCtrl_SetProperty, 3342).
--define(wxStyledTextCtrl_SetKeyWords, 3343).
--define(wxStyledTextCtrl_SetLexerLanguage, 3344).
--define(wxStyledTextCtrl_GetProperty, 3345).
--define(wxStyledTextCtrl_GetStyleBitsNeeded, 3346).
--define(wxStyledTextCtrl_GetCurrentLine, 3347).
--define(wxStyledTextCtrl_StyleSetSpec, 3348).
--define(wxStyledTextCtrl_StyleSetFont, 3349).
--define(wxStyledTextCtrl_StyleSetFontAttr, 3350).
--define(wxStyledTextCtrl_StyleSetCharacterSet, 3351).
--define(wxStyledTextCtrl_StyleSetFontEncoding, 3352).
--define(wxStyledTextCtrl_CmdKeyExecute, 3353).
--define(wxStyledTextCtrl_SetMargins, 3354).
--define(wxStyledTextCtrl_GetSelection, 3355).
--define(wxStyledTextCtrl_PointFromPosition, 3356).
--define(wxStyledTextCtrl_ScrollToLine, 3357).
--define(wxStyledTextCtrl_ScrollToColumn, 3358).
--define(wxStyledTextCtrl_SendMsg, 3359).
--define(wxStyledTextCtrl_SetVScrollBar, 3360).
--define(wxStyledTextCtrl_SetHScrollBar, 3361).
--define(wxStyledTextCtrl_GetLastKeydownProcessed, 3362).
--define(wxStyledTextCtrl_SetLastKeydownProcessed, 3363).
--define(wxStyledTextCtrl_SaveFile, 3364).
--define(wxStyledTextCtrl_LoadFile, 3365).
--define(wxStyledTextCtrl_DoDragOver, 3366).
--define(wxStyledTextCtrl_DoDropText, 3367).
--define(wxStyledTextCtrl_GetUseAntiAliasing, 3368).
--define(wxStyledTextCtrl_AddTextRaw, 3369).
--define(wxStyledTextCtrl_InsertTextRaw, 3370).
--define(wxStyledTextCtrl_GetCurLineRaw, 3371).
--define(wxStyledTextCtrl_GetLineRaw, 3372).
--define(wxStyledTextCtrl_GetSelectedTextRaw, 3373).
--define(wxStyledTextCtrl_GetTextRangeRaw, 3374).
--define(wxStyledTextCtrl_SetTextRaw, 3375).
--define(wxStyledTextCtrl_GetTextRaw, 3376).
--define(wxStyledTextCtrl_AppendTextRaw, 3377).
--define(wxArtProvider_GetBitmap, 3378).
--define(wxArtProvider_GetIcon, 3379).
--define(wxTreeEvent_GetKeyCode, 3380).
--define(wxTreeEvent_GetItem, 3381).
--define(wxTreeEvent_GetKeyEvent, 3382).
--define(wxTreeEvent_GetLabel, 3383).
--define(wxTreeEvent_GetOldItem, 3384).
--define(wxTreeEvent_GetPoint, 3385).
--define(wxTreeEvent_IsEditCancelled, 3386).
--define(wxTreeEvent_SetToolTip, 3387).
--define(wxNotebookEvent_GetOldSelection, 3388).
--define(wxNotebookEvent_GetSelection, 3389).
--define(wxNotebookEvent_SetOldSelection, 3390).
--define(wxNotebookEvent_SetSelection, 3391).
--define(wxFileDataObject_new, 3392).
--define(wxFileDataObject_AddFile, 3393).
--define(wxFileDataObject_GetFilenames, 3394).
--define(wxFileDataObject_destroy, 3395).
--define(wxTextDataObject_new, 3396).
--define(wxTextDataObject_GetTextLength, 3397).
--define(wxTextDataObject_GetText, 3398).
--define(wxTextDataObject_SetText, 3399).
--define(wxTextDataObject_destroy, 3400).
--define(wxBitmapDataObject_new_1_1, 3401).
--define(wxBitmapDataObject_new_1_0, 3402).
--define(wxBitmapDataObject_GetBitmap, 3403).
--define(wxBitmapDataObject_SetBitmap, 3404).
--define(wxBitmapDataObject_destroy, 3405).
--define(wxClipboard_new, 3407).
--define(wxClipboard_destruct, 3408).
--define(wxClipboard_AddData, 3409).
--define(wxClipboard_Clear, 3410).
--define(wxClipboard_Close, 3411).
--define(wxClipboard_Flush, 3412).
--define(wxClipboard_GetData, 3413).
--define(wxClipboard_IsOpened, 3414).
--define(wxClipboard_Open, 3415).
--define(wxClipboard_SetData, 3416).
--define(wxClipboard_UsePrimarySelection, 3418).
--define(wxClipboard_IsSupported, 3419).
--define(wxClipboard_Get, 3420).
--define(wxSpinEvent_GetPosition, 3421).
--define(wxSpinEvent_SetPosition, 3422).
--define(wxSplitterWindow_new_0, 3423).
--define(wxSplitterWindow_new_2, 3424).
--define(wxSplitterWindow_destruct, 3425).
--define(wxSplitterWindow_Create, 3426).
--define(wxSplitterWindow_GetMinimumPaneSize, 3427).
--define(wxSplitterWindow_GetSashGravity, 3428).
--define(wxSplitterWindow_GetSashPosition, 3429).
--define(wxSplitterWindow_GetSplitMode, 3430).
--define(wxSplitterWindow_GetWindow1, 3431).
--define(wxSplitterWindow_GetWindow2, 3432).
--define(wxSplitterWindow_Initialize, 3433).
--define(wxSplitterWindow_IsSplit, 3434).
--define(wxSplitterWindow_ReplaceWindow, 3435).
--define(wxSplitterWindow_SetSashGravity, 3436).
--define(wxSplitterWindow_SetSashPosition, 3437).
--define(wxSplitterWindow_SetSashSize, 3438).
--define(wxSplitterWindow_SetMinimumPaneSize, 3439).
--define(wxSplitterWindow_SetSplitMode, 3440).
--define(wxSplitterWindow_SplitHorizontally, 3441).
--define(wxSplitterWindow_SplitVertically, 3442).
--define(wxSplitterWindow_Unsplit, 3443).
--define(wxSplitterWindow_UpdateSize, 3444).
--define(wxSplitterEvent_GetSashPosition, 3445).
--define(wxSplitterEvent_GetX, 3446).
--define(wxSplitterEvent_GetY, 3447).
--define(wxSplitterEvent_GetWindowBeingRemoved, 3448).
--define(wxSplitterEvent_SetSashPosition, 3449).
--define(wxHtmlWindow_new_0, 3450).
--define(wxHtmlWindow_new_2, 3451).
--define(wxHtmlWindow_AppendToPage, 3452).
--define(wxHtmlWindow_GetOpenedAnchor, 3453).
--define(wxHtmlWindow_GetOpenedPage, 3454).
--define(wxHtmlWindow_GetOpenedPageTitle, 3455).
--define(wxHtmlWindow_GetRelatedFrame, 3456).
--define(wxHtmlWindow_HistoryBack, 3457).
--define(wxHtmlWindow_HistoryCanBack, 3458).
--define(wxHtmlWindow_HistoryCanForward, 3459).
--define(wxHtmlWindow_HistoryClear, 3460).
--define(wxHtmlWindow_HistoryForward, 3461).
--define(wxHtmlWindow_LoadFile, 3462).
--define(wxHtmlWindow_LoadPage, 3463).
--define(wxHtmlWindow_SelectAll, 3464).
--define(wxHtmlWindow_SelectionToText, 3465).
--define(wxHtmlWindow_SelectLine, 3466).
--define(wxHtmlWindow_SelectWord, 3467).
--define(wxHtmlWindow_SetBorders, 3468).
--define(wxHtmlWindow_SetFonts, 3469).
--define(wxHtmlWindow_SetPage, 3470).
--define(wxHtmlWindow_SetRelatedFrame, 3471).
--define(wxHtmlWindow_SetRelatedStatusBar, 3472).
--define(wxHtmlWindow_ToText, 3473).
--define(wxHtmlWindow_destroy, 3474).
--define(wxHtmlLinkEvent_GetLinkInfo, 3475).
--define(wxAuiNotebookEvent_SetSelection, 3476).
--define(wxAuiNotebookEvent_GetSelection, 3477).
--define(wxAuiNotebookEvent_SetOldSelection, 3478).
--define(wxAuiNotebookEvent_GetOldSelection, 3479).
--define(wxAuiNotebookEvent_SetDragSource, 3480).
--define(wxAuiNotebookEvent_GetDragSource, 3481).
--define(wxAuiManagerEvent_SetManager, 3482).
--define(wxAuiManagerEvent_GetManager, 3483).
--define(wxAuiManagerEvent_SetPane, 3484).
--define(wxAuiManagerEvent_GetPane, 3485).
--define(wxAuiManagerEvent_SetButton, 3486).
--define(wxAuiManagerEvent_GetButton, 3487).
--define(wxAuiManagerEvent_SetDC, 3488).
--define(wxAuiManagerEvent_GetDC, 3489).
--define(wxAuiManagerEvent_Veto, 3490).
--define(wxAuiManagerEvent_GetVeto, 3491).
--define(wxAuiManagerEvent_SetCanVeto, 3492).
--define(wxAuiManagerEvent_CanVeto, 3493).
--define(wxLogNull_new, 3494).
--define(wxLogNull_destroy, 3495).
+-define(wxListCtrl_GetEditControl, 1675).
+-define(wxListCtrl_GetImageList, 1676).
+-define(wxListCtrl_GetItem, 1677).
+-define(wxListCtrl_GetItemBackgroundColour, 1678).
+-define(wxListCtrl_GetItemCount, 1679).
+-define(wxListCtrl_GetItemData, 1680).
+-define(wxListCtrl_GetItemFont, 1681).
+-define(wxListCtrl_GetItemPosition, 1682).
+-define(wxListCtrl_GetItemRect, 1683).
+-define(wxListCtrl_GetItemSpacing, 1684).
+-define(wxListCtrl_GetItemState, 1685).
+-define(wxListCtrl_GetItemText, 1686).
+-define(wxListCtrl_GetItemTextColour, 1687).
+-define(wxListCtrl_GetNextItem, 1688).
+-define(wxListCtrl_GetSelectedItemCount, 1689).
+-define(wxListCtrl_GetTextColour, 1690).
+-define(wxListCtrl_GetTopItem, 1691).
+-define(wxListCtrl_GetViewRect, 1692).
+-define(wxListCtrl_HitTest, 1693).
+-define(wxListCtrl_InsertColumn_2, 1694).
+-define(wxListCtrl_InsertColumn_3, 1695).
+-define(wxListCtrl_InsertItem_1, 1696).
+-define(wxListCtrl_InsertItem_2_1, 1697).
+-define(wxListCtrl_InsertItem_2_0, 1698).
+-define(wxListCtrl_InsertItem_3, 1699).
+-define(wxListCtrl_RefreshItem, 1700).
+-define(wxListCtrl_RefreshItems, 1701).
+-define(wxListCtrl_ScrollList, 1702).
+-define(wxListCtrl_SetBackgroundColour, 1703).
+-define(wxListCtrl_SetColumn, 1704).
+-define(wxListCtrl_SetColumnWidth, 1705).
+-define(wxListCtrl_SetImageList, 1706).
+-define(wxListCtrl_SetItem_1, 1707).
+-define(wxListCtrl_SetItem_4, 1708).
+-define(wxListCtrl_SetItemBackgroundColour, 1709).
+-define(wxListCtrl_SetItemCount, 1710).
+-define(wxListCtrl_SetItemData, 1711).
+-define(wxListCtrl_SetItemFont, 1712).
+-define(wxListCtrl_SetItemImage, 1713).
+-define(wxListCtrl_SetItemColumnImage, 1714).
+-define(wxListCtrl_SetItemPosition, 1715).
+-define(wxListCtrl_SetItemState, 1716).
+-define(wxListCtrl_SetItemText, 1717).
+-define(wxListCtrl_SetItemTextColour, 1718).
+-define(wxListCtrl_SetSingleStyle, 1719).
+-define(wxListCtrl_SetTextColour, 1720).
+-define(wxListCtrl_SetWindowStyleFlag, 1721).
+-define(wxListCtrl_SortItems, 1722).
+-define(wxListCtrl_destroy, 1723).
+-define(wxListView_ClearColumnImage, 1724).
+-define(wxListView_Focus, 1725).
+-define(wxListView_GetFirstSelected, 1726).
+-define(wxListView_GetFocusedItem, 1727).
+-define(wxListView_GetNextSelected, 1728).
+-define(wxListView_IsSelected, 1729).
+-define(wxListView_Select, 1730).
+-define(wxListView_SetColumnImage, 1731).
+-define(wxListItem_new_0, 1732).
+-define(wxListItem_new_1, 1733).
+-define(wxListItem_destruct, 1734).
+-define(wxListItem_Clear, 1735).
+-define(wxListItem_GetAlign, 1736).
+-define(wxListItem_GetBackgroundColour, 1737).
+-define(wxListItem_GetColumn, 1738).
+-define(wxListItem_GetFont, 1739).
+-define(wxListItem_GetId, 1740).
+-define(wxListItem_GetImage, 1741).
+-define(wxListItem_GetMask, 1742).
+-define(wxListItem_GetState, 1743).
+-define(wxListItem_GetText, 1744).
+-define(wxListItem_GetTextColour, 1745).
+-define(wxListItem_GetWidth, 1746).
+-define(wxListItem_SetAlign, 1747).
+-define(wxListItem_SetBackgroundColour, 1748).
+-define(wxListItem_SetColumn, 1749).
+-define(wxListItem_SetFont, 1750).
+-define(wxListItem_SetId, 1751).
+-define(wxListItem_SetImage, 1752).
+-define(wxListItem_SetMask, 1753).
+-define(wxListItem_SetState, 1754).
+-define(wxListItem_SetStateMask, 1755).
+-define(wxListItem_SetText, 1756).
+-define(wxListItem_SetTextColour, 1757).
+-define(wxListItem_SetWidth, 1758).
+-define(wxImageList_new_0, 1759).
+-define(wxImageList_new_3, 1760).
+-define(wxImageList_Add_1, 1761).
+-define(wxImageList_Add_2_0, 1762).
+-define(wxImageList_Add_2_1, 1763).
+-define(wxImageList_Create, 1764).
+-define(wxImageList_Draw, 1766).
+-define(wxImageList_GetBitmap, 1767).
+-define(wxImageList_GetIcon, 1768).
+-define(wxImageList_GetImageCount, 1769).
+-define(wxImageList_GetSize, 1770).
+-define(wxImageList_Remove, 1771).
+-define(wxImageList_RemoveAll, 1772).
+-define(wxImageList_Replace_2, 1773).
+-define(wxImageList_Replace_3, 1774).
+-define(wxImageList_destroy, 1775).
+-define(wxTextAttr_new_0, 1776).
+-define(wxTextAttr_new_2, 1777).
+-define(wxTextAttr_GetAlignment, 1778).
+-define(wxTextAttr_GetBackgroundColour, 1779).
+-define(wxTextAttr_GetFont, 1780).
+-define(wxTextAttr_GetLeftIndent, 1781).
+-define(wxTextAttr_GetLeftSubIndent, 1782).
+-define(wxTextAttr_GetRightIndent, 1783).
+-define(wxTextAttr_GetTabs, 1784).
+-define(wxTextAttr_GetTextColour, 1785).
+-define(wxTextAttr_HasBackgroundColour, 1786).
+-define(wxTextAttr_HasFont, 1787).
+-define(wxTextAttr_HasTextColour, 1788).
+-define(wxTextAttr_GetFlags, 1789).
+-define(wxTextAttr_IsDefault, 1790).
+-define(wxTextAttr_SetAlignment, 1791).
+-define(wxTextAttr_SetBackgroundColour, 1792).
+-define(wxTextAttr_SetFlags, 1793).
+-define(wxTextAttr_SetFont, 1794).
+-define(wxTextAttr_SetLeftIndent, 1795).
+-define(wxTextAttr_SetRightIndent, 1796).
+-define(wxTextAttr_SetTabs, 1797).
+-define(wxTextAttr_SetTextColour, 1798).
+-define(wxTextAttr_destroy, 1799).
+-define(wxTextCtrl_new_3, 1801).
+-define(wxTextCtrl_new_0, 1802).
+-define(wxTextCtrl_destruct, 1804).
+-define(wxTextCtrl_AppendText, 1805).
+-define(wxTextCtrl_CanCopy, 1806).
+-define(wxTextCtrl_CanCut, 1807).
+-define(wxTextCtrl_CanPaste, 1808).
+-define(wxTextCtrl_CanRedo, 1809).
+-define(wxTextCtrl_CanUndo, 1810).
+-define(wxTextCtrl_Clear, 1811).
+-define(wxTextCtrl_Copy, 1812).
+-define(wxTextCtrl_Create, 1813).
+-define(wxTextCtrl_Cut, 1814).
+-define(wxTextCtrl_DiscardEdits, 1815).
+-define(wxTextCtrl_EmulateKeyPress, 1816).
+-define(wxTextCtrl_GetDefaultStyle, 1817).
+-define(wxTextCtrl_GetInsertionPoint, 1818).
+-define(wxTextCtrl_GetLastPosition, 1819).
+-define(wxTextCtrl_GetLineLength, 1820).
+-define(wxTextCtrl_GetLineText, 1821).
+-define(wxTextCtrl_GetNumberOfLines, 1822).
+-define(wxTextCtrl_GetRange, 1823).
+-define(wxTextCtrl_GetSelection, 1824).
+-define(wxTextCtrl_GetStringSelection, 1825).
+-define(wxTextCtrl_GetStyle, 1826).
+-define(wxTextCtrl_GetValue, 1827).
+-define(wxTextCtrl_IsEditable, 1828).
+-define(wxTextCtrl_IsModified, 1829).
+-define(wxTextCtrl_IsMultiLine, 1830).
+-define(wxTextCtrl_IsSingleLine, 1831).
+-define(wxTextCtrl_LoadFile, 1832).
+-define(wxTextCtrl_MarkDirty, 1833).
+-define(wxTextCtrl_Paste, 1834).
+-define(wxTextCtrl_PositionToXY, 1835).
+-define(wxTextCtrl_Redo, 1836).
+-define(wxTextCtrl_Remove, 1837).
+-define(wxTextCtrl_Replace, 1838).
+-define(wxTextCtrl_SaveFile, 1839).
+-define(wxTextCtrl_SetDefaultStyle, 1840).
+-define(wxTextCtrl_SetEditable, 1841).
+-define(wxTextCtrl_SetInsertionPoint, 1842).
+-define(wxTextCtrl_SetInsertionPointEnd, 1843).
+-define(wxTextCtrl_SetMaxLength, 1845).
+-define(wxTextCtrl_SetSelection, 1846).
+-define(wxTextCtrl_SetStyle, 1847).
+-define(wxTextCtrl_SetValue, 1848).
+-define(wxTextCtrl_ShowPosition, 1849).
+-define(wxTextCtrl_Undo, 1850).
+-define(wxTextCtrl_WriteText, 1851).
+-define(wxTextCtrl_XYToPosition, 1852).
+-define(wxNotebook_new_0, 1855).
+-define(wxNotebook_new_3, 1856).
+-define(wxNotebook_destruct, 1857).
+-define(wxNotebook_AddPage, 1858).
+-define(wxNotebook_AdvanceSelection, 1859).
+-define(wxNotebook_AssignImageList, 1860).
+-define(wxNotebook_Create, 1861).
+-define(wxNotebook_DeleteAllPages, 1862).
+-define(wxNotebook_DeletePage, 1863).
+-define(wxNotebook_RemovePage, 1864).
+-define(wxNotebook_GetCurrentPage, 1865).
+-define(wxNotebook_GetImageList, 1866).
+-define(wxNotebook_GetPage, 1868).
+-define(wxNotebook_GetPageCount, 1869).
+-define(wxNotebook_GetPageImage, 1870).
+-define(wxNotebook_GetPageText, 1871).
+-define(wxNotebook_GetRowCount, 1872).
+-define(wxNotebook_GetSelection, 1873).
+-define(wxNotebook_GetThemeBackgroundColour, 1874).
+-define(wxNotebook_HitTest, 1876).
+-define(wxNotebook_InsertPage, 1878).
+-define(wxNotebook_SetImageList, 1879).
+-define(wxNotebook_SetPadding, 1880).
+-define(wxNotebook_SetPageSize, 1881).
+-define(wxNotebook_SetPageImage, 1882).
+-define(wxNotebook_SetPageText, 1883).
+-define(wxNotebook_SetSelection, 1884).
+-define(wxNotebook_ChangeSelection, 1885).
+-define(wxChoicebook_new_0, 1886).
+-define(wxChoicebook_new_3, 1887).
+-define(wxChoicebook_AddPage, 1888).
+-define(wxChoicebook_AdvanceSelection, 1889).
+-define(wxChoicebook_AssignImageList, 1890).
+-define(wxChoicebook_Create, 1891).
+-define(wxChoicebook_DeleteAllPages, 1892).
+-define(wxChoicebook_DeletePage, 1893).
+-define(wxChoicebook_RemovePage, 1894).
+-define(wxChoicebook_GetCurrentPage, 1895).
+-define(wxChoicebook_GetImageList, 1896).
+-define(wxChoicebook_GetPage, 1898).
+-define(wxChoicebook_GetPageCount, 1899).
+-define(wxChoicebook_GetPageImage, 1900).
+-define(wxChoicebook_GetPageText, 1901).
+-define(wxChoicebook_GetSelection, 1902).
+-define(wxChoicebook_HitTest, 1903).
+-define(wxChoicebook_InsertPage, 1904).
+-define(wxChoicebook_SetImageList, 1905).
+-define(wxChoicebook_SetPageSize, 1906).
+-define(wxChoicebook_SetPageImage, 1907).
+-define(wxChoicebook_SetPageText, 1908).
+-define(wxChoicebook_SetSelection, 1909).
+-define(wxChoicebook_ChangeSelection, 1910).
+-define(wxChoicebook_destroy, 1911).
+-define(wxToolbook_new_0, 1912).
+-define(wxToolbook_new_3, 1913).
+-define(wxToolbook_AddPage, 1914).
+-define(wxToolbook_AdvanceSelection, 1915).
+-define(wxToolbook_AssignImageList, 1916).
+-define(wxToolbook_Create, 1917).
+-define(wxToolbook_DeleteAllPages, 1918).
+-define(wxToolbook_DeletePage, 1919).
+-define(wxToolbook_RemovePage, 1920).
+-define(wxToolbook_GetCurrentPage, 1921).
+-define(wxToolbook_GetImageList, 1922).
+-define(wxToolbook_GetPage, 1924).
+-define(wxToolbook_GetPageCount, 1925).
+-define(wxToolbook_GetPageImage, 1926).
+-define(wxToolbook_GetPageText, 1927).
+-define(wxToolbook_GetSelection, 1928).
+-define(wxToolbook_HitTest, 1930).
+-define(wxToolbook_InsertPage, 1931).
+-define(wxToolbook_SetImageList, 1932).
+-define(wxToolbook_SetPageSize, 1933).
+-define(wxToolbook_SetPageImage, 1934).
+-define(wxToolbook_SetPageText, 1935).
+-define(wxToolbook_SetSelection, 1936).
+-define(wxToolbook_ChangeSelection, 1937).
+-define(wxToolbook_destroy, 1938).
+-define(wxListbook_new_0, 1939).
+-define(wxListbook_new_3, 1940).
+-define(wxListbook_AddPage, 1941).
+-define(wxListbook_AdvanceSelection, 1942).
+-define(wxListbook_AssignImageList, 1943).
+-define(wxListbook_Create, 1944).
+-define(wxListbook_DeleteAllPages, 1945).
+-define(wxListbook_DeletePage, 1946).
+-define(wxListbook_RemovePage, 1947).
+-define(wxListbook_GetCurrentPage, 1948).
+-define(wxListbook_GetImageList, 1949).
+-define(wxListbook_GetPage, 1951).
+-define(wxListbook_GetPageCount, 1952).
+-define(wxListbook_GetPageImage, 1953).
+-define(wxListbook_GetPageText, 1954).
+-define(wxListbook_GetSelection, 1955).
+-define(wxListbook_HitTest, 1957).
+-define(wxListbook_InsertPage, 1958).
+-define(wxListbook_SetImageList, 1959).
+-define(wxListbook_SetPageSize, 1960).
+-define(wxListbook_SetPageImage, 1961).
+-define(wxListbook_SetPageText, 1962).
+-define(wxListbook_SetSelection, 1963).
+-define(wxListbook_ChangeSelection, 1964).
+-define(wxListbook_destroy, 1965).
+-define(wxTreebook_new_0, 1966).
+-define(wxTreebook_new_3, 1967).
+-define(wxTreebook_AddPage, 1968).
+-define(wxTreebook_AdvanceSelection, 1969).
+-define(wxTreebook_AssignImageList, 1970).
+-define(wxTreebook_Create, 1971).
+-define(wxTreebook_DeleteAllPages, 1972).
+-define(wxTreebook_DeletePage, 1973).
+-define(wxTreebook_RemovePage, 1974).
+-define(wxTreebook_GetCurrentPage, 1975).
+-define(wxTreebook_GetImageList, 1976).
+-define(wxTreebook_GetPage, 1978).
+-define(wxTreebook_GetPageCount, 1979).
+-define(wxTreebook_GetPageImage, 1980).
+-define(wxTreebook_GetPageText, 1981).
+-define(wxTreebook_GetSelection, 1982).
+-define(wxTreebook_ExpandNode, 1983).
+-define(wxTreebook_IsNodeExpanded, 1984).
+-define(wxTreebook_HitTest, 1986).
+-define(wxTreebook_InsertPage, 1987).
+-define(wxTreebook_InsertSubPage, 1988).
+-define(wxTreebook_SetImageList, 1989).
+-define(wxTreebook_SetPageSize, 1990).
+-define(wxTreebook_SetPageImage, 1991).
+-define(wxTreebook_SetPageText, 1992).
+-define(wxTreebook_SetSelection, 1993).
+-define(wxTreebook_ChangeSelection, 1994).
+-define(wxTreebook_destroy, 1995).
+-define(wxTreeCtrl_new_2, 1998).
+-define(wxTreeCtrl_new_0, 1999).
+-define(wxTreeCtrl_destruct, 2001).
+-define(wxTreeCtrl_AddRoot, 2002).
+-define(wxTreeCtrl_AppendItem, 2003).
+-define(wxTreeCtrl_AssignImageList, 2004).
+-define(wxTreeCtrl_AssignStateImageList, 2005).
+-define(wxTreeCtrl_Collapse, 2006).
+-define(wxTreeCtrl_CollapseAndReset, 2007).
+-define(wxTreeCtrl_Create, 2008).
+-define(wxTreeCtrl_Delete, 2009).
+-define(wxTreeCtrl_DeleteAllItems, 2010).
+-define(wxTreeCtrl_DeleteChildren, 2011).
+-define(wxTreeCtrl_EnsureVisible, 2012).
+-define(wxTreeCtrl_Expand, 2013).
+-define(wxTreeCtrl_GetBoundingRect, 2014).
+-define(wxTreeCtrl_GetChildrenCount, 2016).
+-define(wxTreeCtrl_GetCount, 2017).
+-define(wxTreeCtrl_GetEditControl, 2018).
+-define(wxTreeCtrl_GetFirstChild, 2019).
+-define(wxTreeCtrl_GetNextChild, 2020).
+-define(wxTreeCtrl_GetFirstVisibleItem, 2021).
+-define(wxTreeCtrl_GetImageList, 2022).
+-define(wxTreeCtrl_GetIndent, 2023).
+-define(wxTreeCtrl_GetItemBackgroundColour, 2024).
+-define(wxTreeCtrl_GetItemData, 2025).
+-define(wxTreeCtrl_GetItemFont, 2026).
+-define(wxTreeCtrl_GetItemImage_1, 2027).
+-define(wxTreeCtrl_GetItemImage_2, 2028).
+-define(wxTreeCtrl_GetItemText, 2029).
+-define(wxTreeCtrl_GetItemTextColour, 2030).
+-define(wxTreeCtrl_GetLastChild, 2031).
+-define(wxTreeCtrl_GetNextSibling, 2032).
+-define(wxTreeCtrl_GetNextVisible, 2033).
+-define(wxTreeCtrl_GetItemParent, 2034).
+-define(wxTreeCtrl_GetPrevSibling, 2035).
+-define(wxTreeCtrl_GetPrevVisible, 2036).
+-define(wxTreeCtrl_GetRootItem, 2037).
+-define(wxTreeCtrl_GetSelection, 2038).
+-define(wxTreeCtrl_GetSelections, 2039).
+-define(wxTreeCtrl_GetStateImageList, 2040).
+-define(wxTreeCtrl_HitTest, 2041).
+-define(wxTreeCtrl_InsertItem, 2043).
+-define(wxTreeCtrl_IsBold, 2044).
+-define(wxTreeCtrl_IsExpanded, 2045).
+-define(wxTreeCtrl_IsSelected, 2046).
+-define(wxTreeCtrl_IsVisible, 2047).
+-define(wxTreeCtrl_ItemHasChildren, 2048).
+-define(wxTreeCtrl_PrependItem, 2049).
+-define(wxTreeCtrl_ScrollTo, 2050).
+-define(wxTreeCtrl_SelectItem_1, 2051).
+-define(wxTreeCtrl_SelectItem_2, 2052).
+-define(wxTreeCtrl_SetIndent, 2053).
+-define(wxTreeCtrl_SetImageList, 2054).
+-define(wxTreeCtrl_SetItemBackgroundColour, 2055).
+-define(wxTreeCtrl_SetItemBold, 2056).
+-define(wxTreeCtrl_SetItemData, 2057).
+-define(wxTreeCtrl_SetItemDropHighlight, 2058).
+-define(wxTreeCtrl_SetItemFont, 2059).
+-define(wxTreeCtrl_SetItemHasChildren, 2060).
+-define(wxTreeCtrl_SetItemImage_2, 2061).
+-define(wxTreeCtrl_SetItemImage_3, 2062).
+-define(wxTreeCtrl_SetItemText, 2063).
+-define(wxTreeCtrl_SetItemTextColour, 2064).
+-define(wxTreeCtrl_SetStateImageList, 2065).
+-define(wxTreeCtrl_SetWindowStyle, 2066).
+-define(wxTreeCtrl_SortChildren, 2067).
+-define(wxTreeCtrl_Toggle, 2068).
+-define(wxTreeCtrl_ToggleItemSelection, 2069).
+-define(wxTreeCtrl_Unselect, 2070).
+-define(wxTreeCtrl_UnselectAll, 2071).
+-define(wxTreeCtrl_UnselectItem, 2072).
+-define(wxScrollBar_new_0, 2073).
+-define(wxScrollBar_new_3, 2074).
+-define(wxScrollBar_destruct, 2075).
+-define(wxScrollBar_Create, 2076).
+-define(wxScrollBar_GetRange, 2077).
+-define(wxScrollBar_GetPageSize, 2078).
+-define(wxScrollBar_GetThumbPosition, 2079).
+-define(wxScrollBar_GetThumbSize, 2080).
+-define(wxScrollBar_SetThumbPosition, 2081).
+-define(wxScrollBar_SetScrollbar, 2082).
+-define(wxSpinButton_new_2, 2084).
+-define(wxSpinButton_new_0, 2085).
+-define(wxSpinButton_Create, 2086).
+-define(wxSpinButton_GetMax, 2087).
+-define(wxSpinButton_GetMin, 2088).
+-define(wxSpinButton_GetValue, 2089).
+-define(wxSpinButton_SetRange, 2090).
+-define(wxSpinButton_SetValue, 2091).
+-define(wxSpinButton_destroy, 2092).
+-define(wxSpinCtrl_new_0, 2093).
+-define(wxSpinCtrl_new_2, 2094).
+-define(wxSpinCtrl_Create, 2096).
+-define(wxSpinCtrl_SetValue_1_1, 2099).
+-define(wxSpinCtrl_SetValue_1_0, 2100).
+-define(wxSpinCtrl_GetValue, 2102).
+-define(wxSpinCtrl_SetRange, 2104).
+-define(wxSpinCtrl_SetSelection, 2105).
+-define(wxSpinCtrl_GetMin, 2107).
+-define(wxSpinCtrl_GetMax, 2109).
+-define(wxSpinCtrl_destroy, 2110).
+-define(wxStaticText_new_0, 2111).
+-define(wxStaticText_new_4, 2112).
+-define(wxStaticText_Create, 2113).
+-define(wxStaticText_GetLabel, 2114).
+-define(wxStaticText_SetLabel, 2115).
+-define(wxStaticText_Wrap, 2116).
+-define(wxStaticText_destroy, 2117).
+-define(wxStaticBitmap_new_0, 2118).
+-define(wxStaticBitmap_new_4, 2119).
+-define(wxStaticBitmap_Create, 2120).
+-define(wxStaticBitmap_GetBitmap, 2121).
+-define(wxStaticBitmap_SetBitmap, 2122).
+-define(wxStaticBitmap_destroy, 2123).
+-define(wxRadioBox_new, 2124).
+-define(wxRadioBox_destruct, 2126).
+-define(wxRadioBox_Create, 2127).
+-define(wxRadioBox_Enable_2, 2128).
+-define(wxRadioBox_Enable_1, 2129).
+-define(wxRadioBox_GetSelection, 2130).
+-define(wxRadioBox_GetString, 2131).
+-define(wxRadioBox_SetSelection, 2132).
+-define(wxRadioBox_Show_2, 2133).
+-define(wxRadioBox_Show_1, 2134).
+-define(wxRadioBox_GetColumnCount, 2135).
+-define(wxRadioBox_GetItemHelpText, 2136).
+-define(wxRadioBox_GetItemToolTip, 2137).
+-define(wxRadioBox_GetItemFromPoint, 2139).
+-define(wxRadioBox_GetRowCount, 2140).
+-define(wxRadioBox_IsItemEnabled, 2141).
+-define(wxRadioBox_IsItemShown, 2142).
+-define(wxRadioBox_SetItemHelpText, 2143).
+-define(wxRadioBox_SetItemToolTip, 2144).
+-define(wxRadioButton_new_0, 2145).
+-define(wxRadioButton_new_4, 2146).
+-define(wxRadioButton_Create, 2147).
+-define(wxRadioButton_GetValue, 2148).
+-define(wxRadioButton_SetValue, 2149).
+-define(wxRadioButton_destroy, 2150).
+-define(wxSlider_new_6, 2152).
+-define(wxSlider_new_0, 2153).
+-define(wxSlider_Create, 2154).
+-define(wxSlider_GetLineSize, 2155).
+-define(wxSlider_GetMax, 2156).
+-define(wxSlider_GetMin, 2157).
+-define(wxSlider_GetPageSize, 2158).
+-define(wxSlider_GetThumbLength, 2159).
+-define(wxSlider_GetValue, 2160).
+-define(wxSlider_SetLineSize, 2161).
+-define(wxSlider_SetPageSize, 2162).
+-define(wxSlider_SetRange, 2163).
+-define(wxSlider_SetThumbLength, 2164).
+-define(wxSlider_SetValue, 2165).
+-define(wxSlider_destroy, 2166).
+-define(wxDialog_new_4, 2168).
+-define(wxDialog_new_0, 2169).
+-define(wxDialog_destruct, 2171).
+-define(wxDialog_Create, 2172).
+-define(wxDialog_CreateButtonSizer, 2173).
+-define(wxDialog_CreateStdDialogButtonSizer, 2174).
+-define(wxDialog_EndModal, 2175).
+-define(wxDialog_GetAffirmativeId, 2176).
+-define(wxDialog_GetReturnCode, 2177).
+-define(wxDialog_IsModal, 2178).
+-define(wxDialog_SetAffirmativeId, 2179).
+-define(wxDialog_SetReturnCode, 2180).
+-define(wxDialog_Show, 2181).
+-define(wxDialog_ShowModal, 2182).
+-define(wxColourDialog_new_0, 2183).
+-define(wxColourDialog_new_2, 2184).
+-define(wxColourDialog_destruct, 2185).
+-define(wxColourDialog_Create, 2186).
+-define(wxColourDialog_GetColourData, 2187).
+-define(wxColourData_new_0, 2188).
+-define(wxColourData_new_1, 2189).
+-define(wxColourData_destruct, 2190).
+-define(wxColourData_GetChooseFull, 2191).
+-define(wxColourData_GetColour, 2192).
+-define(wxColourData_GetCustomColour, 2194).
+-define(wxColourData_SetChooseFull, 2195).
+-define(wxColourData_SetColour, 2196).
+-define(wxColourData_SetCustomColour, 2197).
+-define(wxPalette_new_0, 2198).
+-define(wxPalette_new_4, 2199).
+-define(wxPalette_destruct, 2201).
+-define(wxPalette_Create, 2202).
+-define(wxPalette_GetColoursCount, 2203).
+-define(wxPalette_GetPixel, 2204).
+-define(wxPalette_GetRGB, 2205).
+-define(wxPalette_IsOk, 2206).
+-define(wxDirDialog_new, 2210).
+-define(wxDirDialog_destruct, 2211).
+-define(wxDirDialog_GetPath, 2212).
+-define(wxDirDialog_GetMessage, 2213).
+-define(wxDirDialog_SetMessage, 2214).
+-define(wxDirDialog_SetPath, 2215).
+-define(wxFileDialog_new, 2219).
+-define(wxFileDialog_destruct, 2220).
+-define(wxFileDialog_GetDirectory, 2221).
+-define(wxFileDialog_GetFilename, 2222).
+-define(wxFileDialog_GetFilenames, 2223).
+-define(wxFileDialog_GetFilterIndex, 2224).
+-define(wxFileDialog_GetMessage, 2225).
+-define(wxFileDialog_GetPath, 2226).
+-define(wxFileDialog_GetPaths, 2227).
+-define(wxFileDialog_GetWildcard, 2228).
+-define(wxFileDialog_SetDirectory, 2229).
+-define(wxFileDialog_SetFilename, 2230).
+-define(wxFileDialog_SetFilterIndex, 2231).
+-define(wxFileDialog_SetMessage, 2232).
+-define(wxFileDialog_SetPath, 2233).
+-define(wxFileDialog_SetWildcard, 2234).
+-define(wxPickerBase_SetInternalMargin, 2235).
+-define(wxPickerBase_GetInternalMargin, 2236).
+-define(wxPickerBase_SetTextCtrlProportion, 2237).
+-define(wxPickerBase_SetPickerCtrlProportion, 2238).
+-define(wxPickerBase_GetTextCtrlProportion, 2239).
+-define(wxPickerBase_GetPickerCtrlProportion, 2240).
+-define(wxPickerBase_HasTextCtrl, 2241).
+-define(wxPickerBase_GetTextCtrl, 2242).
+-define(wxPickerBase_IsTextCtrlGrowable, 2243).
+-define(wxPickerBase_SetPickerCtrlGrowable, 2244).
+-define(wxPickerBase_SetTextCtrlGrowable, 2245).
+-define(wxPickerBase_IsPickerCtrlGrowable, 2246).
+-define(wxFilePickerCtrl_new_0, 2247).
+-define(wxFilePickerCtrl_new_3, 2248).
+-define(wxFilePickerCtrl_Create, 2249).
+-define(wxFilePickerCtrl_GetPath, 2250).
+-define(wxFilePickerCtrl_SetPath, 2251).
+-define(wxFilePickerCtrl_destroy, 2252).
+-define(wxDirPickerCtrl_new_0, 2253).
+-define(wxDirPickerCtrl_new_3, 2254).
+-define(wxDirPickerCtrl_Create, 2255).
+-define(wxDirPickerCtrl_GetPath, 2256).
+-define(wxDirPickerCtrl_SetPath, 2257).
+-define(wxDirPickerCtrl_destroy, 2258).
+-define(wxColourPickerCtrl_new_0, 2259).
+-define(wxColourPickerCtrl_new_3, 2260).
+-define(wxColourPickerCtrl_Create, 2261).
+-define(wxColourPickerCtrl_GetColour, 2262).
+-define(wxColourPickerCtrl_SetColour_1_1, 2263).
+-define(wxColourPickerCtrl_SetColour_1_0, 2264).
+-define(wxColourPickerCtrl_destroy, 2265).
+-define(wxDatePickerCtrl_new_0, 2266).
+-define(wxDatePickerCtrl_new_3, 2267).
+-define(wxDatePickerCtrl_GetRange, 2268).
+-define(wxDatePickerCtrl_GetValue, 2269).
+-define(wxDatePickerCtrl_SetRange, 2270).
+-define(wxDatePickerCtrl_SetValue, 2271).
+-define(wxDatePickerCtrl_destroy, 2272).
+-define(wxFontPickerCtrl_new_0, 2273).
+-define(wxFontPickerCtrl_new_3, 2274).
+-define(wxFontPickerCtrl_Create, 2275).
+-define(wxFontPickerCtrl_GetSelectedFont, 2276).
+-define(wxFontPickerCtrl_SetSelectedFont, 2277).
+-define(wxFontPickerCtrl_GetMaxPointSize, 2278).
+-define(wxFontPickerCtrl_SetMaxPointSize, 2279).
+-define(wxFontPickerCtrl_destroy, 2280).
+-define(wxFindReplaceDialog_new_0, 2283).
+-define(wxFindReplaceDialog_new_4, 2284).
+-define(wxFindReplaceDialog_destruct, 2285).
+-define(wxFindReplaceDialog_Create, 2286).
+-define(wxFindReplaceDialog_GetData, 2287).
+-define(wxFindReplaceData_new_0, 2288).
+-define(wxFindReplaceData_new_1, 2289).
+-define(wxFindReplaceData_GetFindString, 2290).
+-define(wxFindReplaceData_GetReplaceString, 2291).
+-define(wxFindReplaceData_GetFlags, 2292).
+-define(wxFindReplaceData_SetFlags, 2293).
+-define(wxFindReplaceData_SetFindString, 2294).
+-define(wxFindReplaceData_SetReplaceString, 2295).
+-define(wxFindReplaceData_destroy, 2296).
+-define(wxMultiChoiceDialog_new_0, 2297).
+-define(wxMultiChoiceDialog_new_5, 2299).
+-define(wxMultiChoiceDialog_GetSelections, 2300).
+-define(wxMultiChoiceDialog_SetSelections, 2301).
+-define(wxMultiChoiceDialog_destroy, 2302).
+-define(wxSingleChoiceDialog_new_0, 2303).
+-define(wxSingleChoiceDialog_new_5, 2305).
+-define(wxSingleChoiceDialog_GetSelection, 2306).
+-define(wxSingleChoiceDialog_GetStringSelection, 2307).
+-define(wxSingleChoiceDialog_SetSelection, 2308).
+-define(wxSingleChoiceDialog_destroy, 2309).
+-define(wxTextEntryDialog_new, 2310).
+-define(wxTextEntryDialog_GetValue, 2311).
+-define(wxTextEntryDialog_SetValue, 2312).
+-define(wxTextEntryDialog_destroy, 2313).
+-define(wxPasswordEntryDialog_new, 2314).
+-define(wxPasswordEntryDialog_destroy, 2315).
+-define(wxFontData_new_0, 2316).
+-define(wxFontData_new_1, 2317).
+-define(wxFontData_destruct, 2318).
+-define(wxFontData_EnableEffects, 2319).
+-define(wxFontData_GetAllowSymbols, 2320).
+-define(wxFontData_GetColour, 2321).
+-define(wxFontData_GetChosenFont, 2322).
+-define(wxFontData_GetEnableEffects, 2323).
+-define(wxFontData_GetInitialFont, 2324).
+-define(wxFontData_GetShowHelp, 2325).
+-define(wxFontData_SetAllowSymbols, 2326).
+-define(wxFontData_SetChosenFont, 2327).
+-define(wxFontData_SetColour, 2328).
+-define(wxFontData_SetInitialFont, 2329).
+-define(wxFontData_SetRange, 2330).
+-define(wxFontData_SetShowHelp, 2331).
+-define(wxFontDialog_new_0, 2335).
+-define(wxFontDialog_new_2, 2337).
+-define(wxFontDialog_Create, 2339).
+-define(wxFontDialog_GetFontData, 2340).
+-define(wxFontDialog_destroy, 2342).
+-define(wxProgressDialog_new, 2343).
+-define(wxProgressDialog_destruct, 2344).
+-define(wxProgressDialog_Resume, 2345).
+-define(wxProgressDialog_Update_2, 2346).
+-define(wxProgressDialog_Update_0, 2347).
+-define(wxMessageDialog_new, 2348).
+-define(wxMessageDialog_destruct, 2349).
+-define(wxPageSetupDialog_new, 2350).
+-define(wxPageSetupDialog_destruct, 2351).
+-define(wxPageSetupDialog_GetPageSetupData, 2352).
+-define(wxPageSetupDialog_ShowModal, 2353).
+-define(wxPageSetupDialogData_new_0, 2354).
+-define(wxPageSetupDialogData_new_1_0, 2355).
+-define(wxPageSetupDialogData_new_1_1, 2356).
+-define(wxPageSetupDialogData_destruct, 2357).
+-define(wxPageSetupDialogData_EnableHelp, 2358).
+-define(wxPageSetupDialogData_EnableMargins, 2359).
+-define(wxPageSetupDialogData_EnableOrientation, 2360).
+-define(wxPageSetupDialogData_EnablePaper, 2361).
+-define(wxPageSetupDialogData_EnablePrinter, 2362).
+-define(wxPageSetupDialogData_GetDefaultMinMargins, 2363).
+-define(wxPageSetupDialogData_GetEnableMargins, 2364).
+-define(wxPageSetupDialogData_GetEnableOrientation, 2365).
+-define(wxPageSetupDialogData_GetEnablePaper, 2366).
+-define(wxPageSetupDialogData_GetEnablePrinter, 2367).
+-define(wxPageSetupDialogData_GetEnableHelp, 2368).
+-define(wxPageSetupDialogData_GetDefaultInfo, 2369).
+-define(wxPageSetupDialogData_GetMarginTopLeft, 2370).
+-define(wxPageSetupDialogData_GetMarginBottomRight, 2371).
+-define(wxPageSetupDialogData_GetMinMarginTopLeft, 2372).
+-define(wxPageSetupDialogData_GetMinMarginBottomRight, 2373).
+-define(wxPageSetupDialogData_GetPaperId, 2374).
+-define(wxPageSetupDialogData_GetPaperSize, 2375).
+-define(wxPageSetupDialogData_GetPrintData, 2377).
+-define(wxPageSetupDialogData_IsOk, 2378).
+-define(wxPageSetupDialogData_SetDefaultInfo, 2379).
+-define(wxPageSetupDialogData_SetDefaultMinMargins, 2380).
+-define(wxPageSetupDialogData_SetMarginTopLeft, 2381).
+-define(wxPageSetupDialogData_SetMarginBottomRight, 2382).
+-define(wxPageSetupDialogData_SetMinMarginTopLeft, 2383).
+-define(wxPageSetupDialogData_SetMinMarginBottomRight, 2384).
+-define(wxPageSetupDialogData_SetPaperId, 2385).
+-define(wxPageSetupDialogData_SetPaperSize_1_1, 2386).
+-define(wxPageSetupDialogData_SetPaperSize_1_0, 2387).
+-define(wxPageSetupDialogData_SetPrintData, 2388).
+-define(wxPrintDialog_new_2_0, 2389).
+-define(wxPrintDialog_new_2_1, 2390).
+-define(wxPrintDialog_destruct, 2391).
+-define(wxPrintDialog_GetPrintDialogData, 2392).
+-define(wxPrintDialog_GetPrintDC, 2393).
+-define(wxPrintDialogData_new_0, 2394).
+-define(wxPrintDialogData_new_1_1, 2395).
+-define(wxPrintDialogData_new_1_0, 2396).
+-define(wxPrintDialogData_destruct, 2397).
+-define(wxPrintDialogData_EnableHelp, 2398).
+-define(wxPrintDialogData_EnablePageNumbers, 2399).
+-define(wxPrintDialogData_EnablePrintToFile, 2400).
+-define(wxPrintDialogData_EnableSelection, 2401).
+-define(wxPrintDialogData_GetAllPages, 2402).
+-define(wxPrintDialogData_GetCollate, 2403).
+-define(wxPrintDialogData_GetFromPage, 2404).
+-define(wxPrintDialogData_GetMaxPage, 2405).
+-define(wxPrintDialogData_GetMinPage, 2406).
+-define(wxPrintDialogData_GetNoCopies, 2407).
+-define(wxPrintDialogData_GetPrintData, 2408).
+-define(wxPrintDialogData_GetPrintToFile, 2409).
+-define(wxPrintDialogData_GetSelection, 2410).
+-define(wxPrintDialogData_GetToPage, 2411).
+-define(wxPrintDialogData_IsOk, 2412).
+-define(wxPrintDialogData_SetCollate, 2413).
+-define(wxPrintDialogData_SetFromPage, 2414).
+-define(wxPrintDialogData_SetMaxPage, 2415).
+-define(wxPrintDialogData_SetMinPage, 2416).
+-define(wxPrintDialogData_SetNoCopies, 2417).
+-define(wxPrintDialogData_SetPrintData, 2418).
+-define(wxPrintDialogData_SetPrintToFile, 2419).
+-define(wxPrintDialogData_SetSelection, 2420).
+-define(wxPrintDialogData_SetToPage, 2421).
+-define(wxPrintData_new_0, 2422).
+-define(wxPrintData_new_1, 2423).
+-define(wxPrintData_destruct, 2424).
+-define(wxPrintData_GetCollate, 2425).
+-define(wxPrintData_GetBin, 2426).
+-define(wxPrintData_GetColour, 2427).
+-define(wxPrintData_GetDuplex, 2428).
+-define(wxPrintData_GetNoCopies, 2429).
+-define(wxPrintData_GetOrientation, 2430).
+-define(wxPrintData_GetPaperId, 2431).
+-define(wxPrintData_GetPrinterName, 2432).
+-define(wxPrintData_GetQuality, 2433).
+-define(wxPrintData_IsOk, 2434).
+-define(wxPrintData_SetBin, 2435).
+-define(wxPrintData_SetCollate, 2436).
+-define(wxPrintData_SetColour, 2437).
+-define(wxPrintData_SetDuplex, 2438).
+-define(wxPrintData_SetNoCopies, 2439).
+-define(wxPrintData_SetOrientation, 2440).
+-define(wxPrintData_SetPaperId, 2441).
+-define(wxPrintData_SetPrinterName, 2442).
+-define(wxPrintData_SetQuality, 2443).
+-define(wxPrintPreview_new_2, 2446).
+-define(wxPrintPreview_new_3, 2447).
+-define(wxPrintPreview_destruct, 2449).
+-define(wxPrintPreview_GetCanvas, 2450).
+-define(wxPrintPreview_GetCurrentPage, 2451).
+-define(wxPrintPreview_GetFrame, 2452).
+-define(wxPrintPreview_GetMaxPage, 2453).
+-define(wxPrintPreview_GetMinPage, 2454).
+-define(wxPrintPreview_GetPrintout, 2455).
+-define(wxPrintPreview_GetPrintoutForPrinting, 2456).
+-define(wxPrintPreview_IsOk, 2457).
+-define(wxPrintPreview_PaintPage, 2458).
+-define(wxPrintPreview_Print, 2459).
+-define(wxPrintPreview_RenderPage, 2460).
+-define(wxPrintPreview_SetCanvas, 2461).
+-define(wxPrintPreview_SetCurrentPage, 2462).
+-define(wxPrintPreview_SetFrame, 2463).
+-define(wxPrintPreview_SetPrintout, 2464).
+-define(wxPrintPreview_SetZoom, 2465).
+-define(wxPreviewFrame_new, 2466).
+-define(wxPreviewFrame_destruct, 2467).
+-define(wxPreviewFrame_CreateControlBar, 2468).
+-define(wxPreviewFrame_CreateCanvas, 2469).
+-define(wxPreviewFrame_Initialize, 2470).
+-define(wxPreviewFrame_OnCloseWindow, 2471).
+-define(wxPreviewControlBar_new, 2472).
+-define(wxPreviewControlBar_destruct, 2473).
+-define(wxPreviewControlBar_CreateButtons, 2474).
+-define(wxPreviewControlBar_GetPrintPreview, 2475).
+-define(wxPreviewControlBar_GetZoomControl, 2476).
+-define(wxPreviewControlBar_SetZoomControl, 2477).
+-define(wxPrinter_new, 2479).
+-define(wxPrinter_CreateAbortWindow, 2480).
+-define(wxPrinter_GetAbort, 2481).
+-define(wxPrinter_GetLastError, 2482).
+-define(wxPrinter_GetPrintDialogData, 2483).
+-define(wxPrinter_Print, 2484).
+-define(wxPrinter_PrintDialog, 2485).
+-define(wxPrinter_ReportError, 2486).
+-define(wxPrinter_Setup, 2487).
+-define(wxPrinter_destroy, 2488).
+-define(wxXmlResource_new_1, 2489).
+-define(wxXmlResource_new_2, 2490).
+-define(wxXmlResource_destruct, 2491).
+-define(wxXmlResource_AttachUnknownControl, 2492).
+-define(wxXmlResource_ClearHandlers, 2493).
+-define(wxXmlResource_CompareVersion, 2494).
+-define(wxXmlResource_Get, 2495).
+-define(wxXmlResource_GetFlags, 2496).
+-define(wxXmlResource_GetVersion, 2497).
+-define(wxXmlResource_GetXRCID, 2498).
+-define(wxXmlResource_InitAllHandlers, 2499).
+-define(wxXmlResource_Load, 2500).
+-define(wxXmlResource_LoadBitmap, 2501).
+-define(wxXmlResource_LoadDialog_2, 2502).
+-define(wxXmlResource_LoadDialog_3, 2503).
+-define(wxXmlResource_LoadFrame_2, 2504).
+-define(wxXmlResource_LoadFrame_3, 2505).
+-define(wxXmlResource_LoadIcon, 2506).
+-define(wxXmlResource_LoadMenu, 2507).
+-define(wxXmlResource_LoadMenuBar_2, 2508).
+-define(wxXmlResource_LoadMenuBar_1, 2509).
+-define(wxXmlResource_LoadPanel_2, 2510).
+-define(wxXmlResource_LoadPanel_3, 2511).
+-define(wxXmlResource_LoadToolBar, 2512).
+-define(wxXmlResource_Set, 2513).
+-define(wxXmlResource_SetFlags, 2514).
+-define(wxXmlResource_Unload, 2515).
+-define(wxXmlResource_xrcctrl, 2516).
+-define(wxHtmlEasyPrinting_new, 2517).
+-define(wxHtmlEasyPrinting_destruct, 2518).
+-define(wxHtmlEasyPrinting_GetPrintData, 2519).
+-define(wxHtmlEasyPrinting_GetPageSetupData, 2520).
+-define(wxHtmlEasyPrinting_PreviewFile, 2521).
+-define(wxHtmlEasyPrinting_PreviewText, 2522).
+-define(wxHtmlEasyPrinting_PrintFile, 2523).
+-define(wxHtmlEasyPrinting_PrintText, 2524).
+-define(wxHtmlEasyPrinting_PageSetup, 2525).
+-define(wxHtmlEasyPrinting_SetFonts, 2526).
+-define(wxHtmlEasyPrinting_SetHeader, 2527).
+-define(wxHtmlEasyPrinting_SetFooter, 2528).
+-define(wxGLCanvas_new_2, 2530).
+-define(wxGLCanvas_new_3_1, 2531).
+-define(wxGLCanvas_new_3_0, 2532).
+-define(wxGLCanvas_GetContext, 2533).
+-define(wxGLCanvas_SetCurrent, 2535).
+-define(wxGLCanvas_SwapBuffers, 2536).
+-define(wxGLCanvas_destroy, 2537).
+-define(wxAuiManager_new, 2538).
+-define(wxAuiManager_destruct, 2539).
+-define(wxAuiManager_AddPane_2_1, 2540).
+-define(wxAuiManager_AddPane_3, 2541).
+-define(wxAuiManager_AddPane_2_0, 2542).
+-define(wxAuiManager_DetachPane, 2543).
+-define(wxAuiManager_GetAllPanes, 2544).
+-define(wxAuiManager_GetArtProvider, 2545).
+-define(wxAuiManager_GetDockSizeConstraint, 2546).
+-define(wxAuiManager_GetFlags, 2547).
+-define(wxAuiManager_GetManagedWindow, 2548).
+-define(wxAuiManager_GetManager, 2549).
+-define(wxAuiManager_GetPane_1_1, 2550).
+-define(wxAuiManager_GetPane_1_0, 2551).
+-define(wxAuiManager_HideHint, 2552).
+-define(wxAuiManager_InsertPane, 2553).
+-define(wxAuiManager_LoadPaneInfo, 2554).
+-define(wxAuiManager_LoadPerspective, 2555).
+-define(wxAuiManager_SavePaneInfo, 2556).
+-define(wxAuiManager_SavePerspective, 2557).
+-define(wxAuiManager_SetArtProvider, 2558).
+-define(wxAuiManager_SetDockSizeConstraint, 2559).
+-define(wxAuiManager_SetFlags, 2560).
+-define(wxAuiManager_SetManagedWindow, 2561).
+-define(wxAuiManager_ShowHint, 2562).
+-define(wxAuiManager_UnInit, 2563).
+-define(wxAuiManager_Update, 2564).
+-define(wxAuiPaneInfo_new_0, 2565).
+-define(wxAuiPaneInfo_new_1, 2566).
+-define(wxAuiPaneInfo_destruct, 2567).
+-define(wxAuiPaneInfo_BestSize_1, 2568).
+-define(wxAuiPaneInfo_BestSize_2, 2569).
+-define(wxAuiPaneInfo_Bottom, 2570).
+-define(wxAuiPaneInfo_BottomDockable, 2571).
+-define(wxAuiPaneInfo_Caption, 2572).
+-define(wxAuiPaneInfo_CaptionVisible, 2573).
+-define(wxAuiPaneInfo_Centre, 2574).
+-define(wxAuiPaneInfo_CentrePane, 2575).
+-define(wxAuiPaneInfo_CloseButton, 2576).
+-define(wxAuiPaneInfo_DefaultPane, 2577).
+-define(wxAuiPaneInfo_DestroyOnClose, 2578).
+-define(wxAuiPaneInfo_Direction, 2579).
+-define(wxAuiPaneInfo_Dock, 2580).
+-define(wxAuiPaneInfo_Dockable, 2581).
+-define(wxAuiPaneInfo_Fixed, 2582).
+-define(wxAuiPaneInfo_Float, 2583).
+-define(wxAuiPaneInfo_Floatable, 2584).
+-define(wxAuiPaneInfo_FloatingPosition_1, 2585).
+-define(wxAuiPaneInfo_FloatingPosition_2, 2586).
+-define(wxAuiPaneInfo_FloatingSize_1, 2587).
+-define(wxAuiPaneInfo_FloatingSize_2, 2588).
+-define(wxAuiPaneInfo_Gripper, 2589).
+-define(wxAuiPaneInfo_GripperTop, 2590).
+-define(wxAuiPaneInfo_HasBorder, 2591).
+-define(wxAuiPaneInfo_HasCaption, 2592).
+-define(wxAuiPaneInfo_HasCloseButton, 2593).
+-define(wxAuiPaneInfo_HasFlag, 2594).
+-define(wxAuiPaneInfo_HasGripper, 2595).
+-define(wxAuiPaneInfo_HasGripperTop, 2596).
+-define(wxAuiPaneInfo_HasMaximizeButton, 2597).
+-define(wxAuiPaneInfo_HasMinimizeButton, 2598).
+-define(wxAuiPaneInfo_HasPinButton, 2599).
+-define(wxAuiPaneInfo_Hide, 2600).
+-define(wxAuiPaneInfo_IsBottomDockable, 2601).
+-define(wxAuiPaneInfo_IsDocked, 2602).
+-define(wxAuiPaneInfo_IsFixed, 2603).
+-define(wxAuiPaneInfo_IsFloatable, 2604).
+-define(wxAuiPaneInfo_IsFloating, 2605).
+-define(wxAuiPaneInfo_IsLeftDockable, 2606).
+-define(wxAuiPaneInfo_IsMovable, 2607).
+-define(wxAuiPaneInfo_IsOk, 2608).
+-define(wxAuiPaneInfo_IsResizable, 2609).
+-define(wxAuiPaneInfo_IsRightDockable, 2610).
+-define(wxAuiPaneInfo_IsShown, 2611).
+-define(wxAuiPaneInfo_IsToolbar, 2612).
+-define(wxAuiPaneInfo_IsTopDockable, 2613).
+-define(wxAuiPaneInfo_Layer, 2614).
+-define(wxAuiPaneInfo_Left, 2615).
+-define(wxAuiPaneInfo_LeftDockable, 2616).
+-define(wxAuiPaneInfo_MaxSize_1, 2617).
+-define(wxAuiPaneInfo_MaxSize_2, 2618).
+-define(wxAuiPaneInfo_MaximizeButton, 2619).
+-define(wxAuiPaneInfo_MinSize_1, 2620).
+-define(wxAuiPaneInfo_MinSize_2, 2621).
+-define(wxAuiPaneInfo_MinimizeButton, 2622).
+-define(wxAuiPaneInfo_Movable, 2623).
+-define(wxAuiPaneInfo_Name, 2624).
+-define(wxAuiPaneInfo_PaneBorder, 2625).
+-define(wxAuiPaneInfo_PinButton, 2626).
+-define(wxAuiPaneInfo_Position, 2627).
+-define(wxAuiPaneInfo_Resizable, 2628).
+-define(wxAuiPaneInfo_Right, 2629).
+-define(wxAuiPaneInfo_RightDockable, 2630).
+-define(wxAuiPaneInfo_Row, 2631).
+-define(wxAuiPaneInfo_SafeSet, 2632).
+-define(wxAuiPaneInfo_SetFlag, 2633).
+-define(wxAuiPaneInfo_Show, 2634).
+-define(wxAuiPaneInfo_ToolbarPane, 2635).
+-define(wxAuiPaneInfo_Top, 2636).
+-define(wxAuiPaneInfo_TopDockable, 2637).
+-define(wxAuiPaneInfo_Window, 2638).
+-define(wxAuiNotebook_new_0, 2639).
+-define(wxAuiNotebook_new_2, 2640).
+-define(wxAuiNotebook_AddPage, 2641).
+-define(wxAuiNotebook_Create, 2642).
+-define(wxAuiNotebook_DeletePage, 2643).
+-define(wxAuiNotebook_GetArtProvider, 2644).
+-define(wxAuiNotebook_GetPage, 2645).
+-define(wxAuiNotebook_GetPageBitmap, 2646).
+-define(wxAuiNotebook_GetPageCount, 2647).
+-define(wxAuiNotebook_GetPageIndex, 2648).
+-define(wxAuiNotebook_GetPageText, 2649).
+-define(wxAuiNotebook_GetSelection, 2650).
+-define(wxAuiNotebook_InsertPage, 2651).
+-define(wxAuiNotebook_RemovePage, 2652).
+-define(wxAuiNotebook_SetArtProvider, 2653).
+-define(wxAuiNotebook_SetFont, 2654).
+-define(wxAuiNotebook_SetPageBitmap, 2655).
+-define(wxAuiNotebook_SetPageText, 2656).
+-define(wxAuiNotebook_SetSelection, 2657).
+-define(wxAuiNotebook_SetTabCtrlHeight, 2658).
+-define(wxAuiNotebook_SetUniformBitmapSize, 2659).
+-define(wxAuiNotebook_destroy, 2660).
+-define(wxMDIParentFrame_new_0, 2661).
+-define(wxMDIParentFrame_new_4, 2662).
+-define(wxMDIParentFrame_destruct, 2663).
+-define(wxMDIParentFrame_ActivateNext, 2664).
+-define(wxMDIParentFrame_ActivatePrevious, 2665).
+-define(wxMDIParentFrame_ArrangeIcons, 2666).
+-define(wxMDIParentFrame_Cascade, 2667).
+-define(wxMDIParentFrame_Create, 2668).
+-define(wxMDIParentFrame_GetActiveChild, 2669).
+-define(wxMDIParentFrame_GetClientWindow, 2670).
+-define(wxMDIParentFrame_Tile, 2671).
+-define(wxMDIChildFrame_new_0, 2672).
+-define(wxMDIChildFrame_new_4, 2673).
+-define(wxMDIChildFrame_destruct, 2674).
+-define(wxMDIChildFrame_Activate, 2675).
+-define(wxMDIChildFrame_Create, 2676).
+-define(wxMDIChildFrame_Maximize, 2677).
+-define(wxMDIChildFrame_Restore, 2678).
+-define(wxMDIClientWindow_new_0, 2679).
+-define(wxMDIClientWindow_new_2, 2680).
+-define(wxMDIClientWindow_destruct, 2681).
+-define(wxMDIClientWindow_CreateClient, 2682).
+-define(wxLayoutAlgorithm_new, 2683).
+-define(wxLayoutAlgorithm_LayoutFrame, 2684).
+-define(wxLayoutAlgorithm_LayoutMDIFrame, 2685).
+-define(wxLayoutAlgorithm_LayoutWindow, 2686).
+-define(wxLayoutAlgorithm_destroy, 2687).
+-define(wxEvent_GetId, 2688).
+-define(wxEvent_GetSkipped, 2689).
+-define(wxEvent_GetTimestamp, 2690).
+-define(wxEvent_IsCommandEvent, 2691).
+-define(wxEvent_ResumePropagation, 2692).
+-define(wxEvent_ShouldPropagate, 2693).
+-define(wxEvent_Skip, 2694).
+-define(wxEvent_StopPropagation, 2695).
+-define(wxCommandEvent_getClientData, 2696).
+-define(wxCommandEvent_GetExtraLong, 2697).
+-define(wxCommandEvent_GetInt, 2698).
+-define(wxCommandEvent_GetSelection, 2699).
+-define(wxCommandEvent_GetString, 2700).
+-define(wxCommandEvent_IsChecked, 2701).
+-define(wxCommandEvent_IsSelection, 2702).
+-define(wxCommandEvent_SetInt, 2703).
+-define(wxCommandEvent_SetString, 2704).
+-define(wxScrollEvent_GetOrientation, 2705).
+-define(wxScrollEvent_GetPosition, 2706).
+-define(wxScrollWinEvent_GetOrientation, 2707).
+-define(wxScrollWinEvent_GetPosition, 2708).
+-define(wxMouseEvent_AltDown, 2709).
+-define(wxMouseEvent_Button, 2710).
+-define(wxMouseEvent_ButtonDClick, 2711).
+-define(wxMouseEvent_ButtonDown, 2712).
+-define(wxMouseEvent_ButtonUp, 2713).
+-define(wxMouseEvent_CmdDown, 2714).
+-define(wxMouseEvent_ControlDown, 2715).
+-define(wxMouseEvent_Dragging, 2716).
+-define(wxMouseEvent_Entering, 2717).
+-define(wxMouseEvent_GetButton, 2718).
+-define(wxMouseEvent_GetPosition, 2721).
+-define(wxMouseEvent_GetLogicalPosition, 2722).
+-define(wxMouseEvent_GetLinesPerAction, 2723).
+-define(wxMouseEvent_GetWheelRotation, 2724).
+-define(wxMouseEvent_GetWheelDelta, 2725).
+-define(wxMouseEvent_GetX, 2726).
+-define(wxMouseEvent_GetY, 2727).
+-define(wxMouseEvent_IsButton, 2728).
+-define(wxMouseEvent_IsPageScroll, 2729).
+-define(wxMouseEvent_Leaving, 2730).
+-define(wxMouseEvent_LeftDClick, 2731).
+-define(wxMouseEvent_LeftDown, 2732).
+-define(wxMouseEvent_LeftIsDown, 2733).
+-define(wxMouseEvent_LeftUp, 2734).
+-define(wxMouseEvent_MetaDown, 2735).
+-define(wxMouseEvent_MiddleDClick, 2736).
+-define(wxMouseEvent_MiddleDown, 2737).
+-define(wxMouseEvent_MiddleIsDown, 2738).
+-define(wxMouseEvent_MiddleUp, 2739).
+-define(wxMouseEvent_Moving, 2740).
+-define(wxMouseEvent_RightDClick, 2741).
+-define(wxMouseEvent_RightDown, 2742).
+-define(wxMouseEvent_RightIsDown, 2743).
+-define(wxMouseEvent_RightUp, 2744).
+-define(wxMouseEvent_ShiftDown, 2745).
+-define(wxSetCursorEvent_GetCursor, 2746).
+-define(wxSetCursorEvent_GetX, 2747).
+-define(wxSetCursorEvent_GetY, 2748).
+-define(wxSetCursorEvent_HasCursor, 2749).
+-define(wxSetCursorEvent_SetCursor, 2750).
+-define(wxKeyEvent_AltDown, 2751).
+-define(wxKeyEvent_CmdDown, 2752).
+-define(wxKeyEvent_ControlDown, 2753).
+-define(wxKeyEvent_GetKeyCode, 2754).
+-define(wxKeyEvent_GetModifiers, 2755).
+-define(wxKeyEvent_GetPosition, 2758).
+-define(wxKeyEvent_GetRawKeyCode, 2759).
+-define(wxKeyEvent_GetRawKeyFlags, 2760).
+-define(wxKeyEvent_GetUnicodeKey, 2761).
+-define(wxKeyEvent_GetX, 2762).
+-define(wxKeyEvent_GetY, 2763).
+-define(wxKeyEvent_HasModifiers, 2764).
+-define(wxKeyEvent_MetaDown, 2765).
+-define(wxKeyEvent_ShiftDown, 2766).
+-define(wxSizeEvent_GetSize, 2767).
+-define(wxMoveEvent_GetPosition, 2768).
+-define(wxEraseEvent_GetDC, 2769).
+-define(wxFocusEvent_GetWindow, 2770).
+-define(wxChildFocusEvent_GetWindow, 2771).
+-define(wxMenuEvent_GetMenu, 2772).
+-define(wxMenuEvent_GetMenuId, 2773).
+-define(wxMenuEvent_IsPopup, 2774).
+-define(wxCloseEvent_CanVeto, 2775).
+-define(wxCloseEvent_GetLoggingOff, 2776).
+-define(wxCloseEvent_SetCanVeto, 2777).
+-define(wxCloseEvent_SetLoggingOff, 2778).
+-define(wxCloseEvent_Veto, 2779).
+-define(wxShowEvent_SetShow, 2780).
+-define(wxShowEvent_GetShow, 2781).
+-define(wxIconizeEvent_Iconized, 2782).
+-define(wxJoystickEvent_ButtonDown, 2783).
+-define(wxJoystickEvent_ButtonIsDown, 2784).
+-define(wxJoystickEvent_ButtonUp, 2785).
+-define(wxJoystickEvent_GetButtonChange, 2786).
+-define(wxJoystickEvent_GetButtonState, 2787).
+-define(wxJoystickEvent_GetJoystick, 2788).
+-define(wxJoystickEvent_GetPosition, 2789).
+-define(wxJoystickEvent_GetZPosition, 2790).
+-define(wxJoystickEvent_IsButton, 2791).
+-define(wxJoystickEvent_IsMove, 2792).
+-define(wxJoystickEvent_IsZMove, 2793).
+-define(wxUpdateUIEvent_CanUpdate, 2794).
+-define(wxUpdateUIEvent_Check, 2795).
+-define(wxUpdateUIEvent_Enable, 2796).
+-define(wxUpdateUIEvent_Show, 2797).
+-define(wxUpdateUIEvent_GetChecked, 2798).
+-define(wxUpdateUIEvent_GetEnabled, 2799).
+-define(wxUpdateUIEvent_GetShown, 2800).
+-define(wxUpdateUIEvent_GetSetChecked, 2801).
+-define(wxUpdateUIEvent_GetSetEnabled, 2802).
+-define(wxUpdateUIEvent_GetSetShown, 2803).
+-define(wxUpdateUIEvent_GetSetText, 2804).
+-define(wxUpdateUIEvent_GetText, 2805).
+-define(wxUpdateUIEvent_GetMode, 2806).
+-define(wxUpdateUIEvent_GetUpdateInterval, 2807).
+-define(wxUpdateUIEvent_ResetUpdateTime, 2808).
+-define(wxUpdateUIEvent_SetMode, 2809).
+-define(wxUpdateUIEvent_SetText, 2810).
+-define(wxUpdateUIEvent_SetUpdateInterval, 2811).
+-define(wxMouseCaptureChangedEvent_GetCapturedWindow, 2812).
+-define(wxPaletteChangedEvent_SetChangedWindow, 2813).
+-define(wxPaletteChangedEvent_GetChangedWindow, 2814).
+-define(wxQueryNewPaletteEvent_SetPaletteRealized, 2815).
+-define(wxQueryNewPaletteEvent_GetPaletteRealized, 2816).
+-define(wxNavigationKeyEvent_GetDirection, 2817).
+-define(wxNavigationKeyEvent_SetDirection, 2818).
+-define(wxNavigationKeyEvent_IsWindowChange, 2819).
+-define(wxNavigationKeyEvent_SetWindowChange, 2820).
+-define(wxNavigationKeyEvent_IsFromTab, 2821).
+-define(wxNavigationKeyEvent_SetFromTab, 2822).
+-define(wxNavigationKeyEvent_GetCurrentFocus, 2823).
+-define(wxNavigationKeyEvent_SetCurrentFocus, 2824).
+-define(wxHelpEvent_GetOrigin, 2825).
+-define(wxHelpEvent_GetPosition, 2826).
+-define(wxHelpEvent_SetOrigin, 2827).
+-define(wxHelpEvent_SetPosition, 2828).
+-define(wxContextMenuEvent_GetPosition, 2829).
+-define(wxContextMenuEvent_SetPosition, 2830).
+-define(wxIdleEvent_CanSend, 2831).
+-define(wxIdleEvent_GetMode, 2832).
+-define(wxIdleEvent_RequestMore, 2833).
+-define(wxIdleEvent_MoreRequested, 2834).
+-define(wxIdleEvent_SetMode, 2835).
+-define(wxGridEvent_AltDown, 2836).
+-define(wxGridEvent_ControlDown, 2837).
+-define(wxGridEvent_GetCol, 2838).
+-define(wxGridEvent_GetPosition, 2839).
+-define(wxGridEvent_GetRow, 2840).
+-define(wxGridEvent_MetaDown, 2841).
+-define(wxGridEvent_Selecting, 2842).
+-define(wxGridEvent_ShiftDown, 2843).
+-define(wxNotifyEvent_Allow, 2844).
+-define(wxNotifyEvent_IsAllowed, 2845).
+-define(wxNotifyEvent_Veto, 2846).
+-define(wxSashEvent_GetEdge, 2847).
+-define(wxSashEvent_GetDragRect, 2848).
+-define(wxSashEvent_GetDragStatus, 2849).
+-define(wxListEvent_GetCacheFrom, 2850).
+-define(wxListEvent_GetCacheTo, 2851).
+-define(wxListEvent_GetKeyCode, 2852).
+-define(wxListEvent_GetIndex, 2853).
+-define(wxListEvent_GetColumn, 2854).
+-define(wxListEvent_GetPoint, 2855).
+-define(wxListEvent_GetLabel, 2856).
+-define(wxListEvent_GetText, 2857).
+-define(wxListEvent_GetImage, 2858).
+-define(wxListEvent_GetData, 2859).
+-define(wxListEvent_GetMask, 2860).
+-define(wxListEvent_GetItem, 2861).
+-define(wxListEvent_IsEditCancelled, 2862).
+-define(wxDateEvent_GetDate, 2863).
+-define(wxCalendarEvent_GetWeekDay, 2864).
+-define(wxFileDirPickerEvent_GetPath, 2865).
+-define(wxColourPickerEvent_GetColour, 2866).
+-define(wxFontPickerEvent_GetFont, 2867).
+-define(wxStyledTextEvent_GetPosition, 2868).
+-define(wxStyledTextEvent_GetKey, 2869).
+-define(wxStyledTextEvent_GetModifiers, 2870).
+-define(wxStyledTextEvent_GetModificationType, 2871).
+-define(wxStyledTextEvent_GetText, 2872).
+-define(wxStyledTextEvent_GetLength, 2873).
+-define(wxStyledTextEvent_GetLinesAdded, 2874).
+-define(wxStyledTextEvent_GetLine, 2875).
+-define(wxStyledTextEvent_GetFoldLevelNow, 2876).
+-define(wxStyledTextEvent_GetFoldLevelPrev, 2877).
+-define(wxStyledTextEvent_GetMargin, 2878).
+-define(wxStyledTextEvent_GetMessage, 2879).
+-define(wxStyledTextEvent_GetWParam, 2880).
+-define(wxStyledTextEvent_GetLParam, 2881).
+-define(wxStyledTextEvent_GetListType, 2882).
+-define(wxStyledTextEvent_GetX, 2883).
+-define(wxStyledTextEvent_GetY, 2884).
+-define(wxStyledTextEvent_GetDragText, 2885).
+-define(wxStyledTextEvent_GetDragAllowMove, 2886).
+-define(wxStyledTextEvent_GetDragResult, 2887).
+-define(wxStyledTextEvent_GetShift, 2888).
+-define(wxStyledTextEvent_GetControl, 2889).
+-define(wxStyledTextEvent_GetAlt, 2890).
+-define(utils_wxGetKeyState, 2891).
+-define(utils_wxGetMousePosition, 2892).
+-define(utils_wxGetMouseState, 2893).
+-define(utils_wxSetDetectableAutoRepeat, 2894).
+-define(utils_wxBell, 2895).
+-define(utils_wxFindMenuItemId, 2896).
+-define(utils_wxGenericFindWindowAtPoint, 2897).
+-define(utils_wxFindWindowAtPoint, 2898).
+-define(utils_wxBeginBusyCursor, 2899).
+-define(utils_wxEndBusyCursor, 2900).
+-define(utils_wxIsBusy, 2901).
+-define(utils_wxShutdown, 2902).
+-define(utils_wxShell, 2903).
+-define(utils_wxLaunchDefaultBrowser, 2904).
+-define(utils_wxGetEmailAddress, 2905).
+-define(utils_wxGetUserId, 2906).
+-define(utils_wxGetHomeDir, 2907).
+-define(utils_wxNewId, 2908).
+-define(utils_wxRegisterId, 2909).
+-define(utils_wxGetCurrentId, 2910).
+-define(utils_wxGetOsDescription, 2911).
+-define(utils_wxIsPlatformLittleEndian, 2912).
+-define(utils_wxIsPlatform64Bit, 2913).
+-define(wxPrintout_new, 2914).
+-define(wxPrintout_destruct, 2915).
+-define(wxPrintout_GetDC, 2916).
+-define(wxPrintout_GetPageSizeMM, 2917).
+-define(wxPrintout_GetPageSizePixels, 2918).
+-define(wxPrintout_GetPaperRectPixels, 2919).
+-define(wxPrintout_GetPPIPrinter, 2920).
+-define(wxPrintout_GetPPIScreen, 2921).
+-define(wxPrintout_GetTitle, 2922).
+-define(wxPrintout_IsPreview, 2923).
+-define(wxPrintout_FitThisSizeToPaper, 2924).
+-define(wxPrintout_FitThisSizeToPage, 2925).
+-define(wxPrintout_FitThisSizeToPageMargins, 2926).
+-define(wxPrintout_MapScreenSizeToPaper, 2927).
+-define(wxPrintout_MapScreenSizeToPage, 2928).
+-define(wxPrintout_MapScreenSizeToPageMargins, 2929).
+-define(wxPrintout_MapScreenSizeToDevice, 2930).
+-define(wxPrintout_GetLogicalPaperRect, 2931).
+-define(wxPrintout_GetLogicalPageRect, 2932).
+-define(wxPrintout_GetLogicalPageMarginsRect, 2933).
+-define(wxPrintout_SetLogicalOrigin, 2934).
+-define(wxPrintout_OffsetLogicalOrigin, 2935).
+-define(wxStyledTextCtrl_new_2, 2936).
+-define(wxStyledTextCtrl_new_0, 2937).
+-define(wxStyledTextCtrl_destruct, 2938).
+-define(wxStyledTextCtrl_Create, 2939).
+-define(wxStyledTextCtrl_AddText, 2940).
+-define(wxStyledTextCtrl_AddStyledText, 2941).
+-define(wxStyledTextCtrl_InsertText, 2942).
+-define(wxStyledTextCtrl_ClearAll, 2943).
+-define(wxStyledTextCtrl_ClearDocumentStyle, 2944).
+-define(wxStyledTextCtrl_GetLength, 2945).
+-define(wxStyledTextCtrl_GetCharAt, 2946).
+-define(wxStyledTextCtrl_GetCurrentPos, 2947).
+-define(wxStyledTextCtrl_GetAnchor, 2948).
+-define(wxStyledTextCtrl_GetStyleAt, 2949).
+-define(wxStyledTextCtrl_Redo, 2950).
+-define(wxStyledTextCtrl_SetUndoCollection, 2951).
+-define(wxStyledTextCtrl_SelectAll, 2952).
+-define(wxStyledTextCtrl_SetSavePoint, 2953).
+-define(wxStyledTextCtrl_GetStyledText, 2954).
+-define(wxStyledTextCtrl_CanRedo, 2955).
+-define(wxStyledTextCtrl_MarkerLineFromHandle, 2956).
+-define(wxStyledTextCtrl_MarkerDeleteHandle, 2957).
+-define(wxStyledTextCtrl_GetUndoCollection, 2958).
+-define(wxStyledTextCtrl_GetViewWhiteSpace, 2959).
+-define(wxStyledTextCtrl_SetViewWhiteSpace, 2960).
+-define(wxStyledTextCtrl_PositionFromPoint, 2961).
+-define(wxStyledTextCtrl_PositionFromPointClose, 2962).
+-define(wxStyledTextCtrl_GotoLine, 2963).
+-define(wxStyledTextCtrl_GotoPos, 2964).
+-define(wxStyledTextCtrl_SetAnchor, 2965).
+-define(wxStyledTextCtrl_GetCurLine, 2966).
+-define(wxStyledTextCtrl_GetEndStyled, 2967).
+-define(wxStyledTextCtrl_ConvertEOLs, 2968).
+-define(wxStyledTextCtrl_GetEOLMode, 2969).
+-define(wxStyledTextCtrl_SetEOLMode, 2970).
+-define(wxStyledTextCtrl_StartStyling, 2971).
+-define(wxStyledTextCtrl_SetStyling, 2972).
+-define(wxStyledTextCtrl_GetBufferedDraw, 2973).
+-define(wxStyledTextCtrl_SetBufferedDraw, 2974).
+-define(wxStyledTextCtrl_SetTabWidth, 2975).
+-define(wxStyledTextCtrl_GetTabWidth, 2976).
+-define(wxStyledTextCtrl_SetCodePage, 2977).
+-define(wxStyledTextCtrl_MarkerDefine, 2978).
+-define(wxStyledTextCtrl_MarkerSetForeground, 2979).
+-define(wxStyledTextCtrl_MarkerSetBackground, 2980).
+-define(wxStyledTextCtrl_MarkerAdd, 2981).
+-define(wxStyledTextCtrl_MarkerDelete, 2982).
+-define(wxStyledTextCtrl_MarkerDeleteAll, 2983).
+-define(wxStyledTextCtrl_MarkerGet, 2984).
+-define(wxStyledTextCtrl_MarkerNext, 2985).
+-define(wxStyledTextCtrl_MarkerPrevious, 2986).
+-define(wxStyledTextCtrl_MarkerDefineBitmap, 2987).
+-define(wxStyledTextCtrl_MarkerAddSet, 2988).
+-define(wxStyledTextCtrl_MarkerSetAlpha, 2989).
+-define(wxStyledTextCtrl_SetMarginType, 2990).
+-define(wxStyledTextCtrl_GetMarginType, 2991).
+-define(wxStyledTextCtrl_SetMarginWidth, 2992).
+-define(wxStyledTextCtrl_GetMarginWidth, 2993).
+-define(wxStyledTextCtrl_SetMarginMask, 2994).
+-define(wxStyledTextCtrl_GetMarginMask, 2995).
+-define(wxStyledTextCtrl_SetMarginSensitive, 2996).
+-define(wxStyledTextCtrl_GetMarginSensitive, 2997).
+-define(wxStyledTextCtrl_StyleClearAll, 2998).
+-define(wxStyledTextCtrl_StyleSetForeground, 2999).
+-define(wxStyledTextCtrl_StyleSetBackground, 3000).
+-define(wxStyledTextCtrl_StyleSetBold, 3001).
+-define(wxStyledTextCtrl_StyleSetItalic, 3002).
+-define(wxStyledTextCtrl_StyleSetSize, 3003).
+-define(wxStyledTextCtrl_StyleSetFaceName, 3004).
+-define(wxStyledTextCtrl_StyleSetEOLFilled, 3005).
+-define(wxStyledTextCtrl_StyleResetDefault, 3006).
+-define(wxStyledTextCtrl_StyleSetUnderline, 3007).
+-define(wxStyledTextCtrl_StyleSetCase, 3008).
+-define(wxStyledTextCtrl_StyleSetHotSpot, 3009).
+-define(wxStyledTextCtrl_SetSelForeground, 3010).
+-define(wxStyledTextCtrl_SetSelBackground, 3011).
+-define(wxStyledTextCtrl_GetSelAlpha, 3012).
+-define(wxStyledTextCtrl_SetSelAlpha, 3013).
+-define(wxStyledTextCtrl_SetCaretForeground, 3014).
+-define(wxStyledTextCtrl_CmdKeyAssign, 3015).
+-define(wxStyledTextCtrl_CmdKeyClear, 3016).
+-define(wxStyledTextCtrl_CmdKeyClearAll, 3017).
+-define(wxStyledTextCtrl_SetStyleBytes, 3018).
+-define(wxStyledTextCtrl_StyleSetVisible, 3019).
+-define(wxStyledTextCtrl_GetCaretPeriod, 3020).
+-define(wxStyledTextCtrl_SetCaretPeriod, 3021).
+-define(wxStyledTextCtrl_SetWordChars, 3022).
+-define(wxStyledTextCtrl_BeginUndoAction, 3023).
+-define(wxStyledTextCtrl_EndUndoAction, 3024).
+-define(wxStyledTextCtrl_IndicatorSetStyle, 3025).
+-define(wxStyledTextCtrl_IndicatorGetStyle, 3026).
+-define(wxStyledTextCtrl_IndicatorSetForeground, 3027).
+-define(wxStyledTextCtrl_IndicatorGetForeground, 3028).
+-define(wxStyledTextCtrl_SetWhitespaceForeground, 3029).
+-define(wxStyledTextCtrl_SetWhitespaceBackground, 3030).
+-define(wxStyledTextCtrl_GetStyleBits, 3031).
+-define(wxStyledTextCtrl_SetLineState, 3032).
+-define(wxStyledTextCtrl_GetLineState, 3033).
+-define(wxStyledTextCtrl_GetMaxLineState, 3034).
+-define(wxStyledTextCtrl_GetCaretLineVisible, 3035).
+-define(wxStyledTextCtrl_SetCaretLineVisible, 3036).
+-define(wxStyledTextCtrl_GetCaretLineBackground, 3037).
+-define(wxStyledTextCtrl_SetCaretLineBackground, 3038).
+-define(wxStyledTextCtrl_AutoCompShow, 3039).
+-define(wxStyledTextCtrl_AutoCompCancel, 3040).
+-define(wxStyledTextCtrl_AutoCompActive, 3041).
+-define(wxStyledTextCtrl_AutoCompPosStart, 3042).
+-define(wxStyledTextCtrl_AutoCompComplete, 3043).
+-define(wxStyledTextCtrl_AutoCompStops, 3044).
+-define(wxStyledTextCtrl_AutoCompSetSeparator, 3045).
+-define(wxStyledTextCtrl_AutoCompGetSeparator, 3046).
+-define(wxStyledTextCtrl_AutoCompSelect, 3047).
+-define(wxStyledTextCtrl_AutoCompSetCancelAtStart, 3048).
+-define(wxStyledTextCtrl_AutoCompGetCancelAtStart, 3049).
+-define(wxStyledTextCtrl_AutoCompSetFillUps, 3050).
+-define(wxStyledTextCtrl_AutoCompSetChooseSingle, 3051).
+-define(wxStyledTextCtrl_AutoCompGetChooseSingle, 3052).
+-define(wxStyledTextCtrl_AutoCompSetIgnoreCase, 3053).
+-define(wxStyledTextCtrl_AutoCompGetIgnoreCase, 3054).
+-define(wxStyledTextCtrl_UserListShow, 3055).
+-define(wxStyledTextCtrl_AutoCompSetAutoHide, 3056).
+-define(wxStyledTextCtrl_AutoCompGetAutoHide, 3057).
+-define(wxStyledTextCtrl_AutoCompSetDropRestOfWord, 3058).
+-define(wxStyledTextCtrl_AutoCompGetDropRestOfWord, 3059).
+-define(wxStyledTextCtrl_RegisterImage, 3060).
+-define(wxStyledTextCtrl_ClearRegisteredImages, 3061).
+-define(wxStyledTextCtrl_AutoCompGetTypeSeparator, 3062).
+-define(wxStyledTextCtrl_AutoCompSetTypeSeparator, 3063).
+-define(wxStyledTextCtrl_AutoCompSetMaxWidth, 3064).
+-define(wxStyledTextCtrl_AutoCompGetMaxWidth, 3065).
+-define(wxStyledTextCtrl_AutoCompSetMaxHeight, 3066).
+-define(wxStyledTextCtrl_AutoCompGetMaxHeight, 3067).
+-define(wxStyledTextCtrl_SetIndent, 3068).
+-define(wxStyledTextCtrl_GetIndent, 3069).
+-define(wxStyledTextCtrl_SetUseTabs, 3070).
+-define(wxStyledTextCtrl_GetUseTabs, 3071).
+-define(wxStyledTextCtrl_SetLineIndentation, 3072).
+-define(wxStyledTextCtrl_GetLineIndentation, 3073).
+-define(wxStyledTextCtrl_GetLineIndentPosition, 3074).
+-define(wxStyledTextCtrl_GetColumn, 3075).
+-define(wxStyledTextCtrl_SetUseHorizontalScrollBar, 3076).
+-define(wxStyledTextCtrl_GetUseHorizontalScrollBar, 3077).
+-define(wxStyledTextCtrl_SetIndentationGuides, 3078).
+-define(wxStyledTextCtrl_GetIndentationGuides, 3079).
+-define(wxStyledTextCtrl_SetHighlightGuide, 3080).
+-define(wxStyledTextCtrl_GetHighlightGuide, 3081).
+-define(wxStyledTextCtrl_GetLineEndPosition, 3082).
+-define(wxStyledTextCtrl_GetCodePage, 3083).
+-define(wxStyledTextCtrl_GetCaretForeground, 3084).
+-define(wxStyledTextCtrl_GetReadOnly, 3085).
+-define(wxStyledTextCtrl_SetCurrentPos, 3086).
+-define(wxStyledTextCtrl_SetSelectionStart, 3087).
+-define(wxStyledTextCtrl_GetSelectionStart, 3088).
+-define(wxStyledTextCtrl_SetSelectionEnd, 3089).
+-define(wxStyledTextCtrl_GetSelectionEnd, 3090).
+-define(wxStyledTextCtrl_SetPrintMagnification, 3091).
+-define(wxStyledTextCtrl_GetPrintMagnification, 3092).
+-define(wxStyledTextCtrl_SetPrintColourMode, 3093).
+-define(wxStyledTextCtrl_GetPrintColourMode, 3094).
+-define(wxStyledTextCtrl_FindText, 3095).
+-define(wxStyledTextCtrl_FormatRange, 3096).
+-define(wxStyledTextCtrl_GetFirstVisibleLine, 3097).
+-define(wxStyledTextCtrl_GetLine, 3098).
+-define(wxStyledTextCtrl_GetLineCount, 3099).
+-define(wxStyledTextCtrl_SetMarginLeft, 3100).
+-define(wxStyledTextCtrl_GetMarginLeft, 3101).
+-define(wxStyledTextCtrl_SetMarginRight, 3102).
+-define(wxStyledTextCtrl_GetMarginRight, 3103).
+-define(wxStyledTextCtrl_GetModify, 3104).
+-define(wxStyledTextCtrl_SetSelection, 3105).
+-define(wxStyledTextCtrl_GetSelectedText, 3106).
+-define(wxStyledTextCtrl_GetTextRange, 3107).
+-define(wxStyledTextCtrl_HideSelection, 3108).
+-define(wxStyledTextCtrl_LineFromPosition, 3109).
+-define(wxStyledTextCtrl_PositionFromLine, 3110).
+-define(wxStyledTextCtrl_LineScroll, 3111).
+-define(wxStyledTextCtrl_EnsureCaretVisible, 3112).
+-define(wxStyledTextCtrl_ReplaceSelection, 3113).
+-define(wxStyledTextCtrl_SetReadOnly, 3114).
+-define(wxStyledTextCtrl_CanPaste, 3115).
+-define(wxStyledTextCtrl_CanUndo, 3116).
+-define(wxStyledTextCtrl_EmptyUndoBuffer, 3117).
+-define(wxStyledTextCtrl_Undo, 3118).
+-define(wxStyledTextCtrl_Cut, 3119).
+-define(wxStyledTextCtrl_Copy, 3120).
+-define(wxStyledTextCtrl_Paste, 3121).
+-define(wxStyledTextCtrl_Clear, 3122).
+-define(wxStyledTextCtrl_SetText, 3123).
+-define(wxStyledTextCtrl_GetText, 3124).
+-define(wxStyledTextCtrl_GetTextLength, 3125).
+-define(wxStyledTextCtrl_GetOvertype, 3126).
+-define(wxStyledTextCtrl_SetCaretWidth, 3127).
+-define(wxStyledTextCtrl_GetCaretWidth, 3128).
+-define(wxStyledTextCtrl_SetTargetStart, 3129).
+-define(wxStyledTextCtrl_GetTargetStart, 3130).
+-define(wxStyledTextCtrl_SetTargetEnd, 3131).
+-define(wxStyledTextCtrl_GetTargetEnd, 3132).
+-define(wxStyledTextCtrl_ReplaceTarget, 3133).
+-define(wxStyledTextCtrl_SearchInTarget, 3134).
+-define(wxStyledTextCtrl_SetSearchFlags, 3135).
+-define(wxStyledTextCtrl_GetSearchFlags, 3136).
+-define(wxStyledTextCtrl_CallTipShow, 3137).
+-define(wxStyledTextCtrl_CallTipCancel, 3138).
+-define(wxStyledTextCtrl_CallTipActive, 3139).
+-define(wxStyledTextCtrl_CallTipPosAtStart, 3140).
+-define(wxStyledTextCtrl_CallTipSetHighlight, 3141).
+-define(wxStyledTextCtrl_CallTipSetBackground, 3142).
+-define(wxStyledTextCtrl_CallTipSetForeground, 3143).
+-define(wxStyledTextCtrl_CallTipSetForegroundHighlight, 3144).
+-define(wxStyledTextCtrl_CallTipUseStyle, 3145).
+-define(wxStyledTextCtrl_VisibleFromDocLine, 3146).
+-define(wxStyledTextCtrl_DocLineFromVisible, 3147).
+-define(wxStyledTextCtrl_WrapCount, 3148).
+-define(wxStyledTextCtrl_SetFoldLevel, 3149).
+-define(wxStyledTextCtrl_GetFoldLevel, 3150).
+-define(wxStyledTextCtrl_GetLastChild, 3151).
+-define(wxStyledTextCtrl_GetFoldParent, 3152).
+-define(wxStyledTextCtrl_ShowLines, 3153).
+-define(wxStyledTextCtrl_HideLines, 3154).
+-define(wxStyledTextCtrl_GetLineVisible, 3155).
+-define(wxStyledTextCtrl_SetFoldExpanded, 3156).
+-define(wxStyledTextCtrl_GetFoldExpanded, 3157).
+-define(wxStyledTextCtrl_ToggleFold, 3158).
+-define(wxStyledTextCtrl_EnsureVisible, 3159).
+-define(wxStyledTextCtrl_SetFoldFlags, 3160).
+-define(wxStyledTextCtrl_EnsureVisibleEnforcePolicy, 3161).
+-define(wxStyledTextCtrl_SetTabIndents, 3162).
+-define(wxStyledTextCtrl_GetTabIndents, 3163).
+-define(wxStyledTextCtrl_SetBackSpaceUnIndents, 3164).
+-define(wxStyledTextCtrl_GetBackSpaceUnIndents, 3165).
+-define(wxStyledTextCtrl_SetMouseDwellTime, 3166).
+-define(wxStyledTextCtrl_GetMouseDwellTime, 3167).
+-define(wxStyledTextCtrl_WordStartPosition, 3168).
+-define(wxStyledTextCtrl_WordEndPosition, 3169).
+-define(wxStyledTextCtrl_SetWrapMode, 3170).
+-define(wxStyledTextCtrl_GetWrapMode, 3171).
+-define(wxStyledTextCtrl_SetWrapVisualFlags, 3172).
+-define(wxStyledTextCtrl_GetWrapVisualFlags, 3173).
+-define(wxStyledTextCtrl_SetWrapVisualFlagsLocation, 3174).
+-define(wxStyledTextCtrl_GetWrapVisualFlagsLocation, 3175).
+-define(wxStyledTextCtrl_SetWrapStartIndent, 3176).
+-define(wxStyledTextCtrl_GetWrapStartIndent, 3177).
+-define(wxStyledTextCtrl_SetLayoutCache, 3178).
+-define(wxStyledTextCtrl_GetLayoutCache, 3179).
+-define(wxStyledTextCtrl_SetScrollWidth, 3180).
+-define(wxStyledTextCtrl_GetScrollWidth, 3181).
+-define(wxStyledTextCtrl_TextWidth, 3182).
+-define(wxStyledTextCtrl_GetEndAtLastLine, 3183).
+-define(wxStyledTextCtrl_TextHeight, 3184).
+-define(wxStyledTextCtrl_SetUseVerticalScrollBar, 3185).
+-define(wxStyledTextCtrl_GetUseVerticalScrollBar, 3186).
+-define(wxStyledTextCtrl_AppendText, 3187).
+-define(wxStyledTextCtrl_GetTwoPhaseDraw, 3188).
+-define(wxStyledTextCtrl_SetTwoPhaseDraw, 3189).
+-define(wxStyledTextCtrl_TargetFromSelection, 3190).
+-define(wxStyledTextCtrl_LinesJoin, 3191).
+-define(wxStyledTextCtrl_LinesSplit, 3192).
+-define(wxStyledTextCtrl_SetFoldMarginColour, 3193).
+-define(wxStyledTextCtrl_SetFoldMarginHiColour, 3194).
+-define(wxStyledTextCtrl_LineDown, 3195).
+-define(wxStyledTextCtrl_LineDownExtend, 3196).
+-define(wxStyledTextCtrl_LineUp, 3197).
+-define(wxStyledTextCtrl_LineUpExtend, 3198).
+-define(wxStyledTextCtrl_CharLeft, 3199).
+-define(wxStyledTextCtrl_CharLeftExtend, 3200).
+-define(wxStyledTextCtrl_CharRight, 3201).
+-define(wxStyledTextCtrl_CharRightExtend, 3202).
+-define(wxStyledTextCtrl_WordLeft, 3203).
+-define(wxStyledTextCtrl_WordLeftExtend, 3204).
+-define(wxStyledTextCtrl_WordRight, 3205).
+-define(wxStyledTextCtrl_WordRightExtend, 3206).
+-define(wxStyledTextCtrl_Home, 3207).
+-define(wxStyledTextCtrl_HomeExtend, 3208).
+-define(wxStyledTextCtrl_LineEnd, 3209).
+-define(wxStyledTextCtrl_LineEndExtend, 3210).
+-define(wxStyledTextCtrl_DocumentStart, 3211).
+-define(wxStyledTextCtrl_DocumentStartExtend, 3212).
+-define(wxStyledTextCtrl_DocumentEnd, 3213).
+-define(wxStyledTextCtrl_DocumentEndExtend, 3214).
+-define(wxStyledTextCtrl_PageUp, 3215).
+-define(wxStyledTextCtrl_PageUpExtend, 3216).
+-define(wxStyledTextCtrl_PageDown, 3217).
+-define(wxStyledTextCtrl_PageDownExtend, 3218).
+-define(wxStyledTextCtrl_EditToggleOvertype, 3219).
+-define(wxStyledTextCtrl_Cancel, 3220).
+-define(wxStyledTextCtrl_DeleteBack, 3221).
+-define(wxStyledTextCtrl_Tab, 3222).
+-define(wxStyledTextCtrl_BackTab, 3223).
+-define(wxStyledTextCtrl_NewLine, 3224).
+-define(wxStyledTextCtrl_FormFeed, 3225).
+-define(wxStyledTextCtrl_VCHome, 3226).
+-define(wxStyledTextCtrl_VCHomeExtend, 3227).
+-define(wxStyledTextCtrl_ZoomIn, 3228).
+-define(wxStyledTextCtrl_ZoomOut, 3229).
+-define(wxStyledTextCtrl_DelWordLeft, 3230).
+-define(wxStyledTextCtrl_DelWordRight, 3231).
+-define(wxStyledTextCtrl_LineCut, 3232).
+-define(wxStyledTextCtrl_LineDelete, 3233).
+-define(wxStyledTextCtrl_LineTranspose, 3234).
+-define(wxStyledTextCtrl_LineDuplicate, 3235).
+-define(wxStyledTextCtrl_LowerCase, 3236).
+-define(wxStyledTextCtrl_UpperCase, 3237).
+-define(wxStyledTextCtrl_LineScrollDown, 3238).
+-define(wxStyledTextCtrl_LineScrollUp, 3239).
+-define(wxStyledTextCtrl_DeleteBackNotLine, 3240).
+-define(wxStyledTextCtrl_HomeDisplay, 3241).
+-define(wxStyledTextCtrl_HomeDisplayExtend, 3242).
+-define(wxStyledTextCtrl_LineEndDisplay, 3243).
+-define(wxStyledTextCtrl_LineEndDisplayExtend, 3244).
+-define(wxStyledTextCtrl_HomeWrapExtend, 3245).
+-define(wxStyledTextCtrl_LineEndWrap, 3246).
+-define(wxStyledTextCtrl_LineEndWrapExtend, 3247).
+-define(wxStyledTextCtrl_VCHomeWrap, 3248).
+-define(wxStyledTextCtrl_VCHomeWrapExtend, 3249).
+-define(wxStyledTextCtrl_LineCopy, 3250).
+-define(wxStyledTextCtrl_MoveCaretInsideView, 3251).
+-define(wxStyledTextCtrl_LineLength, 3252).
+-define(wxStyledTextCtrl_BraceHighlight, 3253).
+-define(wxStyledTextCtrl_BraceBadLight, 3254).
+-define(wxStyledTextCtrl_BraceMatch, 3255).
+-define(wxStyledTextCtrl_GetViewEOL, 3256).
+-define(wxStyledTextCtrl_SetViewEOL, 3257).
+-define(wxStyledTextCtrl_SetModEventMask, 3258).
+-define(wxStyledTextCtrl_GetEdgeColumn, 3259).
+-define(wxStyledTextCtrl_SetEdgeColumn, 3260).
+-define(wxStyledTextCtrl_GetEdgeMode, 3261).
+-define(wxStyledTextCtrl_GetEdgeColour, 3262).
+-define(wxStyledTextCtrl_SetEdgeColour, 3263).
+-define(wxStyledTextCtrl_SearchAnchor, 3264).
+-define(wxStyledTextCtrl_SearchNext, 3265).
+-define(wxStyledTextCtrl_SearchPrev, 3266).
+-define(wxStyledTextCtrl_LinesOnScreen, 3267).
+-define(wxStyledTextCtrl_UsePopUp, 3268).
+-define(wxStyledTextCtrl_SelectionIsRectangle, 3269).
+-define(wxStyledTextCtrl_SetZoom, 3270).
+-define(wxStyledTextCtrl_GetZoom, 3271).
+-define(wxStyledTextCtrl_GetModEventMask, 3272).
+-define(wxStyledTextCtrl_SetSTCFocus, 3273).
+-define(wxStyledTextCtrl_GetSTCFocus, 3274).
+-define(wxStyledTextCtrl_SetStatus, 3275).
+-define(wxStyledTextCtrl_GetStatus, 3276).
+-define(wxStyledTextCtrl_SetMouseDownCaptures, 3277).
+-define(wxStyledTextCtrl_GetMouseDownCaptures, 3278).
+-define(wxStyledTextCtrl_SetSTCCursor, 3279).
+-define(wxStyledTextCtrl_GetSTCCursor, 3280).
+-define(wxStyledTextCtrl_SetControlCharSymbol, 3281).
+-define(wxStyledTextCtrl_GetControlCharSymbol, 3282).
+-define(wxStyledTextCtrl_WordPartLeft, 3283).
+-define(wxStyledTextCtrl_WordPartLeftExtend, 3284).
+-define(wxStyledTextCtrl_WordPartRight, 3285).
+-define(wxStyledTextCtrl_WordPartRightExtend, 3286).
+-define(wxStyledTextCtrl_SetVisiblePolicy, 3287).
+-define(wxStyledTextCtrl_DelLineLeft, 3288).
+-define(wxStyledTextCtrl_DelLineRight, 3289).
+-define(wxStyledTextCtrl_GetXOffset, 3290).
+-define(wxStyledTextCtrl_ChooseCaretX, 3291).
+-define(wxStyledTextCtrl_SetXCaretPolicy, 3292).
+-define(wxStyledTextCtrl_SetYCaretPolicy, 3293).
+-define(wxStyledTextCtrl_GetPrintWrapMode, 3294).
+-define(wxStyledTextCtrl_SetHotspotActiveForeground, 3295).
+-define(wxStyledTextCtrl_SetHotspotActiveBackground, 3296).
+-define(wxStyledTextCtrl_SetHotspotActiveUnderline, 3297).
+-define(wxStyledTextCtrl_SetHotspotSingleLine, 3298).
+-define(wxStyledTextCtrl_ParaDownExtend, 3299).
+-define(wxStyledTextCtrl_ParaUp, 3300).
+-define(wxStyledTextCtrl_ParaUpExtend, 3301).
+-define(wxStyledTextCtrl_PositionBefore, 3302).
+-define(wxStyledTextCtrl_PositionAfter, 3303).
+-define(wxStyledTextCtrl_CopyRange, 3304).
+-define(wxStyledTextCtrl_CopyText, 3305).
+-define(wxStyledTextCtrl_SetSelectionMode, 3306).
+-define(wxStyledTextCtrl_GetSelectionMode, 3307).
+-define(wxStyledTextCtrl_LineDownRectExtend, 3308).
+-define(wxStyledTextCtrl_LineUpRectExtend, 3309).
+-define(wxStyledTextCtrl_CharLeftRectExtend, 3310).
+-define(wxStyledTextCtrl_CharRightRectExtend, 3311).
+-define(wxStyledTextCtrl_HomeRectExtend, 3312).
+-define(wxStyledTextCtrl_VCHomeRectExtend, 3313).
+-define(wxStyledTextCtrl_LineEndRectExtend, 3314).
+-define(wxStyledTextCtrl_PageUpRectExtend, 3315).
+-define(wxStyledTextCtrl_PageDownRectExtend, 3316).
+-define(wxStyledTextCtrl_StutteredPageUp, 3317).
+-define(wxStyledTextCtrl_StutteredPageUpExtend, 3318).
+-define(wxStyledTextCtrl_StutteredPageDown, 3319).
+-define(wxStyledTextCtrl_StutteredPageDownExtend, 3320).
+-define(wxStyledTextCtrl_WordLeftEnd, 3321).
+-define(wxStyledTextCtrl_WordLeftEndExtend, 3322).
+-define(wxStyledTextCtrl_WordRightEnd, 3323).
+-define(wxStyledTextCtrl_WordRightEndExtend, 3324).
+-define(wxStyledTextCtrl_SetWhitespaceChars, 3325).
+-define(wxStyledTextCtrl_SetCharsDefault, 3326).
+-define(wxStyledTextCtrl_AutoCompGetCurrent, 3327).
+-define(wxStyledTextCtrl_Allocate, 3328).
+-define(wxStyledTextCtrl_FindColumn, 3329).
+-define(wxStyledTextCtrl_GetCaretSticky, 3330).
+-define(wxStyledTextCtrl_SetCaretSticky, 3331).
+-define(wxStyledTextCtrl_ToggleCaretSticky, 3332).
+-define(wxStyledTextCtrl_SetPasteConvertEndings, 3333).
+-define(wxStyledTextCtrl_GetPasteConvertEndings, 3334).
+-define(wxStyledTextCtrl_SelectionDuplicate, 3335).
+-define(wxStyledTextCtrl_SetCaretLineBackAlpha, 3336).
+-define(wxStyledTextCtrl_GetCaretLineBackAlpha, 3337).
+-define(wxStyledTextCtrl_StartRecord, 3338).
+-define(wxStyledTextCtrl_StopRecord, 3339).
+-define(wxStyledTextCtrl_SetLexer, 3340).
+-define(wxStyledTextCtrl_GetLexer, 3341).
+-define(wxStyledTextCtrl_Colourise, 3342).
+-define(wxStyledTextCtrl_SetProperty, 3343).
+-define(wxStyledTextCtrl_SetKeyWords, 3344).
+-define(wxStyledTextCtrl_SetLexerLanguage, 3345).
+-define(wxStyledTextCtrl_GetProperty, 3346).
+-define(wxStyledTextCtrl_GetStyleBitsNeeded, 3347).
+-define(wxStyledTextCtrl_GetCurrentLine, 3348).
+-define(wxStyledTextCtrl_StyleSetSpec, 3349).
+-define(wxStyledTextCtrl_StyleSetFont, 3350).
+-define(wxStyledTextCtrl_StyleSetFontAttr, 3351).
+-define(wxStyledTextCtrl_StyleSetCharacterSet, 3352).
+-define(wxStyledTextCtrl_StyleSetFontEncoding, 3353).
+-define(wxStyledTextCtrl_CmdKeyExecute, 3354).
+-define(wxStyledTextCtrl_SetMargins, 3355).
+-define(wxStyledTextCtrl_GetSelection, 3356).
+-define(wxStyledTextCtrl_PointFromPosition, 3357).
+-define(wxStyledTextCtrl_ScrollToLine, 3358).
+-define(wxStyledTextCtrl_ScrollToColumn, 3359).
+-define(wxStyledTextCtrl_SendMsg, 3360).
+-define(wxStyledTextCtrl_SetVScrollBar, 3361).
+-define(wxStyledTextCtrl_SetHScrollBar, 3362).
+-define(wxStyledTextCtrl_GetLastKeydownProcessed, 3363).
+-define(wxStyledTextCtrl_SetLastKeydownProcessed, 3364).
+-define(wxStyledTextCtrl_SaveFile, 3365).
+-define(wxStyledTextCtrl_LoadFile, 3366).
+-define(wxStyledTextCtrl_DoDragOver, 3367).
+-define(wxStyledTextCtrl_DoDropText, 3368).
+-define(wxStyledTextCtrl_GetUseAntiAliasing, 3369).
+-define(wxStyledTextCtrl_AddTextRaw, 3370).
+-define(wxStyledTextCtrl_InsertTextRaw, 3371).
+-define(wxStyledTextCtrl_GetCurLineRaw, 3372).
+-define(wxStyledTextCtrl_GetLineRaw, 3373).
+-define(wxStyledTextCtrl_GetSelectedTextRaw, 3374).
+-define(wxStyledTextCtrl_GetTextRangeRaw, 3375).
+-define(wxStyledTextCtrl_SetTextRaw, 3376).
+-define(wxStyledTextCtrl_GetTextRaw, 3377).
+-define(wxStyledTextCtrl_AppendTextRaw, 3378).
+-define(wxArtProvider_GetBitmap, 3379).
+-define(wxArtProvider_GetIcon, 3380).
+-define(wxTreeEvent_GetKeyCode, 3381).
+-define(wxTreeEvent_GetItem, 3382).
+-define(wxTreeEvent_GetKeyEvent, 3383).
+-define(wxTreeEvent_GetLabel, 3384).
+-define(wxTreeEvent_GetOldItem, 3385).
+-define(wxTreeEvent_GetPoint, 3386).
+-define(wxTreeEvent_IsEditCancelled, 3387).
+-define(wxTreeEvent_SetToolTip, 3388).
+-define(wxNotebookEvent_GetOldSelection, 3389).
+-define(wxNotebookEvent_GetSelection, 3390).
+-define(wxNotebookEvent_SetOldSelection, 3391).
+-define(wxNotebookEvent_SetSelection, 3392).
+-define(wxFileDataObject_new, 3393).
+-define(wxFileDataObject_AddFile, 3394).
+-define(wxFileDataObject_GetFilenames, 3395).
+-define(wxFileDataObject_destroy, 3396).
+-define(wxTextDataObject_new, 3397).
+-define(wxTextDataObject_GetTextLength, 3398).
+-define(wxTextDataObject_GetText, 3399).
+-define(wxTextDataObject_SetText, 3400).
+-define(wxTextDataObject_destroy, 3401).
+-define(wxBitmapDataObject_new_1_1, 3402).
+-define(wxBitmapDataObject_new_1_0, 3403).
+-define(wxBitmapDataObject_GetBitmap, 3404).
+-define(wxBitmapDataObject_SetBitmap, 3405).
+-define(wxBitmapDataObject_destroy, 3406).
+-define(wxClipboard_new, 3408).
+-define(wxClipboard_destruct, 3409).
+-define(wxClipboard_AddData, 3410).
+-define(wxClipboard_Clear, 3411).
+-define(wxClipboard_Close, 3412).
+-define(wxClipboard_Flush, 3413).
+-define(wxClipboard_GetData, 3414).
+-define(wxClipboard_IsOpened, 3415).
+-define(wxClipboard_Open, 3416).
+-define(wxClipboard_SetData, 3417).
+-define(wxClipboard_UsePrimarySelection, 3419).
+-define(wxClipboard_IsSupported, 3420).
+-define(wxClipboard_Get, 3421).
+-define(wxSpinEvent_GetPosition, 3422).
+-define(wxSpinEvent_SetPosition, 3423).
+-define(wxSplitterWindow_new_0, 3424).
+-define(wxSplitterWindow_new_2, 3425).
+-define(wxSplitterWindow_destruct, 3426).
+-define(wxSplitterWindow_Create, 3427).
+-define(wxSplitterWindow_GetMinimumPaneSize, 3428).
+-define(wxSplitterWindow_GetSashGravity, 3429).
+-define(wxSplitterWindow_GetSashPosition, 3430).
+-define(wxSplitterWindow_GetSplitMode, 3431).
+-define(wxSplitterWindow_GetWindow1, 3432).
+-define(wxSplitterWindow_GetWindow2, 3433).
+-define(wxSplitterWindow_Initialize, 3434).
+-define(wxSplitterWindow_IsSplit, 3435).
+-define(wxSplitterWindow_ReplaceWindow, 3436).
+-define(wxSplitterWindow_SetSashGravity, 3437).
+-define(wxSplitterWindow_SetSashPosition, 3438).
+-define(wxSplitterWindow_SetSashSize, 3439).
+-define(wxSplitterWindow_SetMinimumPaneSize, 3440).
+-define(wxSplitterWindow_SetSplitMode, 3441).
+-define(wxSplitterWindow_SplitHorizontally, 3442).
+-define(wxSplitterWindow_SplitVertically, 3443).
+-define(wxSplitterWindow_Unsplit, 3444).
+-define(wxSplitterWindow_UpdateSize, 3445).
+-define(wxSplitterEvent_GetSashPosition, 3446).
+-define(wxSplitterEvent_GetX, 3447).
+-define(wxSplitterEvent_GetY, 3448).
+-define(wxSplitterEvent_GetWindowBeingRemoved, 3449).
+-define(wxSplitterEvent_SetSashPosition, 3450).
+-define(wxHtmlWindow_new_0, 3451).
+-define(wxHtmlWindow_new_2, 3452).
+-define(wxHtmlWindow_AppendToPage, 3453).
+-define(wxHtmlWindow_GetOpenedAnchor, 3454).
+-define(wxHtmlWindow_GetOpenedPage, 3455).
+-define(wxHtmlWindow_GetOpenedPageTitle, 3456).
+-define(wxHtmlWindow_GetRelatedFrame, 3457).
+-define(wxHtmlWindow_HistoryBack, 3458).
+-define(wxHtmlWindow_HistoryCanBack, 3459).
+-define(wxHtmlWindow_HistoryCanForward, 3460).
+-define(wxHtmlWindow_HistoryClear, 3461).
+-define(wxHtmlWindow_HistoryForward, 3462).
+-define(wxHtmlWindow_LoadFile, 3463).
+-define(wxHtmlWindow_LoadPage, 3464).
+-define(wxHtmlWindow_SelectAll, 3465).
+-define(wxHtmlWindow_SelectionToText, 3466).
+-define(wxHtmlWindow_SelectLine, 3467).
+-define(wxHtmlWindow_SelectWord, 3468).
+-define(wxHtmlWindow_SetBorders, 3469).
+-define(wxHtmlWindow_SetFonts, 3470).
+-define(wxHtmlWindow_SetPage, 3471).
+-define(wxHtmlWindow_SetRelatedFrame, 3472).
+-define(wxHtmlWindow_SetRelatedStatusBar, 3473).
+-define(wxHtmlWindow_ToText, 3474).
+-define(wxHtmlWindow_destroy, 3475).
+-define(wxHtmlLinkEvent_GetLinkInfo, 3476).
+-define(wxAuiNotebookEvent_SetSelection, 3477).
+-define(wxAuiNotebookEvent_GetSelection, 3478).
+-define(wxAuiNotebookEvent_SetOldSelection, 3479).
+-define(wxAuiNotebookEvent_GetOldSelection, 3480).
+-define(wxAuiNotebookEvent_SetDragSource, 3481).
+-define(wxAuiNotebookEvent_GetDragSource, 3482).
+-define(wxAuiManagerEvent_SetManager, 3483).
+-define(wxAuiManagerEvent_GetManager, 3484).
+-define(wxAuiManagerEvent_SetPane, 3485).
+-define(wxAuiManagerEvent_GetPane, 3486).
+-define(wxAuiManagerEvent_SetButton, 3487).
+-define(wxAuiManagerEvent_GetButton, 3488).
+-define(wxAuiManagerEvent_SetDC, 3489).
+-define(wxAuiManagerEvent_GetDC, 3490).
+-define(wxAuiManagerEvent_Veto, 3491).
+-define(wxAuiManagerEvent_GetVeto, 3492).
+-define(wxAuiManagerEvent_SetCanVeto, 3493).
+-define(wxAuiManagerEvent_CanVeto, 3494).
+-define(wxLogNull_new, 3495).
+-define(wxLogNull_destroy, 3496).
diff --git a/lib/wx/test/wx_class_SUITE.erl b/lib/wx/test/wx_class_SUITE.erl
index ddb491be6c..76df6e4a23 100644
--- a/lib/wx/test/wx_class_SUITE.erl
+++ b/lib/wx/test/wx_class_SUITE.erl
@@ -361,6 +361,14 @@ listCtrlSort(Config) ->
Time = timer:tc(erlang, apply, [Sort,[]]),
io:format("Sorted ~p ~n",[Time]),
+ Item = wxListItem:new(),
+ _List = wx:map(fun(Int) ->
+ wxListItem:setId(Item, Int),
+ ?m(true, wxListCtrl:getItem(LC, Item)),
+ io:format("~s~n",[wxListItem:getText(Item)])
+ end, lists:seq(0,100)),
+ wxListItem:destroy(Item),
+
wx_test_lib:wx_destroy(Frame,Config).